diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 01579f668b..3418c5df2a 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -10,4 +10,3 @@ liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username otechie: # Replace with a single Otechie username lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry -custom: https://cash.app/$akabubbo diff --git a/.gitignore b/.gitignore index 5ba60ba9ab..d7219729ec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,7 @@ node_modules +dist +build + .idea .DS_Store .hintrc diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..c75e4e89e8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,47 @@ +# Changelog + +## Version 6.0.0 - Released September 18, 2026 + +# Added + +* Dynamically show the version and latest updated date in Settings +* Added new themes +* Added a build pipeline that obfuscates the entire application +* Added cursor effects to Settings +* Added rate limiting +* Added hard caching for `games.js` +* Added proper `_top` link interception in tabs to preserve normal site functionality + +# Changed + +* Obfuscated the address bar in tabs +* Moved server code into `/src/` and split it into modules +* Minify CSS during builds +* Obfuscate the Google Analytics script +* Serve Scramjet and Ultraviolet files from `node_modules` +* Updated Ultraviolet to the latest version +* Polished site UI and animations +* Overhauled the theme system +* Updated Scramjet and made it the default proxy +* Updated links for broken games +* Load particles locally +* Properly sanitize URLs +* Properly named the CSS classes of `tabs.html` and the `main.js` navbar +* Made themes apply immediately on page load to fix the flashing bug +* Overhauled particles +* Prevent service worker errors for new users +* Moved the Custom App and Request An App cards into their own section on the Games and Apps page + +# Removed + +* Removed Dynamic proxy (outdated) +* Removed the Tabs button from the navbar and cleaned up its CSS +* Removed Masqr (unused) + +# Cleaning / Bugfixes + +* Cleaned up the code in `tabs.js` and fixed bugs +* Cleaned up the code in `settings.js` and fixed bugs +* Cleaned up the code in `main.js` and fixed themes +* Cleaned up the code in `launcher.js` and fixed bugs +* Properly named filenames and routes and removed all version-control parameters diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1358012b1c..814f7e7fb5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,7 +21,7 @@ Thank you for your interest in contributing to this repository! To ensure a smoo 4. **Minifying JSON** - - Before finalizing your changes visit https://codebeautify.org/jsonminifier and compress your json and put it in the `.min.json` file. (Ex. If you are editing `a.json` you would put the minified code in `a.min.json` + - Before finalizing your changes visit https://codebeautify.org/jsonminifier and compress your json and put it in the `.min.json` file. (Ex. If you are editing `apps.json` you would put the minified code in `apps.min.json` 5. **Test Your Changes:** diff --git a/Dockerfile b/Dockerfile index ced0eef1db..a9ca41229c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,4 +9,4 @@ RUN npm install COPY . . -CMD [ "node", "index.js" ] \ No newline at end of file +CMD [ "node", "src/server.js" ] \ No newline at end of file diff --git a/Failed.html b/Failed.html deleted file mode 100644 index b2a511a512..0000000000 --- a/Failed.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - Welcome to nginx! - - - -

Welcome to nginx!

-

- If you see this page, the nginx web server is successfully installed and working. Further - configuration is required. -

- -

- For online documentation and support please refer to - nginx.org.
- Commercial support is available at - nginx.com. -

- -

Thank you for using nginx.

- - diff --git a/Masqr.js b/Masqr.js deleted file mode 100644 index 348d7b16a9..0000000000 --- a/Masqr.js +++ /dev/null @@ -1,78 +0,0 @@ -import fs from "node:fs" -import path from "node:path" -import fetch from "node-fetch" - -const LICENSE_SERVER_URL = "https://masqr.gointerstellar.app/validate?license=" -const Fail = fs.readFileSync("Failed.html", "utf8") - -export function setupMasqr(app) { - app.use(async (req, res, next) => { - if (req.url.includes("/ca/")) { - next() - return - } - - const authheader = req.headers.authorization - - if (req.cookies["authcheck"]) { - next() - return - } - - if (req.cookies["refreshcheck"] !== "true") { - res.cookie("refreshcheck", "true", { maxAge: 10000 }) - MasqFail(req, res) - return - } - - if (!authheader) { - res.setHeader("WWW-Authenticate", "Basic") - res.status(401) - MasqFail(req, res) - return - } - - const auth = Buffer.from(authheader.split(" ")[1], "base64").toString().split(":") - const pass = auth[1] - - try { - const licenseCheckResponse = await fetch( - LICENSE_SERVER_URL + pass + "&host=" + req.headers.host - ) - const licenseCheck = (await licenseCheckResponse.json())["status"] - console.log( - LICENSE_SERVER_URL + pass + "&host=" + req.headers.host + " returned " + licenseCheck - ) - if (licenseCheck === "License valid") { - res.cookie("authcheck", "true", { - expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000), - }) - res.send("") - return - } - - MasqFail(req, res) - } catch (error) { - console.error(error) - MasqFail(req, res) - } - }) -} - -async function MasqFail(req, res) { - if (!req.headers.host) { - return - } - const unsafeSuffix = req.headers.host + ".html" - const safeSuffix = path.normalize(unsafeSuffix).replace(/^(\.\.(\/|\\|$))+/, "") - const safeJoin = path.join(process.cwd() + "/Masqrd", safeSuffix) - try { - await fs.promises.access(safeJoin) - const FailLocal = await fs.promises.readFile(safeJoin, "utf8") - res.setHeader("Content-Type", "text/html") - res.send(FailLocal) - } catch (e) { - res.setHeader("Content-Type", "text/html") - res.send(Fail) - } -} diff --git a/SECURITY.md b/SECURITY.md index 19149333c7..bdbb2aadf9 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -6,10 +6,10 @@ Only current versions of the site are being updated, if you are using an older v | Version | Supported | | ------- | --------- | -| V5.2.x | ✔️ | -| V5.1.x | :x: | -| V5.0.x | :x: | -| V4.x.x | :x: | +| V5.4.x | ✔️ | +| V5.3.x | :x: | +| V5.2.x | :x: | +| < V5.0 | :x: | | < V4.0 | :x: | ## Reporting a Vulnerability diff --git a/biome.json b/biome.json index cac51c8ddd..bce08448e6 100644 --- a/biome.json +++ b/biome.json @@ -1,13 +1,17 @@ { "$schema": "https://biomejs.dev/schemas/2.2.2/schema.json", "files": { - "includes": ["**", "!**/static/assets/history", "!**/static/assets/mathematics", "!**/static/assets/json/**/*.min.json", "!**/Masqr.js", "!**/node_modules", "!**/package-lock.json", "!**/package.json", "!**/*.md", "!**/bun.lockb", "!**/Failed.html"] + "includes": ["**", "!**/static/assets/ultraviolet", "!**/static/assets/json/**/*.min.json", "!**/static/assets/css/global.css", "!**/node_modules", "!**/package-lock.json", "!**/package.json", "!**/*.md", "!**/bun.lockb"] }, "assist": { "actions": { "source": { "organizeImports": "on" } } }, "linter": { "enabled": true, "rules": { - "recommended": true + "recommended": true, + "correctness": { + "noUnusedVariables": "off", + "noUnusedFunctionParameters": "off" + } }, "includes": ["**", "!**/pnpm-lock.yaml", "!**/dist/**", "!**/node_modules/**", "!**/assets/bundled/**", "!**/*.min.json", "!**/.astro/**"] }, diff --git a/index.js b/index.js deleted file mode 100644 index 3382404d84..0000000000 --- a/index.js +++ /dev/null @@ -1,167 +0,0 @@ -import fs from "node:fs"; -import http from "node:http"; -import path from "node:path"; -import { createBareServer } from "@nebula-services/bare-server-node"; -import chalk from "chalk"; -import cookieParser from "cookie-parser"; -import cors from "cors"; -import express from "express"; -import basicAuth from "express-basic-auth"; -import bareMuxNode from "@mercuryworkshop/bare-mux/node"; -import { server as wisp } from "@mercuryworkshop/wisp-js/server"; -import mime from "mime"; -import fetch from "node-fetch"; -// import { setupMasqr } from "./Masqr.js"; -import config from "./config.js"; - -console.log(chalk.yellow("🚀 Starting server...")); - -const __dirname = process.cwd(); -const server = http.createServer(); -const app = express(); -const bareServer = createBareServer("/ca/"); -const { baremuxPath } = bareMuxNode; -const epoxyDistPath = path.join( - __dirname, - "node_modules", - "@mercuryworkshop", - "epoxy-transport", - "dist", -); -const PORT = process.env.PORT || 8080; -const cache = new Map(); -const CACHE_TTL = 30 * 24 * 60 * 60 * 1000; // Cache for 30 Days - -wisp.options.allow_loopback_ips = true; -wisp.options.allow_private_ips = true; - -if (config.challenge !== false) { - console.log(chalk.green("🔒 Password protection is enabled! Listing logins below")); - // biome-ignore lint: idk - Object.entries(config.users).forEach(([username, password]) => { - console.log(chalk.blue(`Username: ${username}, Password: ${password}`)); - }); - app.use(basicAuth({ users: config.users, challenge: true })); -} - -app.get("/e/*", async (req, res, next) => { - try { - if (cache.has(req.path)) { - const { data, contentType, timestamp } = cache.get(req.path); - if (Date.now() - timestamp > CACHE_TTL) { - cache.delete(req.path); - } else { - res.writeHead(200, { "Content-Type": contentType }); - return res.end(data); - } - } - - const baseUrls = { - "/e/1/": "https://raw.githubusercontent.com/qrs/x/fixy/", - "/e/2/": "https://raw.githubusercontent.com/3v1/V5-Assets/main/", - "/e/3/": "https://raw.githubusercontent.com/3v1/V5-Retro/master/", - }; - - let reqTarget; - for (const [prefix, baseUrl] of Object.entries(baseUrls)) { - if (req.path.startsWith(prefix)) { - reqTarget = baseUrl + req.path.slice(prefix.length); - break; - } - } - - if (!reqTarget) { - return next(); - } - - const asset = await fetch(reqTarget); - if (!asset.ok) { - return next(); - } - - const data = Buffer.from(await asset.arrayBuffer()); - const ext = path.extname(reqTarget); - const no = [".unityweb"]; - const contentType = no.includes(ext) ? "application/octet-stream" : mime.getType(ext); - - cache.set(req.path, { data, contentType, timestamp: Date.now() }); - res.writeHead(200, { "Content-Type": contentType }); - res.end(data); - } catch (error) { - console.error("Error fetching asset:", error); - res.setHeader("Content-Type", "text/html"); - res.status(500).send("Error fetching the asset"); - } -}); - -app.use(cookieParser()); -app.use(express.json()); -app.use(express.urlencoded({ extended: true })); - -/* if (process.env.MASQR === "true") { - console.log(chalk.green("Masqr is enabled")); - setupMasqr(app); -} */ - -const transportStaticOptions = { - setHeaders: (res, filePath) => { - const ext = path.extname(filePath); - if (ext === ".mjs" || ext === ".js") { - res.type("text/javascript"); - } else if (ext === ".wasm") { - res.type("application/wasm"); - } - }, -}; - -app.use(express.static(path.join(__dirname, "static"))); -app.use("/ca", cors({ origin: true })); -app.use("/bm", express.static(baremuxPath, transportStaticOptions)); -app.use("/ep", express.static(epoxyDistPath, transportStaticOptions)); - -const routes = [ - { path: "/b", file: "apps.html" }, - { path: "/a", file: "games.html" }, - { path: "/play.html", file: "games.html" }, - { path: "/c", file: "settings.html" }, - { path: "/d", file: "tabs.html" }, - { path: "/", file: "index.html" }, -]; - -// biome-ignore lint: idk -routes.forEach(route => { - app.get(route.path, (_req, res) => { - res.sendFile(path.join(__dirname, "static", route.file)); - }); -}); - -app.use((req, res, next) => { - res.status(404).sendFile(path.join(__dirname, "static", "404.html")); -}); - -app.use((err, req, res, next) => { - console.error(err.stack); - res.status(500).sendFile(path.join(__dirname, "static", "404.html")); -}); - -server.on("request", (req, res) => { - if (bareServer.shouldRoute(req)) { - bareServer.routeRequest(req, res); - } else { - app(req, res); - } -}); - -server.on("upgrade", (req, socket, head) => { - if (bareServer.shouldRoute(req)) { - bareServer.routeUpgrade(req, socket, head); - } else { - wisp.routeRequest(req, socket, head); - } -}); - -server.on("listening", () => { - console.log(chalk.green(`🌍 Server is running on http://localhost:${PORT}`)); -}); - -server.listen({ port: PORT }); diff --git a/package-lock.json b/package-lock.json index 564218144d..83ff2dd0ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,11 @@ "version": "5.2.5", "license": "GPL-3.0-or-later", "dependencies": { + "@mercuryworkshop/bare-mux": "^2.1.9", + "@mercuryworkshop/epoxy-transport": "2.1.28", + "@mercuryworkshop/libcurl-transport": "^1.5.2", + "@mercuryworkshop/scramjet": "^1.1.0", + "@mercuryworkshop/wisp-js": "^0.4.1", "@nebula-services/bare-server-node": "^2.0.4", "chalk": "^5.4.1", "cookie-parser": "^1.4.7", @@ -16,11 +21,14 @@ "dotenv": "^17.2.0", "express": "^4.21.2", "express-basic-auth": "^1.2.1", + "express-rate-limit": "^7.5.0", "mime": "^4.1.0", "node-fetch": "^3.3.2" }, "devDependencies": { - "@biomejs/biome": "2.2.2" + "@biomejs/biome": "2.2.2", + "javascript-obfuscator": "^4.1.1", + "terser": "^5.36.0" }, "engines": { "node": ">=16.0.0", @@ -32,6 +40,7 @@ "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.2.2.tgz", "integrity": "sha512-j1omAiQWCkhuLgwpMKisNKnsM6W8Xtt1l0WZmqY/dFj8QPNkIoTvk4tSsi40FaAAkBE1PU0AFG2RWFBWenAn+w==", "dev": true, + "license": "MIT OR Apache-2.0", "bin": { "biome": "bin/biome" }, @@ -61,6 +70,7 @@ "arm64" ], "dev": true, + "license": "MIT OR Apache-2.0", "optional": true, "os": [ "darwin" @@ -77,6 +87,7 @@ "x64" ], "dev": true, + "license": "MIT OR Apache-2.0", "optional": true, "os": [ "darwin" @@ -93,6 +104,7 @@ "arm64" ], "dev": true, + "license": "MIT OR Apache-2.0", "optional": true, "os": [ "linux" @@ -109,6 +121,7 @@ "arm64" ], "dev": true, + "license": "MIT OR Apache-2.0", "optional": true, "os": [ "linux" @@ -125,6 +138,7 @@ "x64" ], "dev": true, + "license": "MIT OR Apache-2.0", "optional": true, "os": [ "linux" @@ -141,6 +155,7 @@ "x64" ], "dev": true, + "license": "MIT OR Apache-2.0", "optional": true, "os": [ "linux" @@ -157,6 +172,7 @@ "arm64" ], "dev": true, + "license": "MIT OR Apache-2.0", "optional": true, "os": [ "win32" @@ -173,6 +189,7 @@ "x64" ], "dev": true, + "license": "MIT OR Apache-2.0", "optional": true, "os": [ "win32" @@ -181,6 +198,174 @@ "node": ">=14.21.3" } }, + "node_modules/@inversifyjs/common": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@inversifyjs/common/-/common-1.3.3.tgz", + "integrity": "sha512-ZH0wrgaJwIo3s9gMCDM2wZoxqrJ6gB97jWXncROfYdqZJv8f3EkqT57faZqN5OTeHWgtziQ6F6g3L8rCvGceCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@inversifyjs/core": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@inversifyjs/core/-/core-1.3.4.tgz", + "integrity": "sha512-gCCmA4BdbHEFwvVZ2elWgHuXZWk6AOu/1frxsS+2fWhjEk2c/IhtypLo5ytSUie1BCiT6i9qnEo4bruBomQsAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inversifyjs/common": "1.3.3", + "@inversifyjs/reflect-metadata-utils": "0.2.3" + } + }, + "node_modules/@inversifyjs/reflect-metadata-utils": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@inversifyjs/reflect-metadata-utils/-/reflect-metadata-utils-0.2.3.tgz", + "integrity": "sha512-d3D0o9TeSlvaGM2I24wcNw/Aj3rc4OYvHXOKDC09YEph5fMMiKd6fq1VTQd9tOkDNWvVbw+cnt45Wy9P/t5Lvw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "reflect-metadata": "0.2.2" + } + }, + "node_modules/@javascript-obfuscator/escodegen": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@javascript-obfuscator/escodegen/-/escodegen-2.3.1.tgz", + "integrity": "sha512-Z0HEAVwwafOume+6LFXirAVZeuEMKWuPzpFbQhCEU9++BMz0IwEa9bmedJ+rMn/IlXRBID9j3gQ0XYAa6jM10g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@javascript-obfuscator/estraverse": "^5.3.0", + "esprima": "^4.0.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/@javascript-obfuscator/estraverse": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@javascript-obfuscator/estraverse/-/estraverse-5.4.0.tgz", + "integrity": "sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mercuryworkshop/bare-mux": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@mercuryworkshop/bare-mux/-/bare-mux-2.1.9.tgz", + "integrity": "sha512-fiOqWm3VP0Bl8T+0l+qnb7ab9zO+PpKVbtJvOnMsefUv6kWIaoDtqyr9hd/t4gA8oBwgtyZVqIwO2J9nKY9ylw==" + }, + "node_modules/@mercuryworkshop/epoxy-tls": { + "version": "2.1.18-1", + "resolved": "https://registry.npmjs.org/@mercuryworkshop/epoxy-tls/-/epoxy-tls-2.1.18-1.tgz", + "integrity": "sha512-2N1BYn/+FJxIbRw+sipbl3mQPinRflqQDB9HGAXJEVj4Ok4FIlTlS4fO2cpXKEq5yoD3oaKb8GyNaQfndNui9w==", + "license": "AGPL-3.0-only" + }, + "node_modules/@mercuryworkshop/epoxy-transport": { + "version": "2.1.28", + "resolved": "https://registry.npmjs.org/@mercuryworkshop/epoxy-transport/-/epoxy-transport-2.1.28.tgz", + "integrity": "sha512-lv/Kfdn37y8ZCXQaIT3Ebj4OSztBqeXdbR9rchbHQBKIw/fNSQJLGNBHV5ScXSzqt7NCwv8ZiZx7urRyk7Ua/Q==", + "license": "AGPL-3.0-only", + "dependencies": { + "@mercuryworkshop/epoxy-tls": "2.1.18-1" + } + }, + "node_modules/@mercuryworkshop/libcurl-transport": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@mercuryworkshop/libcurl-transport/-/libcurl-transport-1.5.2.tgz", + "integrity": "sha512-E0tD/3W6HE99ypc7CStpchU6xs+TP5u2vms/9q/46BShblB2pbRCNeXHBlvXqdz97nh2Xh4A68DryDt5CM29Dg==", + "license": "AGPL-3.0-only", + "dependencies": { + "libcurl.js": "^0.7.4" + } + }, + "node_modules/@mercuryworkshop/scramjet": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mercuryworkshop/scramjet/-/scramjet-1.1.0.tgz", + "integrity": "sha512-T/9GZqAQX42eYr/t6VGR2m9J4BtIuncRkANo8hBVTGskrr522yuhaADhSu+65DYlhUyQnLUjDikuNYzlgv0Ejw==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@mercuryworkshop/bare-mux": "^2.1.9", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "htmlparser2": "10.0.0", + "idb": "^8.0.3", + "parse-domain": "^8.2.2", + "set-cookie-parser": "^2.7.1" + } + }, + "node_modules/@mercuryworkshop/wisp-js": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@mercuryworkshop/wisp-js/-/wisp-js-0.4.1.tgz", + "integrity": "sha512-104LwiXiuhti/e32gmv0Da0u0yuLFDHX8JawCzleTPWJ5t5qTX4EYi4E7/ucbjBPN9wwVPWHE5g5yGqzl/NzQA==", + "license": "AGPL-3.0", + "dependencies": { + "bufferutil": "^4.0.9", + "commander": "^14.0.2", + "ipaddr.js": "^2.3.0", + "ws": "^8.18.3" + }, + "bin": { + "wisp-js-server": "src/bin/server_cli.mjs" + } + }, "node_modules/@nebula-services/bare-server-node": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@nebula-services/bare-server-node/-/bare-server-node-2.0.4.tgz", @@ -202,10 +387,20 @@ "node": ">=18.0.0" } }, + "node_modules/@nebula-services/bare-server-node/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, "node_modules/@nebula-services/bare-server-node/node_modules/dotenv": { "version": "16.6.1", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -213,6 +408,20 @@ "url": "https://dotenvx.com" } }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/validator": { + "version": "13.15.10", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.10.tgz", + "integrity": "sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==", + "dev": true, + "license": "MIT" + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -226,12 +435,120 @@ "node": ">= 0.6" } }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/array-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "license": "MIT" }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, "node_modules/async-exit-hook": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", @@ -241,6 +558,40 @@ "node": ">=0.12.0" } }, + "node_modules/atomically": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-2.1.1.tgz", + "integrity": "sha512-P4w9o2dqARji6P7MHprklbfiArZAWvo07yW7qs3pdljb3BWr12FIB7W+p0zJiuiVsUpRO0iZn1kFFcpPegg0tQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "stubborn-fs": "^2.0.0", + "when-exit": "^2.1.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, "node_modules/basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", @@ -260,35 +611,75 @@ "license": "MIT" }, "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "version": "1.20.8", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.8.tgz", + "integrity": "sha512-JNcyFQ64OiijEkPzUBTCe+hyPXUD/3LEldGQ6iF5LR1w00mx9o7xtDWHXBY2iItjdCFGoilOLNQbH943ut7pHA==", "license": "MIT", "dependencies": { - "bytes": "3.1.2", + "bytes": "~3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.16.0", + "raw-body": "~2.5.3", "type-is": "~1.6.18", - "unpipe": "1.0.0" + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.0.tgz", + "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==", + "license": "BSD-3-Clause", + "dependencies": { + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "license": "MIT" }, + "node_modules/bufferutil": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.1.0.tgz", + "integrity": "sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -299,16 +690,45 @@ } }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -318,9 +738,9 @@ } }, "node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -329,68 +749,185 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "node_modules/chance": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.13.tgz", + "integrity": "sha512-V6lQCljcLznE7tUYUM9EOAnnKXbctE6j/rdQkYOHIWbfGQbrzTsAXNW9CdU5XCo4ArXQCj/rb6HgxPlmGJcaUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, "license": "MIT", "engines": { - "node": ">=14" + "node": ">=10" } }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">= 0.6" + "node": "*" } }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "node_modules/class-validator": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.3.tgz", + "integrity": "sha512-rXXekcjofVN1LTOSw+u4u9WXVEUvNBVjORW154q/IdmYWy1nMbOU9aNtZB0t8m+FJQ9q91jlr2f9CwwUFdFMRA==", + "dev": true, "license": "MIT", - "engines": { - "node": ">= 0.6" + "dependencies": { + "@types/validator": "^13.15.3", + "libphonenumber-js": "^1.11.1", + "validator": "^13.15.20" } }, - "node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "node_modules/clone-regexp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-3.0.0.tgz", + "integrity": "sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==", "license": "MIT", + "dependencies": { + "is-regexp": "^3.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cookie-parser": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz", - "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "license": "MIT", "dependencies": { - "cookie": "0.7.2", - "cookie-signature": "1.0.6" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 0.8.0" + "node": ">=7.0.0" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, "license": "MIT" }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/conf": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/conf/-/conf-15.0.2.tgz", + "integrity": "sha512-JBSrutapCafTrddF9dH3lc7+T2tBycGF4uPkI4Js+g4vLLEhG6RZcFi3aJd5zntdf5tQxAejJt8dihkoQ/eSJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", + "atomically": "^2.0.3", + "debounce-fn": "^6.0.0", + "dot-prop": "^10.0.0", + "env-paths": "^3.0.0", + "json-schema-typed": "^8.0.1", + "semver": "^7.7.2", + "uint8array-extras": "^1.5.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-hrtime": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-parser": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz", + "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==", + "license": "MIT", + "dependencies": { + "cookie": "0.7.2", + "cookie-signature": "1.0.6" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", "license": "MIT", "dependencies": { "object-assign": "^4", @@ -398,6 +935,20 @@ }, "engines": { "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": "*" } }, "node_modules/data-uri-to-buffer": { @@ -409,6 +960,22 @@ "node": ">= 12" } }, + "node_modules/debounce-fn": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-6.0.0.tgz", + "integrity": "sha512-rBMW+F2TXryBwB54Q0d8drNEI+TfoS9JpNTAoVpukbWEhjXQq4rySFYLaqXMFXwdv61Zb2OHtj5bviSoimqxRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -418,10 +985,18 @@ "ms": "2.0.0" } }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -435,6 +1010,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -454,10 +1047,82 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-prop": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-10.2.0.tgz", + "integrity": "sha512-BTJ9aZYL3vCfZlZOBLy9v8TUqWGQ0pzFnygKwFZt5udj6viBoFIBviKPUoZLDCPn1FoXffv6McQFDenrm5Krfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^5.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/dotenv": { - "version": "17.2.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", - "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", + "license": "BSD-2-Clause", "engines": { "node": ">=12" }, @@ -465,6 +1130,20 @@ "url": "https://dotenvx.com" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -480,14 +1159,36 @@ "node": ">= 0.8" } }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "dev": true, "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -501,12 +1202,101 @@ "node": ">= 0.4" } }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "license": "MIT" }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -517,39 +1307,39 @@ } }, "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz", + "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==", "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", + "body-parser": "~1.20.5", + "content-disposition": "~0.5.4", "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", "merge-descriptors": "1.0.3", "methods": "~1.1.2", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", + "path-to-regexp": "~0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.13.0", + "qs": "~6.15.1", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", + "send": "~0.19.0", + "serve-static": "~1.16.2", "setprototypeof": "1.2.0", - "statuses": "2.0.1", + "statuses": "~2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -571,15 +1361,52 @@ "basic-auth": "^2.0.1" } }, - "node_modules/express/node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "node_modules/express-rate-limit": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.1.tgz", + "integrity": "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" } }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.7.tgz", + "integrity": "sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fetch-blob": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", @@ -590,88 +1417,363 @@ "url": "https://github.com/sponsors/jimmywarting" }, { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function-timeout": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-0.1.1.tgz", + "integrity": "sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/htmlparser2": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" } ], "license": "MIT", "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.1", + "entities": "^6.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", "engines": { - "node": "^12.20 || >= 14.13" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "license": "MIT", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "license": "MIT", "dependencies": { - "fetch-blob": "^3.1.2" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">=12.20.0" + "node": ">=0.10.0" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "node_modules/idb": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/idb/-/idb-8.0.3.tgz", + "integrity": "sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg==", + "license": "ISC" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/inversify": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/inversify/-/inversify-6.1.4.tgz", + "integrity": "sha512-PbxrZH/gTa1fpPEEGAjJQzK8tKMIp5gRg6EFNJlCtzUcycuNdmhv3uk5P8Itm/RIjgHJO16oQRLo9IHzQN51bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inversifyjs/common": "1.3.3", + "@inversifyjs/core": "1.3.4" + } + }, + "node_modules/ip-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", + "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "node_modules/ipaddr.js": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.5.0.tgz", + "integrity": "sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w==", "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 10" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, "engines": { "node": ">= 0.4" }, @@ -679,35 +1781,52 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, "license": "MIT", "dependencies": { - "get-intrinsic": "^1.1.3" + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/is-ip": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.1.tgz", + "integrity": "sha512-FCsGHdlrOnZQcp0+XT5a+pYowf33itBalCl+7ovNXC/7o5BhIpG14M3OrpPPdBSIQJCm+0M5+9mO7S9VVTTCFw==", "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0" + "ip-regex": "^5.0.0", + "super-regex": "^0.2.0" + }, + "engines": { + "node": ">=14.16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, "engines": { "node": ">= 0.4" }, @@ -715,11 +1834,18 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, "engines": { "node": ">= 0.4" }, @@ -727,59 +1853,169 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/is-regexp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", + "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.2" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "node_modules/javascript-obfuscator": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/javascript-obfuscator/-/javascript-obfuscator-4.2.2.tgz", + "integrity": "sha512-+7oXAUnFCA6vS0omIGHcWpSr67dUBIF7FKGYSXyzxShSLqM6LBgdugWKFl0XrYtGWyJMGfQR5F4LL85iCefkRA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@javascript-obfuscator/escodegen": "2.3.1", + "@javascript-obfuscator/estraverse": "5.4.0", + "acorn": "8.15.0", + "assert": "2.1.0", + "chalk": "4.1.2", + "chance": "1.1.13", + "class-validator": "0.14.3", + "commander": "12.1.0", + "conf": "15.0.2", + "eslint-scope": "8.4.0", + "eslint-visitor-keys": "4.2.1", + "fast-deep-equal": "3.1.3", + "inversify": "6.1.4", + "js-string-escape": "1.0.1", + "md5": "2.3.0", + "mkdirp": "3.0.1", + "multimatch": "5.0.0", + "process": "0.11.10", + "reflect-metadata": "0.2.2", + "source-map-support": "0.5.21", + "string-template": "1.0.0", + "stringz": "2.1.0", + "tslib": "2.8.1" + }, + "bin": { + "javascript-obfuscator": "bin/javascript-obfuscator" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/javascript-obfuscator/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/javascript-obfuscator/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-typed": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", + "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" + "node_modules/libcurl.js": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/libcurl.js/-/libcurl.js-0.7.4.tgz", + "integrity": "sha512-UpvVirvATP7fD0t4rnsxVRuUpPVIo2QvWj4+5JrMsd1KSEvYkON36+COOPAl88hPlGJddk+DfZRvyF7KG7YcSA==", + "license": "LGPL-3.0-or-later" }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "node_modules/libphonenumber-js": { + "version": "1.13.12", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.13.12.tgz", + "integrity": "sha512-uLVeV1c9OTk6qkdqnj+mpMD+ZdnZ0szVyWu58HwMmpwkHA1gCEkyjd3veZQXDnuw9KEwSRjcc9B1pS9XKIN1fA==", + "dev": true, + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 0.4" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" } }, "node_modules/media-typer": { @@ -816,6 +2052,7 @@ "funding": [ "https://github.com/sponsors/broofa" ], + "license": "MIT", "bin": { "mime": "bin/cli.js" }, @@ -844,12 +2081,74 @@ "node": ">= 0.6" } }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, + "node_modules/multimatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", + "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -863,6 +2162,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", "funding": [ { "type": "github", @@ -884,32 +2184,91 @@ "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "license": "MIT", "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, "engines": { "node": ">= 0.4" }, @@ -929,6 +2288,36 @@ "node": ">= 0.8" } }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/parse-domain": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/parse-domain/-/parse-domain-8.4.0.tgz", + "integrity": "sha512-dQK2vh9TfEYtfuA8haMyk1mkYRya1MP1r2bs79bnDb3w4uOgPgXdwUUmTOpSiDsQL71BlZRS7+rIWdBJfp2QwQ==", + "license": "MIT", + "dependencies": { + "is-ip": "^5.0.1" + }, + "bin": { + "parse-domain-update": "dist/bin/update.js" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -939,11 +2328,40 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", "license": "MIT" }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -967,12 +2385,13 @@ } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.15.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", + "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" }, "engines": { "node": ">=0.6" @@ -991,20 +2410,37 @@ } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -1025,45 +2461,67 @@ ], "license": "MIT" }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "range-parser": "~1.2.1", - "statuses": "2.0.1" + "statuses": "~2.0.2" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/send/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -1083,24 +2541,31 @@ "license": "MIT" }, "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", "license": "MIT", "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.19.0" + "send": "~0.19.1" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", @@ -1121,15 +2586,69 @@ "license": "ISC" }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "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" }, "engines": { "node": ">= 0.4" @@ -1158,14 +2677,132 @@ } }, "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/string-template": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz", + "integrity": "sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg==", + "dev": true, + "license": "MIT" + }, + "node_modules/stringz": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/stringz/-/stringz-2.1.0.tgz", + "integrity": "sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2" + } + }, + "node_modules/stubborn-fs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stubborn-fs/-/stubborn-fs-2.0.0.tgz", + "integrity": "sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "stubborn-utils": "^1.0.1" + } + }, + "node_modules/stubborn-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stubborn-utils/-/stubborn-utils-1.0.2.tgz", + "integrity": "sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==", + "dev": true, + "license": "MIT" + }, + "node_modules/super-regex": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-0.2.0.tgz", + "integrity": "sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==", + "license": "MIT", + "dependencies": { + "clone-regexp": "^3.0.0", + "function-timeout": "^0.1.0", + "time-span": "^5.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tagged-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz", + "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.51.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.51.2.tgz", + "integrity": "sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/time-span": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "license": "MIT", + "dependencies": { + "convert-hrtime": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -1175,6 +2812,42 @@ "node": ">=0.6" } }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.9.0.tgz", + "integrity": "sha512-yANm3Jr3GiJ1qgJlxGAVxTOIcEOk1rhQHamlXtnrCK7EHP4HeM9OGxtMg/W7HFdrVzw/ZWJKGVIJusVH85sLtw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "dependencies": { + "tagged-tag": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -1188,6 +2861,19 @@ "node": ">= 0.6" } }, + "node_modules/uint8array-extras": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.5.0.tgz", + "integrity": "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -1197,6 +2883,20 @@ "node": ">= 0.8" } }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -1206,6 +2906,16 @@ "node": ">= 0.4.0" } }, + "node_modules/validator": { + "version": "13.15.35", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.35.tgz", + "integrity": "sha512-TQ5pAGhd5whStmqWvYF4OjQROlmv9SMFVt37qoCBdqRffuuklWYQlCNnEs2ZaIBD1kZRNnikiZOS1eqgkar0iw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -1224,10 +2934,49 @@ "node": ">= 8" } }, + "node_modules/when-exit": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/when-exit/-/when-exit-2.1.5.tgz", + "integrity": "sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==", + "dev": true, + "license": "MIT" + }, + "node_modules/which-typed-array": { + "version": "1.1.22", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz", + "integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "8.21.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz", + "integrity": "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==", "license": "MIT", "engines": { "node": ">=10.0.0" diff --git a/package.json b/package.json index 2e88201d72..c152174b96 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,14 @@ { "name": "interstellar", - "version": "5.2.5", + "version": "6.0.0", "type": "module", "engines": { "npm": ">=7.0.0", "node": ">=16.0.0" }, "scripts": { - "start": "node index.js", + "start": "node src/server.js", + "build": "node src/build.js", "format": "pnpm biome format --write .", "precommit": "pnpm run format && pnpm biome check --write .", "lint": "biome lint --write ." @@ -15,22 +16,36 @@ "author": "InterstellarNetwork", "license": "GPL-3.0-or-later", "dependencies": { - "@mercuryworkshop/bare-mux": "^2.1.8", + "@mercuryworkshop/bare-mux": "^2.1.9", "@mercuryworkshop/epoxy-transport": "2.1.28", - "@mercuryworkshop/scramjet": "^1.0.2", + "@mercuryworkshop/libcurl-transport": "^1.5.2", + "@mercuryworkshop/scramjet": "^1.1.0", "@mercuryworkshop/wisp-js": "^0.4.1", - "@nebula-services/bare-server-node": "^2.0.4", + "@titaniumnetwork-dev/ultraviolet": "^3.2.10", "chalk": "^5.4.1", "cookie-parser": "^1.4.7", "cors": "^2.8.5", "dotenv": "^17.2.0", "express": "^4.21.2", "express-basic-auth": "^1.2.1", + "express-rate-limit": "^7.5.0", "mime": "^4.1.0", "node-fetch": "^3.3.2" }, "devDependencies": { - "@biomejs/biome": "2.2.2" + "@biomejs/biome": "2.2.2", + "javascript-obfuscator": "^4.1.1", + "terser": "^5.36.0" }, - "packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319" + "packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319", + "pnpm": { + "overrides": { + "qs@>=6.7.0 <=6.14.1": ">=6.14.2", + "qs@<6.14.1": ">=6.14.1", + "uuid@<14.0.0": ">=14.0.0" + }, + "patchedDependencies": { + "@mercuryworkshop/bare-mux@2.1.9": "patches/@mercuryworkshop__bare-mux@2.1.9.patch" + } + } } diff --git a/patches/@mercuryworkshop__bare-mux@2.1.9.patch b/patches/@mercuryworkshop__bare-mux@2.1.9.patch new file mode 100644 index 0000000000..b3ff4bc1c2 --- /dev/null +++ b/patches/@mercuryworkshop__bare-mux@2.1.9.patch @@ -0,0 +1,9 @@ +diff --git a/dist/index.mjs b/dist/index.mjs +index 77f78f0aa2c7145866e2bfd1a2801d930ac8fb27..fc7ead135daf0b3229446e544f9304a9d141851a 100644 +--- a/dist/index.mjs ++++ b/dist/index.mjs +@@ -1,2 +1,3 @@ +-const e=20,t=globalThis.fetch,r=globalThis.SharedWorker,a=globalThis.localStorage,s=globalThis.navigator.serviceWorker,o=MessagePort.prototype.postMessage,n={prototype:{send:WebSocket.prototype.send},CLOSED:WebSocket.CLOSED,CLOSING:WebSocket.CLOSING,CONNECTING:WebSocket.CONNECTING,OPEN:WebSocket.OPEN};async function c(){const e=(await self.clients.matchAll({type:"window",includeUncontrolled:!0})).map((async e=>{const t=await function(e){let t=new MessageChannel;return new Promise((r=>{e.postMessage({type:"getPort",port:t.port2},[t.port2]),t.port1.onmessage=e=>{r(e.data)}}))}(e);return await i(t),t})),t=Promise.race([Promise.any(e),new Promise(((e,t)=>setTimeout(t,1e3,new TypeError("timeout"))))]);try{return await t}catch(e){if(e instanceof AggregateError)throw console.error("bare-mux: failed to get a bare-mux SharedWorker MessagePort as all clients returned an invalid MessagePort."),new Error("All clients returned an invalid MessagePort.",{cause:e});return console.warn("bare-mux: failed to get a bare-mux SharedWorker MessagePort within 1s, retrying"),await c()}}function i(e){const t=new MessageChannel,r=new Promise(((e,r)=>{t.port1.onmessage=t=>{"pong"===t.data.type&&e()},setTimeout(r,1500)}));return o.call(e,{message:{type:"ping"},port:t.port2},[t.port2]),r}function l(e,t){const a=new r(e,"bare-mux-worker");return t&&s.addEventListener("message",(t=>{if("getPort"===t.data.type&&t.data.port){console.debug("bare-mux: recieved request for port from sw");const a=new r(e,"bare-mux-worker");o.call(t.data.port,a.port,[a.port])}})),a.port}let h=null;function d(){if(null===h){const e=new MessageChannel,t=new ReadableStream;let r;try{o.call(e.port1,t,[t]),r=!0}catch(e){r=!1}return h=r,r}return h}class p{channel;port;workerPath;constructor(e){this.channel=new BroadcastChannel("bare-mux"),e instanceof MessagePort||e instanceof Promise?this.port=e:this.createChannel(e,!0)}createChannel(e,t){if(self.clients)this.port=c(),this.channel.onmessage=e=>{"refreshPort"===e.data.type&&(this.port=c())};else if(e&&SharedWorker){if(!e.startsWith("/")&&!e.includes(":"))throw new Error("Invalid URL. Must be absolute or start at the root.");this.port=l(e,t),console.debug("bare-mux: setting localStorage bare-mux-path to",e),a["bare-mux-path"]=e}else{if(!SharedWorker)throw new Error("Unable to get a channel to the SharedWorker.");{const e=a["bare-mux-path"];if(console.debug("bare-mux: got localStorage bare-mux-path:",e),!e)throw new Error("Unable to get bare-mux workerPath from localStorage.");this.port=l(e,t)}}}async sendMessage(e,t){this.port instanceof Promise&&(this.port=await this.port);try{await i(this.port)}catch{return console.warn("bare-mux: Failed to get a ping response from the worker within 1.5s. Assuming port is dead."),this.createChannel(),await this.sendMessage(e,t)}const r=new MessageChannel,a=[r.port2,...t||[]],s=new Promise(((e,t)=>{r.port1.onmessage=r=>{const a=r.data;"error"===a.type?t(a.error):e(a)}}));return o.call(this.port,{message:e,port:r.port2},a),await s}}class w extends EventTarget{protocols;url;readyState=n.CONNECTING;channel;constructor(e,t=[],r,a){super(),this.protocols=t,this.url=e.toString(),this.protocols=t;const s=e=>{this.protocols=e,this.readyState=n.OPEN;const t=new Event("open");this.dispatchEvent(t)},o=async e=>{const t=new MessageEvent("message",{data:e});this.dispatchEvent(t)},c=(e,t)=>{this.readyState=n.CLOSED;const r=new CloseEvent("close",{code:e,reason:t});this.dispatchEvent(r)},i=()=>{this.readyState=n.CLOSED;const e=new Event("error");this.dispatchEvent(e)};this.channel=new MessageChannel,this.channel.port1.onmessage=e=>{"open"===e.data.type?s(e.data.args[0]):"message"===e.data.type?o(e.data.args[0]):"close"===e.data.type?c(e.data.args[0],e.data.args[1]):"error"===e.data.type&&i()},r.sendMessage({type:"websocket",websocket:{url:e.toString(),protocols:t,requestHeaders:a,channel:this.channel.port2}},[this.channel.port2])}send(...e){if(this.readyState===n.CONNECTING)throw new DOMException("Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.");let t=e[0];t.buffer&&(t=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)),o.call(this.channel.port1,{type:"data",data:t},t instanceof ArrayBuffer?[t]:[])}close(e,t){o.call(this.channel.port1,{type:"close",closeCode:e,closeReason:t})}}function u(e,t,r){console.error(`error while processing '${r}': `,t),e.postMessage({type:"error",error:t})}function f(e){for(let t=0;t{const r=t.data.port,a=t.data.message;if("fetch"===a.type)try{e.ready||await e.init(),await async function(e,t,r){const a=await r.request(new URL(e.fetch.remote),e.fetch.method,e.fetch.body,e.fetch.headers,null);if(!d()&&a.body instanceof ReadableStream){const e=new Response(a.body);a.body=await e.arrayBuffer()}a.body instanceof ReadableStream||a.body instanceof ArrayBuffer?o.call(t,{type:"fetch",fetch:a},[a.body]):o.call(t,{type:"fetch",fetch:a})}(a,r,e)}catch(e){u(r,e,"fetch")}else if("websocket"===a.type)try{e.ready||await e.init(),await async function(e,t,r){const[a,s]=r.connect(new URL(e.websocket.url),e.websocket.protocols,e.websocket.requestHeaders,(t=>{o.call(e.websocket.channel,{type:"open",args:[t]})}),(t=>{t instanceof ArrayBuffer?o.call(e.websocket.channel,{type:"message",args:[t]},[t]):o.call(e.websocket.channel,{type:"message",args:[t]})}),((t,r)=>{o.call(e.websocket.channel,{type:"close",args:[t,r]})}),(t=>{o.call(e.websocket.channel,{type:"error",args:[t]})}));e.websocket.channel.onmessage=e=>{"data"===e.data.type?a(e.data.data):"close"===e.data.type&&s(e.data.closeCode,e.data.closeReason)},o.call(t,{type:"websocket"})}(a,r,e)}catch(e){u(r,e,"websocket")}},await this.worker.sendMessage({type:"set",client:{function:"bare-mux-remote",args:[r.port2,t]}},[r.port2])}getInnerPort(){return this.worker.port}}class k{worker;constructor(e){this.worker=new p(e)}createWebSocket(e,t=[],r,a){try{e=new URL(e)}catch(t){throw new DOMException(`Faiiled to construct 'WebSocket': The URL '${e}' is invalid.`)}if(!g.includes(e.protocol))throw new DOMException(`Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. '${e.protocol}' is not allowed.`);Array.isArray(t)||(t=[t]),t=t.map(String);for(const e of t)if(!f(e))throw new DOMException(`Failed to construct 'WebSocket': The subprotocol '${e}' is invalid.`);a=a||{};return new w(e,t,this.worker,a)}async fetch(e,r){const a=new Request(e,r),s=r?.headers||a.headers,o=s instanceof Headers?Object.fromEntries(s):s,n=a.body;let c=new URL(a.url);if(c.protocol.startsWith("blob:")){const e=await t(c),r=new Response(e.body,e);return r.rawHeaders=Object.fromEntries(e.headers),r.rawResponse={body:e.body,headers:Object.fromEntries(e.headers),status:e.status,statusText:e.statusText},r.finalURL=c.toString(),r}for(let e=0;;e++){let t=(await this.worker.sendMessage({type:"fetch",fetch:{remote:c.toString(),method:a.method,headers:o,body:n||void 0}},n?[n]:[])).fetch,s=new Response(y.includes(t.status)?void 0:t.body,{headers:new Headers(t.headers),status:t.status,statusText:t.statusText});s.rawHeaders=t.headers,s.rawResponse=t,s.finalURL=c.toString();const i=r?.redirect||a.redirect;if(!b.includes(s.status))return s;switch(i){case"follow":{const t=s.headers.get("location");if(20>e&&null!==t){c=new URL(t,c);continue}throw new TypeError("Failed to fetch")}case"error":throw new TypeError("Failed to fetch");case"manual":return s}}}}console.debug("bare-mux: running v2.1.9 (build dc9dc6e)");export{k as BareClient,m as BareMuxConnection,w as BareWebSocket,n as WebSocketFields,p as WorkerConnection,d as browserSupportsTransferringStreams,k as default,e as maxRedirects,f as validProtocol}; ++function __bmRecoverName(){try{return "bare-mux-worker-"+crypto.randomUUID()}catch(_){return "bare-mux-worker-"+Date.now()+"-"+Math.random().toString(36).slice(2)}} ++const e=20,t=globalThis.fetch,r=globalThis.SharedWorker,a=globalThis.localStorage,s=globalThis.navigator.serviceWorker,o=MessagePort.prototype.postMessage,n={prototype:{send:WebSocket.prototype.send},CLOSED:WebSocket.CLOSED,CLOSING:WebSocket.CLOSING,CONNECTING:WebSocket.CONNECTING,OPEN:WebSocket.OPEN};async function c(){const e=(await self.clients.matchAll({type:"window",includeUncontrolled:!0})).map((async e=>{const t=await function(e){let t=new MessageChannel;return new Promise((r=>{e.postMessage({type:"getPort",port:t.port2},[t.port2]),t.port1.onmessage=e=>{r(e.data)}}))}(e);return await i(t),t})),t=Promise.race([Promise.any(e),new Promise(((e,t)=>setTimeout(t,1e3,new TypeError("timeout"))))]);try{return await t}catch(e){if(e instanceof AggregateError)throw console.error("bare-mux: failed to get a bare-mux SharedWorker MessagePort as all clients returned an invalid MessagePort."),new Error("All clients returned an invalid MessagePort.",{cause:e});return console.warn("bare-mux: failed to get a bare-mux SharedWorker MessagePort within 1s, retrying"),await c()}}function i(e){const t=new MessageChannel,r=new Promise(((e,r)=>{t.port1.onmessage=t=>{"pong"===t.data.type&&e()},setTimeout(r,1500)}));return o.call(e,{message:{type:"ping"},port:t.port2},[t.port2]),r}function l(e,t,n){const w=n||"bare-mux-worker";const a=new r(e,w);return t&&s.addEventListener("message",(t=>{if("getPort"===t.data.type&&t.data.port){console.debug("bare-mux: recieved request for port from sw");const a=new r(e,w);o.call(t.data.port,a.port,[a.port])}})),a.port}let h=null;function d(){if(null===h){const e=new MessageChannel,t=new ReadableStream;let r;try{o.call(e.port1,t,[t]),r=!0}catch(e){r=!1}return h=r,r}return h}class p{channel;port;workerPath;constructor(e){this.channel=new BroadcastChannel("bare-mux"),e instanceof MessagePort||e instanceof Promise?this.port=e:this.createChannel(e,!0)}createChannel(e,t,n){if(self.clients)this.port=c(),this.channel.onmessage=e=>{"refreshPort"===e.data.type&&(this.port=c())};else if(e&&SharedWorker){if(!e.startsWith("/")&&!e.includes(":"))throw new Error("Invalid URL. Must be absolute or start at the root.");this.workerPath=e,this.port=l(e,t,n),console.debug("bare-mux: setting localStorage bare-mux-path to",e),a["bare-mux-path"]=e}else{if(!SharedWorker)throw new Error("Unable to get a channel to the SharedWorker.");{const e=a["bare-mux-path"];if(console.debug("bare-mux: got localStorage bare-mux-path:",e),!e)throw new Error("Unable to get bare-mux workerPath from localStorage.");this.workerPath=e,this.port=l(e,t,n)}}}async sendMessage(e,t){this.port instanceof Promise&&(this.port=await this.port);try{await i(this.port)}catch{return console.warn("bare-mux: Failed to get a ping response from the worker within 1.5s. Assuming port is dead."),this.createChannel(this.workerPath,!0,__bmRecoverName()),await this.sendMessage(e,t)}const r=new MessageChannel,a=[r.port2,...t||[]],s=new Promise(((e,t)=>{r.port1.onmessage=r=>{const a=r.data;"error"===a.type?t(a.error):e(a)}}));return o.call(this.port,{message:e,port:r.port2},a),await s}}class w extends EventTarget{protocols;url;readyState=n.CONNECTING;channel;constructor(e,t=[],r,a){super(),this.protocols=t,this.url=e.toString(),this.protocols=t;const s=e=>{this.protocols=e,this.readyState=n.OPEN;const t=new Event("open");this.dispatchEvent(t)},o=async e=>{const t=new MessageEvent("message",{data:e});this.dispatchEvent(t)},c=(e,t)=>{this.readyState=n.CLOSED;const r=new CloseEvent("close",{code:e,reason:t});this.dispatchEvent(r)},i=()=>{this.readyState=n.CLOSED;const e=new Event("error");this.dispatchEvent(e)};this.channel=new MessageChannel,this.channel.port1.onmessage=e=>{"open"===e.data.type?s(e.data.args[0]):"message"===e.data.type?o(e.data.args[0]):"close"===e.data.type?c(e.data.args[0],e.data.args[1]):"error"===e.data.type&&i()},r.sendMessage({type:"websocket",websocket:{url:e.toString(),protocols:t,requestHeaders:a,channel:this.channel.port2}},[this.channel.port2])}send(...e){if(this.readyState===n.CONNECTING)throw new DOMException("Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.");let t=e[0];t.buffer&&(t=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)),o.call(this.channel.port1,{type:"data",data:t},t instanceof ArrayBuffer?[t]:[])}close(e,t){o.call(this.channel.port1,{type:"close",closeCode:e,closeReason:t})}}function u(e,t,r){console.error(`error while processing '${r}': `,t),e.postMessage({type:"error",error:t})}function f(e){for(let t=0;t{const r=t.data.port,a=t.data.message;if("fetch"===a.type)try{e.ready||await e.init(),await async function(e,t,r){const a=await r.request(new URL(e.fetch.remote),e.fetch.method,e.fetch.body,e.fetch.headers,null);if(!d()&&a.body instanceof ReadableStream){const e=new Response(a.body);a.body=await e.arrayBuffer()}a.body instanceof ReadableStream||a.body instanceof ArrayBuffer?o.call(t,{type:"fetch",fetch:a},[a.body]):o.call(t,{type:"fetch",fetch:a})}(a,r,e)}catch(e){u(r,e,"fetch")}else if("websocket"===a.type)try{e.ready||await e.init(),await async function(e,t,r){const[a,s]=r.connect(new URL(e.websocket.url),e.websocket.protocols,e.websocket.requestHeaders,(t=>{o.call(e.websocket.channel,{type:"open",args:[t]})}),(t=>{t instanceof ArrayBuffer?o.call(e.websocket.channel,{type:"message",args:[t]},[t]):o.call(e.websocket.channel,{type:"message",args:[t]})}),((t,r)=>{o.call(e.websocket.channel,{type:"close",args:[t,r]})}),(t=>{o.call(e.websocket.channel,{type:"error",args:[t]})}));e.websocket.channel.onmessage=e=>{"data"===e.data.type?a(e.data.data):"close"===e.data.type&&s(e.data.closeCode,e.data.closeReason)},o.call(t,{type:"websocket"})}(a,r,e)}catch(e){u(r,e,"websocket")}},await this.worker.sendMessage({type:"set",client:{function:"bare-mux-remote",args:[r.port2,t]}},[r.port2])}getInnerPort(){return this.worker.port}}class k{worker;constructor(e){this.worker=new p(e)}createWebSocket(e,t=[],r,a){try{e=new URL(e)}catch(t){throw new DOMException(`Faiiled to construct 'WebSocket': The URL '${e}' is invalid.`)}if(!g.includes(e.protocol))throw new DOMException(`Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. '${e.protocol}' is not allowed.`);Array.isArray(t)||(t=[t]),t=t.map(String);for(const e of t)if(!f(e))throw new DOMException(`Failed to construct 'WebSocket': The subprotocol '${e}' is invalid.`);a=a||{};return new w(e,t,this.worker,a)}async fetch(e,r){const a=new Request(e,r),s=r?.headers||a.headers,o=s instanceof Headers?Object.fromEntries(s):s,n=a.body;let c=new URL(a.url);if(c.protocol.startsWith("blob:")){const e=await t(c),r=new Response(e.body,e);return r.rawHeaders=Object.fromEntries(e.headers),r.rawResponse={body:e.body,headers:Object.fromEntries(e.headers),status:e.status,statusText:e.statusText},r.finalURL=c.toString(),r}for(let e=0;;e++){let t=(await this.worker.sendMessage({type:"fetch",fetch:{remote:c.toString(),method:a.method,headers:o,body:n||void 0}},n?[n]:[])).fetch,s=new Response(y.includes(t.status)?void 0:t.body,{headers:new Headers(t.headers),status:t.status,statusText:t.statusText});s.rawHeaders=t.headers,s.rawResponse=t,s.finalURL=c.toString();const i=r?.redirect||a.redirect;if(!b.includes(s.status))return s;switch(i){case"follow":{const t=s.headers.get("location");if(20>e&&null!==t){c=new URL(t,c);continue}throw new TypeError("Failed to fetch")}case"error":throw new TypeError("Failed to fetch");case"manual":return s}}}}console.debug("bare-mux: running v2.1.9 (build dc9dc6e)");export{k as BareClient,m as BareMuxConnection,w as BareWebSocket,n as WebSocketFields,p as WorkerConnection,d as browserSupportsTransferringStreams,k as default,e as maxRedirects,f as validProtocol}; + //# sourceMappingURL=index.mjs.map diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6c0028b958..c83ec75243 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,25 +4,38 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + qs@>=6.7.0 <=6.14.1: '>=6.14.2' + qs@<6.14.1: '>=6.14.1' + uuid@<14.0.0: '>=14.0.0' + +patchedDependencies: + '@mercuryworkshop/bare-mux@2.1.9': + hash: p2h2pod4rmljbocdwd5lo4pw64 + path: patches/@mercuryworkshop__bare-mux@2.1.9.patch + importers: .: dependencies: '@mercuryworkshop/bare-mux': - specifier: ^2.1.8 - version: 2.1.8 + specifier: ^2.1.9 + version: 2.1.9(patch_hash=p2h2pod4rmljbocdwd5lo4pw64) '@mercuryworkshop/epoxy-transport': specifier: 2.1.28 version: 2.1.28 + '@mercuryworkshop/libcurl-transport': + specifier: ^1.5.2 + version: 1.5.2 '@mercuryworkshop/scramjet': - specifier: ^1.0.2 - version: 1.0.2(esbuild@0.28.0) + specifier: ^1.1.0 + version: 1.1.0 '@mercuryworkshop/wisp-js': specifier: ^0.4.1 version: 0.4.1 - '@nebula-services/bare-server-node': - specifier: ^2.0.4 - version: 2.0.4(bufferutil@4.1.0) + '@titaniumnetwork-dev/ultraviolet': + specifier: ^3.2.10 + version: 3.2.10 chalk: specifier: ^5.4.1 version: 5.4.1 @@ -41,6 +54,9 @@ importers: express-basic-auth: specifier: ^1.2.1 version: 1.2.1 + express-rate-limit: + specifier: ^7.5.0 + version: 7.5.1(express@4.21.2) mime: specifier: ^4.1.0 version: 4.1.0 @@ -51,6 +67,12 @@ importers: '@biomejs/biome': specifier: 2.2.2 version: 2.2.2 + javascript-obfuscator: + specifier: ^4.1.1 + version: 4.2.2 + terser: + specifier: ^5.36.0 + version: 5.46.2 packages: @@ -76,28 +98,24 @@ packages: engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - libc: [musl] '@biomejs/cli-linux-arm64@2.2.2': resolution: {integrity: sha512-JfrK3gdmWWTh2J5tq/rcWCOsImVyzUnOS2fkjhiYKCQ+v8PqM+du5cfB7G1kXas+7KQeKSWALv18iQqdtIMvzw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - libc: [glibc] '@biomejs/cli-linux-x64-musl@2.2.2': resolution: {integrity: sha512-ZCLXcZvjZKSiRY/cFANKg+z6Fhsf9MHOzj+NrDQcM+LbqYRT97LyCLWy2AS+W2vP+i89RyRM+kbGpUzbRTYWig==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - libc: [musl] '@biomejs/cli-linux-x64@2.2.2': resolution: {integrity: sha512-Ogb+77edO5LEP/xbNicACOWVLt8mgC+E1wmpUakr+O4nKwLt9vXe74YNuT3T1dUBxC/SnrVmlzZFC7kQJEfquQ==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - libc: [glibc] '@biomejs/cli-win32-arm64@2.2.2': resolution: {integrity: sha512-wBe2wItayw1zvtXysmHJQoQqXlTzHSpQRyPpJKiNIR21HzH/CrZRDFic1C1jDdp+zAPtqhNExa0owKMbNwW9cQ==} @@ -111,167 +129,43 @@ packages: cpu: [x64] os: [win32] - '@esbuild/aix-ppc64@0.28.0': - resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.28.0': - resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.28.0': - resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.28.0': - resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.28.0': - resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.28.0': - resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.28.0': - resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.28.0': - resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.28.0': - resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.28.0': - resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.28.0': - resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.28.0': - resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.28.0': - resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] + '@inversifyjs/common@1.3.3': + resolution: {integrity: sha512-ZH0wrgaJwIo3s9gMCDM2wZoxqrJ6gB97jWXncROfYdqZJv8f3EkqT57faZqN5OTeHWgtziQ6F6g3L8rCvGceCw==} - '@esbuild/linux-ppc64@0.28.0': - resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] + '@inversifyjs/core@1.3.4': + resolution: {integrity: sha512-gCCmA4BdbHEFwvVZ2elWgHuXZWk6AOu/1frxsS+2fWhjEk2c/IhtypLo5ytSUie1BCiT6i9qnEo4bruBomQsAA==} - '@esbuild/linux-riscv64@0.28.0': - resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] + '@inversifyjs/reflect-metadata-utils@0.2.3': + resolution: {integrity: sha512-d3D0o9TeSlvaGM2I24wcNw/Aj3rc4OYvHXOKDC09YEph5fMMiKd6fq1VTQd9tOkDNWvVbw+cnt45Wy9P/t5Lvw==} + peerDependencies: + reflect-metadata: 0.2.2 - '@esbuild/linux-s390x@0.28.0': - resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] + '@javascript-obfuscator/escodegen@2.3.1': + resolution: {integrity: sha512-Z0HEAVwwafOume+6LFXirAVZeuEMKWuPzpFbQhCEU9++BMz0IwEa9bmedJ+rMn/IlXRBID9j3gQ0XYAa6jM10g==} + engines: {node: '>=6.0'} - '@esbuild/linux-x64@0.28.0': - resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] + '@javascript-obfuscator/estraverse@5.4.0': + resolution: {integrity: sha512-CZFX7UZVN9VopGbjTx4UXaXsi9ewoM1buL0kY7j1ftYdSs7p2spv9opxFjHlQ/QGTgh4UqufYqJJ0WKLml7b6w==} + engines: {node: '>=4.0'} - '@esbuild/netbsd-arm64@0.28.0': - resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - '@esbuild/netbsd-x64@0.28.0': - resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} - '@esbuild/openbsd-arm64@0.28.0': - resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} - '@esbuild/openbsd-x64@0.28.0': - resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@esbuild/openharmony-arm64@0.28.0': - resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@esbuild/sunos-x64@0.28.0': - resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.28.0': - resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.28.0': - resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.28.0': - resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@mercuryworkshop/bare-mux@1.1.4': - resolution: {integrity: sha512-mJPezqEpiKTCs+wu/3TowilnVXQgFs4SqoQnnbCbOc5cV6bDggaolKkyYjDnmOB9t/nptIIXDWDB31oS9vX9kA==} - - '@mercuryworkshop/bare-mux@2.1.8': - resolution: {integrity: sha512-rI3S7Osyr2ZWmG6J6v3MLS1ZT269lx1DrAjM47q0aoBYnfgUZTRvZqY0Globb8ipTi02d5x6dTJBeUBt6dZsag==} + '@mercuryworkshop/bare-mux@2.1.9': + resolution: {integrity: sha512-fiOqWm3VP0Bl8T+0l+qnb7ab9zO+PpKVbtJvOnMsefUv6kWIaoDtqyr9hd/t4gA8oBwgtyZVqIwO2J9nKY9ylw==} '@mercuryworkshop/epoxy-tls@2.1.18-1': resolution: {integrity: sha512-2N1BYn/+FJxIbRw+sipbl3mQPinRflqQDB9HGAXJEVj4Ok4FIlTlS4fO2cpXKEq5yoD3oaKb8GyNaQfndNui9w==} @@ -279,41 +173,85 @@ packages: '@mercuryworkshop/epoxy-transport@2.1.28': resolution: {integrity: sha512-lv/Kfdn37y8ZCXQaIT3Ebj4OSztBqeXdbR9rchbHQBKIw/fNSQJLGNBHV5ScXSzqt7NCwv8ZiZx7urRyk7Ua/Q==} - '@mercuryworkshop/scramjet@1.0.2': - resolution: {integrity: sha512-65k+TXYlMAnqTrcTyVlXyG+CVymOSHMW4a8ofJtX6yHDKmWGHL4LVzls+ukoTqth6JyqOk7OoT3iQdufZMoE7g==} + '@mercuryworkshop/libcurl-transport@1.5.2': + resolution: {integrity: sha512-E0tD/3W6HE99ypc7CStpchU6xs+TP5u2vms/9q/46BShblB2pbRCNeXHBlvXqdz97nh2Xh4A68DryDt5CM29Dg==} + + '@mercuryworkshop/scramjet@1.1.0': + resolution: {integrity: sha512-T/9GZqAQX42eYr/t6VGR2m9J4BtIuncRkANo8hBVTGskrr522yuhaADhSu+65DYlhUyQnLUjDikuNYzlgv0Ejw==} '@mercuryworkshop/wisp-js@0.4.1': resolution: {integrity: sha512-104LwiXiuhti/e32gmv0Da0u0yuLFDHX8JawCzleTPWJ5t5qTX4EYi4E7/ucbjBPN9wwVPWHE5g5yGqzl/NzQA==} hasBin: true - '@nebula-services/bare-server-node@2.0.4': - resolution: {integrity: sha512-Jcr+QtkLJVmppdbBarEbRp1TtCsL4pjFIcX6+KPURRqcsOP7hZfYclhjmCserwEC7jT+WBduXpFd3qwqeRBNew==} - engines: {node: '>=18.0.0'} - hasBin: true + '@titaniumnetwork-dev/ultraviolet@3.2.10': + resolution: {integrity: sha512-Sf0Leb+NMEwFA8EQxCLW/wJW6TNR/EITBPKHadiq4DNOEbgXJdmIW8PKmsNkyOvAIN6o2peE86S6qxQt6ft1Ew==} - '@types/uuid@9.0.8': - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + '@types/minimatch@3.0.5': + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - '@webreflection/idb-map@0.1.3': - resolution: {integrity: sha512-7lTEpXDgpy9xueW4NSNkBHgqedz/dlGgtwTZa4fRMKWJKcnC9cORVlXwV7qNyYYKarT8gpB1+wv5UNBYhjgc8w==} + '@types/validator@13.15.10': + resolution: {integrity: sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==} accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv@8.20.0: + resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + array-differ@3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} + array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - astravel@0.6.1: - resolution: {integrity: sha512-ZIkgWFIV0Yo423Vqalz7VcF+BAiISvSgplnkV2abPGACPFKofsWTcvr9SFyYM/t/vMZWqmdP/Eze6ATX7r84Dg==} + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + arrify@2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + + assert@2.1.0: + resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - async-exit-hook@2.0.1: - resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} - engines: {node: '>=0.12.0'} + atomically@2.1.1: + resolution: {integrity: sha512-P4w9o2dqARji6P7MHprklbfiArZAWvo07yW7qs3pdljb3BWr12FIB7W+p0zJiuiVsUpRO0iZn1kFFcpPegg0tQ==} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} basic-auth@2.0.1: resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} @@ -323,6 +261,9 @@ packages: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + brace-expansion@1.1.14: + resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -334,22 +275,68 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + chalk@5.4.1: resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} + chance@1.1.13: + resolution: {integrity: sha512-V6lQCljcLznE7tUYUM9EOAnnKXbctE6j/rdQkYOHIWbfGQbrzTsAXNW9CdU5XCo4ArXQCj/rb6HgxPlmGJcaUg==} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + + class-validator@0.14.3: + resolution: {integrity: sha512-rXXekcjofVN1LTOSw+u4u9WXVEUvNBVjORW154q/IdmYWy1nMbOU9aNtZB0t8m+FJQ9q91jlr2f9CwwUFdFMRA==} + + clone-regexp@3.0.0: + resolution: {integrity: sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} commander@14.0.3: resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} engines: {node: '>=20'} + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + conf@15.0.2: + resolution: {integrity: sha512-JBSrutapCafTrddF9dH3lc7+T2tBycGF4uPkI4Js+g4vLLEhG6RZcFi3aJd5zntdf5tQxAejJt8dihkoQ/eSJw==} + engines: {node: '>=20'} + content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -358,6 +345,10 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} + convert-hrtime@5.0.0: + resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==} + engines: {node: '>=12'} + cookie-parser@1.4.7: resolution: {integrity: sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==} engines: {node: '>= 0.8.0'} @@ -377,10 +368,17 @@ packages: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} + crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} + debounce-fn@6.0.0: + resolution: {integrity: sha512-rBMW+F2TXryBwB54Q0d8drNEI+TfoS9JpNTAoVpukbWEhjXQq4rySFYLaqXMFXwdv61Zb2OHtj5bviSoimqxRQ==} + engines: {node: '>=18'} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -389,10 +387,17 @@ packages: supports-color: optional: true + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -414,14 +419,18 @@ packages: domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - dotenv@16.6.1: - resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} - engines: {node: '>=12'} + dot-prop@10.1.0: + resolution: {integrity: sha512-MVUtAugQMOff5RnBy2d9N31iG0lNwg1qAoAOn7pOK5wf94WIaE3My2p3uwTQuvS2AcqchkcR3bHByjaM0mmi7Q==} + engines: {node: '>=20'} dotenv@17.2.0: resolution: {integrity: sha512-Q4sgBT60gzd0BB0lSyYD3xM4YxrXA9y4uBDof1JNYGzOXrQdQ6yX+7XIAqoFOGQFOTK1D3Hts5OllpxMDZFONQ==} engines: {node: '>=12'} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -437,39 +446,84 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + env-paths@3.0.0: + resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - esbuild-server@0.3.0: - resolution: {integrity: sha512-8RuzIdM13gs7MyYwxn/c88nDdx086aREBvzWDk4G3cC7nudF8480OTrvAvanVmFZ9anDv9U4cRX/OKbladaRVA==} - engines: {node: '>=14'} - peerDependencies: - esbuild: '>=0.17.0' - - esbuild@0.28.0: - resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} - engines: {node: '>=18'} - hasBin: true + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + express-basic-auth@1.2.1: resolution: {integrity: sha512-L6YQ1wQ/mNjVLAmK3AG1RK6VkokA1BIY6wmiH304Xtt/cLTps40EusZsU1Uop+v9lTDPxdtzbFmdXfFO3KEnwA==} + express-rate-limit@7.5.1: + resolution: {integrity: sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==} + engines: {node: '>= 16'} + peerDependencies: + express: '>= 4.11' + express@4.21.2: resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-uri@3.1.1: + resolution: {integrity: sha512-h2r7rcm6Ee/J8o0LD5djLuFVcfbZxhvho4vvsbeV0aMvXjUgqv4YpxpkEx0d68l6+IleVfLAdVEfhR7QNMkGHQ==} + fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} @@ -478,6 +532,10 @@ packages: resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -493,30 +551,47 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + function-timeout@0.1.1: + resolution: {integrity: sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg==} + engines: {node: '>=14.16'} + + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - htmlparser2@9.1.0: - resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + htmlparser2@10.0.0: + resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==} http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} @@ -526,21 +601,94 @@ packages: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} + idb@8.0.3: + resolution: {integrity: sha512-LtwtVyVYO5BqRvcsKuB2iUMnHwPVByPCXFXOpuU96IZPPoPN6xjOGxZQ74pgSVVLQWtUOYgyeL4GE98BY5D3wg==} + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + inversify@6.1.4: + resolution: {integrity: sha512-PbxrZH/gTa1fpPEEGAjJQzK8tKMIp5gRg6EFNJlCtzUcycuNdmhv3uk5P8Itm/RIjgHJO16oQRLo9IHzQN51bA==} + + ip-regex@5.0.0: + resolution: {integrity: sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - ipaddr.js@2.2.0: - resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} - engines: {node: '>= 10'} - ipaddr.js@2.3.0: resolution: {integrity: sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==} engines: {node: '>= 10'} + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} + engines: {node: '>= 0.4'} + + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + + is-ip@5.0.1: + resolution: {integrity: sha512-FCsGHdlrOnZQcp0+XT5a+pYowf33itBalCl+7ovNXC/7o5BhIpG14M3OrpPPdBSIQJCm+0M5+9mO7S9VVTTCFw==} + engines: {node: '>=14.16'} + + is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-regexp@3.1.0: + resolution: {integrity: sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==} + engines: {node: '>=12'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + javascript-obfuscator@4.2.2: + resolution: {integrity: sha512-+7oXAUnFCA6vS0omIGHcWpSr67dUBIF7FKGYSXyzxShSLqM6LBgdugWKFl0XrYtGWyJMGfQR5F4LL85iCefkRA==} + engines: {node: '>=18.0.0'} + hasBin: true + + js-string-escape@1.0.1: + resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} + engines: {node: '>= 0.8'} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-schema-typed@8.0.2: + resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} + + levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + + libcurl.js@0.7.4: + resolution: {integrity: sha512-UpvVirvATP7fD0t4rnsxVRuUpPVIo2QvWj4+5JrMsd1KSEvYkON36+COOPAl88hPlGJddk+DfZRvyF7KG7YcSA==} + + libphonenumber-js@1.12.42: + resolution: {integrity: sha512-oKQFPTibqQwZZkChCDVMFVJXMZdyJNqDWZWYNn8BgyAaK/6yFJEowxCY0RVFirRyWP63hMRuKlkSEd9qlvbWXg==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + md5@2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -548,9 +696,9 @@ packages: merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} - meriyah@4.5.0: - resolution: {integrity: sha512-Rbiu0QPIxTXgOXwiIpRVJfZRQ2FWyfzYrOGBs9SN5RbaXg1CN5ELn/plodwWwluX93yzc4qO/bNIen1ThGFCxw==} - engines: {node: '>=10.4.0'} + meriyah@6.1.4: + resolution: {integrity: sha512-Sz8FzjzI0kN13GK/6MVEsVzMZEPvOhnmmI1lU5+/1cGOiK3QUahntrNNtdVeihrO7t9JpoH75iMNXg6R6uWflQ==} + engines: {node: '>=18.0.0'} methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -574,12 +722,28 @@ packages: engines: {node: '>=16'} hasBin: true + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + multimatch@5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + engines: {node: '>=10'} + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -601,13 +765,37 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} + optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + + parse-domain@8.3.0: + resolution: {integrity: sha512-oOjqUI93wiFHJlywlOKU9FEw60Q0LMy8S1s/AhnVhCB9LZkwIsCIZfqujeJ16u7rRzLdTEY2OpxlGRhLdnNNYA==} + hasBin: true + + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -615,12 +803,24 @@ packages: path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + qs@6.15.1: + resolution: {integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==} engines: {node: '>=0.6'} range-parser@1.2.1: @@ -631,15 +831,31 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + reflect-metadata@0.2.2: + resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + send@0.19.0: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} @@ -648,6 +864,9 @@ packages: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} + set-cookie-parser@2.7.2: + resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -655,8 +874,20 @@ packages: setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} source-map-support@0.5.21: @@ -670,25 +901,76 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + string-template@1.0.0: + resolution: {integrity: sha512-SLqR3GBUXuoPP5MmYtD7ompvXiG87QjT6lzOszyXjTM86Uu7At7vNnt2xgyTLq5o9T4IxTYFyGxcULqpsmsfdg==} + + stringz@2.1.0: + resolution: {integrity: sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A==} + + stubborn-fs@2.0.0: + resolution: {integrity: sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==} + + stubborn-utils@1.0.2: + resolution: {integrity: sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==} + + super-regex@0.2.0: + resolution: {integrity: sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==} + engines: {node: '>=14.16'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + tagged-tag@1.0.0: + resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} + engines: {node: '>=20'} + + terser@5.46.2: + resolution: {integrity: sha512-uxfo9fPcSgLDYob/w1FuL0c99MWiJDnv+5qXSQc5+Ki5NjVNsYi66INnMFBjf6uFz6OnX12piJQPF4IpjJTNTw==} + engines: {node: '>=10'} + hasBin: true + + time-span@5.1.0: + resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} + engines: {node: '>=12'} + toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + + type-fest@5.6.0: + resolution: {integrity: sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA==} + engines: {node: '>=20'} + type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} + uint8array-extras@1.5.0: + resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} + engines: {node: '>=18'} + unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true + validator@13.15.35: + resolution: {integrity: sha512-TQ5pAGhd5whStmqWvYF4OjQROlmv9SMFVt37qoCBdqRffuuklWYQlCNnEs2ZaIBD1kZRNnikiZOS1eqgkar0iw==} + engines: {node: '>= 0.10'} vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} @@ -698,17 +980,16 @@ packages: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true + when-exit@2.1.5: + resolution: {integrity: sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==} + + which-typed-array@1.1.20: + resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} + engines: {node: '>= 0.4'} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} ws@8.20.0: resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} @@ -759,90 +1040,50 @@ snapshots: '@biomejs/cli-win32-x64@2.2.2': optional: true - '@esbuild/aix-ppc64@0.28.0': - optional: true - - '@esbuild/android-arm64@0.28.0': - optional: true - - '@esbuild/android-arm@0.28.0': - optional: true - - '@esbuild/android-x64@0.28.0': - optional: true - - '@esbuild/darwin-arm64@0.28.0': - optional: true - - '@esbuild/darwin-x64@0.28.0': - optional: true - - '@esbuild/freebsd-arm64@0.28.0': - optional: true - - '@esbuild/freebsd-x64@0.28.0': - optional: true - - '@esbuild/linux-arm64@0.28.0': - optional: true - - '@esbuild/linux-arm@0.28.0': - optional: true - - '@esbuild/linux-ia32@0.28.0': - optional: true - - '@esbuild/linux-loong64@0.28.0': - optional: true - - '@esbuild/linux-mips64el@0.28.0': - optional: true - - '@esbuild/linux-ppc64@0.28.0': - optional: true - - '@esbuild/linux-riscv64@0.28.0': - optional: true - - '@esbuild/linux-s390x@0.28.0': - optional: true - - '@esbuild/linux-x64@0.28.0': - optional: true - - '@esbuild/netbsd-arm64@0.28.0': - optional: true + '@inversifyjs/common@1.3.3': {} - '@esbuild/netbsd-x64@0.28.0': - optional: true + '@inversifyjs/core@1.3.4(reflect-metadata@0.2.2)': + dependencies: + '@inversifyjs/common': 1.3.3 + '@inversifyjs/reflect-metadata-utils': 0.2.3(reflect-metadata@0.2.2) + transitivePeerDependencies: + - reflect-metadata - '@esbuild/openbsd-arm64@0.28.0': - optional: true + '@inversifyjs/reflect-metadata-utils@0.2.3(reflect-metadata@0.2.2)': + dependencies: + reflect-metadata: 0.2.2 - '@esbuild/openbsd-x64@0.28.0': - optional: true + '@javascript-obfuscator/escodegen@2.3.1': + dependencies: + '@javascript-obfuscator/estraverse': 5.4.0 + esprima: 4.0.1 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 - '@esbuild/openharmony-arm64@0.28.0': - optional: true + '@javascript-obfuscator/estraverse@5.4.0': {} - '@esbuild/sunos-x64@0.28.0': - optional: true + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 - '@esbuild/win32-arm64@0.28.0': - optional: true + '@jridgewell/resolve-uri@3.1.2': {} - '@esbuild/win32-ia32@0.28.0': - optional: true + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 - '@esbuild/win32-x64@0.28.0': - optional: true + '@jridgewell/sourcemap-codec@1.5.5': {} - '@mercuryworkshop/bare-mux@1.1.4': + '@jridgewell/trace-mapping@0.3.31': dependencies: - '@types/uuid': 9.0.8 - uuid: 9.0.1 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 - '@mercuryworkshop/bare-mux@2.1.8': {} + '@mercuryworkshop/bare-mux@2.1.9(patch_hash=p2h2pod4rmljbocdwd5lo4pw64)': {} '@mercuryworkshop/epoxy-tls@2.1.18-1': {} @@ -850,20 +1091,20 @@ snapshots: dependencies: '@mercuryworkshop/epoxy-tls': 2.1.18-1 - '@mercuryworkshop/scramjet@1.0.2(esbuild@0.28.0)': + '@mercuryworkshop/libcurl-transport@1.5.2': dependencies: - '@mercuryworkshop/bare-mux': 1.1.4 - '@webreflection/idb-map': 0.1.3 - astravel: 0.6.1 - astring: 1.9.0 + libcurl.js: 0.7.4 + + '@mercuryworkshop/scramjet@1.1.0': + dependencies: + '@mercuryworkshop/bare-mux': 2.1.9(patch_hash=p2h2pod4rmljbocdwd5lo4pw64) dom-serializer: 2.0.0 domhandler: 5.0.3 domutils: 3.2.2 - esbuild-server: 0.3.0(esbuild@0.28.0) - htmlparser2: 9.1.0 - meriyah: 4.5.0 - transitivePeerDependencies: - - esbuild + htmlparser2: 10.0.0 + idb: 8.0.3 + parse-domain: 8.3.0 + set-cookie-parser: 2.7.2 '@mercuryworkshop/wisp-js@0.4.1': dependencies: @@ -874,35 +1115,72 @@ snapshots: transitivePeerDependencies: - utf-8-validate - '@nebula-services/bare-server-node@2.0.4(bufferutil@4.1.0)': + '@titaniumnetwork-dev/ultraviolet@3.2.10': dependencies: - async-exit-hook: 2.0.1 - commander: 10.0.1 - dotenv: 16.6.1 - http-errors: 2.0.0 - ipaddr.js: 2.2.0 - source-map-support: 0.5.21 - ws: 8.18.0(bufferutil@4.1.0) - transitivePeerDependencies: - - bufferutil - - utf-8-validate + '@mercuryworkshop/bare-mux': 2.1.9(patch_hash=p2h2pod4rmljbocdwd5lo4pw64) + astring: 1.9.0 + events: 3.3.0 + idb: 8.0.3 + meriyah: 6.1.4 + parse5: 7.3.0 + set-cookie-parser: 2.7.2 - '@types/uuid@9.0.8': {} + '@types/minimatch@3.0.5': {} - '@webreflection/idb-map@0.1.3': {} + '@types/validator@13.15.10': {} accepts@1.3.8: dependencies: mime-types: 2.1.35 negotiator: 0.6.3 + acorn@8.15.0: {} + + acorn@8.16.0: {} + + ajv-formats@3.0.1(ajv@8.20.0): + optionalDependencies: + ajv: 8.20.0 + + ajv@8.20.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.1 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + array-differ@3.0.0: {} + array-flatten@1.1.1: {} - astravel@0.6.1: {} + array-union@2.1.0: {} + + arrify@2.0.1: {} + + assert@2.1.0: + dependencies: + call-bind: 1.0.9 + is-nan: 1.3.2 + object-is: 1.1.6 + object.assign: 4.1.7 + util: 0.12.5 astring@1.9.0: {} - async-exit-hook@2.0.1: {} + atomically@2.1.1: + dependencies: + stubborn-fs: 2.0.0 + when-exit: 2.1.5 + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + balanced-match@1.0.2: {} basic-auth@2.0.1: dependencies: @@ -918,13 +1196,18 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.13.0 + qs: 6.15.1 raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 transitivePeerDependencies: - supports-color + brace-expansion@1.1.14: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + buffer-from@1.1.2: {} bufferutil@4.1.0: @@ -933,26 +1216,80 @@ snapshots: bytes@3.1.2: {} - call-bind@1.0.7: + call-bind-apply-helpers@1.0.2: dependencies: - es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + + call-bind@1.0.9: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 set-function-length: 1.2.2 + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + chalk@5.4.1: {} - commander@10.0.1: {} + chance@1.1.13: {} + + char-regex@1.0.2: {} + + charenc@0.0.2: {} + + class-validator@0.14.3: + dependencies: + '@types/validator': 13.15.10 + libphonenumber-js: 1.12.42 + validator: 13.15.35 + + clone-regexp@3.0.0: + dependencies: + is-regexp: 3.1.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + commander@12.1.0: {} commander@14.0.3: {} + commander@2.20.3: {} + + concat-map@0.0.1: {} + + conf@15.0.2: + dependencies: + ajv: 8.20.0 + ajv-formats: 3.0.1(ajv@8.20.0) + atomically: 2.1.1 + debounce-fn: 6.0.0 + dot-prop: 10.1.0 + env-paths: 3.0.0 + json-schema-typed: 8.0.2 + semver: 7.7.4 + uint8array-extras: 1.5.0 + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 content-type@1.0.5: {} + convert-hrtime@5.0.0: {} + cookie-parser@1.4.7: dependencies: cookie: 0.7.2 @@ -969,17 +1306,31 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 + crypt@0.0.2: {} + data-uri-to-buffer@4.0.1: {} + debounce-fn@6.0.0: + dependencies: + mimic-function: 5.0.1 + debug@2.6.9: dependencies: ms: 2.0.0 + deep-is@0.1.4: {} + define-data-property@1.1.4: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 - gopd: 1.0.1 + gopd: 1.2.0 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 depd@2.0.0: {} @@ -1003,10 +1354,18 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 - dotenv@16.6.1: {} + dot-prop@10.1.0: + dependencies: + type-fest: 5.6.0 dotenv@17.2.0: {} + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + ee-first@1.1.1: {} encodeurl@1.0.2: {} @@ -1015,53 +1374,49 @@ snapshots: entities@4.5.0: {} - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 + entities@6.0.1: {} + + env-paths@3.0.0: {} + + es-define-property@1.0.1: {} es-errors@1.3.0: {} - esbuild-server@0.3.0(esbuild@0.28.0): + es-object-atoms@1.1.1: dependencies: - esbuild: 0.28.0 - - esbuild@0.28.0: - optionalDependencies: - '@esbuild/aix-ppc64': 0.28.0 - '@esbuild/android-arm': 0.28.0 - '@esbuild/android-arm64': 0.28.0 - '@esbuild/android-x64': 0.28.0 - '@esbuild/darwin-arm64': 0.28.0 - '@esbuild/darwin-x64': 0.28.0 - '@esbuild/freebsd-arm64': 0.28.0 - '@esbuild/freebsd-x64': 0.28.0 - '@esbuild/linux-arm': 0.28.0 - '@esbuild/linux-arm64': 0.28.0 - '@esbuild/linux-ia32': 0.28.0 - '@esbuild/linux-loong64': 0.28.0 - '@esbuild/linux-mips64el': 0.28.0 - '@esbuild/linux-ppc64': 0.28.0 - '@esbuild/linux-riscv64': 0.28.0 - '@esbuild/linux-s390x': 0.28.0 - '@esbuild/linux-x64': 0.28.0 - '@esbuild/netbsd-arm64': 0.28.0 - '@esbuild/netbsd-x64': 0.28.0 - '@esbuild/openbsd-arm64': 0.28.0 - '@esbuild/openbsd-x64': 0.28.0 - '@esbuild/openharmony-arm64': 0.28.0 - '@esbuild/sunos-x64': 0.28.0 - '@esbuild/win32-arm64': 0.28.0 - '@esbuild/win32-ia32': 0.28.0 - '@esbuild/win32-x64': 0.28.0 + es-errors: 1.3.0 escape-html@1.0.3: {} + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@4.2.1: {} + + esprima@4.0.1: {} + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + etag@1.8.1: {} + events@3.3.0: {} + express-basic-auth@1.2.1: dependencies: basic-auth: 2.0.1 + express-rate-limit@7.5.1(express@4.21.2): + dependencies: + express: 4.21.2 + express@4.21.2: dependencies: accepts: 1.3.8 @@ -1085,7 +1440,7 @@ snapshots: parseurl: 1.3.3 path-to-regexp: 0.1.12 proxy-addr: 2.0.7 - qs: 6.13.0 + qs: 6.15.1 range-parser: 1.2.1 safe-buffer: 5.2.1 send: 0.19.0 @@ -1098,6 +1453,12 @@ snapshots: transitivePeerDependencies: - supports-color + fast-deep-equal@3.1.3: {} + + fast-levenshtein@2.0.6: {} + + fast-uri@3.1.1: {} + fetch-blob@3.2.0: dependencies: node-domexception: 1.0.0 @@ -1115,6 +1476,10 @@ snapshots: transitivePeerDependencies: - supports-color + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + formdata-polyfill@4.0.10: dependencies: fetch-blob: 3.2.0 @@ -1125,36 +1490,52 @@ snapshots: function-bind@1.1.2: {} - get-intrinsic@1.2.4: + function-timeout@0.1.1: {} + + generator-function@2.0.1: {} + + 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 - has-proto: 1.0.3 - has-symbols: 1.0.3 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 + math-intrinsics: 1.1.0 - gopd@1.0.1: + get-proto@1.0.1: dependencies: - get-intrinsic: 1.2.4 + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + gopd@1.2.0: {} + + has-flag@4.0.0: {} has-property-descriptors@1.0.2: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 - has-proto@1.0.3: {} + has-symbols@1.1.0: {} - has-symbols@1.0.3: {} + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 hasown@2.0.2: dependencies: function-bind: 1.1.2 - htmlparser2@9.1.0: + htmlparser2@10.0.0: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.2.2 - entities: 4.5.0 + entities: 6.0.1 http-errors@2.0.0: dependencies: @@ -1168,19 +1549,117 @@ snapshots: dependencies: safer-buffer: 2.1.2 + idb@8.0.3: {} + inherits@2.0.4: {} - ipaddr.js@1.9.1: {} + inversify@6.1.4(reflect-metadata@0.2.2): + dependencies: + '@inversifyjs/common': 1.3.3 + '@inversifyjs/core': 1.3.4(reflect-metadata@0.2.2) + transitivePeerDependencies: + - reflect-metadata - ipaddr.js@2.2.0: {} + ip-regex@5.0.0: {} + + ipaddr.js@1.9.1: {} ipaddr.js@2.3.0: {} + is-arguments@1.2.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-buffer@1.1.6: {} + + is-callable@1.2.7: {} + + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-ip@5.0.1: + dependencies: + ip-regex: 5.0.0 + super-regex: 0.2.0 + + is-nan@1.3.2: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-regexp@3.1.0: {} + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.20 + + javascript-obfuscator@4.2.2: + dependencies: + '@javascript-obfuscator/escodegen': 2.3.1 + '@javascript-obfuscator/estraverse': 5.4.0 + acorn: 8.15.0 + assert: 2.1.0 + chalk: 4.1.2 + chance: 1.1.13 + class-validator: 0.14.3 + commander: 12.1.0 + conf: 15.0.2 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + fast-deep-equal: 3.1.3 + inversify: 6.1.4(reflect-metadata@0.2.2) + js-string-escape: 1.0.1 + md5: 2.3.0 + mkdirp: 3.0.1 + multimatch: 5.0.0 + process: 0.11.10 + reflect-metadata: 0.2.2 + source-map-support: 0.5.21 + string-template: 1.0.0 + stringz: 2.1.0 + tslib: 2.8.1 + + js-string-escape@1.0.1: {} + + json-schema-traverse@1.0.0: {} + + json-schema-typed@8.0.2: {} + + levn@0.3.0: + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + + libcurl.js@0.7.4: {} + + libphonenumber-js@1.12.42: {} + + math-intrinsics@1.1.0: {} + + md5@2.3.0: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + media-typer@0.3.0: {} merge-descriptors@1.0.3: {} - meriyah@4.5.0: {} + meriyah@6.1.4: {} methods@1.1.2: {} @@ -1194,10 +1673,26 @@ snapshots: mime@4.1.0: {} + mimic-function@5.0.1: {} + + minimatch@3.1.5: + dependencies: + brace-expansion: 1.1.14 + + mkdirp@3.0.1: {} + ms@2.0.0: {} ms@2.1.3: {} + multimatch@5.0.0: + dependencies: + '@types/minimatch': 3.0.5 + array-differ: 3.0.0 + array-union: 2.1.0 + arrify: 2.0.1 + minimatch: 3.1.5 + negotiator@0.6.3: {} node-domexception@1.0.0: {} @@ -1212,24 +1707,63 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.1: {} + object-inspect@1.13.4: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 on-finished@2.4.1: dependencies: ee-first: 1.1.1 + optionator@0.8.3: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.5 + + parse-domain@8.3.0: + dependencies: + is-ip: 5.0.1 + + parse5@7.3.0: + dependencies: + entities: 6.0.1 + parseurl@1.3.3: {} path-to-regexp@0.1.12: {} + possible-typed-array-names@1.1.0: {} + + prelude-ls@1.1.2: {} + + process@0.11.10: {} + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 - qs@6.13.0: + qs@6.15.1: dependencies: - side-channel: 1.0.6 + side-channel: 1.1.0 range-parser@1.2.1: {} @@ -1240,12 +1774,24 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + reflect-metadata@0.2.2: {} + + require-from-string@2.0.2: {} + safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + safer-buffer@2.1.2: {} + semver@7.7.4: {} + send@0.19.0: dependencies: debug: 2.6.9 @@ -1273,23 +1819,46 @@ snapshots: transitivePeerDependencies: - supports-color + set-cookie-parser@2.7.2: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 has-property-descriptors: 1.0.2 setprototypeof@1.2.0: {} - side-channel@1.0.6: + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.1 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 source-map-support@0.5.21: dependencies: @@ -1300,26 +1869,91 @@ snapshots: statuses@2.0.1: {} + string-template@1.0.0: {} + + stringz@2.1.0: + dependencies: + char-regex: 1.0.2 + + stubborn-fs@2.0.0: + dependencies: + stubborn-utils: 1.0.2 + + stubborn-utils@1.0.2: {} + + super-regex@0.2.0: + dependencies: + clone-regexp: 3.0.0 + function-timeout: 0.1.1 + time-span: 5.1.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + tagged-tag@1.0.0: {} + + terser@5.46.2: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.16.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + time-span@5.1.0: + dependencies: + convert-hrtime: 5.0.0 + toidentifier@1.0.1: {} + tslib@2.8.1: {} + + type-check@0.3.2: + dependencies: + prelude-ls: 1.1.2 + + type-fest@5.6.0: + dependencies: + tagged-tag: 1.0.0 + type-is@1.6.18: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 + uint8array-extras@1.5.0: {} + unpipe@1.0.0: {} + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.2.0 + is-generator-function: 1.1.2 + is-typed-array: 1.1.15 + which-typed-array: 1.1.20 + utils-merge@1.0.1: {} - uuid@9.0.1: {} + validator@13.15.35: {} vary@1.1.2: {} web-streams-polyfill@3.3.3: {} - ws@8.18.0(bufferutil@4.1.0): - optionalDependencies: - bufferutil: 4.1.0 + when-exit@2.1.5: {} + + which-typed-array@1.1.20: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + word-wrap@1.2.5: {} ws@8.20.0(bufferutil@4.1.0): optionalDependencies: diff --git a/src/analytics.js b/src/analytics.js new file mode 100644 index 0000000000..a87f505e68 --- /dev/null +++ b/src/analytics.js @@ -0,0 +1,52 @@ +import express from "express"; + +export function mountAnalytics(app, analytics) { + const { id, loader, transport, sink, param, key } = analytics; + let cached = null; + + const unpack = value => { + const raw = Buffer.from(String(value).replace(/-/g, "+").replace(/_/g, "/"), "base64"); + return Buffer.from(raw.map((byte, index) => byte ^ key[index % key.length])).toString("utf8"); + }; + + const requestHook = `(function(){var B=location.origin+${JSON.stringify(transport)}+"/g/collect",S=${JSON.stringify(sink)},P=${JSON.stringify(param)},K=${JSON.stringify(key)}; +function pack(s){var o="";for(var i=0;i { + try { + if (!cached || Date.now() - cached.at > 3600000) { + const upstream = await fetch(`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(id)}`); + if (!upstream.ok) return res.sendStatus(502); + const body = await upstream.text(); + const boot = `\n;window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date());gtag("config",${JSON.stringify(id)},{transport_url:location.origin+${JSON.stringify(transport)}});`; + cached = { at: Date.now(), body: requestHook + body + boot }; + } + res.type("text/javascript").set("Cache-Control", "public, max-age=900").send(cached.body); + } catch { + res.sendStatus(502); + } + }); + + app.all(sink, express.raw({ type: "*/*", limit: "64kb" }), async (req, res) => { + try { + const target = new URL("https://www.google-analytics.com/g/collect"); + target.search = unpack(req.query[param] ?? ""); + const upstream = await fetch(target, { + method: req.method === "GET" ? "GET" : "POST", + headers: { + "User-Agent": req.get("user-agent") ?? "", + "X-Forwarded-For": req.ip, + ...(req.get("content-type") ? { "Content-Type": req.get("content-type") } : {}), + }, + body: req.method === "GET" || !req.body?.length ? undefined : req.body, + }); + res.status(upstream.status).send(Buffer.from(await upstream.arrayBuffer())); + } catch { + res.sendStatus(204); + } + }); +} diff --git a/src/build.js b/src/build.js new file mode 100644 index 0000000000..7feeee41c1 --- /dev/null +++ b/src/build.js @@ -0,0 +1,2024 @@ +import { createHash, randomBytes } from "node:crypto"; +import { access, cp, mkdir, readdir, readFile, rm, writeFile } from "node:fs/promises"; +import { createRequire } from "node:module"; +import path from "node:path"; +import chalk from "chalk"; +import JavaScriptObfuscator from "javascript-obfuscator"; +import { minify } from "terser"; +import { injectVersionInfo, resolveVersionInfo, VERSION_TOKEN_COUNT } from "./version.js"; + +const OBFUSCATOR_PROMO_PATTERN = /\[javascript-obfuscator\]|JavaScript Obfuscator Pro|obfuscator\.io/i; + +for (const method of ["log", "info", "warn"]) { + const original = console[method].bind(console); + console[method] = (...args) => { + if (args.some(arg => OBFUSCATOR_PROMO_PATTERN.test(String(arg)))) return; + original(...args); + }; +} + +const OBFUSCATE = true; +const OBFUSCATE_HTML = true; + +const SRC_DIR = path.join(process.cwd(), "static"); +const DIST_DIR = path.join(process.cwd(), "dist"); +const JS_DIR = path.join(DIST_DIR, "assets", "js"); +const RUNTIME_DIR = path.join(DIST_DIR, ".runtime"); + +const require = createRequire(import.meta.url); +const { epoxyPath } = require("@mercuryworkshop/epoxy-transport"); +const { baremuxPath } = require("@mercuryworkshop/bare-mux/node"); +const { libcurlPath } = require("@mercuryworkshop/libcurl-transport"); +const { uvPath } = require("@titaniumnetwork-dev/ultraviolet"); +const { scramjetPath } = require("@mercuryworkshop/scramjet/path"); + +const TERSER_ONLY = new Set(); + +function createCatalogueKey() { + return Array.from(randomBytes(16)); +} + +// XOR then base64url, wrapped as a JSON string so the asset stays valid JSON. Obfuscation +// only: the key ships in launcher.js. +function encodeCatalogue(json, key) { + const bytes = Buffer.from(json, "utf8"); + const out = Buffer.alloc(bytes.length); + for (let index = 0; index < bytes.length; index++) out[index] = bytes[index] ^ key[index % key.length]; + return JSON.stringify(out.toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "")); +} + +const UNUSED_JSON = ["apps.json", "games.json"]; +const RANDOMIZED_JSON = ["apps.min.json", "games.min.json"]; +// themes/template.css is a starting point for user themes; nothing loads it. +const UNUSED_CSS = ["assets/css/themes/template.css"]; + +const VENDOR_DROPPED_CONSOLE = ["console.log", "console.debug", "console.info", "console.warn"]; + +const VENDOR_SIZE_TOLERANCE = 1; + +const RESERVED_GLOBALS = + "Ultraviolet UVClient UVServiceWorker __uv __uvHook __uv$config __uv$cookies __uv$referrer $scramjetLoadWorker $scramjetLoadController $scramjetLoadClient $scramjetRequire $scramjetVersion __scramjet$config COOKIE WASM BareMuxConnection BareClient BareWebSocket WebSocketFields WorkerConnection browserSupportsTransferringStreams maxRedirects validProtocol epoxyInfo onconnect".split( + " ", + ); + +function vendorTerserOptions({ module, aggressive }) { + return { + ecma: 2020, + module, + compress: { passes: 2, pure_funcs: VENDOR_DROPPED_CONSOLE }, + mangle: { toplevel: Boolean(aggressive), reserved: RESERVED_GLOBALS }, + format: { comments: false }, + }; +} + +const OLD_UV_SCOPE = "/uv/"; +const OLD_SCRAMJET_SCOPE = "/uv/scramjet/"; + +const RETIRED_PUBLIC_PREFIXES = ["/assets/ultraviolet/", "/assets/scramjet/", "/epoxy/", "/libcurl/", "/baremux/"]; + +const WORDS = + "api lib src net sys io pkg app mod ext math calc units matrix vector scalar ratio delta sigma alpha beta gamma omega phi theta core util data base node tree heap stack queue graph hash map set list ring chain parse fmt log proc exec init boot load sync async fetch emit bind wrap pool fork dictionary mapping resolver adapter encoder decoder scheduler dispatcher observer registry factory builder transform pipeline middleware handler router broker storage cache buffer stream channel socket bridge monitor profiler tracer validator sanitizer 1 2 3 v1 v2 v3 that was my part of the deal honest we got so familiar spending each day of the year white ferrari good times".split( + " ", + ); + +const FILENAMES = + "x y z a b c d e f g h 1 2 3 10 11 100 mod lib api run cli app env cfg index main core init loader worker runtime parser formatter handler manager client server config schema mapper adapter resolver encoder decoder sync fetch stream buffer queue cache router dispatcher emitter observer builder factory transform pipeline registry validator scheduler monitor tracer bridge channel storage profiler".split( + " ", + ); + +function randomItem(arr) { + return arr[Math.floor(Math.random() * arr.length)]; +} + +function randomInt(min, max) { + return Math.floor(Math.random() * (max - min + 1)) + min; +} + +function randomSegment() { + if (Math.random() < 0.1) return `${randomItem(WORDS)}-${randomItem(WORDS)}`; + return randomItem(WORDS); +} + +function randomWord() { + return randomItem(WORDS); +} + +function randomFilename() { + if (Math.random() < 0.1) return `${randomItem(FILENAMES)}-${randomItem(FILENAMES)}`; + return randomItem(FILENAMES); +} + +function replaceAll(content, oldStr, newStr) { + return content.split(oldStr).join(newStr); +} + +class PathRegistry { + constructor() { + this.paths = new Set(); + this.topDirs = new Set(); + } + + reserveTopDir(name) { + this.topDirs.add(name); + } + + dir() { + for (;;) { + const depth = randomInt(1, 2); + const segments = Array.from({ length: depth }, randomSegment); + if (this.topDirs.has(segments[0])) continue; + return segments.join("/"); + } + } + + file(ext, baseDir) { + for (;;) { + const dir = baseDir ?? this.dir(); + const publicPath = `/${dir}/${randomFilename()}${ext}`; + if (this.paths.has(publicPath)) continue; + this.paths.add(publicPath); + return publicPath; + } + } + + rootFile(ext) { + for (;;) { + const publicPath = `/${randomFilename()}${ext}`; + if (this.paths.has(publicPath)) continue; + this.paths.add(publicPath); + return publicPath; + } + } +} + +// Never register a bare "sw.js", it is a substring of "uv.sw.js". +function pathVariants(publicPath, { bare = true, parent = false } = {}) { + const relative = publicPath.slice(1); + const variants = [publicPath, `./${relative}`]; + if (parent) variants.push(`../${relative}`); + if (bare) variants.push(relative); + return variants; +} + +function orderRewrites(map) { + return [...map.entries()].sort((a, b) => b[0].length - a[0].length); +} + +function applyRewrites(content, orderedRewrites) { + let result = content; + for (const [from, to] of orderedRewrites) result = replaceAll(result, from, to); + return result; +} + +const URL_CODEC_NAMES = ["xor"]; + +const URL_CODEC_FUNCTIONS = { + xor: { + encode: 'url => url && encodeURIComponent(url.split("").map((char, index) => (index % 2 ? String.fromCharCode(char.charCodeAt(0) ^ 2) : char)).join(""))', + decode: + 'url => { if (!url) return url; const index = url.search(/[?#]/); const value = index < 0 ? url : url.slice(0, index); const tail = index < 0 ? "" : url.slice(index); return decodeURIComponent(value).split("").map((char, index) => (index % 2 ? String.fromCharCode(char.charCodeAt(0) ^ 2) : char)).join("") + tail; }', + }, +}; + +function randomXorKey() { + const chars = "0123456789abcdefghijklmnopqrstuvwxyz"; + const firstChars = "23456789abcdefghijklmnopqrstuvwxyz"; + const length = randomInt(1, 2); + let key = randomItem(firstChars); + for (let index = 1; index < length; index++) key += randomItem(chars); + return key; +} + +function xorKeyValue(key) { + const value = /^\d+$/.test(key) ? Number(key) : parseInt(key, 36); + return Number.isFinite(value) && value > 1 ? (value % 30) + 2 : 2; +} + +function randomCodecSpec(names = URL_CODEC_NAMES, keyed = true) { + const codec = randomItem(names); + return keyed && codec === "xor" ? `${codec}:${randomXorKey()}` : codec; +} + +function parseCodecSpec(spec) { + const [codec, ...keyParts] = String(spec).split(":"); + return { codec, key: keyParts.join(":") }; +} + +function createXorCodec(key) { + if (!key) return URL_CODEC_FUNCTIONS.xor; + + const encodedKey = xorKeyValue(key); + const encodeValue = `(url => encodeURIComponent(url.split("").map((char, index) => (index % ${encodedKey} ? String.fromCharCode(char.charCodeAt(0) ^ ${encodedKey}) : char)).join("")))`; + const decodeValue = `(url => decodeURIComponent(url).split("").map((char, index) => (index % ${encodedKey} ? String.fromCharCode(char.charCodeAt(0) ^ ${encodedKey}) : char)).join(""))`; + return { + encode: `url => url && ${encodeValue}(url)`, + decode: `url => { if (!url) return url; const index = url.search(/[?#]/); const value = index < 0 ? url : url.slice(0, index); const tail = index < 0 ? "" : url.slice(index); return ${decodeValue}(value) + tail; }`, + }; +} + +function getUrlCodecFunctions(codec, key) { + if (codec === "xor") return createXorCodec(key); + return URL_CODEC_FUNCTIONS[codec]; +} + +function createProxyCodecs() { + return { + uv: randomCodecSpec(URL_CODEC_NAMES), + scramjet: randomCodecSpec(URL_CODEC_NAMES), + }; +} + +// Fatal: a half-patched build encodes and decodes with different keys, silently breaking +// every proxied URL. +class CodecPatchError extends Error { + constructor(message) { + super(message); + this.name = "CodecPatchError"; + } +} + +class VerificationError extends Error { + constructor(message) { + super(message); + this.name = "VerificationError"; + } +} + +// Optional patches cover patterns that exist in only some files sharing a branch below. +function patchOrFail(content, pattern, replacement, label, required = true) { + if (!pattern.test(content)) { + if (!required) return content; + throw new CodecPatchError(`${label}: pattern no longer matches. Upstream file changed - update the pattern in patchProxyCodecs().`); + } + pattern.lastIndex = 0; + return content.replace(pattern, replacement); +} + +// Emitted by the wasm rewriter into every proxied page. wrappropertybase is concatenated +// with a property name, so each value must be a valid identifier alone and as a prefix. +const SCRAMJET_GLOBAL_DEFAULTS = { + wrapfn: "$scramjet$wrap", + wrappropertybase: "$scramjet__", + wrappropertyfn: "$scramjet$prop", + cleanrestfn: "$scramjet$clean", + importfn: "$scramjet$import", + rewritefn: "$scramjet$rewrite", + metafn: "$scramjet$meta", + setrealmfn: "$scramjet$setrealm", + pushsourcemapfn: "$scramjet$pushsourcemap", + trysetfn: "$scramjet$tryset", + templocid: "$scramjet$temploc", + tempunusedid: "$scramjet$tempunused", +}; + +function createScramjetGlobals() { + const token = randomBytes(4).toString("hex"); + const globals = {}; + let index = 0; + for (const name of Object.keys(SCRAMJET_GLOBAL_DEFAULTS)) globals[name] = `_${token}$${(index++).toString(36)}${randomBytes(2).toString("hex")}`; + return globals; +} + +// Siblings of the globals table above, in the same default-config literal. Our +// scramjet.config.js overrides all four so the defaults are dead, but they carry the +// upstream names and would resolve to a 404 if a branch ever fell through to them. +const SCRAMJET_DEFAULT_PREFIX = '"/scramjet/"'; +const SCRAMJET_DEFAULT_PATH_LITERALS = [ + ['"/scramjet.wasm.wasm"', "sj.wasm"], + ['"/scramjet.all.js"', "sj.all"], + ['"/scramjet.sync.js"', "sj.sync"], +]; + +function applyScramjetDefaults(source, specs, scope) { + const byId = Object.fromEntries(specs.map(spec => [spec.id, spec.publicPath])); + const pairs = [[SCRAMJET_DEFAULT_PREFIX, scope], ...SCRAMJET_DEFAULT_PATH_LITERALS.map(([literal, id]) => [literal, byId[id]])]; + let out = source; + for (const [literal, value] of pairs) { + if (!value) throw new CodecPatchError(`scramjet.all.js: no emitted value for the default ${literal}.`); + const found = out.split(literal).length - 1; + if (found !== 1) throw new CodecPatchError(`scramjet.all.js: expected 1 occurrence of the default ${literal}, found ${found}. Upstream changed.`); + out = replaceAll(out, literal, JSON.stringify(value)); + } + for (const [literal] of pairs) { + if (out.includes(literal)) throw new CodecPatchError(`scramjet.all.js: the default ${literal} survived the rewrite.`); + } + return out; +} + +// Scramjet's 500 page, same treatment as the UV one. The version and build spans go with +// the two textContent assignments: those reach the elements through the implicit id globals +// and would throw a ReferenceError once the spans are gone. +const SCRAMJET_BRANDING = [ + /[ \t]*
  • Updating Scramjet<\/li>\n/, + /[ \t]*
  • Troubleshooting the error on the ]*>GitHub repository<\/a><\/li>\n/, + /[ \t]*

    Scramjet v<\/span> \(build <\/span>\)<\/i><\/p>\n/, + /[ \t]*version\.textContent = \$\{JSON\.stringify\(globalThis\.\$scramjetVersion\?\.version\|\|"unknown"\)\};\n/, + /[ \t]*build\.textContent = \$\{JSON\.stringify\(globalThis\.\$scramjetVersion\?\.build\|\|"unknown"\)\};\n/, +]; +const SCRAMJET_TITLE = "Scramjet"; +const SCRAMJET_VERSION_LITERAL = /\{build:"[0-9a-f]{7,40}",version:"\d+\.\d+\.\d+"\}/; + +function stripScramjetBranding(source) { + let out = source; + for (const pattern of SCRAMJET_BRANDING) { + if (!pattern.test(out)) throw new CodecPatchError(`scramjet.all.js branding: ${pattern} no longer matches. Upstream error page changed.`); + out = out.replace(pattern, ""); + } + if (!out.includes(SCRAMJET_TITLE)) throw new CodecPatchError(`scramjet.all.js branding: ${SCRAMJET_TITLE} not found. Upstream error page changed.`); + out = replaceAll(out, SCRAMJET_TITLE, ""); + if (!SCRAMJET_VERSION_LITERAL.test(out)) throw new CodecPatchError("scramjet.all.js: the $scramjetVersion value literal no longer matches. Upstream changed."); + out = out.replace(SCRAMJET_VERSION_LITERAL, '{build:"unknown",version:"unknown"}'); + for (const marker of ["Scramjet", "Updating Scramjet", "MercuryWorkshop", 'id="version-wrapper"', "Scramjet v<span", "version.textContent", "build.textContent"]) { + if (out.includes(marker)) throw new CodecPatchError(`scramjet.all.js: branding marker ${marker} survived the strip.`); + } + return out; +} + +// Diagnostics only. Nothing in the five bundles compares against .message or .cause, so the +// throw is what matters and the text is not. +const DIAGNOSTIC_STRINGS = [ + '"attempted to initialize a scramjet client, but one is already loaded - this is very bad"', + '"YOU NEED TO USE `new ScramjetFrame()`! DIRECT IFRAMES WILL NOT WORK"', + '"ERROR FROM SCRAMJET INTERNALS"', + '"bare-mux: failed to get a bare-mux SharedWorker MessagePort as all clients returned an invalid MessagePort."', + '"Unable to get bare-mux workerPath from localStorage."', + '"there are no bare clients"', + '"No BareTransport was set. Try creating a BareMuxConnection and calling `setTransport()` or `setManualTransport()` on it before using BareClient."', + '"The BareTransport provided was invalid. Common causes of this are a default export that is not a class that implements BareTransport if you are using `setTransport()`"', +]; +const DIAGNOSTIC_COUNTS = { "sj.all": 7, "uv.bundle": 2, "uv.client": 2, baremux: 2, "baremux.worker": 3 }; + +function stripDiagnosticStrings(source, id) { + let out = source; + let replaced = 0; + for (const literal of DIAGNOSTIC_STRINGS) { + const found = out.split(literal).length - 1; + if (!found) continue; + replaced += found; + out = replaceAll(out, literal, '""'); + } + if (replaced !== DIAGNOSTIC_COUNTS[id]) throw new CodecPatchError(`${id}: expected ${DIAGNOSTIC_COUNTS[id]} diagnostic strings, replaced ${replaced}. Upstream changed.`); + for (const literal of DIAGNOSTIC_STRINGS) { + if (out.includes(literal)) throw new CodecPatchError(`${id}: the diagnostic string ${literal.slice(0, 40)}... survived the strip.`); + } + return out; +} + +// Producer and consumer are both scramjet.all.js, so per build is safe. The one skew window +// is a page left open across a deploy and adopted by the new service worker while its own +// realm still runs the old bundle; it stops proxying until reloaded. Replacements must be +// valid identifiers, because the keys are read as obj.key as well as "key" in obj. +const SCRAMJET_PROTOCOL_DEFAULTS = ["$scramjet$messagetype", "$scramjet$origin", "$scramjet$data", "$scramjet$type", "scramjet$response", "scramjet$request", "scramjet$token", "scramjet$type", "scramjet$port"]; +const SCRAMJET_PROTOCOL_COUNTS = { $scramjet$messagetype: 2, $scramjet$origin: 3, $scramjet$data: 4, $scramjet$type: 5, scramjet$response: 3, scramjet$request: 2, scramjet$token: 12, scramjet$type: 25, scramjet$port: 2 }; + +function createScramjetProtocolKeys() { + const token = randomBytes(4).toString("hex"); + return SCRAMJET_PROTOCOL_DEFAULTS.map((name, index) => [name, `_${token}${index.toString(36)}${randomBytes(2).toString("hex")}`]); +} + +function applyScramjetProtocolKeys(source, protocolKeys) { + let out = source; + for (const [from, to] of protocolKeys) { + const pattern = () => new RegExp(`(?<![\\w$])${from.replace(/\$/g, "\\$")}(?![\\w$])`, "g"); + const found = (out.match(pattern()) || []).length; + if (found !== SCRAMJET_PROTOCOL_COUNTS[from]) throw new CodecPatchError(`scramjet.all.js: expected ${SCRAMJET_PROTOCOL_COUNTS[from]} occurrences of the protocol key ${from}, found ${found}. Upstream changed.`); + out = out.replace(pattern(), to); + if (pattern().test(out)) throw new CodecPatchError(`scramjet.all.js: the protocol key ${from} survived the rewrite.`); + if ((out.match(new RegExp(`(?<![\\w$])${to}(?![\\w$])`, "g")) || []).length !== found) throw new CodecPatchError(`scramjet.all.js: ${from} -> ${to} did not keep its producer/consumer count.`); + } + return out; +} + +// Five emitted copies find each other by these names. Randomizing per build costs nothing: +// a SharedWorker is identified by script URL as well as name, and those URLs already rotate. +// bare-mux-path is a localStorage key, but the page rewrites it before anything reads it. +// Longest first, since bare-mux prefixes the rest and the worker name prefixes its fallback. +const BAREMUX_STRING_DEFAULTS = ["bare-mux-worker-", "bare-mux-worker", "bare-mux-remote", "bare-mux-path", "bare-mux", "baremuxinit"]; +const BAREMUX_STRING_COUNTS = { "uv.bundle": 14, "uv.client": 17, "uv.handler": 1, "sj.all": 19, baremux: 17, "baremux.worker": 4 }; + +// The index keeps the five distinct even if the random halves collide. +function createBaremuxStrings() { + const token = randomBytes(4).toString("hex"); + const name = index => `_${token}${index.toString(36)}${randomBytes(2).toString("hex")}`; + const worker = name(0); + return [ + ["bare-mux-worker-", `${worker}-`], + ["bare-mux-worker", worker], + ["bare-mux-remote", name(1)], + ["bare-mux-path", name(2)], + ["bare-mux", name(3)], + ["baremuxinit", name(4)], + ]; +} + +function applyBaremuxStrings(source, id, baremuxStrings) { + let out = source; + let replaced = 0; + for (const [from, to] of baremuxStrings) { + const found = out.split(from).length - 1; + if (!found) continue; + replaced += found; + out = replaceAll(out, from, to); + } + if (replaced !== BAREMUX_STRING_COUNTS[id]) throw new CodecPatchError(`${id}: expected ${BAREMUX_STRING_COUNTS[id]} bare-mux strings, replaced ${replaced}. Upstream changed.`); + for (const from of BAREMUX_STRING_DEFAULTS) { + if (out.includes(from)) throw new CodecPatchError(`${id}: the bare-mux string ${from} survived the rewrite.`); + } + return out; +} + +// Ours on both sides: upstream reads none of them and none is reachable from HTML. Every +// occurrence is a bare identifier, so the word-boundary pass handles them. encodeProxyUrl +// prefixes encodeProxyUrlSync, which the trailing lookahead keeps apart. +const RENAMED_IDENTIFIERS = [ + "__scramjet$config", + "isScramjet", + "isScramjetEnabled", + "ScramjetServiceWorker", + "ScramjetController", + "$scramjetLoadWorker", + "$scramjetLoadController", + "$scramjetLoadClient", + "$scramjetVersion", + "$scramjetRequire", + "$scramitize", + "isGamesPage", + "encodeProxyUrl", + "encodeProxyUrlSync", + "__uv$config", + "UVClient", + "UVServiceWorker", + "BareMuxConnection", + "BareClient", + "uvHostname", + "implementUVMiddleware", +]; + +// Dead branches: our config sets all four. They still carry the upstream names, and the +// substring derivation of the client path would 404 if one ever ran, so pointing them at the +// emitted paths removes the names and fixes the fallback at the same time. +const UV_DEFAULT_PATH_LITERALS = [ + ['"/uv.bundle.js"', "uv.bundle"], + ['"/uv.handler.js"', "uv.handler"], + ['"/uv.client.js"', "uv.client"], + ['"/uv.config.js"', "uv.config"], + ['"uv.bundle.js"', "uv.bundle"], + ['"uv.client.js"', "uv.client"], +]; + +function applyUvDefaultPaths(source, specs) { + const byId = Object.fromEntries(specs.map(spec => [spec.id, spec.publicPath])); + let out = source; + for (const [literal, id] of UV_DEFAULT_PATH_LITERALS) { + if (!out.includes(literal)) throw new CodecPatchError(`uv.bundle.js: default path ${literal} not found. Upstream changed.`); + out = replaceAll(out, literal, JSON.stringify(byId[id])); + } + return out; +} + +// Message only: the throw is what matters, nothing reads the text. +const UV_ERROR_MESSAGE = '"Unable to load global UV data"'; + +function stripUvErrorMessage(source) { + if (!source.includes(UV_ERROR_MESSAGE)) throw new CodecPatchError(`uv.handler.js: ${UV_ERROR_MESSAGE} not found. Upstream changed.`); + return replaceAll(source, UV_ERROR_MESSAGE, '""'); +} + +// A substring swap, not a token rename: that would skip __uv$storageObj and still rewrite +// __uv-script, leaving the 15 variants incoherent. Runs after the token pass so __uv$config +// is already gone, and stays lowercase because __uv-script is an HTML attribute name. +const UV_PREFIX = "__uv"; + +function applyUvPrefixRename(source, name) { + if (!source.includes(UV_PREFIX)) throw new CodecPatchError(`${UV_PREFIX} not found. Upstream UV file changed.`); + const out = replaceAll(source, UV_PREFIX, name); + if (out.includes(UV_PREFIX)) throw new CodecPatchError(`${UV_PREFIX} survived the rename.`); + return out; +} + +// Ultraviolet is replaced by exact pattern rather than as a token: the bare word also +// appears in UV's error page copy and its GitHub URL, which are branding, not contract. +// "Ultraviolet" in uv.handler.js filterKeys is the list of globals hidden from proxied +// pages, so it has to move with self.Ultraviolet or the real global stops being hidden. +const ULTRAVIOLET_PATTERNS = ["self.Ultraviolet", '"Ultraviolet"', "static Ultraviolet="]; + +// UV's 500 page names the project, links its repo and prints its version. The two +// textContent assignments go with the spans: they reach those elements through the implicit +// id globals, so leaving them would throw a ReferenceError once the spans are gone. +const ULTRAVIOLET_BRANDING = [ + /[ \t]*<li>Updating Ultraviolet<\/li>\n/, + /[ \t]*<li>Troubleshooting the error on the <a href="https:\/\/github\.com\/titaniumnetwork-dev\/Ultraviolet"[^>]*>GitHub repository<\/a><\/li>\n/, + /[ \t]*<p><i>Ultraviolet v<span id="uvVersion"><\/span> \(build <span id="uvBuild"><\/span>\)<\/i><\/p>\n/, + /[ \t]*uvVersion\.textContent = \$\{JSON\.stringify\("[^"]*"\)\};\n/, + /[ \t]*uvBuild\.textContent = \$\{JSON\.stringify\("[^"]*"\)\};\n/, +]; + +function stripUltravioletBranding(source) { + let out = source; + for (const pattern of ULTRAVIOLET_BRANDING) { + if (!pattern.test(out)) throw new CodecPatchError(`uv.sw.js branding: ${pattern} no longer matches. Upstream error page changed.`); + out = out.replace(pattern, ""); + } + return out; +} + +// Internal to uv.sw.js: setter and reader both live there, it never reaches injected page +// code, and it never appears as a string literal so no computed access can reach it. Matched +// on the leading dot so /assets/ultraviolet/ path segments cannot be hit. +const UV_PROPERTY = /\.ultraviolet(?![\w$])/g; + +function applyUvPropertyRename(source, name) { + const found = (source.match(UV_PROPERTY) || []).length; + if (!found) throw new CodecPatchError("uv.sw.js: the .ultraviolet property was not found. Upstream file changed."); + const out = source.replace(UV_PROPERTY, `.${name}`); + if (UV_PROPERTY.test(out)) throw new CodecPatchError("uv.sw.js: .ultraviolet survived the rename."); + return out; +} + +function applyUltravioletRename(source, name) { + let out = source; + for (const pattern of ULTRAVIOLET_PATTERNS) out = replaceAll(out, pattern, pattern.replace("Ultraviolet", name)); + return out; +} + +// File-local, but renameGlobals:false leaves top level worker declarations alone. Scoped to +// sw.js only, because a bare uv token also occurs in uv.bundle.js as a regex flag pair. The +// lookbehind rejects the dot and slash forms so paths and property access cannot be hit. +const SW_LOCAL_COUNTS = { uv: 2, sj: 4 }; +const swLocalPattern = name => new RegExp(`(?<![\\w$./"'\`-])${name}(?![\\w$])`, "g"); + +function createSwLocalRenames() { + return new Map(Object.keys(SW_LOCAL_COUNTS).map(name => [name, `_${randomBytes(5).toString("hex")}`])); +} + +function applySwLocalRenames(source, renames) { + let out = source; + for (const [from, to] of renames) { + const found = (out.match(swLocalPattern(from)) || []).length; + if (found !== SW_LOCAL_COUNTS[from]) throw new CodecPatchError(`sw.js: expected ${SW_LOCAL_COUNTS[from]} occurrences of the local ${from}, found ${found}. sw.js changed - update SW_LOCAL_COUNTS.`); + out = out.replace(swLocalPattern(from), to); + if (swLocalPattern(from).test(out)) throw new CodecPatchError(`sw.js: the local ${from} survived the rename.`); + } + return out; +} + +// Inline onkeyup/onchange/onclick handlers call these app-owned globals by name, so the name +// survives into emitted HTML. Renamed per build in both the JS definition and the handler +// attribute; the on* attribute names themselves are standard and left untouched. +// Two shapes: window.X property assignments, and bare function identifiers (def/call/reference). +const INLINE_HANDLER_WINDOW = { "launcher.js": ["bar", "category"] }; +const INLINE_HANDLER_FUNCS = { + "tabs.js": ["goHome", "goBack", "goForward", "reload", "popoutTab", "toggleDevTools", "toggleFullscreen"], + "settings.js": ["toggleAB", "changeEngine", "saveEventKey", "exportSaveData", "importSaveData", "AB"], + "search.js": ["go"], + "launcher.js": ["go"], +}; +const INLINE_HANDLER_ATTR = /(\son(?:keyup|change|click)\s*=\s*")([A-Za-z_$][\w$]*)(\s*\()/gi; +// window.bar/category (2) + tabs.js funcs (9) + settings.js funcs (7) + search go (1) + launcher go (1). +const INLINE_HANDLER_JS_COUNT = 20; +// onkeyup/onchange (6) + onclick: tabs (7) + settings (4) + 404 go (1). +const INLINE_HANDLER_HTML_COUNT = 18; + +function createHandlerRenames() { + const names = [...new Set([...Object.values(INLINE_HANDLER_WINDOW).flat(), ...Object.values(INLINE_HANDLER_FUNCS).flat()])]; + return new Map(names.map(name => [name, `_${randomBytes(5).toString("hex")}`])); +} + +// Strings and comments become same-length spaces so token matching only ever hits code, never a +// name that also appears in a string (e.g. "AB" inside an alert) or a property (e.g. .reload). +function maskJsStrings(source) { + const n = source.length; + let out = ""; + let i = 0; + while (i < n) { + const c = source[i]; + if (c === "/" && source[i + 1] === "*") { + const e = source.indexOf("*/", i + 2); + const stop = e < 0 ? n : e + 2; + out += " ".repeat(stop - i); + i = stop; + continue; + } + if (c === "/" && source[i + 1] === "/") { + let j = i; + while (j < n && source[j] !== "\n") j++; + out += " ".repeat(j - i); + i = j; + continue; + } + if (c === '"' || c === "'" || c === "`") { + let j = i + 1; + while (j < n && source[j] !== c) j += source[j] === "\\" ? 2 : 1; + const stop = Math.min(j + 1, n); + out += " ".repeat(stop - i); + i = stop; + continue; + } + out += c; + i++; + } + return out; +} + +// window.X (bar/category) are targeted exact strings. Function identifiers are renamed only at +// code positions, excluding method access (the leading dot) and string occurrences (via the mask). +function applyHandlerDefs(source, basename, renames) { + let out = source; + let changed = 0; + for (const name of INLINE_HANDLER_WINDOW[basename] ?? []) { + const from = `window.${name}`; + const n = out.split(from).length - 1; + out = replaceAll(out, from, `window.${renames.get(name)}`); + changed += n; + } + for (const name of INLINE_HANDLER_FUNCS[basename] ?? []) { + const masked = maskJsStrings(out); + const re = new RegExp(`(?<![\\w$.])${name}(?![\\w$])`, "g"); + out = out.replace(re, (match, offset) => { + if (masked.slice(offset, offset + name.length) !== name) return match; + changed++; + return renames.get(name); + }); + } + return { source: out, changed }; +} + +function applyHandlerAttrs(html, renames) { + let count = 0; + const out = html.replace(INLINE_HANDLER_ATTR, (match, lead, fn, tail) => { + if (!renames.has(fn)) return match; + count++; + return `${lead}${renames.get(fn)}${tail}`; + }); + return { html: out, count }; +} + +// data-tab-id is app-owned and lives only in tabs.js, as dataset.tabId and [data-tab-id='...']. +// The opaque suffix has no hyphens, so dataset.<suffix> maps cleanly to data-<suffix>. +function createTabAttr() { + return `t${randomBytes(4).toString("hex")}`; +} + +function applyTabAttr(source, attr) { + const ds = source.split("dataset.tabId").length - 1; + const kb = source.split("data-tab-id").length - 1; + if (!ds || !kb) throw new CodecPatchError(`tabs.js: expected dataset.tabId and data-tab-id, found ${ds}/${kb}. Upstream changed.`); + return replaceAll(replaceAll(source, "dataset.tabId", `dataset.${attr}`), "data-tab-id", `data-${attr}`); +} + +// Only to keep "uv" and "sj" out of the emitted JS: javascript-obfuscator leaves strings +// shorter than three characters inline. The stored value is opaque already, so the pair is +// fixed rather than per build. +const PROXY_CHOICE_VALUES = { uv: "k3d", sj: "w9p" }; +const PROXY_CHOICE_LITERAL = /(["'`])(uv|sj)\1/g; +const PROXY_CHOICE_COUNTS = { js: 9, html: 2 }; + +function applyProxyChoiceValues(source) { + let count = 0; + const out = source.replace(PROXY_CHOICE_LITERAL, (match, quote, name) => { + count++; + return `${quote}${PROXY_CHOICE_VALUES[name]}${quote}`; + }); + return { source: out, count }; +} + +// Per-build opaque page routes. build.js generates one map, writes it to the manifest for the +// server, and rewrites the clean route literals in the application JS so the navbar and every +// in-app navigation point at the same opaque paths. "/" (root) and "/play.html" (a compatibility +// alias for the games page) are deliberately left clean and are not part of this map. +const PAGE_ROUTES = ["/apps", "/games", "/tabs", "/settings"]; + +function createPageRoutes(registry) { + const map = {}; + const used = new Set(); + for (const clean of PAGE_ROUTES) { + let token; + do { + token = `/${randomItem("abcdefghijklmnopqrstuvwxyz".split(""))}${randomBytes(3).toString("hex")}`; + } while (used.has(token) || registry.paths.has(token) || registry.topDirs.has(token.slice(1))); + used.add(token); + registry.paths.add(token); + map[clean] = token; + } + return map; +} + +// Quoted-literal rewrites, so a route token can never match inside an asset path such as +// "/assets/json/apps.min.json". Both the "/x" form (pathname comparisons, navigate targets) and the +// navbar "/./x" form are covered; the bare "tabs" in launcher.js is a relative navigation target +// that must become the absolute, opaque tabs route. +function routeRewriteTable(routes) { + return [ + [`"/./games"`, `"${routes["/games"]}"`], + [`"/./apps"`, `"${routes["/apps"]}"`], + [`"/./settings"`, `"${routes["/settings"]}"`], + [`"/games"`, `"${routes["/games"]}"`], + [`"/apps"`, `"${routes["/apps"]}"`], + [`"/tabs"`, `"${routes["/tabs"]}"`], + [`"tabs"`, `"${routes["/tabs"]}"`], + ]; +} +const ROUTE_REWRITE_COUNT = 11; + +function applyRouteRewrites(source, table) { + let count = 0; + let out = source; + for (const [from, to] of table) { + const n = out.split(from).length - 1; + if (n) { + out = replaceAll(out, from, to); + count += n; + } + } + return { source: out, count }; +} + +// Build-time hardening of visible HTML text nodes. Ordinary text is rendered identically in the +// browser, but the emitted raw HTML no longer holds contiguous plaintext: every word is split +// across inert inline wrappers, with the occasional character numeric-encoded. This defeats +// substring and per text-node scans of the source. It does not defeat a classifier that strips +// tags before matching textContent, which is out of reach for any static transform. +// +// The pool is span plus valid custom-element names (each has the required hyphen). Unregistered +// custom elements render inline with no styling, so text flows contiguously and the visible result +// is byte identical. The audit in the earlier proxy-label work verified option text keeps its +// textContent, which is what the one JS reader (the cloak sort's localeCompare) depends on. +const SPLIT_WRAPPERS = ["span", "x-a", "x-b", "ab-x", "s-p"]; + +function fnv1a(str) { + let h = 2166136261; + for (let i = 0; i < str.length; i++) { + h ^= str.charCodeAt(i); + h = Math.imul(h, 16777619); + } + return h >>> 0; +} + +// An HTML entity is one indivisible unit: chunking must never split inside & or é, and +// the occasional character encoding must never re-encode an existing entity. Sticky so it can be +// anchored at a position. +const HTML_ENTITY = /&(?:#\d+|#x[\da-fA-F]+|[a-zA-Z][a-zA-Z0-9]*);/y; + +function textUnits(word) { + const units = []; + for (let i = 0; i < word.length; ) { + HTML_ENTITY.lastIndex = i; + const m = HTML_ENTITY.exec(word); + if (m && m.index === i) { + units.push(m[0]); + i += m[0].length; + } else { + units.push(word[i]); + i++; + } + } + return units; +} + +// Split one whitespace-free word into inner strings of 2 to 4 units, guaranteeing at least two +// chunks once a word is 3+ units so a real element boundary always sits inside it. Words of 1 or 2 +// units stay in a single wrapper: splitting them would be noise, and they are not fingerprints. +function chunkWord(word, seed) { + const units = textUnits(word); + if (units.length < 3) return [units.join("")]; + const chunks = []; + for (let i = 0; i < units.length; ) { + const size = 2 + ((seed + chunks.length) % 3); + chunks.push(units.slice(i, i + size).join("")); + i += size; + } + if (chunks.length < 2) { + const mid = Math.max(1, units.length >> 1); + return [units.slice(0, mid).join(""), units.slice(mid).join("")]; + } + return chunks; +} + +// Numeric-encode a single plain character inside an inner string, skipping characters that are +// already part of an entity, whitespace, or a surrogate. One call per text run keeps it occasional. +function encodeOneChar(inner, seed) { + const spots = []; + for (let i = 0; i < inner.length; ) { + HTML_ENTITY.lastIndex = i; + const m = HTML_ENTITY.exec(inner); + if (m && m.index === i) { + i += m[0].length; + continue; + } + if (!/\s/.test(inner[i]) && inner.charCodeAt(i) < 0xd800) spots.push(i); + i++; + } + if (!spots.length) return inner; + const p = spots[seed % spots.length]; + return `${inner.slice(0, p)}&#${inner.charCodeAt(p)};${inner.slice(p + 1)}`; +} + +// Harden one text run (the text between two tags). Whitespace-only runs are returned untouched, so +// minifyHtml collapses page indentation exactly as before. Every word becomes one or more wrappers; +// whitespace is folded into an adjacent wrapper so none is ever left bare between two tags, which +// minifyHtml's >\s+< rule would delete and so join two words. Detagged and decoded, the run is byte +// identical to the source. +function hardenTextRun(text) { + if (!text.trim()) return text; + const seed = fnv1a(text); + const inners = []; + let lead = ""; + for (const seg of text.match(/\s+|\S+/g)) { + if (!/\S/.test(seg)) { + if (inners.length) inners[inners.length - 1] += seg; + else lead += seg; + continue; + } + const parts = chunkWord(seg, seed); + parts[0] = lead + parts[0]; + lead = ""; + for (const part of parts) inners.push(part); + } + const entIdx = seed % inners.length; + return inners + .map((inner, i) => { + const w = SPLIT_WRAPPERS[(seed + i) % SPLIT_WRAPPERS.length]; + return `<${w}>${i === entIdx ? encodeOneChar(inner, seed) : inner}</${w}>`; + }) + .join(""); +} + +// Text that must not be wrapped: executable, presentational-verbatim, or where injected markup +// would render as literal text (title). Pulled out first so the text-node matcher can stay a flat +// regex, the same way obfuscateTextNodes relies on obfuscateHtmlMarkup having protected them. +const HARDEN_SKIP = /<(script|style|pre|code|textarea|template|title|noscript|svg)\b[\s\S]*?<\/\1>|<!--[\s\S]*?-->/gi; + +function hardenTextNodes(html) { + const skipped = []; + const guarded = html.replace(HARDEN_SKIP, block => { + const token = `<hz-skip data-i="${skipped.length}"></hz-skip>`; + skipped.push(block); + return token; + }); + let seen = 0; + let transformed = 0; + const out = guarded.replace(/>([^<>]+)</g, (match, text) => { + if (!text.trim()) return match; + seen++; + const wrapped = hardenTextRun(text); + if (wrapped !== text) transformed++; + return `>${wrapped}<`; + }); + const restored = out.replace(/<hz-skip data-i="(\d+)"><\/hz-skip>/g, (_, i) => skipped[+i]); + return { html: restored, seen, transformed }; +} + +// Visible text as a browser would read it: skip blocks gone, tags stripped, numeric entities +// decoded, whitespace collapsed. Named entities are left literal, identical on both sides of the +// comparison, so equality proves the transform changed structure only, never characters. +function visibleText(html) { + return html + .replace(HARDEN_SKIP, " ") + .replace(/<[^>]+>/g, "") + .replace(/&#(\d+);/g, (_, d) => String.fromCodePoint(+d)) + .replace(/&#x([\da-fA-F]+);/g, (_, h) => String.fromCodePoint(parseInt(h, 16))) + .replace(/\s+/g, " ") + .trim(); +} + +// Independent lower bound on wrappers the transform must emit: one per whitespace-free segment of +// every non-empty text node. If a future change silently stops covering text nodes, the emitted +// wrapper count drops below this and the build aborts. +function countHardenableSegments(html) { + let n = 0; + for (const m of html.replace(HARDEN_SKIP, " ").matchAll(/>([^<>]+)</g)) { + if (m[1].trim()) n += m[1].match(/\S+/g).length; + } + return n; +} + +// scramjet.all.js strips this with a hardcoded `e.slice(14)`, so the replacement must keep +// the same length, and stay lowercase because setAttribute lowercases. +const SCRAMJET_ATTR_PREFIX = "scramjet-attr"; +const SCRAMJET_IDB_NAME = "$scramjet"; + +function createIdentifierRenames() { + return new Map(RENAMED_IDENTIFIERS.map(name => [name, `_${randomBytes(5).toString("hex")}`])); +} + +function createScramjetStrings() { + const attr = randomItem("abcdefghijklmnopqrstuvwxyz".split("")) + randomBytes(6).toString("hex"); + if (attr.length !== SCRAMJET_ATTR_PREFIX.length) throw new Error(`attribute prefix must stay ${SCRAMJET_ATTR_PREFIX.length} chars to keep slice(14) correct, got ${attr.length}`); + return { attr, idb: `_${randomBytes(5).toString("hex")}` }; +} + +// The lookarounds stop isScramjet matching inside isScramjetEnabled. +function applyIdentifierRenames(source, renames) { + let out = source; + for (const [from, to] of renames) out = out.replace(new RegExp(`(?<![\\w$])${from.replace(/\$/g, "\\$")}(?![\\w$])`, "g"), to); + return out; +} + +function patchProxyCodecs(content, basename, proxyCodecs, scramjetGlobals) { + if (basename === "uv.config.js") { + const { codec, key } = parseCodecSpec(proxyCodecs.uv); + const uvCodec = getUrlCodecFunctions(codec, key); + content = patchOrFail(content, /encodeUrl:\s*Ultraviolet\.codec\.\w+\.encode,/, `encodeUrl: ${uvCodec.encode},`, "uv.config.js encodeUrl"); + content = patchOrFail(content, /decodeUrl:\s*Ultraviolet\.codec\.\w+\.decode,/, `decodeUrl: ${uvCodec.decode},`, "uv.config.js decodeUrl"); + } + + if (basename === "scramjet.config.js") { + const { codec, key } = parseCodecSpec(proxyCodecs.scramjet); + const sjCodec = getUrlCodecFunctions(codec, key); + const globals = Object.entries(scramjetGlobals) + .map(([name, value]) => ` ${name}: ${JSON.stringify(value)},`) + .join("\n"); + content = patchOrFail(content, /codec:\s*\{[\s\S]*?\},\s*files:/, `codec: {\n encode: ${sjCodec.encode},\n decode: ${sjCodec.decode},\n },\n globals: {\n${globals}\n },\n files:`, "scramjet.config.js codec"); + } + + return content; +} + +// sw.js importScripts six files into one scope and inline scripts share window, so the +// obfuscator's hex identifiers collide. Give each file its own prefix. +function identifiersPrefixFor(scopeKey) { + return `_${createHash("sha1").update(scopeKey).digest("hex").slice(0, 8)}_`; +} + +async function minifyVendor(source, { module, aggressive }) { + const result = await minify(source, vendorTerserOptions({ module, aggressive })); + if (!result.code) throw new Error("Terser returned empty output"); + return result.code; +} + +async function assertParses(source, { module }) { + await minify(source, { module, compress: false, mangle: false, format: { comments: true } }); +} + +async function runObfuscator(source, scopeKey) { + const minified = await minify(source, { + compress: { drop_console: false, passes: 2 }, + mangle: true, + format: { comments: false }, + }); + if (!minified.code) throw new Error("Terser returned empty output"); + + const obfuscated = JavaScriptObfuscator.obfuscate(minified.code, { + identifiersPrefix: identifiersPrefixFor(scopeKey), + compact: true, + controlFlowFlattening: true, + controlFlowFlatteningThreshold: 0.5, + deadCodeInjection: false, + debugProtection: false, + disableConsoleOutput: false, + identifierNamesGenerator: "hexadecimal", + renameGlobals: false, + selfDefending: false, + splitStrings: true, + splitStringsChunkLength: 5, + stringArray: true, + stringArrayEncoding: ["rc4"], + stringArrayThreshold: 1, + transformObjectKeys: true, + unicodeEscapeSequence: false, + }); + return obfuscated.getObfuscatedCode(); +} + +function shouldProcessInlineScript(attrs) { + if (/\bsrc\s*=/i.test(attrs)) return false; + + const typeMatch = attrs.match(/\btype\s*=\s*(["']?)([^"'\s>]+)\1/i); + if (!typeMatch) return true; + + const type = typeMatch[2].toLowerCase(); + return ["text/javascript", "application/javascript", "module"].includes(type); +} + +async function obfuscateInlineScripts(html, htmlName) { + const scripts = []; + let index = 0; + + const protectedHtml = html.replace(/<script\b([^>]*)>([\s\S]*?)<\/script>/gi, (match, attrs, source) => { + const token = `___HTML_SCRIPT_${index++}___`; + scripts.push({ token, match, attrs, source }); + return token; + }); + + const processedScripts = await Promise.all( + scripts.map(async script => { + if (!script.source.trim() || !shouldProcessInlineScript(script.attrs)) return [script.token, script.match]; + + try { + const obfuscated = await runObfuscator(script.source, `${htmlName}#${script.token}`); + return [script.token, `<script${script.attrs}>${obfuscated}</script>`]; + } catch (err) { + console.warn(chalk.yellow(` ! inline script skipped: ${err.message}`)); + return [script.token, script.match]; + } + }), + ); + + let output = protectedHtml; + // Function replacement, never a string: obfuscated code contains `$&`/`$\``/`$'`, which + // String.replace would expand. + for (const [token, script] of processedScripts) output = output.replace(token, () => script); + return output; +} + +function minifyHtml(html) { + const blocks = []; + let index = 0; + + const protectBlock = block => { + const token = `___HTML_BLOCK_${index++}___`; + blocks.push([token, block]); + return token; + }; + + let output = html + .replace(/<(script|style|pre|textarea)\b[\s\S]*?<\/\1>/gi, protectBlock) + .replace(/<!--(?!\[if\b)[\s\S]*?-->/gi, "") + .replace(/\s{2,}/g, " ") + .replace(/>\s+</g, "><") + .replace(/\s+\/>/g, "/>") + .trim(); + + for (const [token, block] of blocks) output = output.replace(token, () => block); + return output; +} + +function encodeHtmlText(text) { + return text.replace(/&(?:#\d+|#x[\da-f]+|[a-z][\da-z]+);|./gis, match => { + if (match.startsWith("&") && match.endsWith(";")) return match; + return `&#${match.codePointAt(0)};`; + }); +} + +function obfuscateTextNodes(html) { + return html.replace(/>([^<>]+)</g, (_match, text) => { + if (!text.trim()) return `>${text}<`; + return `>${encodeHtmlText(text)}<`; + }); +} + +function obfuscateAttributeValues(html) { + const valueAttrs = "alt|aria-label|class|content|crossorigin|href|id|method|name|onclick|onchange|onkeyup|placeholder|rel|src|style|title|type|value"; + const attrPattern = new RegExp(`\\s(${valueAttrs})=(["'])(.*?)\\2`, "gis"); + + return html.replace(/<([a-z][\w:-]*)([^<>]*)>/gi, (tag, name, attrs) => { + if (/^style$/i.test(name)) return tag; + + const encodedAttrs = attrs.replace(attrPattern, (_match, attrName, quote, value) => { + if (!value) return ` ${attrName}=${quote}${value}${quote}`; + return ` ${attrName}=${quote}${encodeHtmlText(value)}${quote}`; + }); + + return `<${name}${encodedAttrs}>`; + }); +} + +function obfuscateHtmlMarkup(html) { + const blocks = []; + let index = 0; + + const protectBlock = block => { + const token = `<html-obfuscation-block data-index="${index++}"></html-obfuscation-block>`; + blocks.push([token, block]); + return token; + }; + + let output = html.replace(/<(script|style|pre|textarea)\b[\s\S]*?<\/\1>/gi, protectBlock); + output = obfuscateAttributeValues(output); + output = obfuscateTextNodes(output); + + for (const [token, block] of blocks) output = output.replace(token, () => block); + return output; +} + +async function obfuscateHtml(html, htmlName) { + return obfuscateHtmlMarkup(minifyHtml(await obfuscateInlineScripts(html, htmlName))); +} + +async function collectFiles(dir, predicate) { + let entries; + try { + entries = await readdir(dir, { withFileTypes: true }); + } catch { + return []; + } + const files = []; + for (const entry of entries) { + const full = path.join(dir, entry.name); + if (entry.isDirectory()) files.push(...(await collectFiles(full, predicate))); + else if (predicate(entry.name)) files.push(full); + } + return files; +} + +const getJsFiles = dir => collectFiles(dir, name => name.endsWith(".js")); +const getHtmlFiles = dir => collectFiles(dir, name => name.endsWith(".html")); + +async function exists(filePath) { + try { + await access(filePath); + return true; + } catch { + return false; + } +} + +function vendorSpecs() { + return [ + { + id: "uv.bundle", + renameUvPrefix: true, + rewriteUvDefaults: true, + renameIdentifiers: true, + stripDiagnostics: true, + rewriteBaremuxStrings: true, + renameUltraviolet: true, + src: path.join(uvPath, "uv.bundle.js"), + old: "/assets/ultraviolet/uv.bundle.js", + ext: ".js", + globals: ["Ultraviolet", "__uv$cookies", "__uv$referrer"], + }, + { id: "uv.client", renameUvPrefix: true, renameIdentifiers: true, stripDiagnostics: true, rewriteBaremuxStrings: true, renameUltraviolet: true, src: path.join(uvPath, "uv.client.js"), old: "/assets/ultraviolet/uv.client.js", ext: ".js", globals: ["UVClient"] }, + { + id: "uv.handler", + renameUvPrefix: true, + rewriteBaremuxStrings: true, + stripUvError: true, + renameIdentifiers: true, + renameUltraviolet: true, + src: path.join(uvPath, "uv.handler.js"), + old: "/assets/ultraviolet/uv.handler.js", + ext: ".js", + globals: ["__uvHook", "Ultraviolet", "UVClient", "__uv$config", "__uv$cookies", "__uv"], + }, + { id: "uv.sw", renameUvPrefix: true, renameIdentifiers: true, renameUltraviolet: true, stripBranding: true, renameUvProperty: true, src: path.join(uvPath, "uv.sw.js"), old: "/assets/ultraviolet/uv.sw.js", ext: ".js", globals: ["UVServiceWorker", "Ultraviolet", "__uv"] }, + { + id: "uv.config", + renameIdentifiers: true, + renameUltraviolet: true, + src: path.join(SRC_DIR, "assets", "ultraviolet", "uv.config.js"), + old: "/assets/ultraviolet/uv.config.js", + ext: ".js", + // Holds codec arrows UV serializes into another realm, so Terser stays off. + minify: false, + rewritePaths: true, + rewriteScopes: true, + patchCodec: true, + globals: ["__uv$config"], + }, + { + id: "sj.all", + src: path.join(scramjetPath, "scramjet.all.js"), + old: "/assets/scramjet/scramjet.all.js", + ext: ".js", + rewriteGlobals: true, + stripScramjetBranding: true, + stripDiagnostics: true, + rewriteBaremuxStrings: true, + rewriteProtocolKeys: true, + renameIdentifiers: true, + rewriteScramjetStrings: true, + globals: ["$scramjetLoadWorker", "$scramjetLoadController", "$scramjetLoadClient", "$scramjetRequire", "$scramjetVersion", "COOKIE", "WASM"], + }, + { id: "sj.sync", src: path.join(scramjetPath, "scramjet.sync.js"), old: "/assets/scramjet/scramjet.sync.js", ext: ".js" }, + { id: "sj.wasm", src: path.join(scramjetPath, "scramjet.wasm.wasm"), old: "/assets/scramjet/scramjet.wasm.wasm", ext: ".wasm", binary: true }, + { + id: "sj.config", + src: path.join(SRC_DIR, "assets", "scramjet", "scramjet.config.js"), + old: "/assets/scramjet/scramjet.config.js", + ext: ".js", + minify: false, + rewritePaths: true, + rewriteScopes: true, + patchCodec: true, + renameIdentifiers: true, + globals: ["__scramjet$config"], + }, + { + id: "baremux", + src: path.join(baremuxPath, "index.mjs"), + old: "/baremux/index.mjs", + ext: ".mjs", + module: true, + aggressive: true, + stripDiagnostics: true, + rewriteBaremuxStrings: true, + renameIdentifiers: true, + globals: ["BareMuxConnection", "BareClient", "BareWebSocket", "WebSocketFields", "WorkerConnection", "browserSupportsTransferringStreams", "maxRedirects", "validProtocol"], + }, + { id: "baremux.worker", src: path.join(baremuxPath, "worker.js"), old: "/baremux/worker.js", ext: ".js", aggressive: true, stripDiagnostics: true, rewriteBaremuxStrings: true, globals: ["onconnect"] }, + { + id: "epoxy", + src: path.join(epoxyPath, "index.mjs"), + old: "/epoxy/index.mjs", + ext: ".mjs", + module: true, + aggressive: true, + globals: ["epoxyInfo"], + mangledAway: ["__wbg_get_imports", "getStringFromWasm", "EpoxyClientOptions"], + }, + { + id: "libcurl", + src: path.join(libcurlPath, "index.mjs"), + old: "/libcurl/index.mjs", + ext: ".mjs", + module: true, + aggressive: true, + mangledAway: ["moduleOverrides", "ENVIRONMENT_IS_WEB", "wasmBinaryFile"], + }, + ]; +} + +function browserVendorModule(manifest) { + const map = { + baremux: manifest.vendor.baremux, + baremuxWorker: manifest.vendor["baremux.worker"], + epoxy: manifest.vendor.epoxy, + libcurl: manifest.vendor.libcurl, + }; + return `self.__deps = ${JSON.stringify(map, null, 2)};\n`; +} + +function formatKb(bytes) { + return `${(bytes / 1024).toFixed(1)}kb`; +} + +async function verifyBuild({ manifest, specs, emitted, references, distJsFiles, serverRoutes = [], identifierRenames = new Map(), swLocalRenames = new Map() }) { + const failures = []; + const emittedPaths = new Set([...emitted.keys(), ...serverRoutes]); + + for (const [id, publicPath] of Object.entries(manifest.vendor)) { + const full = path.join(DIST_DIR, publicPath); + if (!(await exists(full))) failures.push(`manifest asset "${id}" -> ${publicPath} is missing from dist/`); + if (!emittedPaths.has(publicPath)) failures.push(`manifest asset "${id}" -> ${publicPath} was never emitted`); + } + + if (!emittedPaths.has(manifest.sw)) failures.push(`service worker ${manifest.sw} was never emitted`); + if (!(await exists(path.join(DIST_DIR, manifest.sw)))) failures.push(`service worker ${manifest.sw} is missing from dist/`); + + for (const [publicPath, fullPath] of emitted) { + if (!(await exists(fullPath))) failures.push(`emitted path ${publicPath} does not resolve to a file`); + } + + for (const { file, source, module } of distJsFiles) { + try { + await assertParses(source, { module }); + } catch (err) { + failures.push(`${file} does not parse: ${err.message}`); + } + } + + for (const spec of specs) { + if (!spec.globals && !spec.mangledAway && spec.minify === false) continue; + const emittedPath = manifest.vendor[spec.id]; + if (spec.binary) continue; + const source = await readFile(path.join(DIST_DIR, emittedPath), "utf8"); + + for (const identifier of spec.globals ?? []) { + if (!source.includes(identifierRenames.get(identifier) ?? identifier)) failures.push(`global "${identifier}" did not survive processing of ${spec.id} (${emittedPath})`); + } + + for (const identifier of spec.mangledAway ?? []) { + if (source.includes(identifier)) { + failures.push(`internal identifier "${identifier}" survived mangling in ${spec.id} (${emittedPath}) - mangling regressed, or upstream renamed it`); + } + } + + if (spec.minify !== false) { + const before = (await readFile(spec.src, "utf8")).length; + const after = source.length; + if (after > before * VENDOR_SIZE_TOLERANCE + 256) { + failures.push(`${spec.id} inflated: ${formatKb(before)} -> ${formatKb(after)} (limit ${(VENDOR_SIZE_TOLERANCE * 100).toFixed(0)}% + 256b)`); + } + } + } + + const swSource = await readFile(path.join(DIST_DIR, manifest.sw), "utf8"); + for (const [from, to] of swLocalRenames) { + if (swLocalPattern(from).test(swSource)) failures.push(`the local ${from} is still present in the emitted service worker ${manifest.sw}`); + if ((swSource.match(new RegExp(`(?<![\\w$])${to}(?![\\w$])`, "g")) || []).length !== SW_LOCAL_COUNTS[from]) { + failures.push(`the renamed local ${from} -> ${to} has the wrong number of references in ${manifest.sw}`); + } + } + + const maps = await collectFiles(DIST_DIR, name => name.endsWith(".map")); + for (const file of maps) failures.push(`source map shipped to production: ${path.relative(DIST_DIR, file)}`); + + for (const { file, source } of distJsFiles) { + if (source.includes("sourceMappingURL")) failures.push(`${file} still carries a sourceMappingURL comment`); + } + + let checkedReferences = 0; + for (const { file, source } of references) { + for (const prefix of RETIRED_PUBLIC_PREFIXES) { + if (source.includes(prefix)) failures.push(`${file} still references the retired public path ${prefix}`); + } + + for (const [, literal] of source.matchAll(/["'`](\/[A-Za-z0-9_\-./]*\.(?:js|mjs|wasm))["'`]/g)) { + checkedReferences++; + if (!emittedPaths.has(literal)) failures.push(`${file} references ${literal}, which is not an emitted manifest path`); + } + } + + if (failures.length) { + throw new VerificationError(`${failures.length} verification failure(s):\n${failures.map(message => ` - ${message}`).join("\n")}`); + } + return { checkedReferences }; +} + +// CDN stylesheets own the fa/material names; rc- ids reach gsap.to(), not a selector call. +const SELECTOR_KEEP = [/^fa$|^fas$|^far$|^fab$|^fa-/, /^material-symbols/, /^adsbygoogle$/, /^rc-/]; + +// Applied from a bare array literal, so renaming means guessing at ordinary strings. +const SELECTOR_KEEP_DYNAMIC = new Set(["stars", "stars2", "stars3"]); + +function isKeptSelector(name) { + return SELECTOR_KEEP.some(pattern => pattern.test(name)) || SELECTOR_KEEP_DYNAMIC.has(name); +} + +const CSS_NESTING_AT_RULES = /^@(media|supports|document|layer|container|scope|keyframes)\b/i; +// A preceding word character is allowed: `li.active` and `div#main` are selectors too. +const CSS_CLASS_TOKEN = /(?<!\\)\.(-?[_a-zA-Z][\w-]*)/g; +const CSS_ID_TOKEN = /(?<!\\)#(-?[_a-zA-Z][\w-]*)/g; + +function mapSelectorText(text, fn) { + return text + .split(/(["'][^"']*["'])/) + .map((part, index) => { + if (index % 2) return part; + return part.replace(CSS_CLASS_TOKEN, (_m, name) => `.${fn("class", name)}`).replace(CSS_ID_TOKEN, (_m, name) => `#${fn("id", name)}`); + }) + .join(""); +} + +// Conservative minifier: drops comments and collapses whitespace runs, but copies strings and +// url() verbatim, so selectors, calc() spacing, value lists, and data URIs are unchanged. A run +// of whitespace next to { } ; or , is dropped, otherwise it becomes a single space, which is +// always semantically equivalent in CSS. +function minifyCss(css) { + const n = css.length; + let out = ""; + let i = 0; + while (i < n) { + const ch = css[i]; + if (ch === "/" && css[i + 1] === "*") { + const end = css.indexOf("*/", i + 2); + i = end < 0 ? n : end + 2; + continue; + } + if (ch === '"' || ch === "'") { + let j = i + 1; + while (j < n && css[j] !== ch) j += css[j] === "\\" ? 2 : 1; + out += css.slice(i, Math.min(j + 1, n)); + i = Math.min(j + 1, n); + continue; + } + if ((ch === "u" || ch === "U") && /^url\(/i.test(css.slice(i, i + 4))) { + let j = i + 4; + while (j < n && css[j] !== ")") { + if (css[j] === '"' || css[j] === "'") { + const q = css[j++]; + while (j < n && css[j] !== q) j += css[j] === "\\" ? 2 : 1; + } + j++; + } + out += css.slice(i, Math.min(j + 1, n)); + i = Math.min(j + 1, n); + continue; + } + if (ch === " " || ch === "\t" || ch === "\n" || ch === "\r" || ch === "\f") { + let j = i; + while (j < n && (css[j] === " " || css[j] === "\t" || css[j] === "\n" || css[j] === "\r" || css[j] === "\f")) j++; + const prev = out[out.length - 1] || ""; + const next = css[j] || ""; + if (prev && next && !"{};,".includes(prev) && !"{};,".includes(next)) out += " "; + i = j; + continue; + } + if (ch === "}" && out[out.length - 1] === ";") out = out.slice(0, -1); + out += ch; + i++; + } + return out.trim(); +} + +function transformCss(css, fn) { + let out = ""; + // Unmappable, or "/* based on codepen.io/... */" yields a class named io. + let parts = []; + const stack = []; + let i = 0; + + const inDeclarations = () => stack[stack.length - 1] === "declarations"; + const preludeText = () => parts.map(part => part.text).join(""); + const emitPrelude = at => { + const text = preludeText(); + if (at === "rule") out += parts.map(part => (part.map ? mapSelectorText(part.text, fn) : part.text)).join(""); + else out += text; + parts = []; + return text; + }; + const push = (text, map) => { + if (inDeclarations()) { + out += text; + return; + } + const last = parts[parts.length - 1]; + if (last?.map && map) last.text += text; + else parts.push({ text, map }); + }; + + while (i < css.length) { + const ch = css[i]; + + if (ch === "/" && css[i + 1] === "*") { + const end = css.indexOf("*/", i + 2); + const stop = end < 0 ? css.length : end + 2; + push(css.slice(i, stop), false); + i = stop; + continue; + } + + if (ch === '"' || ch === "'") { + let j = i + 1; + while (j < css.length && css[j] !== ch) j += css[j] === "\\" ? 2 : 1; + push(css.slice(i, Math.min(j + 1, css.length)), false); + i = j + 1; + continue; + } + + if (ch === "{") { + if (inDeclarations()) { + out += ch; + stack.push("declarations"); + } else { + const trimmed = preludeText().trim(); + const nesting = CSS_NESTING_AT_RULES.test(trimmed); + emitPrelude(nesting || !trimmed.length ? "verbatim" : "rule"); + out += ch; + stack.push(nesting ? "container" : "declarations"); + } + i++; + continue; + } + + if (ch === "}") { + emitPrelude(preludeText().trim() && !inDeclarations() ? "rule" : "verbatim"); + stack.pop(); + out += ch; + i++; + continue; + } + + push(ch, true); + i++; + } + + emitPrelude(preludeText().trim() ? "rule" : "verbatim"); + return out; +} + +function transformMarkupAttrs(text, fn) { + return text + .replace( + /(\sclass\s*=\s*)(["'])([^"']*)\2/gi, + (_m, lead, quote, value) => + `${lead}${quote}${value + .split(/(\s+)/) + .map(token => (token.trim() ? fn("class", token) : token)) + .join("")}${quote}`, + ) + .replace(/(\sid\s*=\s*)(["'])([^"']*)\2/gi, (_m, lead, quote, value) => `${lead}${quote}${value.trim() ? fn("id", value.trim()) : value}${quote}`); +} + +// Quotes stay inside the class, or `.column[data-x="${i}"]` never matches. +const QUOTED = `((?:\\\\.|(?!\\2)[^\\\\])*)\\2`; +const SELECTOR_CALLS = new RegExp(`\\.(querySelectorAll|querySelector|closest|matches)\\s*\\(\\s*(["'\`])${QUOTED}`, "g"); +const ID_CALLS = new RegExp(`\\.getElementById\\s*\\(\\s*()(["'\`])${QUOTED}`, "g"); +const CLASS_NAME_CALLS = new RegExp(`\\.getElementsByClassName\\s*\\(\\s*()(["'\`])${QUOTED}`, "g"); +const CLASS_LIST_CALLS = /\.classList\s*\.\s*(?:add|remove|toggle|contains|replace)\s*\(([^)]*)\)/g; +const CLASS_NAME_ASSIGN = new RegExp(`\\.className\\s*=\\s*()(["'\`])${QUOTED}`, "g"); +const ID_ASSIGN = new RegExp(`\\.id\\s*=\\s*()(["'\`])${QUOTED}`, "g"); + +const mapClassList = (value, fn) => + value + .split(/(\s+)/) + .map(token => (token.trim() ? fn("class", token) : token)) + .join(""); + +function transformJsSelectors(js, fn) { + let out = js; + out = out.replace(SELECTOR_CALLS, (_m, method, quote, selector) => `.${method}(${quote}${mapSelectorText(selector, fn)}${quote}`); + out = out.replace(ID_CALLS, (_m, _pad, quote, name) => `.getElementById(${quote}${fn("id", name)}${quote}`); + out = out.replace(CLASS_NAME_CALLS, (_m, _pad, quote, name) => `.getElementsByClassName(${quote}${fn("class", name)}${quote}`); + out = out.replace(CLASS_LIST_CALLS, (m, args) => + m.replace( + args, + args.replace(/(["'])([^"']+)\1/g, (_s, quote, name) => `${quote}${fn("class", name)}${quote}`), + ), + ); + out = out.replace(CLASS_NAME_ASSIGN, (_m, _pad, quote, value) => `.className = ${quote}${mapClassList(value, fn)}${quote}`); + out = out.replace(ID_ASSIGN, (_m, _pad, quote, name) => `.id = ${quote}${fn("id", name)}${quote}`); + return transformMarkupAttrs(out, fn); +} + +// Deliberately not sharing the rewrite regexes, so a construct they miss is still caught. +// Input must be comment-free, or an apostrophe in prose reads as a string opener. +const JS_STRING_LITERAL = /(["'`])((?:\\.|(?!\1)[^\\])*)\1/g; + +async function stripJsComments(js) { + const result = await minify(js, { compress: false, mangle: false, format: { comments: false } }); + return result.code ?? js; +} + +function findStaleSelectorStrings(js, maps) { + const stale = new Set(); + for (const [, , value] of js.matchAll(JS_STRING_LITERAL)) { + if (!/[.#][a-zA-Z_-]/.test(value)) continue; + for (const [, name] of value.matchAll(CSS_CLASS_TOKEN)) if (maps.class.has(name)) stale.add(`class .${name}`); + for (const [, name] of value.matchAll(CSS_ID_TOKEN)) if (maps.id.has(name)) stale.add(`id #${name}`); + } + return stale; +} + +function findStaleSelectorsInCss(css, maps) { + const stale = new Set(); + const unquoted = css.replace(/\/\*[\s\S]*?\*\//g, "").replace(/(["'])(?:\\.|(?!\1)[^\\])*\1/g, '""'); + for (const [, name] of unquoted.matchAll(CSS_CLASS_TOKEN)) if (maps.class.has(name)) stale.add(`class .${name}`); + for (const [, name] of unquoted.matchAll(CSS_ID_TOKEN)) if (maps.id.has(name)) stale.add(`id #${name}`); + return stale; +} + +const GTAG_LOADER = /[ \t]*<script async src="https:\/\/www\.googletagmanager\.com\/gtag\/js\?id=(G-[A-Z0-9]+)"><\/script>\r?\n/; +const GTAG_BOOTSTRAP = /[ \t]*<script>\s*window\.dataLayer[\s\S]*?gtag\("config",[\s\S]*?<\/script>\r?\n/; +const GTAG_MARKER = /[ \t]*<!--\s*DO NOT REMOVE\s*-->\r?\n/g; + +// Keeps the measurement id out of the served HTML. It still travels in the proxied script +// body, so this hides the tag from source, not from the network. +function replaceAnalytics(html, loaderPath) { + const loader = html.match(GTAG_LOADER); + if (!loader) return { html, id: null }; + return { + id: loader[1], + html: html.replace(GTAG_LOADER, ` <script async src="${loaderPath}"></script>\n`).replace(GTAG_BOOTSTRAP, "").replace(GTAG_MARKER, ""), + }; +} + +async function obfuscateSelectors() { + const cssFiles = await collectFiles(DIST_DIR, name => name.endsWith(".css")); + const htmlFiles = await getHtmlFiles(DIST_DIR); + const jsFiles = await getJsFiles(JS_DIR); + + const read = async file => ({ file, source: await readFile(file, "utf8") }); + const css = await Promise.all(cssFiles.map(read)); + const html = await Promise.all(htmlFiles.map(read)); + const js = await Promise.all(jsFiles.map(read)); + + const seen = { class: new Set(), id: new Set() }; + const kept = new Set(); + const collect = (type, name) => { + if (!name) return name; + if (isKeptSelector(name)) kept.add(name); + else seen[type].add(name); + return name; + }; + + for (const { source } of css) transformCss(source, collect); + for (const { source } of html) transformMarkupAttrs(source, collect); + for (const { source } of js) transformJsSelectors(source, collect); + + const used = new Set(); + const nextIdent = () => { + for (;;) { + const ident = `${randomItem("abcdefghijklmnopqrstuvwxyz".split(""))}${randomBytes(3).toString("hex").slice(0, 4)}`; + if (!used.has(ident)) { + used.add(ident); + return ident; + } + } + }; + + const maps = { class: new Map(), id: new Map() }; + for (const type of ["class", "id"]) for (const name of [...seen[type]].sort()) maps[type].set(name, nextIdent()); + + const apply = (type, name) => maps[type].get(name) ?? name; + + await Promise.all([...css.map(({ file, source }) => writeFile(file, transformCss(source, apply), "utf8")), ...html.map(({ file, source }) => writeFile(file, transformMarkupAttrs(source, apply), "utf8")), ...js.map(({ file, source }) => writeFile(file, transformJsSelectors(source, apply), "utf8"))]); + + const leaked = new Set(); + const recheck = (type, name) => { + if (maps[type].has(name)) leaked.add(`${type} ${name}`); + return name; + }; + for (const file of await collectFiles(DIST_DIR, name => name.endsWith(".css"))) { + const source = await readFile(file, "utf8"); + transformCss(source, recheck); + for (const entry of findStaleSelectorsInCss(source, maps)) leaked.add(`${path.basename(file)}: ${entry}`); + } + for (const file of await getHtmlFiles(DIST_DIR)) transformMarkupAttrs(await readFile(file, "utf8"), recheck); + for (const file of await getJsFiles(JS_DIR)) { + const source = await readFile(file, "utf8"); + transformJsSelectors(source, recheck); + for (const entry of findStaleSelectorStrings(await stripJsComments(source), maps)) leaked.add(`${path.basename(file)}: ${entry}`); + } + + return { maps, kept: [...kept].sort(), leaked: [...leaked].sort() }; +} + +async function build() { + console.log("Cleaning dist/..."); + await rm(DIST_DIR, { recursive: true, force: true }); + + console.log("Copying static/ -> dist/..."); + await cp(SRC_DIR, DIST_DIR, { recursive: true }); + + console.log(OBFUSCATE ? chalk.yellow("Obfuscation: ON") : chalk.yellow("Obfuscation: OFF (rename + rewrite only)")); + + const selectors = await obfuscateSelectors(); + console.log(`\nSelectors: ${selectors.maps.class.size} classes, ${selectors.maps.id.size} ids obfuscated`); + if (selectors.kept.length) console.log(chalk.gray(` kept (externally owned or not statically resolvable): ${selectors.kept.join(", ")}`)); + if (selectors.leaked.length) { + console.error(chalk.red(`\nAborting: ${selectors.leaked.length} selector reference(s) were renamed in one file but not another.`)); + for (const entry of selectors.leaked) console.error(chalk.red(` - ${entry}`)); + process.exit(1); + } + + const registry = new PathRegistry(); + + const uvBase = randomWord(); + const scramjetSub = randomWord(); + registry.reserveTopDir(uvBase); + + const NEW_UV_SCOPE = `/${uvBase}/`; + const NEW_SCRAMJET_SCOPE = `/${uvBase}/${scramjetSub}/`; + const proxyCodecs = createProxyCodecs(); + const scramjetGlobals = createScramjetGlobals(); + const identifierRenames = createIdentifierRenames(); + const protocolKeys = createScramjetProtocolKeys(); + const baremuxStrings = createBaremuxStrings(); + const ultravioletName = `_${randomBytes(5).toString("hex")}`; + const uvPropertyName = `_${randomBytes(5).toString("hex")}`; + const uvPrefixName = `_${randomBytes(4).toString("hex")}`; + const scramjetStrings = createScramjetStrings(); + const catalogueKey = createCatalogueKey(); + const pageRoutes = createPageRoutes(registry); + console.log( + `Page routes: ${Object.entries(pageRoutes) + .map(([from, to]) => `${from} -> ${to}`) + .join(", ")}`, + ); + console.log(`Scramjet identifiers: ${[...identifierRenames].map(([from, to]) => `${from} -> ${to}`).join(", ")}`); + console.log(`Proxy selector values: ${JSON.stringify(PROXY_CHOICE_VALUES)}`); + console.log(`Scramjet protocol keys: ${protocolKeys.map(([from, to]) => `${from} -> ${to}`).join(", ")}`); + console.log(`bare-mux strings: ${baremuxStrings.map(([from, to]) => `${from} -> ${to}`).join(", ")}`); + console.log(`Scramjet strings: attr ${SCRAMJET_ATTR_PREFIX} -> ${scramjetStrings.attr}, idb ${SCRAMJET_IDB_NAME} -> ${scramjetStrings.idb}`); + + const manifest = { + build: randomBytes(4).toString("hex"), + scopes: { uv: NEW_UV_SCOPE, scramjet: NEW_SCRAMJET_SCOPE }, + sw: null, + routes: pageRoutes, + vendor: {}, + }; + + const specs = vendorSpecs(); + for (const spec of specs) { + spec.publicPath = registry.file(spec.ext); + manifest.vendor[spec.id] = spec.publicPath; + } + + await writeFile(path.join(JS_DIR, "vendor.js"), browserVendorModule(manifest), "utf8"); + + const jsPublicDir = registry.dir(); + const appPlan = new Map(); + for (const filePath of await getJsFiles(JS_DIR)) { + const publicPath = registry.file(".js", jsPublicDir); + appPlan.set(filePath, { basename: path.basename(filePath), publicPath, fullPath: path.join(DIST_DIR, publicPath) }); + } + + const swSource = path.join(DIST_DIR, "sw.js"); + manifest.sw = registry.rootFile(".js"); + appPlan.set(swSource, { basename: "sw.js", publicPath: manifest.sw, fullPath: path.join(DIST_DIR, manifest.sw) }); + + // apps.json and games.json are byte-equivalent duplicates of the .min files that nothing + // fetches, so they are dropped rather than shipped as a second plaintext copy. + for (const name of UNUSED_JSON) await rm(path.join(DIST_DIR, "assets", "json", name), { force: true }); + + const jsonMoves = new Map(); + for (const name of RANDOMIZED_JSON) { + const source = path.join(DIST_DIR, "assets", "json", name); + if (!(await exists(source))) throw new Error(`expected dataset ${name} is missing from dist/assets/json`); + jsonMoves.set(source, registry.file(".json")); + } + + for (const name of UNUSED_CSS) await rm(path.join(DIST_DIR, name), { force: true }); + const cssMoves = new Map(); + const cssByOldPublic = new Map(); + for (const source of await collectFiles(DIST_DIR, name => name.endsWith(".css"))) { + const newPublic = registry.file(".css"); + cssMoves.set(source, newPublic); + cssByOldPublic.set(`/${path.relative(DIST_DIR, source).split(path.sep).join("/")}`, newPublic); + } + const palettePublic = cssByOldPublic.get("/assets/css/themes/catppuccin/palette.css"); + + const rewriteMap = new Map(); + for (const spec of specs) { + for (const variant of pathVariants(spec.old)) rewriteMap.set(variant, spec.publicPath); + } + for (const [source, publicPath] of jsonMoves) { + for (const variant of pathVariants(`/${path.relative(DIST_DIR, source).split(path.sep).join("/")}`)) rewriteMap.set(variant, publicPath); + } + for (const [oldPublic, newPublic] of cssByOldPublic) { + for (const variant of pathVariants(oldPublic)) rewriteMap.set(variant, newPublic); + } + for (const [filePath, entry] of appPlan) { + if (filePath === swSource) { + for (const variant of pathVariants("/sw.js", { bare: false, parent: true })) rewriteMap.set(variant, entry.publicPath); + } else { + const oldPublic = `/${path.relative(DIST_DIR, filePath).split(path.sep).join("/")}`; + for (const variant of pathVariants(oldPublic)) rewriteMap.set(variant, entry.publicPath); + } + } + const rewrites = orderRewrites(rewriteMap); + + const scopeRewrites = [ + [OLD_SCRAMJET_SCOPE, NEW_SCRAMJET_SCOPE], + [OLD_UV_SCOPE, NEW_UV_SCOPE], + ]; + + console.log(`\nScope paths:`); + console.log(` ${OLD_UV_SCOPE} -> ${NEW_UV_SCOPE}`); + console.log(` ${OLD_SCRAMJET_SCOPE} -> ${NEW_SCRAMJET_SCOPE}`); + console.log(`\nURL codecs:`); + console.log(` ultraviolet: ${proxyCodecs.uv}`); + console.log(` scramjet: ${proxyCodecs.scramjet}`); + + const emitted = new Map(); + const references = []; + + for (const [source, publicPath] of jsonMoves) { + const destination = path.join(DIST_DIR, publicPath); + await mkdir(path.dirname(destination), { recursive: true }); + await writeFile(destination, encodeCatalogue(await readFile(source, "utf8"), catalogueKey), "utf8"); + await rm(source); + emitted.set(publicPath, destination); + console.log(chalk.green(` + ${path.basename(source)} -> ${publicPath}`)); + } + + let cssIn = 0; + let cssOut = 0; + for (const [source, newPublic] of cssMoves) { + const destination = path.join(DIST_DIR, newPublic); + await mkdir(path.dirname(destination), { recursive: true }); + let css = await readFile(source, "utf8"); + cssIn += css.length; + // The catppuccin themes @import palette.css by relative path; repoint it at the moved file. + if (palettePublic) css = css.replace(/@import\s+url\(\s*(["']?)palette\.css\1\s*\)/g, `@import url("${palettePublic}")`); + css = minifyCss(css); + cssOut += css.length; + await writeFile(destination, css, "utf8"); + await rm(source); + emitted.set(newPublic, destination); + } + await rm(path.join(DIST_DIR, "assets", "css"), { recursive: true, force: true }); + console.log(`\nCSS: ${cssMoves.size} files -> randomized paths, minified ${formatKb(cssIn)} -> ${formatKb(cssOut)}`); + + console.log(`\nVendor assets:\n`); + for (const spec of specs) { + const destination = path.join(DIST_DIR, spec.publicPath); + await mkdir(path.dirname(destination), { recursive: true }); + + if (spec.binary) { + const buffer = await readFile(spec.src); + await writeFile(destination, buffer); + emitted.set(spec.publicPath, destination); + console.log(chalk.green(` + ${spec.id} -> ${spec.publicPath} (${formatKb(buffer.length)}, copied)`)); + continue; + } + + let source = await readFile(spec.src, "utf8"); + const sizeIn = Buffer.byteLength(source); + + if (spec.patchCodec) source = patchProxyCodecs(source, path.basename(spec.src), proxyCodecs, scramjetGlobals); + if (spec.rewriteGlobals) { + for (const [name, fallback] of Object.entries(SCRAMJET_GLOBAL_DEFAULTS)) { + const literal = `"${fallback}"`; + if (!source.includes(literal)) throw new CodecPatchError(`scramjet.all.js: default global ${name} (${fallback}) not found. Upstream changed - update SCRAMJET_GLOBAL_DEFAULTS.`); + source = replaceAll(source, literal, `"${scramjetGlobals[name]}"`); + } + source = applyScramjetDefaults(source, specs, NEW_SCRAMJET_SCOPE); + } + // Before the identifier pass, so the branding patterns can match $scramjetVersion. + if (spec.stripScramjetBranding) source = stripScramjetBranding(source); + if (spec.stripDiagnostics) source = stripDiagnosticStrings(source, spec.id); + // After the diagnostic strip, whose literals carry bare-mux occurrences of their own. + if (spec.rewriteBaremuxStrings) source = applyBaremuxStrings(source, spec.id, baremuxStrings); + if (spec.rewriteProtocolKeys) source = applyScramjetProtocolKeys(source, protocolKeys); + if (spec.renameIdentifiers) source = applyIdentifierRenames(source, identifierRenames); + if (spec.stripBranding) source = stripUltravioletBranding(source); + if (spec.renameUltraviolet) source = applyUltravioletRename(source, ultravioletName); + if (spec.renameUvProperty) source = applyUvPropertyRename(source, uvPropertyName); + if (spec.renameUvPrefix) source = applyUvPrefixRename(source, uvPrefixName); + if (spec.rewriteUvDefaults) source = applyUvDefaultPaths(source, specs); + if (spec.stripUvError) source = stripUvErrorMessage(source); + if (spec.rewriteScramjetStrings) { + for (const [literal, label] of [ + [SCRAMJET_ATTR_PREFIX, "attribute prefix"], + [`"${SCRAMJET_IDB_NAME}"`, "IndexedDB name"], + ]) { + if (!source.includes(literal)) throw new CodecPatchError(`scramjet.all.js: ${label} ${literal} not found. Upstream changed.`); + } + source = replaceAll(source, SCRAMJET_ATTR_PREFIX, scramjetStrings.attr); + source = replaceAll(source, `"${SCRAMJET_IDB_NAME}"`, `"${scramjetStrings.idb}"`); + } + if (spec.rewriteScopes) for (const [from, to] of scopeRewrites) source = replaceAll(source, from, to); + if (spec.rewritePaths) { + source = applyRewrites(source, rewrites); + references.push({ file: `${spec.id} (${spec.publicPath})`, source }); + } + + const minified = spec.minify === false ? source : await minifyVendor(source, { module: Boolean(spec.module), aggressive: Boolean(spec.aggressive) }); + await writeFile(destination, minified, "utf8"); + emitted.set(spec.publicPath, destination); + + const sizeOut = Buffer.byteLength(minified); + const delta = spec.minify === false ? "terser off" : `${(((sizeIn - sizeOut) / sizeIn) * 100).toFixed(1)}% smaller`; + console.log(chalk.green(` + ${spec.id} -> ${spec.publicPath} (${formatKb(sizeIn)} -> ${formatKb(sizeOut)}, ${delta})`)); + } + + await rm(path.join(DIST_DIR, "assets", "ultraviolet"), { recursive: true, force: true }); + await rm(path.join(DIST_DIR, "assets", "scramjet"), { recursive: true, force: true }); + + console.log(`\nApplication JS -> /${jsPublicDir}\n`); + + let failed = 0; + const codecFailures = []; + const swLocalRenames = createSwLocalRenames(); + const handlerRenames = createHandlerRenames(); + const tabAttr = createTabAttr(); + let handlerJsCount = 0; + let handlerHtmlCount = 0; + let proxyChoiceJs = 0; + let routeRewriteJs = 0; + const routeTable = routeRewriteTable(pageRoutes); + + await Promise.all( + [...appPlan.entries()].map(async ([filePath, { basename, publicPath, fullPath }]) => { + try { + let output = await readFile(filePath, "utf8"); + for (const [from, to] of scopeRewrites) output = replaceAll(output, from, to); + output = applyRewrites(output, rewrites); + output = applyIdentifierRenames(output, identifierRenames); + if (basename === "sw.js") output = applySwLocalRenames(output, swLocalRenames); + const proxyChoice = applyProxyChoiceValues(output); + output = proxyChoice.source; + proxyChoiceJs += proxyChoice.count; + const routeChange = applyRouteRewrites(output, routeTable); + output = routeChange.source; + routeRewriteJs += routeChange.count; + const handlerDefs = applyHandlerDefs(output, basename, handlerRenames); + output = handlerDefs.source; + handlerJsCount += handlerDefs.changed; + if (basename === "tabs.js") output = applyTabAttr(output, tabAttr); + if (basename === "launcher.js") output = patchOrFail(output, /const CATALOGUE_KEY = \[0\];/, `const CATALOGUE_KEY = ${JSON.stringify(catalogueKey)};`, "launcher.js catalogue key"); + references.push({ file: `${basename} (${publicPath})`, source: output }); + + const terserOnly = TERSER_ONLY.has(basename); + if (OBFUSCATE) output = terserOnly ? await minifyVendor(output, { module: false }) : await runObfuscator(output, basename); + + await mkdir(path.dirname(fullPath), { recursive: true }); + await writeFile(fullPath, output, "utf8"); + await rm(filePath); + emitted.set(publicPath, fullPath); + + const tag = !OBFUSCATE ? "(renamed)" : terserOnly ? "(terser only)" : "(obfuscated)"; + console.log(chalk.green(` + ${basename} -> ${publicPath} ${tag}`)); + } catch (err) { + if (err instanceof CodecPatchError) codecFailures.push(err.message); + console.error(chalk.red(` x ${basename}: ${err.message}`)); + failed++; + } + }), + ); + + if (codecFailures.length) { + console.error(chalk.red("\nAborting: URL codec patching failed.")); + console.error(chalk.red("The client and the proxy would encode/decode with mismatched keys, breaking every proxied URL.\n")); + for (const message of codecFailures) console.error(chalk.red(` - ${message}`)); + process.exit(1); + } + if (failed) throw new Error(`${failed} file(s) failed to process`); + if (proxyChoiceJs !== PROXY_CHOICE_COUNTS.js) throw new Error(`expected ${PROXY_CHOICE_COUNTS.js} proxy selector literals in application JS, replaced ${proxyChoiceJs}. Update PROXY_CHOICE_COUNTS.`); + if (routeRewriteJs !== ROUTE_REWRITE_COUNT) throw new Error(`expected ${ROUTE_REWRITE_COUNT} page-route literals in application JS, rewrote ${routeRewriteJs}. Upstream changed.`); + for (const ref of references) { + if (!ref.file.includes(".js")) continue; + for (const stale of ['"/apps"', '"/games"', '"/tabs"', '"/./apps"', '"/./games"', '"/./settings"']) { + if (ref.source.includes(stale)) throw new Error(`stale clean page-route literal ${stale} left in ${ref.file}`); + } + } + if (handlerJsCount !== INLINE_HANDLER_JS_COUNT) throw new Error(`expected ${INLINE_HANDLER_JS_COUNT} inline-handler identifier renames in JS, made ${handlerJsCount}. Upstream changed.`); + + await rm(JS_DIR, { recursive: true, force: true }); + + const htmlFiles = await getHtmlFiles(DIST_DIR); + const analyticsPaths = { + loader: registry.file(".js"), + transport: `/${registry.dir()}`, + sink: registry.file(""), + param: randomItem(FILENAMES).slice(0, 2), + key: Array.from(randomBytes(8)), + }; + const analyticsIds = new Set(); + let proxyChoiceHtml = 0; + const hardenStats = []; + const WRAPPER_OPEN = /<(?:span|x-a|x-b|ab-x|s-p)>/g; + const versionInfo = await resolveVersionInfo(); + let versionInjections = 0; + console.log(`Settings version card: ${versionInfo.version ? `v${versionInfo.version}` : "-"} / ${versionInfo.updated ?? "-"}`); + console.log(`\nUpdating ${htmlFiles.length} HTML files${OBFUSCATE_HTML ? " + obfuscating" : ""}...\n`); + + await Promise.all( + htmlFiles.map(async htmlPath => { + const name = path.relative(DIST_DIR, htmlPath).split(path.sep).join("/"); + let html = await readFile(htmlPath, "utf8"); + for (const [from, to] of scopeRewrites) html = replaceAll(html, from, to); + html = applyRewrites(html, rewrites); + + const proxyChoice = applyProxyChoiceValues(html); + html = proxyChoice.source; + proxyChoiceHtml += proxyChoice.count; + + const handlerAttrs = applyHandlerAttrs(html, handlerRenames); + html = handlerAttrs.html; + handlerHtmlCount += handlerAttrs.count; + + if (name === "settings.html") { + const injected = injectVersionInfo(html, versionInfo); + html = injected.html; + versionInjections += injected.count; + } + + const beforeHarden = html; + const hardened = hardenTextNodes(html); + html = hardened.html; + const segments = countHardenableSegments(beforeHarden); + const wrappersBefore = (beforeHarden.match(WRAPPER_OPEN) || []).length; + const wrappersAfter = (html.match(WRAPPER_OPEN) || []).length; + const wrappersAdded = wrappersAfter - wrappersBefore; + if (visibleText(beforeHarden) !== visibleText(html)) throw new Error(`${name}: text hardening altered visible text. Aborting.`); + if (wrappersAdded < segments) throw new Error(`${name}: text hardening under-covered, ${wrappersAdded} wrappers for ${segments} text segments. Upstream changed.`); + hardenStats.push({ name, seen: hardened.seen, transformed: hardened.transformed, segments, wrappersAdded }); + + const analytics = replaceAnalytics(html, analyticsPaths.loader); + html = analytics.html; + if (analytics.id) analyticsIds.add(analytics.id); + + references.push({ file: name, source: html }); + + if (OBFUSCATE_HTML) html = await obfuscateHtml(html, name); + await writeFile(htmlPath, html, "utf8"); + console.log(chalk.green(` + ${name}${OBFUSCATE_HTML ? " (html-obfuscated)" : ""}`)); + }), + ); + + if (proxyChoiceHtml !== PROXY_CHOICE_COUNTS.html) throw new Error(`expected ${PROXY_CHOICE_COUNTS.html} proxy selector literals in HTML, replaced ${proxyChoiceHtml}. Update PROXY_CHOICE_COUNTS.`); + if (handlerHtmlCount !== INLINE_HANDLER_HTML_COUNT) throw new Error(`expected ${INLINE_HANDLER_HTML_COUNT} inline-handler attributes in HTML, rewrote ${handlerHtmlCount}. Upstream changed.`); + if (versionInjections !== VERSION_TOKEN_COUNT) throw new Error(`expected ${VERSION_TOKEN_COUNT} version tokens injected into settings.html, injected ${versionInjections}. Upstream changed.`); + for (const s of hardenStats.sort((a, b) => a.name.localeCompare(b.name))) console.log(` text hardening: ${s.name} -> ${s.transformed}/${s.seen} nodes, ${s.wrappersAdded} wrappers`); + if (analyticsIds.size > 1) throw new Error(`HTML pages disagree on the analytics id: ${[...analyticsIds].join(", ")}`); + if (analyticsIds.size === 1) { + manifest.analytics = { id: [...analyticsIds][0], ...analyticsPaths }; + console.log(`\nAnalytics: proxied via ${analyticsPaths.loader}, hits to ${analyticsPaths.transport}/g/collect`); + } else { + console.log(chalk.yellow("\nAnalytics: no gtag block found in any page, nothing proxied")); + } + + await mkdir(RUNTIME_DIR, { recursive: true }); + await writeFile(path.join(RUNTIME_DIR, "vendor-map.cjs"), `"use strict";\n// Generated by build.js on every build. Do not edit; do not serve.\nmodule.exports = ${JSON.stringify(manifest, null, 2)};\n`, "utf8"); + + console.log("\nVerifying build..."); + const distJsFiles = []; + for (const file of await collectFiles(DIST_DIR, name => name.endsWith(".js") || name.endsWith(".mjs"))) { + if (file.startsWith(RUNTIME_DIR)) continue; + distJsFiles.push({ file: path.relative(DIST_DIR, file).split(path.sep).join("/"), source: await readFile(file, "utf8"), module: file.endsWith(".mjs") }); + } + + const gateRenames = new Map([...identifierRenames, ["Ultraviolet", ultravioletName]]); + for (const spec of specs) for (const name of spec.globals ?? []) if (name.startsWith(UV_PREFIX) && !gateRenames.has(name)) gateRenames.set(name, name.replace(UV_PREFIX, uvPrefixName)); + const { checkedReferences } = await verifyBuild({ manifest, specs, emitted, references, distJsFiles, serverRoutes: manifest.analytics ? [manifest.analytics.loader] : [], identifierRenames: gateRenames, swLocalRenames }); + console.log(chalk.green(` all checks passed (${emitted.size} emitted assets, ${distJsFiles.length} scripts parsed, ${checkedReferences} asset references resolved across ${references.length} files)`)); + + console.log(chalk.green("\nBuild complete -> dist/")); + console.log(chalk.blue(`\nBuild id: ${manifest.build} scope: ${NEW_UV_SCOPE} scramjet: ${NEW_SCRAMJET_SCOPE} sw: ${manifest.sw}`)); +} + +build().catch(err => { + if (err instanceof VerificationError) { + console.error(chalk.red("\nBuild verification failed:\n")); + console.error(chalk.red(err.message)); + console.error(chalk.gray("\ndist/ is incomplete and will be rebuilt from static/ on the next run.\n")); + } else { + console.error(chalk.red("\nBuild failed:"), err); + } + process.exit(1); +}); diff --git a/src/games.js b/src/games.js new file mode 100644 index 0000000000..ba0353d55f --- /dev/null +++ b/src/games.js @@ -0,0 +1,65 @@ +import path from "node:path"; +import rateLimit from "express-rate-limit"; +import mime from "mime"; + +// Game asset stores mirrored from GitHub. Requests to /gh-games/<n>/... are proxied to the +// matching raw.githubusercontent base so the client never talks to github.com directly. +const ghGamesBases = { + "/gh-games/1/": "https://raw.githubusercontent.com/qrs/x/fixy/", + "/gh-games/2/": "https://raw.githubusercontent.com/3v1/V5-Assets/main/", + "/gh-games/3/": "https://raw.githubusercontent.com/3v1/V5-Retro/master/", + "/gh-games/4/": "https://raw.githubusercontent.com/xbubbo/V6-Assets/main/", +}; +const noMimeExts = new Set([".unityweb"]); + +const ghGamesLimiter = rateLimit({ + windowMs: 60 * 1000, + max: 50, + standardHeaders: true, + legacyHeaders: false, + message: "Too many requests, please try again later.", +}); + +export function mountGhGames(app) { + app.get("/gh-games/:path(*)", ghGamesLimiter, async (req, res, next) => { + try { + const reqPath = "/gh-games/" + req.params.path; + let reqTarget; + for (const [prefix, baseUrl] of Object.entries(ghGamesBases)) { + if (reqPath.startsWith(prefix)) { + reqTarget = baseUrl + reqPath.slice(prefix.length); + break; + } + } + if (!reqTarget) return next(); + + const upstreamHeaders = {}; + if (req.headers["if-none-match"]) { + upstreamHeaders["If-None-Match"] = req.headers["if-none-match"]; + } + + const asset = await fetch(reqTarget, { headers: upstreamHeaders }); + + if (asset.status === 304) return res.sendStatus(304); + if (!asset.ok) return next(); + + const data = Buffer.from(await asset.arrayBuffer()); + const ext = path.extname(reqTarget); + const contentType = noMimeExts.has(ext) ? "application/octet-stream" : mime.getType(ext); + + const etag = asset.headers.get("etag"); + const lastModified = asset.headers.get("last-modified"); + + res.writeHead(200, { + "Content-Type": contentType, + "Cache-Control": "public, max-age=31536000, immutable", + ...(etag && { ETag: etag }), + ...(lastModified && { "Last-Modified": lastModified }), + }); + res.end(data); + } catch (error) { + console.error("Error fetching asset:", error); + res.status(500).type("text/html").send("Error fetching the asset"); + } + }); +} diff --git a/src/server.js b/src/server.js new file mode 100644 index 0000000000..f63c634cfa --- /dev/null +++ b/src/server.js @@ -0,0 +1,150 @@ +import { existsSync, readFileSync } from "node:fs"; +import http from "node:http"; +import { createRequire } from "node:module"; +import path from "node:path"; +import { server as wisp } from "@mercuryworkshop/wisp-js/server"; +import chalk from "chalk"; +import cookieParser from "cookie-parser"; +import express from "express"; +import basicAuth from "express-basic-auth"; +import rateLimit from "express-rate-limit"; +import config from "../config.js"; +import { mountAnalytics } from "./analytics.js"; +import { mountGhGames } from "./games.js"; +import { injectVersionInfo, resolveVersionInfo } from "./version.js"; + +console.log(chalk.yellow("🚀 Starting server...")); + +const require = createRequire(import.meta.url); +const __dirname = process.cwd(); + +const DIST_DIR = path.join(__dirname, "dist"); +const STATIC_DIR = path.join(__dirname, "static"); + +const VENDOR_MAP_PATH = path.join(DIST_DIR, ".runtime", "vendor-map.cjs"); +const vendorMap = existsSync(VENDOR_MAP_PATH) ? require(VENDOR_MAP_PATH) : null; + +const SERVE_DIR = vendorMap ? DIST_DIR : STATIC_DIR; +console.log(chalk.blue(`Serving from ${path.relative(__dirname, SERVE_DIR)}/`)); +if (vendorMap) { + console.log(chalk.blue(`Build ${vendorMap.build}, proxy scope ${vendorMap.scopes.uv}, scramjet ${vendorMap.scopes.scramjet}`)); +} else if (existsSync(DIST_DIR)) { + console.log(chalk.yellow("dist/ exists but has no .runtime/vendor-map.cjs, run `pnpm build`. Falling back to static/.")); +} + +const server = http.createServer(); +const app = express(); +const PORT = process.env.PORT || 8080; + +wisp.options.allow_loopback_ips = true; +wisp.options.allow_private_ips = true; + +const generalLimiter = rateLimit({ + windowMs: 60 * 1000, + max: 100, + standardHeaders: true, + legacyHeaders: false, + message: "Too many requests, please try again later.", +}); + +if (config.challenge !== false) { + console.log(chalk.green("🔒 Password protection is enabled! Listing logins below")); + Object.entries(config.users).forEach(([username, password]) => { + console.log(chalk.blue(`Username: ${username}, Password: ${password}`)); + }); + app.use(basicAuth({ users: config.users, challenge: true })); +} + +mountGhGames(app); + +app.use(cookieParser()); +app.use(express.json()); +app.use(express.urlencoded({ extended: true })); + +const jsStaticOptions = { + setHeaders: (res, filePath) => { + const ext = path.extname(filePath); + if (ext === ".js" || ext === ".mjs") { + res.type("text/javascript"); + res.setHeader("Service-Worker-Allowed", "/"); + } else if (ext === ".wasm") { + res.type("application/wasm"); + } + }, +}; + +app.use("/.runtime", (_req, res) => { + res.sendStatus(404); +}); + +if (vendorMap?.analytics) mountAnalytics(app, vendorMap.analytics); + +if (!vendorMap) { + try { + const info = await resolveVersionInfo(); + const settingsHtml = injectVersionInfo(readFileSync(path.join(SERVE_DIR, "settings.html"), "utf8"), info).html; + const sendSettings = (_req, res) => res.type("html").send(settingsHtml); + app.get("/settings", generalLimiter, sendSettings); + app.get("/settings.html", generalLimiter, sendSettings); + } catch (err) { + console.warn(chalk.yellow(`Settings version injection skipped, serving placeholders: ${err.message}`)); + } +} + +app.use(express.static(SERVE_DIR, { ...jsStaticOptions, dotfiles: "ignore" })); + +if (!vendorMap) { + const { epoxyPath } = require("@mercuryworkshop/epoxy-transport"); + const { baremuxPath } = require("@mercuryworkshop/bare-mux/node"); + const { libcurlPath } = require("@mercuryworkshop/libcurl-transport"); + const { uvPath } = require("@titaniumnetwork-dev/ultraviolet"); + const { scramjetPath } = require("@mercuryworkshop/scramjet/path"); + + app.use("/epoxy/", express.static(epoxyPath)); + app.use("/libcurl/", express.static(libcurlPath)); + app.use("/baremux/", express.static(baremuxPath)); + app.use("/assets/ultraviolet/", express.static(uvPath, jsStaticOptions)); + app.use("/assets/scramjet/", express.static(scramjetPath, jsStaticOptions)); +} + +const routes = [ + { path: "/apps", file: "apps.html" }, + { path: "/games", file: "games.html" }, + { path: "/play.html", file: "games.html" }, + { path: "/settings", file: "settings.html" }, + { path: "/tabs", file: "tabs.html" }, + { path: "/", file: "index.html" }, +]; + +// In dist the build randomizes the page routes and records them in the vendor map, so serve each +// page at its opaque path (build id vendorMap.routes). "/" and "/play.html" have no entry and stay +// clean. In static/dev vendorMap is null, so the clean routes are used as-is. +routes.forEach(route => { + const servePath = vendorMap?.routes?.[route.path] || route.path; + app.get(servePath, generalLimiter, (_req, res) => { + res.sendFile(path.join(SERVE_DIR, route.file)); + }); +}); + +app.use(generalLimiter, (_req, res) => { + res.status(404).sendFile(path.join(SERVE_DIR, "404.html")); +}); + +app.use(generalLimiter, (err, _req, res, _next) => { + console.error(err.stack); + res.status(500).sendFile(path.join(SERVE_DIR, "404.html")); +}); + +server.on("request", (req, res) => { + app(req, res); +}); + +server.on("upgrade", (req, socket, head) => { + wisp.routeRequest(req, socket, head); +}); + +server.on("listening", () => { + console.log(chalk.green(`🌍 Server is running on http://localhost:${PORT}`)); +}); + +server.listen({ port: PORT }); diff --git a/src/version.js b/src/version.js new file mode 100644 index 0000000000..e44df02c15 --- /dev/null +++ b/src/version.js @@ -0,0 +1,99 @@ +import { execFileSync } from "node:child_process"; +import { readFile } from "node:fs/promises"; +import path from "node:path"; +import { inflateSync } from "node:zlib"; + +const VERSION_TOKENS = [ + ["{{VERSION}}", info => (info.version ? `v${info.version}` : "-")], + ["{{LAST_UPDATED}}", info => info.updated || "-"], +]; +export const VERSION_TOKEN_COUNT = VERSION_TOKENS.length; + +function escapeHtmlText(value) { + return String(value).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'"); +} + +async function readMaybe(file) { + try { + return (await readFile(file, "utf8")).trim(); + } catch { + return null; + } +} + +async function packedRefSha(gitDir, ref) { + const packed = await readMaybe(path.join(gitDir, "packed-refs")); + if (!packed) return null; + for (const line of packed.split("\n")) { + if (!line || line[0] === "#" || line[0] === "^") continue; + const sp = line.indexOf(" "); + if (line.slice(sp + 1) === ref) return line.slice(0, sp); + } + return null; +} + +async function headCommitSha(gitDir) { + const head = await readMaybe(path.join(gitDir, "HEAD")); + if (!head) return null; + if (!head.startsWith("ref:")) return head; + const ref = head.slice(4).trim(); + return (await readMaybe(path.join(gitDir, ref))) ?? (await packedRefSha(gitDir, ref)); +} + +function commitTimeFromGit(root) { + try { + const ts = execFileSync("git", ["log", "-1", "--format=%ct"], { cwd: root, stdio: ["ignore", "pipe", "ignore"] }) + .toString() + .trim(); + return ts ? Number(ts) * 1000 : null; + } catch { + return null; + } +} + +async function commitTimeMs(root) { + const gitDir = path.join(root, ".git"); + const sha = await headCommitSha(gitDir); + if (sha) { + try { + const text = inflateSync(await readFile(path.join(gitDir, "objects", sha.slice(0, 2), sha.slice(2)))).toString("utf8"); + const m = text.match(/\ncommitter [^\n]*? (\d+) [+-]\d{4}\n/); + if (m) return Number(m[1]) * 1000; + } catch {} + } + return commitTimeFromGit(root); +} + +function formatCommitDate(ms) { + const d = new Date(ms); + const month = d.toLocaleString("en-US", { month: "long", timeZone: "UTC" }); + const day = d.getUTCDate(); + const tens = day % 100; + const suffix = tens >= 11 && tens <= 13 ? "th" : ["th", "st", "nd", "rd"][day % 10] || "th"; + return `${month} ${day}${suffix}, ${d.getUTCFullYear()}`; +} + +export async function resolveVersionInfo() { + const root = process.cwd(); + let version = null; + try { + version = JSON.parse(await readFile(path.join(root, "package.json"), "utf8")).version || null; + } catch {} + let ms = null; + try { + ms = await commitTimeMs(root); + } catch {} + return { version, updated: ms === null ? null : formatCommitDate(ms) }; +} + +export function injectVersionInfo(html, info) { + let count = 0; + let out = html; + for (const [token, format] of VERSION_TOKENS) { + const occurrences = out.split(token).length - 1; + if (occurrences !== 1) throw new Error(`settings.html: expected exactly one ${token}, found ${occurrences}. Upstream changed.`); + out = out.replace(token, () => escapeHtmlText(format(info))); + count++; + } + return { html: out, count }; +} diff --git a/static/404.html b/static/404.html index 16180ad478..1fa9957536 100644 --- a/static/404.html +++ b/static/404.html @@ -8,17 +8,17 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="shortcut icon" id="tab-favicon" href="/favicon.png" /> <title id="t">Home - - - + + + + + - -

    +

    404

    Page not found.

    @@ -34,10 +34,9 @@

    Page not found.

    - - - - - + + + + \ No newline at end of file diff --git a/static/apps.html b/static/apps.html index 01091b436f..11e5a8fe33 100644 --- a/static/apps.html +++ b/static/apps.html @@ -4,25 +4,22 @@ - Home - - - - - - - + + + + + + + - -
    +
    -
    -
    - - +
    +
    +
    +
    + + + + + `,``,];return this.ctx.config.assets.files.inject&&u.unshift(``),r&&u.unshift(``),n&&u.unshift(``),a&&u.unshift(``),u}var Ve=class{constructor(e){this.generateHead=pi,this.config=[{elements:"all",tags:["style"],action:"css"},{elements:["script","iframe","embed","input","track","media","source","img","a","link","area","form","object",],tags:["src","href","action","data"],action:"url"},{elements:["source","img"],tags:["srcset"],action:"srcset"},{elements:["script","link"],tags:["integrity"],action:"rewrite",new:"nointegrity"},{elements:["script","link"],tags:["nonce"],action:"rewrite",new:"nononce"},{elements:["meta"],tags:["http-equiv"],action:"http-equiv"},{elements:["iframe"],tags:["srcdoc"],action:"html"},{elements:["link"],tags:["imagesrcset"],action:"srcset"},{elements:"all",tags:["onclick"],action:"js"},],this.ctx=e.ctx}generateRedirect(e){return` - -301 Moved -

    301 Moved

    -The document has moved -
    here. - - `}iterate(e,t){!function i(r=e){for(var n=0;n]*>/gi)||(e=""+e),e.replace(/(|)/im,`$1${i.join("")} -`).replace(/<(script|link)\b[^>]*>/g,(e,t)=>e.replace(/\snonce\s*=\s*"[^"]*"/,e=>e.replace("nonce","nononce")).replace(/\sintegrity\s*=\s*"[^"]*"/,e=>e.replace("integrity","nointegrity"))))}},Fe=class{constructor(e){this.ctx=e.ctx}rewrite(e,t,i={}){return e&&e.toString().replace(/(?:@import\s?|url\(?)['"]?(.*?)['")]/gim,(...e)=>{try{return e[0].replace(e[3],this.ctx.url.encode(e[3],t))}catch{return e[0]}})}};function fi(e,t){"object"==typeof e&&t&&function e(t,i,r){if(!("object"!=typeof t||!r)){for(let n in t.parent=i,r(t,i,r),t)"parent"!==n&&(Array.isArray(t[n])?t[n].forEach(i=>{i&&e(i,t,r)}):t[n]&&e(t[n],t,r));"function"==typeof t.iterateEnd&&t.iterateEnd()}}(e,null,t)}function di(e,t={},i,r){var n=this.ctx.modules.acorn.parse(e.toString(),{sourceType:t.module?"module":"script",allowImportExportEverywhere:!0,allowAwaitOutsideFunction:!0,allowReturnOutsideFunction:!0,ecmaVersion:"latest",preserveParens:!1,loose:!0,allowReserved:!0});return this.iterate(n,(e,n=null)=>{this.emit(e,e.type,n,i,r,t)}),e=this.ctx.modules.estree.generate(n)}function mi(e,t={}){if("string"!=typeof e.name)return!1;if(!0!==e.__dynamic){if(!["parent","top","postMessage","opener","window","self","globalThis","parent","location",].includes(e.name))return!1;if(!("CallExpression"==t.type&&t.callee==e)&&!("MemberExpression"==t.type&&t.object!==e&&!["document","window","self","globalThis"].includes(t.object.name))&&"FunctionDeclaration"!=t.type&&"VariableDeclaration"!=t.type&&!("VariableDeclarator"==t.type&&t.id==e)&&"LabeledStatement"!=t.type&&!("Property"==t.type&&t.key==e)&&!("ArrowFunctionExpression"==t.type&&t.params.includes(e))&&!("FunctionExpression"==t.type&&t.params.includes(e))&&!("FunctionExpression"==t.type&&t.id==e)&&!("CatchClause"==t.type&&t.param==e)&&"ContinueStatement"!=t.type&&"BreakStatement"!=t.type&&!("AssignmentExpression"==t.type&&t.left==e)&&"UpdateExpression"!=t.type&&"UpdateExpression"!=t.type&&!("ForInStatement"==t.type&&t.left==e)&&!("MethodDefinition"==t.type&&t.key==e)&&!("AssignmentPattern"==t.type&&t.left==e)&&"NewExpression"!=t.type&&t?.parent?.type!="NewExpression"&&!("UnaryExpression"==t.type&&t.argument==e)&&!("Property"==t.type&&!0==t.shorthand&&t.value==e)){if("__dynamic"==e.name)return e.name="undefined";if("eval"==e.name&&t.right!==e)return e.name="__dynamic$eval";e.name=`dg$(${e.name})`}}}function ke(e,t={}){Object.entries({type:"CallExpression",callee:{type:"MemberExpression",object:{type:"Identifier",name:"self"},property:{type:"Identifier",name:"__dynamic$message"}},arguments:[e.object||e,{type:"Identifier",name:"self",__dynamic:!0},]}).forEach(([t,i])=>e[t]=i)}function yi(e,t={},i={}){if(e.object.name+="","AssignmentExpression"!==t.type&&t.left!==e){if("postMessage"==e.property.value&&"CallExpression"==t.type&&t.callee==e||"postMessage"==e.object.value&&"CallExpression"==t.type&&t.callee==e)return ke(e,t);if(("postMessage"==e.property.name||"postMessage"==e.object.name)&&"Super"!==e.object.type){var r=e.object?.name;e.type="CallExpression",e.callee={type:"Identifier",name:"__dynamic$message"},e.arguments=[{type:"Identifier",name:r},{type:"Identifier",name:"self",__dynamic:!0},],"CallExpression"==t.type&&(t.arguments=t.arguments);return}}if("eval"==e.property.name&&(e.property.name="__dynamic$eval"),"eval"==e.object.name&&(e.object.name="__dynamic$eval"),"worker"!==i.destination&&("window"==e.property.name&&"top"!=e.object.name&&("self"==e.object.name||"globalThis"==e.object.name)&&"NewExpression"!==t.type&&("CallExpression"!==t.type||"CallExpression"==t.type&&e!==t.callee)&&(e.property.name="__dynamic$window"),"top"==e.object.name&&"NewExpression"!==t.type&&("CallExpression"!==t.type||"CallExpression"==t.type&&e!==t.callee)&&(e.object.name="top.__dynamic$window"),"top"==e.property.name&&("self"==e.object.name||"globalThis"==e.object.name)&&"NewExpression"!==t.type&&("CallExpression"!==t.type||"CallExpression"==t.type&&e!==t.callee)&&(e.property.name="top.__dynamic$window"),"NewExpression"!==t.type&&("CallExpression"!==t.type||"CallExpression"==t.type&&e!==t.callee)&&("window"==e.object.name&&(e.object={type:"CallExpression",callee:{type:"Identifier",name:"dg$"},arguments:[e.object],__dynamic:!0}),"parent"==e.object.name&&(e.object={type:"CallExpression",callee:{type:"Identifier",name:"dg$"},arguments:[e.object],__dynamic:!0}),"__dynamic"==e.property.name&&(e.property.name="undefined"),"self"==e.object.name&&(e.object={type:"CallExpression",callee:{type:"Identifier",name:"dg$"},arguments:[e.object],__dynamic:!0}),"document"==e.object.name&&(e.object={type:"CallExpression",callee:{type:"Identifier",name:"dg$"},arguments:[e.object],__dynamic:!0}),"globalThis"==e.object.name&&(e.object={type:"CallExpression",callee:{type:"Identifier",name:"dg$"},arguments:[e.object],__dynamic:!0})),"location"==e.object.name&&(e.object={type:"CallExpression",callee:{type:"Identifier",name:"dg$"},arguments:[e.object],__dynamic:!0}),"location"==e.property.name&&"BinaryExpression"!==t.type&&"AssignmentExpression"!==t.type)){e.property.__dynamic=!0,e.__dynamic=!0;let n=Object.assign({},e);e.type="CallExpression",e.callee={type:"Identifier",name:"dg$",__dynamic:!0},e.arguments=[n],e.__dynamic=!0}e.computed&&"worker"!==i.destination&&(e.property={type:"CallExpression",callee:{type:"Identifier",name:"dp$"},arguments:[e.property],__dynamic:!0})}function gi(e,t={}){if(!(e.value instanceof String)||("__dynamic"==e.value&&(e.value="undefined"),!["location","parent","top","postMessage"].includes(e.value)))return!1;"postMessage"==e.value&&"AssignmentExpression"!=t.type&&t.left!=e&&ke(e,t),"location"==e.value&&(e.value="__dynamic$location"),"__dynamic"==e.value&&(e.value="undefined"),"eval"==e.value&&(e.value="__dynamic$eval")}function ft(e,t={}){e.__dynamic||e.arguments.length&&(e.arguments=[{type:"CallExpression",callee:{type:"Identifier",name:"__dynamic$wrapEval",__dynamic:!0},arguments:e.arguments,__dynamic:!0},],e.__dynamic=!0)}function xi(e,t={}){if(!("AssignmentExpression"==t.type&&t.left==e)){if("Identifier"==e.callee.type){if("postMessage"==e.callee.name){e.callee.type="CallExpression",e.callee.callee={type:"Identifier",name:"__dynamic$message"},e.callee.arguments=[{type:"Identifier",name:"undefined"},{type:"Identifier",name:"self",__dynamic:!0},];return}"eval"==e.callee.name&&ft(e)}if("MemberExpression"==e.callee.type){if("postMessage"==e.callee.property.name&&"Super"!==e.callee.object.type){let i=e.callee.object;e.callee.type="CallExpression",e.callee.callee={type:"Identifier",name:"__dynamic$message"},e.callee.arguments=[i,{type:"Identifier",name:"self",__dynamic:!0},];return}"eval"==e.callee.object.name&&ft(e)}e.arguments.length>0&&e.arguments.length}}function _i(e,t={}){if("Identifier"==e.left.type&&!0!==e.left.__dynamic&&"location"==e.left.name){var i=structuredClone(e.left),r=structuredClone(e.right);e.right.type="CallExpression",e.right.callee={type:"Identifier",name:"ds$"},e.right.arguments=[i,r]}}function bi(e,t={}){"ObjectPattern"!=e.parent.type&&e.parent?.parent?.type!="AssignmentExpression"&&(e.shorthand=!1)}function wi(e,t={},i={},r={}){if("Literal"==e.type&&("ImportDeclaration"==t.type||"ExportNamedDeclaration"==t.type||"ExportAllDeclaration"==t.type)){var n=e.value+"";e.value=i.url.encode(e.value,r.meta),e.raw=e.raw.replace(n,e.value),e.__dynamic=!0}"ImportExpression"==e.type&&(e.source={type:"CallExpression",callee:{type:"Identifier",name:"__dynamic$import"},arguments:[e.source,{type:"Literal",__dynamic:!0,value:i.meta.href},]},e.__dynamic=!0)}function vi(e,t={}){if("Identifier"!==e.id.type)return!1;!0!==e.id.__dynamic&&e.id.name}function Ws(e,t,i={},r={},n={},s={}){if(!e.__dynamic){switch(t){case"Identifier":mi(e,i);break;case"MemberExpression":yi(e,i,s);break;case"Literal":gi(e,i);break;case"CallExpression":xi(e,i);break;case"AssignmentExpression":_i(e,i);break;case"ThisExpression":case"CatchClause":break;case"Property":bi(e,i);break;case"VariableDeclarator":vi(e,i)}wi(e,i,r,n)}}var Dn,Be,$e,On,Si,Vn=class{constructor(e){this.ctx=e,this.html=new Ve(this),this.srcset={encode:(e,t)=>e&&e.toString()?e.split(", ").map(e=>e.split(" ").map((e,i)=>0==i?t.url.encode(e,t.baseURL||t.meta):e).join(" ")).join(", "):e,decode:e=>e},this.js=new class{constructor(e){this.iterate=fi,this.process=di,this.emit=Ws,this.ctx=e.ctx}rewrite(e,t={},i=!0,r={}){if(!e||e instanceof Object||(e=e.toString()).includes("/* dynamic.js */"))return e;e=`/* dynamic.js */ - -${e}`;try{try{e=this.process(e,t,{module:!0,...this.ctx},r)}catch{e=this.process(e,t,{module:!1,...this.ctx},r)}}catch{}return i&&(e=` - if (typeof self !== undefined && typeof self.importScripts == 'function' && typeof self.__dynamic == 'undefined') importScripts('/assets/history/config.js?v=2025-04-15', '/assets/history/handler.js?v=2025-04-15'+Math.floor(Math.random()*(99999-10000)+10000)); - - ${e}`),e}}(this),this.css=new Fe(this),this.man=new class{constructor(e){this.config={rewrite:[["icons","urlit"],["name"," - Dynamic"],["start_url","url"],["scope","url"],["short_name"," - Dynamic"],["shortcuts","urlev"],],delete:["serviceworker"]},this.ctx=e.ctx}rewrite(e,t){let i=JSON.parse(e);for(let r in this.config)if("rewrite"==r)for(var[n,s]of this.config[r]){if("urlit"==s&&i[n]){for(var a=0;athis.ctx.modules.setCookieParser(e,{decodeValues:!1})[0]):e[r]=this.ctx.modules.setCookieParser(e[r],{decodeValues:!1}),e[r]))await i.set(t.host,this.ctx.modules.cookie.serialize(n.name,n.value,{...n,encode:e=>e}));delete e[r];continue}}return new Headers(e)}function ki(e,t,i,r){let{referrer:n}=i;if(["origin","Origin","host","Host","referer","Referer"].forEach(t=>{e[t]&&delete e[t]}),e.Origin=`${t.protocol}//${t.host}${t.port?":"+t.port:""}`,e.Host=t.host+(t.port?":"+t.port:""),e.Referer=t.href,"strict-origin-when-cross-origin"==i.referrerPolicy&&(e.Referer=`${t.protocol}//${t.host}/`),"origin"==i.referrerPolicy&&t.origin&&(n=t.origin+"/"),r){switch(i.credentials){case"omit":break;case"same-origin":i.client&&t.origin==i.client.__dynamic$location.origin&&(e.Cookie=r),i.client||(e.Cookie=r);break;case"include":e.Cookie=r}e.Cookie=r}if(n&&n!=location.origin+"/")try{e.Referer=this.ctx.url.decode(n),"strict-origin-when-cross-origin"==i.referrerPolicy&&(e.Referer=new URL(this.ctx.url.decode(n)).origin),e.Origin=new URL(this.ctx.url.decode(n)).origin}catch{}return i.client&&(e.Origin=i.client.__dynamic$location.origin,e.Referer=i.client.__dynamic$location.href,"strict-origin-when-cross-origin"==i.referrerPolicy&&(e.Referer=i.client.__dynamic$location.origin)),this.ctx.config.tab&&this.ctx.config.tab.ua&&(delete e["user-agent"],delete e["User-Agent"],e["user-agent"]=this.ctx.config.tab.ua),e["sec-fetch-dest"]=i.destination||"empty",e["sec-fetch-mode"]=i.mode||"cors",e["sec-fetch-site"]=i.client?i.client.__dynamic$location.origin==t.origin?i.client.__dynamic$location.port==t.port?"same-origin":"same-site":"cross-origin":"none","navigate"==i.mode&&(e["sec-fetch-site"]="same-origin"),e["sec-fetch-user"]="?1",new Headers(e)}function Ai(e){return Object.assign(Object.create(Object.getPrototypeOf(e)),e)}function Li(e){try{if(new new Proxy(e,{construct:()=>({})}),!Object.getOwnPropertyNames(e).includes("arguments"))throw Error("");return!0}catch{return!1}}function Pi(e){return e.url.toString().substr(location.origin.length,e.url.toString().length).startsWith(self.__dynamic$config.assets.prefix)}async function Ri(e){let t;if("development"!==self.__dynamic$config.mode){var i=await caches.open("__dynamic$files");t=i&&await i.match(e.url)||await fetch(e)}else t=await fetch(e);let r=await t.blob();return(e.url.startsWith(location.origin+"/assets/history/config.js?v=2025-04-15")||e.url.startsWith(location.origin+"/assets/history/client.js?v=2025-04-15"))&&(r=new Blob([`${await r.text()} -self.document?.currentScript?.remove();`,],{type:"application/javascript"})),new Response(r,{headers:t.headers,status:t.status,statusText:t.statusText})}async function Ii(e,t){}var je=class{constructor(e){this.rawHeaders={},this.headers=new Headers({}),this.status=200,this.statusText="OK",this.body=e}async blob(){return this.body}async text(){return await this.body.text()}};function Ti(e){var t=this.ctx.encoding;return t="object"==typeof this.ctx.config.encoding?{...t,...this.ctx.encoding}:{...this.ctx.encoding[this.ctx.config.encoding]},this.ctx.encoding={...this.ctx.encoding,...t},this.ctx.encoding}function Ni(e,t,i){if(!e.url.startsWith("http"))return e.url;let r=e.url.toString();return e.url.startsWith(location.origin)&&(r=r.substr(self.location.origin.length)),r=new URL(r,new URL(t.__dynamic$location.href)).href,this.ctx.url.encode(r,i)}var Mi,$n=class{constructor(e){this.route=Fn,this.routePath=Bn,this.path=Ei,this.resHeader=Ci,this.reqHeader=ki,this.clone=Ai,this.class=Li,this.file=Pi,this.edit=Ri,this.error=Ii,this.encode=Ti,this.rewritePath=Ni,this.about=je,this.ctx=e}};function Di(e,t){if(!e)return e;if((e=new String(e).toString()).startsWith("about:blank"))return location.origin+this.ctx.config.prefix+e;if(!e.match(this.ctx.regex.ProtocolRegex)&&e.match(/^([a-zA-Z0-9\-]+)\:\/\//g)||e.startsWith("chrome-extension://"))return e;if(e.startsWith("javascript:")&&!e.startsWith("javascript:__dynamic$eval")){let i=new URL(e);return`javascript:__dynamic$eval(${JSON.stringify(i.pathname)})`}if(e.match(this.ctx.regex.WeirdRegex)){var r=this.ctx.regex.WeirdRegex.exec(e);r&&(e=r[2])}if(e.startsWith(location.origin+this.ctx.config.prefix)||e.startsWith(this.ctx.config.prefix)||e.startsWith(location.origin+this.ctx.config.assets.prefix+"dynamic.")||e.match(this.ctx.regex.BypassRegex))return e;if(e.match(this.ctx.regex.DataRegex)){try{var r=this.ctx.regex.DataRegex.exec(e);if(r){var[n,s,a,o,c]=r;c="base64"==o?this.ctx.modules.base64.atob(decodeURIComponent(c)):decodeURIComponent(c),s&&("text/html"==s?c=this.ctx.rewrite.html.rewrite(c,t,this.ctx.rewrite.html.generateHead(location.origin+"/assets/history/client.js?v=2025-04-15",location.origin+"/assets/history/config.js?v=2025-04-15","",`window.__dynamic$url = "${t.href}"; window.__dynamic$parentURL = "${location.href}";`)):"text/css"==s?c=this.ctx.rewrite.css.rewrite(c,t):("text/javascript"==s||"application/javascript"==s)&&(c=this.ctx.rewrite.js.rewrite(c,t))),c="base64"==o?this.ctx.modules.base64.btoa(c):encodeURIComponent(c),e=a?o?`data:${s};${a};${o},${c}`:`data:${s};${a},${c}`:o?`data:${s};${o},${c}`:`data:${s},${c}`}}catch{}return e}return e=new String(e).toString(),t.href.match(this.ctx.regex.BypassRegex)&&(e=new URL(e,new URL((this.ctx.parent.__dynamic||this.ctx).meta.href)).href),e=new URL(e,t.href),(this.ctx._location?.origin||("null"==location.origin?location.ancestorOrigins[0]:location.origin))+this.ctx.config.prefix+(this.ctx.encoding.encode(e.origin+e.pathname)+e.search+e.hash)}function Oi(e){if(!e||(e=new String(e).toString()).match(this.ctx.regex.BypassRegex))return e;var t=e.indexOf(this.ctx.config.prefix);if(-1==t)return e;try{if(t=(e=new URL(e,new URL(self.location.origin)).href).indexOf(this.ctx.config.prefix),"about:blank"==e.slice(t+this.ctx.config.prefix.length).trim())return"about:blank";var i=new URL(e).search+new URL(e).hash||"",r=new URL(this.ctx.encoding.decode(e.slice(t+this.ctx.config.prefix.length).replace("https://","https:/").replace("https:/","https://").split("?")[0]))}catch{return e}return e=r.origin+r.pathname+i+(new URL(e).search?r.search.replace("?","&"):r.search)}var Vi,qs,Gs,zs,jn=class{constructor(e){this.encode=Di,this.decode=Oi,this.ctx=e}},Ue=class{constructor(e){this.BypassRegex=/^(#|about:|mailto:|blob:|javascript:)/g,this.DataRegex=/^data:([a-z\/A-Z0-9\-\+]+);?(charset\=[\-A-Za-z0-9]+)?;?(base64)?[;,]*(.*)/g,this.WeirdRegex=/^([\/A-Za-z0-9\-%]+)(http[s]?:\/\/.*)/g,this.ctx=e}};function Fi(e){for(var t in e=new URL(e.href))this.ctx.meta[t]=e[t];return!0}var Bi,He=class{constructor(){}},Un=class extends He{constructor(e){super(),this.load=Fi,this.ctx=e}},Hn={csp:["cross-origin-embedder-policy","cross-origin-opener-policy","cross-origin-resource-policy","content-security-policy","content-security-policy-report-only","expect-ct","feature-policy","origin-isolation","strict-transport-security","upgrade-insecure-requests","x-content-type-options","x-frame-options","x-permitted-cross-domain-policies","x-xss-protection",],status:{empty:[204,101,205,304]},method:{body:["GET","HEAD"]}};function $i(e,t=""){return"text/css"===(this.ctx.modules.mime.contentType(t||e.pathname)||"text/css").split(";")[0]}function ji(e,t="",i=""){let r;return t||this.ctx.modules.mime.contentType(e.pathname)!=e.pathname?"text/html"===(this.ctx.modules.mime.contentType(t||e.pathname)||"text/html").split(";")[0]||i.trim().match(/\<\!(doctype|DOCTYPE) html\>/g):i.trim().match(/<(html|script|body)[^>]*>/g)&&(r=i.trim().indexOf((i.trim().match(/<(html|script|body)[^>]*>/g)||[])[0]))>-1&&r<100}function Ui(e,t=""){if(e.pathname.endsWith(".js")&&"text/plain"==t)return!0;var i=(this.ctx.modules.mime.contentType(t||e.pathname)||"application/javascript").split(";")[0];return"text/javascript"==i||"application/javascript"==i||"application/x-javascript"==i}var Hi,Wn=class{constructor(e){this.html=ji,this.js=Ui,this.css=$i,this.ctx=e}};function dt(e,t=!0){let i=t=>{let i=e.__dynamic.util.clone(t);for(var r=0;re);[...n,e.Object].forEach(e=>{delete e.prototype.__dynamic$location});let s={get:()=>e.__dynamic.location,set(t){if(t instanceof e.Location)return e.__dynamic.location=t;e.__dynamic.location.href=t},configurable:!0};try{var a=new URL(e.__dynamic$url||e.__dynamic.url.decode(e.location.pathname+e.location.search+e.location.hash))}catch{e.__dynamic$url="about:blank";var a=new URL("about:blank")}return e.__dynamic.property=a,e.__dynamic.meta.load(a),e.__dynamic.location=e.__dynamic.util.clone(e.location),["href","host","hash","origin","hostname","port","pathname","protocol","search",].forEach(t=>{e.__dynamic.define(e.__dynamic.location,t,{get:()=>"search"==t&&e.location[t]+(e.location.search?a.search.replace("?","&"):a.search)||("hash"==t?location[t]:a[t]),set(i){"href"===t?e.location[t]=e.__dynamic.url.encode(e.__dynamic.meta.href.replace(a[t],i),a):e.location[t]=i.toString()}})}),e.__dynamic.define(e.Object.prototype,"__dynamic$location",{get(){return this===e||this===e.__dynamic$window||this===e.document||this===e.__dynamic$document?this.__dynamic?.location:this.location},set(t){return this===e||this===e.__dynamic$window||this===e.document||this===e.__dynamic$document?this.__dynamic.location.href=t:this.location=t},configurable:!0}),["assign","replace","toString","reload"].forEach(t=>{e.__dynamic.define(e.__dynamic.location,t,{get:()=>"toString"==t?()=>a.href:new e.__dynamic.Function("arg",`return window.location.${t}(arg?${"reload"!==t&&"toString"!==t?"(self.__dynamic).url.encode(arg, new URL('"+a.href+"'))":"arg"}:null)`),set:()=>null})}),r.length&&e.__dynamic.define(e.__dynamic.location,"ancestorOrigins",{get:()=>i(r),set:()=>null}),n.forEach(t=>{e.__dynamic.define(t.prototype,"__dynamic$location",s)}),e.__dynamic.hashchange||(e.__dynamic.hashchange=(e.addEventListener("hashchange",e=>{}),!0)),e.__dynamic.location}function mt(e){e.__dynamic$get=t=>{var i=e.__dynamic.fire("get",[t]);if(i)return i;try{return t==e.parent?e.parent.__dynamic$window:t==e.top?e.top.__dynamic$window:t==e.location||(e.Location||e.WorkerLocation)&&t instanceof(e.Location||e.WorkerLocation)?e.__dynamic$location:e.Document&&t instanceof e.Document?e.__dynamic$document:t==e?e.__dynamic$window:"function"==typeof t&&"__d$Send"==t.name?e.__dynamic$message(t.target,e):t}catch{return t}},e.__dynamic$property=e=>"string"!=typeof e?e:"location"==e?"__dynamic$location":"eval"==e?"__dynamic$eval":e,e.__dynamic$set=(t,i)=>t?e.__dynamic.url.encode(e.__dynamic.meta.href.replace(e.__dynamic.property.href,i),e.__dynamic.property):i,e.__dynamic$var=(e,t)=>window[t]=e,e.dg$=e.__dynamic$get,e.ds$=e.__dynamic$set,e.dp$=e.__dynamic$property,e.dv$=e.__dynamic$var,e.d$g_=e.__dynamic$get,e.d$s_=e.__dynamic$set,e.d$p_=e.__dynamic$property,e.d$v_=e.__dynamic$var}function yt(e){e.__dynamic.util.CreateDocumentProxy=t=>new Proxy(t,{get(i,r){let n=i[r];return"location"==r?t.defaultView?t.defaultView.__dynamic$location:e.__dynamic$location:"documentURI"==r&&t.defaultView||"baseURI"==r&&t.defaultView?t.defaultView.__dynamic.location.toString():n&&("function"==typeof n&&n.toString==e.Object.toString?new Proxy(n,{apply:(i,r,s)=>((t.defaultView&&s[0]==t.defaultView.__dynamic$document||s[0]==e.__dynamic$document)&&(s[0]=t),n.apply(t,s))}):n)},set(e,i,r){try{try{t.defaultView.__dynamic?t.defaultView.__dynamic.Reflect.set(e,i,r):e[i]=r}catch{}return r||e[i]||!0}catch{return r||e[i]||!0}}}),e.__dynamic.util.CreateWindowProxy=t=>new Proxy(t,{get(i,r){let n=e.__dynamic.Reflect.get(i,r);if(Object.getOwnPropertyDescriptor(i,r)){var s=Object.getOwnPropertyDescriptor(i,r);if(s?.configurable===!1&&s?.writable===!1&&s?.hasOwnProperty("enumerable"))return s?.value||s?.get?.call(i)}return"__dynamic$self"==r?t.window:"location"==r?t.__dynamic$location:"parent"==r?t.parent.__dynamic$window||t.parent:"top"==r?t.top.__dynamic?t.top.__dynamic$window:t.parent.__dynamic$window:"self"==r||"globalThis"==r?t.__dynamic$window:n&&("function"==typeof n&&n.toString==e.Object.toString?new Proxy(n,{apply:(e,i,r)=>Reflect.apply(e,t,r)}):n)},set(i,r,n){try{var s=Object.getOwnPropertyDescriptor(i,r);if(s?.writable===!1&&s?.enumerable===!1)return!1;if(r.constructor==e.Symbol)return Reflect.set(i,r,n),i[r];if(i.hasOwnProperty("undefined")&&i[r]+""==r)return i[r]||n||!0;if("location"==r)return t.__dynamic$location=n;if(i.hasOwnProperty(r)&&!i.propertyIsEnumerable(r)&&!s?.writable)return i[r];try{t.__dynamic?t.__dynamic.Reflect.set(i,r,n):i[r]=n}catch{}return i[r]||!0}catch{return i[r]||!0}}}),e.__dynamic.define(e,"__dynamic$window",{value:e.__dynamic.util.CreateWindowProxy(e),configurable:!1,enumerable:!1,writable:!1}),e.document&&e.__dynamic.define(e,"__dynamic$document",{value:e.__dynamic.util.CreateDocumentProxy(e.document),configurable:!1,enumerable:!1,writable:!1}),e.__dynamic$globalThis=e.__dynamic$window,e.__dynamic$self=e.__dynamic$window}function Wi(e){e.__dynamic.rewrite.dom=(t,i)=>{if(typeof e.DOMParser>"u"||!t)return t;var r=new e.DOMParser().parseFromString(t.toString(),"text/html").documentElement;return r.querySelectorAll("script").forEach(t=>{!t.type||t.type&&"text/javascript"!==t.type&&"application/javascript"!==t.type&&"application/x-javascript"!==t.type?t.src&&(t.src=e.__dynamic.url.encode(t.getAttribute("src"),i)):t.innerHTML&&(t.innerHTML=e.__dynamic.js.encode(t.innerHTML,{type:"script"},i,{}))}),r.querySelectorAll("link").forEach(t=>{t.href&&"stylesheet"!==t.getAttribute("rel")&&(t.href=e.__dynamic.url.encode(t.getAttribute("href"),i))}),r.querySelectorAll("img").forEach(t=>{t.src&&(t.src=e.__dynamic.url.encode(t.getAttribute("src"),i)),t.srcset&&(t.srcset=e.__dynamic.rewrite.srcset.encode(t.getAttribute("srcset"),e.__dynamic))}),r.querySelectorAll("a").forEach(t=>{t.href&&(t.href=e.__dynamic.url.encode(t.getAttribute("href"),i))}),r.querySelectorAll("style").forEach(t=>{t.innerHTML&&(t.innerHTML=e.__dynamic.rewrite.css.rewrite(t.innerHTML,i))}),r.outerHTML}}function qi(e){let t=e=>new DOMParser().parseFromString(e,"text/html").body.innerHTML;if(e.__dynamic.elements.config.forEach(t=>{t.elements.forEach(i=>{t.tags.forEach(r=>{var n=Object.getOwnPropertyDescriptor(i.prototype,r);n||(n=Object.getOwnPropertyDescriptor(HTMLElement.prototype,r)),typeof i.prototype.setAttribute.__dynamic$target>"u"&&(i.prototype.setAttribute=e.__dynamic.wrap(i.prototype.setAttribute,function(t,...i){return this instanceof HTMLLinkElement&&e.__dynamic$icon&&"href"==i[0].toLowerCase()&&("icon"==this.rel||"shortcut icon"==this.rel)?(i[1]=e.__dynamic$icon,Reflect.apply(t,this,i)):-1==e.__dynamic.elements.attributes.indexOf(i[0].toLowerCase())?Reflect.apply(t,this,i):"srcset"==i[0].toLowerCase()||"imagesrcset"==i[0].toLowerCase()?(this.dataset[`dynamic_${i[0]}`]=i[1],i[1]=e.__dynamic.rewrite.srcset.encode(i[1],e.__dynamic),Reflect.apply(t,this,i)):"integrity"==i[0].toLowerCase()||"nonce"==i[0].toLowerCase()?(this.dataset[`dynamic_${i[0]}`]=i[1],this.removeAttribute(i[0]),Reflect.apply(t,this,["nointegrity",i[1]])):(this.dataset[`dynamic_${i[0]}`]=i[1],i[1]=e.__dynamic.url.encode(i[1],e.__dynamic.baseURL||e.__dynamic.meta),Reflect.apply(t,this,i))},"setAttribute"),i.prototype.setAttributeNS=e.__dynamic.wrap(i.prototype.setAttributeNS,function(t,...i){return this instanceof HTMLLinkElement&&e.__dynamic$icon&&"href"==i[1].toLowerCase()&&("icon"==this.rel||"shortcut icon"==this.rel)?(i[2]=e.__dynamic$icon,Reflect.apply(t,this,i)):-1==e.__dynamic.elements.attributes.indexOf(i[1].toLowerCase())?Reflect.apply(t,this,i):"srcset"==i[1].toLowerCase()||"imagesrcset"==i[1].toLowerCase()?(this.dataset[`dynamic_${i[1]}`]=i[2],i[2]=e.__dynamic.rewrite.srcset.encode(i[2],e.__dynamic),Reflect.apply(t,this,i)):"integrity"==i[1].toLowerCase()||"nonce"==i[1].toLowerCase()?(this.dataset[`dynamic_${i[1]}`]=i[2],this.removeAttribute(i[1]),Reflect.apply(t,this,["nointegrity",i[2]])):(this.dataset[`dynamic_${i[1]}`]=i[2],i[2]=e.__dynamic.url.encode(i[2],e.__dynamic.baseURL||e.__dynamic.meta),Reflect.apply(t,this,i))},"setAttributeNS"),i.prototype.getAttribute=e.__dynamic.wrap(i.prototype.getAttribute,function(e,...t){return this.dataset[`dynamic_${t[0]}`]?this.dataset[`dynamic_${t[0]}`]:Reflect.apply(e,this,t)},"getAttribute"),i.prototype.getAttributeNS=e.__dynamic.wrap(i.prototype.getAttributeNS,function(e,...t){return this.dataset[`dynamic_${t[1]}`]?this.dataset[`dynamic_${t[1]}`]:Reflect.apply(e,this,t)},"getAttributeNS")),e.__dynamic.define(i.prototype,r,{get(){if("window"==t.action){let i=e.__dynamic.elements.contentWindow.get.call(this),s=!0;try{i.location.href}catch{s=!1}if(s&&(i.__dynamic||e.__dynamic.elements.client(i,e.__dynamic$config,decodeURIComponent(this.src))),"contentDocument"==r)return i.document;if("contentWindow"==r)return s&&i.__dynamic$window||i}if("css"==t.action)return n.get.call(this);try{return e.__dynamic.url.decode(n.get.call(this))}catch{}return n.get.call(this)},set(i){return i&&"string"==typeof i&&(i=i.toString()),"href"==r&&this instanceof HTMLLinkElement&&e.__dynamic$icon&&("icon"==this.rel||"shortcut icon"==this.rel)&&(this.dataset[`dynamic_${r}`]=i,i=e.__dynamic$icon),"html"==t.action?(Promise.resolve(e.__dynamic.createBlobHandler(new Blob([i],{type:"text/html"}),this,i)).then(e=>{this.setAttribute(r,e)}),i):("srcset"==t.action&&(i=e.__dynamic.rewrite.srcset.encode(i,e.__dynamic)),"rewrite"==t.action?(this.dataset[`dynamic_${r}`]=i,this.removeAttribute(r),this.setAttribute(t.new,i)):("css"==t.action&&(i=e.__dynamic.rewrite.css.rewrite(i,e.__dynamic.meta)),"url"==t.action&&(i=e.__dynamic.url.encode(i,e.__dynamic.baseURL||e.__dynamic.meta)),this.dataset[`dynamic_${r}`]=i,n.set.call(this,i)))}})})})}),["innerHTML","outerHTML"].forEach(i=>{e.__dynamic.define(e.HTMLElement.prototype,i,{get(){return(this["__"+i]||e.__dynamic.elements[i].get.call(this)).toString()},set(r){return this["__"+i]=t(r),this instanceof e.HTMLTextAreaElement?e.__dynamic.elements[i].set.call(this,r):this instanceof e.HTMLScriptElement?e.__dynamic.elements[i].set.call(this,e.__dynamic.rewrite.js.rewrite(r,{type:"script"})):this instanceof e.HTMLStyleElement?e.__dynamic.elements[i].set.call(this,e.__dynamic.rewrite.css.rewrite(r,e.__dynamic.meta)):e.__dynamic.elements[i].set.call(this,e.__dynamic.rewrite.dom(r,e.__dynamic.meta))}})}),["MutationObserver","ResizeObserver","IntersectionObserver"].forEach(t=>{e[t].prototype.observe=e.__dynamic.wrap(e[t].prototype.observe,function(t,...i){return i[0]==e.__dynamic$document&&(i[0]=e.document),Reflect.apply(t,this,i)},t+".prototype.observe")}),e.__dynamic.defines(e.HTMLAnchorElement.prototype,{pathname:e.__dynamic.elements.createGetter("pathname"),origin:e.__dynamic.elements.createGetter("origin"),host:e.__dynamic.elements.createGetter("host"),hostname:e.__dynamic.elements.createGetter("hostname"),port:e.__dynamic.elements.createGetter("port"),protocol:e.__dynamic.elements.createGetter("protocol"),search:e.__dynamic.elements.createGetter("search"),hash:e.__dynamic.elements.createGetter("hash"),toString:{get:function(){return this.__toString||(()=>this.href?new URL(this.href).toString():"")},set:function(e){this.__toString=e}}}),e.HTMLElement.prototype.insertAdjacentHTML=e.__dynamic.wrap(e.HTMLElement.prototype.insertAdjacentHTML,function(t,...i){return this instanceof e.HTMLStyleElement?Reflect.apply(t,this,[i[0],e.__dynamic.rewrite.css.rewrite(i[1],e.__dynamic.meta),]):this instanceof e.HTMLScriptElement?Reflect.apply(t,this,[i[0],e.__dynamic.rewrite.js.rewrite(i[1],{type:"script"},!1,e.__dynamic),]):this instanceof e.HTMLTextAreaElement?Reflect.apply(t,this,i):Reflect.apply(t,this,[i[0],e.__dynamic.rewrite.html.rewrite(i[1],e.__dynamic.meta),])},"insertAdjacentHTML"),[[e.Node,"textContent"],[e.HTMLElement,"innerText"],].forEach(([t,i])=>{var r=Object.getOwnPropertyDescriptor(t.prototype,i);function n(){return this["__"+i]||r?.get&&r.get.call(this)}e.__dynamic.define(e.HTMLStyleElement.prototype,i,{get:n,set(t){return this["__"+i]=t,r?.set&&r.set.call(this,e.__dynamic.rewrite.css.rewrite(t,e.__dynamic.meta))}}),e.__dynamic.define(e.HTMLScriptElement.prototype,i,{get:n,set(t){return this["__"+i]=t,null!==this.type||"application/javascript"!==this.type||"text/javascript"!==this.type||"application/x-javascript"!==this.type?r?.set&&r.set.call(this,t):r?.set&&r.set.call(this,e.__dynamic.rewrite.js.rewrite(t,{type:"script"},!1,e.__dynamic))}})}),e.Text.prototype.toString=function(){return this.textContent},e.document.createElement=e.__dynamic.wrap(e.document.createElement,function(e,...t){var i=Reflect.apply(e,this,t);return i.rewritten=!0,"iframe"==t[0].toLowerCase()&&(i.src="about:blank"),i},"createElement"),!document.querySelector('link[rel="icon"], link[rel="shortcut icon"]')){var i=document.createElement("link");i.rel="icon",i.href=(e.__dynamic$icon||"/favicon.ico")+"?dynamic",i.dataset.dynamic_hidden="true",document.head.appendChild(i)}e.__dynamic.define(e.Attr.prototype,"value",{get(){return this.__value||e.__dynamic.elements.attrValue.get.call(this)},set(t){return this.__value=t,"href"==this.name||"src"==this.name?e.__dynamic.elements.attrValue.set.call(this,e.__dynamic.url.encode(t,e.__dynamic.meta)):"style"==this.name?e.__dynamic.elements.attrValue.set.call(this,e.__dynamic.rewrite.css.rewrite(t,e.__dynamic.meta)):"onclick"==this.name?e.__dynamic.elements.attrValue.set.call(this,e.__dynamic.rewrite.js.rewrite(t,{type:"script"},!1,e.__dynamic)):e.__dynamic.elements.attrValue.set.call(this,t)}})}function Gi(e){let t=e.XMLHttpRequest;e.Worker=new Proxy(e.Worker,{construct(i,r){if(r[0]){if(r[0]=r[0].toString(),r[0].trim().startsWith(`blob:${e.location.origin}`)){let n=new t;n.open("GET",r[0],!1),n.send();let s=e.__dynamic.rewrite.js.rewrite(n.responseText,{type:"worker"},!0),a=new Blob([s],{type:"application/javascript"});r[0]=URL.createObjectURL(a)}else r[0]=e.__dynamic.url.encode(r[0],e.__dynamic.meta)}return Reflect.construct(i,r)}})}function zi(e){e.__dynamic$history=function(t,...i){i[2]&&(i[2]=e.__dynamic.url.encode(i[2],e.__dynamic.meta)),e.__dynamic.Reflect.apply(t,this,i),e.__dynamic.client.location(e,!0,!1)},e.History.prototype.pushState=e.__dynamic.wrap(e.History.prototype.pushState,e.__dynamic$history),e.History.prototype.replaceState=e.__dynamic.wrap(e.History.prototype.replaceState,e.__dynamic$history)}var Ks="!#$%&'*+-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz|~",Xs="%";function qn(e){e=e.toString();let t="";for(let i=0;ie.location.protocol.replace("http","ws")+"//"+new URL(e.__dynamic$config.bare.path+"/v1/",new URL(location.origin)).href.replace(/http(s?):\/\//g,"").replace(/\/\//g,"/"),i=Object.getOwnPropertyDescriptor(e.WebSocket.prototype,"url");e.__dynamic.define(e.WebSocket.prototype,"url",{get(){let t=i.get.call(this);return e.__dynamic.url.decode(t)},set:e=>!1}),e.WebSocket=e.__dynamic.wrap(e.WebSocket,(i,...r)=>{console.log(r);let n=new URL(r[0]),s={remote:{host:n.hostname,port:n.port||("wss:"===n.protocol?"443":"80"),path:n.pathname+n.search,protocol:n.protocol},headers:{Host:n.hostname+(n.port?":"+n.port:""),Origin:e.__dynamic$location.origin,Pragma:"no-cache","Cache-Control":"no-cache",Upgrade:"websocket",Connection:"Upgrade"},forward_headers:["accept-encoding","accept-language","sec-websocket-extensions","sec-websocket-key","sec-websocket-version","sec-websocket-accept",]};return r[1]&&(s.headers["sec-websocket-protocol"]=r[1].toString()),[t(),["bare",qn(JSON.stringify(s))]]})}function Xi(e){e.Request=e.__dynamic.wrap(e.Request,(t,...i)=>{if(i[0]instanceof t){let r=Reflect.construct(t,i);return"navigate"===i[0].mode&&(r.mode="same-origin"),r}return i[0]&&(i[0]=e.__dynamic.url.encode(i[0],e.__dynamic.meta)),i}),e.__dynamic.define(e.Request.prototype,"url",{get(){return e.__dynamic.url.decode(e.__dynamic.http.RequestURL.get.call(this))},set:e=>e}),e.fetch=e.__dynamic.wrap(e.fetch,(t,...i)=>e.Request&&("Request"===i[0].constructor.name||i[0]instanceof e.Request)?(console.log(i[0]),Reflect.apply(t,e,i)):(i[0]&&e.__dynamic&&(i[0]=e.__dynamic.url.encode(i[0],e.__dynamic.meta)),Reflect.apply(t,e,i)),"fetch"),e.XMLHttpRequest.prototype.open=e.__dynamic.wrap(e.XMLHttpRequest.prototype.open,function(t,...i){return i[1]&&(i[1]=e.__dynamic.url.encode(i[1],e.__dynamic.meta)),!1===i[2]&&(i[2]=!0),Reflect.apply(t,this,i)},"XMLHttpRequest.prototype.open"),Object.defineProperty(e.XMLHttpRequest.prototype,"responseURL",{get(){return e.__dynamic.url.decode(e.__dynamic.http.XMLResponseURL.get.call(this))},set:e=>e}),Object.defineProperty(e.Response.prototype,"url",{get(){return e.__dynamic.url.decode(e.__dynamic.http.ResponseURL.get.call(this))},set:e=>e}),e.open=e.__dynamic.wrap(e.open,function(t,...i){""!=i[0]&&i[0]&&(i[0]=e.__dynamic.url.encode(i[0],e.__dynamic.meta)),""==i[0]&&(i[0]="about:blank");let r=Reflect.apply(t,this,i);r.opener=e.__dynamic$window;try{"about:"===new URL(i[0]).protocol?r.__dynamic$url="about:srcdoc":r.__dynamic$url=e.__dynamic.url.decode(i[0])}catch{r.__dynamic$url="about:srcdoc"}return e.__dynamic.elements.client(r,e.__dynamic$config,r.__dynamic$url),r.__dynamic$window},"window.open"),e.__dynamic.define(e,"__dynamic$import",{get:()=>(t,i)=>{try{return e.__dynamic.url.encode(t,new URL(i))}catch{return e.__dynamic.url.encode(t,e.__dynamic.meta)}},set(){}})}function gt(e){let t=t=>"Worker"==t.constructor.name||"MessagePort"==t.constructor.name||"DedicatedWorkerGlobalScope"==e.constructor.name,i=e=>"Window"==e.constructor.name||"global"==e.constructor.name,r=(e,t)=>Object.keys(window||{}).map(e=>Number.parseInt(e)).filter(e=>isFinite(e)).map(e=>window[e]).filter(e=>e||!1).find(i=>{try{return i.name==e&&i.location.href==t}catch{return!1}});e.__dynamic$message=(r,n=top)=>(r||(r=e),function s(){var a=arguments;return t(r)||!i(r)?r.postMessage.call(r,...a):(r.__dynamic$self&&(r=r.__dynamic$self),(r._postMessage||r.postMessage).call(r,[a[0],n.__dynamic$location.origin,n.location.href,n.name,n!==e,],"*",a[2]||[]))}),"Window"==e.constructor.name&&(e.addEventListener&&(e.addEventListener=new Proxy(e.addEventListener,{apply(t,i,n){if(i==e.__dynamic$window&&(i=e),!n[1]||!n[0]||"function"!=typeof n[1])return Reflect.apply(t,i,n);if("message"==n[0]){var s=n[1].bind({});n[1]=t=>s(function t(i){let n=e.__dynamic.util.clone(i),s;for(var a in i.source&&(s=r(i.data[3],i.data[2])||i.currentTarget),e.__dynamic.define(n,"isTrusted",{value:!0,writable:!1}),i.origin&&(Array.isArray(i.data)&&5==i.data.length?e.__dynamic.define(n,"origin",{value:i.data[1],writable:!1}):e.__dynamic.define(n,"origin",{value:i.origin,writable:!1})),i.data&&(Array.isArray(i.data)&&5==i.data.length?e.__dynamic.define(n,"data",{value:i.data[0],writable:!1}):e.__dynamic.define(n,"data",{value:i.data,writable:!1})),i.source&&(s?e.__dynamic.define(n,"source",{value:s?.__dynamic$window||s,writable:!0}):e.__dynamic.define(n,"source",{value:s||Array.isArray(i.data)&&3==i.data.length&&!0===i.data[2]?i.source:i.currentTarget,writable:!0})),i)"isTrusted"!==a&&"origin"!==a&&"data"!==a&&"source"!==a&&e.__dynamic.define(n,a,{value:i[a],writable:!1});return n}(t))}return Reflect.apply(t,i,n)}})),"Window"==e.constructor.name&&e.__dynamic.define(e,"onmessage",{get:()=>e._onmessage||null,set:t=>(e._onmessage&&e.removeEventListener("message",e._onmessage),e.addEventListener("message",t),e._onmessage=t)}))}function Qi(e){function t(t,...i){for(var r in i)i[r]=e.__dynamic.rewrite.dom(i[r],e.__dynamic.meta);return t.apply(this,i)}["write","writeln"].forEach(i=>{e.document[i]=e.__dynamic.wrap(e.document[i],t,`document.${i}`)})}function xt(e){e.importScripts=new Proxy(e.importScripts,{apply:(t,i,r)=>([...r].forEach((t,i)=>{r[i]=e.__dynamic.url.encode(t,e.__dynamic.meta)}),Reflect.apply(t,i,r))}),e.__dynamic.define(e.__dynamic,"_location",{value:e.location,writable:!0}),e.__dynamic.define(e.WorkerGlobalScope.prototype,"location",{get:()=>e.__dynamic.location,set:e=>e}),e.location=e.__dynamic.location}function _t(e){var t=e.Reflect.get.bind({}),i=e.Reflect.set.bind({});e.Reflect.set=e.__dynamic.wrap(e.Reflect.set,function(t,...r){return"Window"==r[0].constructor.name&&"location"==r[1]?(r[0].__dynamic$location=r[2],!0):"Location"==r[0].constructor.name?(e.__dynamic$location[r[1]]=r[2],!0):Reflect.apply(i,this,r)},"Reflect.set"),e.Reflect.get=e.__dynamic.wrap(e.Reflect.get,function(i,...r){if("object"==typeof r[0]){if("Window"==r[0].constructor.name){if("location"==r[1])return r[0].__dynamic?r[0].__dynamic$location:Reflect.apply(t,this,r);if(r[0][r[1]]&&"Window"==r[0][r[1]].constructor.name)return r[0][r[1]].__dynamic$window}if("Location"==r[0].constructor.name)return e.__dynamic$location[r[1]]}return Reflect.apply(t,this,r)},"Reflect.get"),e.__dynamic.Reflect={get:t,set:i,apply:e.Reflect.apply.bind({}),construct:e.Reflect.construct.bind({}),defineProperty:e.Reflect.defineProperty.bind({}),deleteProperty:e.Reflect.deleteProperty.bind({}),getOwnPropertyDescriptor:e.Reflect.getOwnPropertyDescriptor.bind({}),getPrototypeOf:e.Reflect.getPrototypeOf.bind({}),has:e.Reflect.has.bind({}),isExtensible:e.Reflect.isExtensible.bind({}),ownKeys:e.Reflect.ownKeys.bind({}),preventExtensions:e.Reflect.preventExtensions.bind({}),setPrototypeOf:e.Reflect.setPrototypeOf.bind({})}}function Yi(e){e.__dynamic.define(e.document,"origin",{value:e.__dynamic$location.origin,configurable:!1,enumerable:!1}),e.__dynamic.define(e.document,"domain",{value:e.__dynamic$location.hostname,configurable:!1,enumerable:!1}),["referrer","URL","documentURI"].forEach(t=>{e.__dynamic.define(e.document,t,{value:e.__dynamic$location.toString(),configurable:!1,enumerable:!1})}),[e.document,e.HTMLElement.prototype].forEach(t=>{e.__dynamic.define(t,"baseURI",{get:()=>(e.__dynamic.baseURL||e.__dynamic$location).href})}),["getEntries","getEntriesByName","getEntriesByType"].forEach(t=>{e.performance[t]=new Proxy(e.performance[t],{apply:(t,i,r)=>Reflect.apply(t,i,r).filter(t=>!t.name?.includes(e.location.origin+"/assets/history/dynamic.")).filter(t=>!t.name.includes(e.location.origin+e.__dynamic.config.prefix+"caches/")).map(t=>{if(t.name){var i=e.__dynamic.util.clone(t);for(var r in i.__defineGetter__("name",function(){return this._name}),i.__defineSetter__("name",function(e){this._name=e}),i.name=e.__dynamic.url.decode(t.name),e.__dynamic.define(i,"name",{get:void 0,set:void 0}),e.__dynamic.define(i,"name",{value:i._name,writable:!1}),delete i._name,t)if("name"!=r){if("function"==typeof t[r])var n=new Proxy(t[r],{apply(e,r,n){if("toJSON"==e.name){var s={};for(var a in i)s[a]=i[a];return s}return Reflect.apply(e,t,n)}});else var n=t[r];Object.defineProperty(i,r,{value:n,writable:!0})}t=i}return t})})}),e.MouseEvent&&(e.MouseEvent.prototype.initMouseEvent=e.__dynamic.wrap(e.MouseEvent.prototype.initMouseEvent,function(t,...i){return i.length&&(i=i.map(t=>t==e.__dynamic$window?e:t)),Reflect.apply(t,this,i)})),e.KeyboardEvent&&(e.KeyboardEvent.prototype.initKeyboardEvent=e.__dynamic.wrap(e.KeyboardEvent.prototype.initKeyboardEvent,function(t,...i){return i.length&&(i=i.map(t=>t==e.__dynamic$window?e:t)),Reflect.apply(t,this,i)})),e.StorageEvent&&(e.StorageEvent.prototype.initStorageEvent=e.__dynamic.wrap(e.StorageEvent.prototype.initStorageEvent,function(t,...i){return i.length&&(i=i.map(t=>t==e.localStorage?e.__dynamic.storage.localStorage:t==e.sessionStorage?e.__dynamic.storage.sessionStorage:t)),Reflect.apply(t,this,i)})),e.Object.defineProperty=e.__dynamic.wrap(e.Object.defineProperty,function(e,...t){try{return Reflect.apply(e,this,t)}catch(i){i.toString().includes("Cannot redefine property:")&&(t[0].__defined||(t[0].__defined={}),t[0].__defined[t[1]]=t[2])}}),"https://www.google.com"==e.__dynamic.meta.origin&&(e.setInterval=new Proxy(e.setInterval,{apply:(e,t,i)=>500==i[1]?null:Reflect.apply(e,t,i)}))}function Ji(e){e.Storage.prototype.setItem=e.__dynamic.wrap(e.Storage.prototype.setItem,function(t,...i){return i[0]&&(i[0]="__dynamic$"+e.__dynamic$location.host+"$"+i[0].toString()),Reflect.apply(t,this,i)},"Storage.prototype.setItem"),e.Storage.prototype.getItem=e.__dynamic.wrap(e.Storage.prototype.getItem,function(t,...i){return i[0]&&(i[0]="__dynamic$"+e.__dynamic$location.host+"$"+i[0].toString()),Reflect.apply(t,this,i)||null},"Storage.prototype.getItem"),e.Storage.prototype.removeItem=e.__dynamic.wrap(e.Storage.prototype.removeItem,function(t,...i){return i[0]&&(i[0]="__dynamic$"+e.__dynamic$location.host+"$"+i[0].toString()),Reflect.apply(t,this,i)},"Storage.prototype.removeItem"),e.Storage.prototype.clear=e.__dynamic.wrap(e.Storage.prototype.clear,function(t,...i){for(var r=[],n=0;n{e["__dynamic$"+t]=new Proxy(e[t],{get(i,r){if("length"==r){for(var n=[],s=0;s(e.__dynamic.storage[t].setItem("__dynamic$"+e.__dynamic$location.host+"$"+r.toString(),n),n||!0),deleteProperty:(i,r)=>e.__dynamic.storage[t].removeItem("__dynamic$"+e.__dynamic$location.host+"$"+r.toString())}),delete e[t],e[t]=e["__dynamic$"+t]})}function Zi(e){"serviceWorker"in e.navigator&&(e.__dynamic.sw=e.navigator.serviceWorker,delete e.navigator.serviceWorker,delete e.Navigator.prototype.serviceWorker),e.navigator.sendBeacon=e.__dynamic.wrap(e.navigator.sendBeacon,function(t,...i){return i[0]&&(i[0]=e.__dynamic.url.encode(i[0],e.__dynamic.meta)),Reflect.apply(t,this,i)},"navigator.sendBeacon")}var er=e=>e?e.split(";").map(e=>e.split("=")).reduce((e,t)=>(e[t[0].trim()]=t[1].trim(),e),{}):{},We=(e=[])=>e.map(e=>`${e.name}=${e.value}`).join("; ");function tr(e){if(delete e.Document.prototype.cookie,e.__dynamic.define(e.document,"cookie",{get(){return e.__dynamic.fire("getCookies",[e.__dynamic.location.host,e.__dynamic.cookie.str||"",])||(e.__dynamic.cookies.update(e.__dynamic.location.host),e.__dynamic.cookie.str||e.__dynamic.cookie.desc.get.call(this)||"")},set(t){var i=e.__dynamic.modules.setCookieParser.parse(t,{decodeValues:!1})[0],r=e.__dynamic.fire("setCookie",[e.__dynamic.location.host,t,i,]);if(r)return r;i.name=i.name.replace(/^\./g,""),Promise.resolve(e.__dynamic.cookies.set(e.__dynamic.location.host,e.__dynamic.modules.cookie.serialize(i.name,i.value,{...i,encode:e=>e}))).then(async t=>{await e.__dynamic.cookies.update(e.__dynamic.location.host),e.__dynamic.cookie.str=await e.__dynamic.cookies.get(e.__dynamic.location.host)});var n=er(e.__dynamic.cookie.str||"");n[i.name]=i.value,e.__dynamic.cookie.str=We(Object.entries(n).map(e=>({name:e[0],value:e[1]})))}}),e.navigator.serviceWorker)try{e.navigator.serviceWorker.onmessage=({data:t})=>{if(t.host==e.__dynamic.location.host&&"set-cookie"==t.type){var i=e.__dynamic.modules.cookie.parse(t.val),r=er(e.__dynamic.cookie.str||"");r[Object.entries(i)[0][0]]=Object.entries(i)[0][1],e.__dynamic.cookie.str=We(Object.entries(r).map(e=>({name:e[0],value:e[1]})))}t.host==e.__dynamic.location.host&&"cookies"==t.type&&(e.__dynamic.cookie.str=t.cookies)}}catch{}}function ir(e){e.CSSStyleDeclaration.prototype._setProperty=e.CSSStyleDeclaration.prototype.setProperty,e.CSSStyleDeclaration.prototype.setProperty=e.__dynamic.wrap(e.CSSStyleDeclaration.prototype.setProperty,function(t,...i){return("background-image"==i[0]||"background"==i[0]||"backgroundImage"==i[0])&&(i[1]=e.__dynamic.rewrite.css.rewrite(i[1],e.__dynamic.meta)),t.apply(this,i)},"CSSStyleDeclaration.prototype.setProperty"),e.__dynamic.define(e.CSSStyleDeclaration.prototype,"background",{get(){return this._background?this._background:this.getPropertyValue("background")},set(t){return this._background=t,this._setProperty("background",e.__dynamic.rewrite.css.rewrite(t,e.__dynamic.meta))}}),e.__dynamic.define(e.CSSStyleDeclaration.prototype,"backgroundImage",{get(){return this._backgroundImage?this._backgroundImage:this.getPropertyValue("background-image")},set(t){return this._backgroundImage=t,this._setProperty("background-image",e.__dynamic.rewrite.css.rewrite(t,e.__dynamic.meta))}}),e.__dynamic.define(e.CSSStyleDeclaration.prototype,"background-image",{get(){return this._backgroundImage?this._backgroundImage:this.getPropertyValue("background-image")},set(t){return this._backgroundImage=t,this._setProperty("background-image",e.__dynamic.rewrite.css.rewrite(t,e.__dynamic.meta))}})}function bt(e){e.__dynamic.createBlobHandler=async(t,i,r)=>{let n=(await e.__dynamic.sw.ready).active;e.__dynamic.sw.addEventListener("message",({data:{url:t}})=>{t&&e.__dynamic.elements.iframeSrc.set.call(i,t)},{once:!0}),n.postMessage({type:"createBlobHandler",blob:t,url:e.__dynamic.modules.base64.encode(r.toString().split("").slice(0,10)),location:e.__dynamic.location.href})}}var Gn=(e,t,i)=>((i=new MutationObserver(t=>{for(var i of t)e[i.type](i),document.dispatchEvent(new CustomEvent({attributes:"attrChanged",characterData:"characterData",childList:"nodeChanged"}[i.type],{detail:i}))})).observe(t,{subtree:!0,attributes:!0,childList:!0}),i);function wt(e,t){function i(e){if(!e.rewritten&&!(1!==e.nodeType&&3!==e.nodeType)){if((e=new Proxy(e,{get:(e,i)=>"src"==i||"href"==i||"srcset"==i||"imageSrcset"==i||"data"==i||"action"==i?t.elements.getAttribute.call(e,i.toLowerCase()):"setAttribute"==i||"getAttribute"==i||"removeAttribute"==i||"hasAttribute"==i||"cloneNode"==i||"addEventListener"==i?(...r)=>t.elements[i].call(e,...r):"node"==i?e:e[i],set:(e,i,r)=>("src"==i||"href"==i||"srcset"==i||"imageSrcset"==i||"data"==i||"action"==i?t.elements.setAttribute.call(e,i.toLowerCase(),r):e[i]=r,!0)}))instanceof HTMLScriptElement&&(e.src&&(e.dataset.dynamic_src=e.src,e.src=t.url.encode(e.src,t.meta)),e.type&&e.textContent?.length?("application/javascript"==e.type||"text/javascript"==e.type||"application/x-javascript"==e.type&&e.textContent?.length)&&(e.textContent=t.rewrite.js.rewrite(e.textContent,{type:"script"},!1,t)):!e.type&&e.textContent?.length&&(e.textContent=t.rewrite.js.rewrite(e.textContent,{type:"script"},!1,t))),e instanceof HTMLStyleElement&&e.textContent?.length&&(e.textContent=t.rewrite.css.rewrite(e.textContent,t.meta)),e instanceof HTMLIFrameElement&&(e.src&&(e.dataset.dynamic_src=e.src,e.src=t.url.encode(e.src,t.meta)),e.srcdoc)){e.dataset.dynamic_srcdoc=e.srcdoc;let i=new Blob([t.rewrite.html.rewrite(e.srcdoc,t.meta)],{type:"text/html"});e.src=URL.createObjectURL(i)}if(e instanceof HTMLLinkElement&&("stylesheet"!==e.getAttribute("rel")&&"prefetch"!==e.getAttribute("rel")&&"dns-prefetch"!==e.getAttribute("rel")?(e.href&&(e.dataset.dynamic_href=e.href,e.href=t.url.encode(e.href,t.meta)),e.imageSrcset&&(e.dataset.dynamic_imagesrcset=e.imageSrcset,e.imageSrcset=t.rewrite.srcset.encode(e.imageSrcset,t))):e.addEventListener("error",i=>{if(e instanceof HTMLLinkElement)return e.href&&(e.dataset.dynamic_href=e.href,e.href=t.url.encode(e.href,t.meta)),e.imageSrcset&&(e.dataset.dynamic_imagesrcset=e.imageSrcset,e.imageSrcset=t.rewrite.srcset.encode(e.imageSrcset,t)),i.preventDefault(),!1},{once:!0})),e instanceof HTMLAnchorElement&&e.href&&(e.dataset.dynamic_href=e.href,e.href=t.url.encode(e.href,t.meta)),e instanceof HTMLFormElement&&e.action&&(e.dataset.dynamic_action=e.action,e.action=t.url.encode(e.action,t.meta)),e instanceof HTMLObjectElement&&e.data&&(e.dataset.dynamic_data=e.data,e.data=t.url.encode(e.data,t.meta)),e instanceof HTMLSourceElement&&(e.src&&(e.dataset.dynamic_src=e.src,e.src=t.url.encode(e.src,t.meta)),e.srcset&&(e.dataset.dynamic_srcset=e.srcset,e.srcset=t.rewrite.srcset.encode(e.srcset,t))),e instanceof HTMLImageElement&&(e.src&&(e.dataset.dynamic_src=e.src,e.src=t.url.encode(e.src,t.meta)),e.srcset&&(e.dataset.dynamic_srcset=e.srcset,e.srcset=t.rewrite.srcset.encode(e.srcset,t))),e instanceof HTMLAreaElement&&e.href&&(e.dataset.dynamic_href=e.href,e.href=t.url.encode(e.href,t.meta)),e instanceof HTMLBaseElement&&e.href&&(e.dataset.dynamic_href=e.href,e.href=t.url.encode(e.href,t.meta)),e instanceof HTMLInputElement&&e.src&&(e.dataset.dynamic_src=e.src,e.src=t.url.encode(e.src,t.meta)),e instanceof HTMLAudioElement&&e.src&&(e.dataset.dynamic_src=e.src,e.src=t.url.encode(e.src,t.meta)),e instanceof HTMLVideoElement&&e.src&&(e.dataset.dynamic_src=e.src,e.src=t.url.encode(e.src,t.meta)),e instanceof HTMLTrackElement&&e.src&&(e.dataset.dynamic_src=e.src,e.src=t.url.encode(e.src,t.meta)),e instanceof HTMLMediaElement&&e.src&&(e.dataset.dynamic_src=e.src,e.src=t.url.encode(e.src,t.meta)),e instanceof HTMLMetaElement&&e.httpEquiv){if("refresh"==e.httpEquiv.toLowerCase()){var r=e.content.split(";url=")[0],n=e.content.split(";url=")[1];e.content=`${r};url=${t.url.encode(n,t.meta)}`}"content-security-policy"==e.httpEquiv.toLowerCase()&&e.remove()}return e instanceof HTMLElement&&(e.getAttribute("style")&&e.setAttribute("style",t.rewrite.css.rewrite(e.getAttribute("style"),t.meta)),e.integrity&&(e.setAttribute("nointegrity",e.integrity),e.removeAttribute("integrity")),e.nonce&&(e.setAttribute("nononce",e.nonce),e.removeAttribute("nonce"))),e.rewritten=!0}}t||(t=e.__dynamic);let r=Gn({childList(e){for(let t of(i(e.target),e.addedNodes))if(t.childNodes)for(let r of t.childNodes)i(r);if(e.target.childNodes)for(var n of e.target.childNodes)i(n)},attributes(e){},characterData(e){}},e.document);e.document.addEventListener("DOMContentLoaded",()=>{r.disconnect()},{once:!0})}function rr(e){e.__dynamic.eval=e.__dynamic.wrap(eval,function(t,...i){if(i.length){var r=i[0].toString();return r=e.__dynamic.rewrite.js.rewrite(r,{type:"script"},!1,e.__dynamic),t.apply(this,[r])}},"eval"),e.__dynamic.define(e.Object.prototype,"__dynamic$eval",{get(){return this===window?e.__dynamic.eval:this.eval},set:e=>e}),e.__dynamic$wrapEval=t=>arguments.length?e.__dynamic.fire("eval",[e,t])||(t=e.__dynamic.rewrite.js.rewrite(t,{type:"script"},!1,e.__dynamic)):arguments[0]}function nr(e){var t=e.Function.prototype.toString;e.__dynamic.Function=e.Function.bind({}),e.__dynamic.define(e.Function.prototype,"_toString",{get:()=>t,set(){}});var i=function(){try{var e=Reflect.apply(t,this,[])}catch{return`function ${this.name}() { [native code] }`}return e.includes("[native code]")?`function ${this.name}() { [native code] }`:e};e.__dynamic.define(e.Function.prototype,"toString",{get(){return this.__toString||i},set(e){this.__toString=e}}),e.Function=new Proxy(e.Function,{apply(t,i,r){var n=[...r],s=n.pop();return s=`(function anonymous(${n.toString()}) {${s}})`,s=e.__dynamic.rewrite.js.rewrite(s,{type:"script"},!1,e.__dynamic),e.eval(s)},construct(t,i){var r=[...i],n=r.pop();return n=`(function anonymous(${r.toString()}) {${n}})`,n=e.__dynamic.rewrite.js.rewrite(n,{type:"script"},!1,e.__dynamic),e.eval(n)}}),e.Function.prototype.apply=e.__dynamic.wrap(e.Function.prototype.apply,function(t,...i){return i[0]==e.__dynamic$window&&(i[0]=i[0].__dynamic$self),i[0]==e.__dynamic$document&&(i[0]=e.document),Reflect.apply(t,this,i)},"Function.prototype.apply"),e.Function.prototype.call=new Proxy(e.Function.prototype.call,{apply:(t,i,r)=>(r[0]==e.__dynamic$window&&(r[0]=r[0].__dynamic$self),r[0]==e.__dynamic$document&&(r[0]=e.document),Reflect.apply(t,i,r))}),e.Function.prototype.bind=e.__dynamic.wrap(e.Function.prototype.bind,function(t,...i){return i[0]==e.__dynamic$window&&(i[0]=i[0].__dynamic$self),i[0]==e.__dynamic$document&&(i[0]=e.document),t.apply(this,i)},"Function.prototype.bind")}function ar(e){}function sr(e){}var zn,qe=class{constructor(e){this.methods=[{name:"get",function:"self"},{name:"func",function:"self"},{name:"location",function:"self"},{name:"mutation",function:"self"},{name:"dom",function:"self"},{name:"write",function:"self"},{name:"message",function:"self"},{name:"reflect",function:"self"},{name:"window",function:"self"},{name:"eval",function:"self"},{name:"attr",function:"self"},{name:"policy",function:"self"},{name:"worker",function:"self"},{name:"history",function:"self"},{name:"ws",function:"self"},{name:"cookie",function:"self"},{name:"fetch",function:"self"},{name:"niche",function:"self"},{name:"storage",function:"self"},{name:"style",function:"self"},{name:"rtc",function:"self"},{name:"blob",function:"self"},{name:"navigator",function:"self"},],"DedicatedWorkerGlobalScope"==self.constructor.name||"SharedWorkerGlobalScope"==self.constructor.name?(this.message=gt,this.location=dt,this.window=yt,this.get=mt,this.reflect=_t,this.imports=xt,this.blob=bt,this.mutation=wt):(this.location=dt,this.get=mt,this.window=yt,this.attr=qi,this.worker=Gi,this.history=zi,this.ws=Ki,this.fetch=Xi,this.message=gt,this.policy=ar,this.write=Qi,this.imports=xt,this.reflect=_t,this.niche=Yi,this.storage=Ji,this.navigator=Zi,this.cookie=tr,this.style=ir,this.blob=bt,this.mutation=wt,this.eval=rr,this.func=nr,this.rtc=sr,this.dom=Wi),this.ctx=e}};function Qs(e,t){return e||(e=[]),e.find(e=>e.name==t.name)?e[e.findIndex(e=>e.name==t.name)]={name:t.name,value:t.value,expires:t.expires}:e.push({name:t.name,value:t.value,expires:t.expires}),e}var he={open:async()=>Bt("__dynamic$cookies",1,{async upgrade(e){await e.createObjectStore("__dynamic$cookies")}}),set:async(e,t,i)=>(t.domain&&(e=t.domain),e.startsWith(".")&&(e=e.slice(1)),t.expires&&new Date(t.expires)e.name==s&&e.value==a&&e.expires==o),t);continue}r.find(e=>e.name==s&&e.value==a)||r.push({name:s,value:a,expires:o||new Date(1e13)})}}return r},async remove(e,t,i){t.domain&&(e=t.domain),e.startsWith(".")&&(e=e.slice(1));var r=await (await i).get("__dynamic$cookies",e);return!!r&&(await (await i).put("__dynamic$cookies",r=r.filter(e=>e.name!==t.name),e),!0)},async update(e,t){var i=await (await t).get("__dynamic$cookies",e.replace(/^(.*\.)?([^.]*\..*)$/g,"$2"));if(i){for(var{name:r,value:n,expires:s}of i)if(s&&new Date(s)<=new Date){he.remove(e,{name:r,value:n,expires:s},t);continue}}return i}},Ge=class{constructor(e){this.db=he,this.ctx=e}async get(e){this._db||(this._db=this.db.open());let t=await he.get(e,this._db);return We(t)}async set(e,t=""){return t=this.ctx.modules.setCookieParser.parse(t,{decodeValues:!1})[0],this._db||(this._db=this.db.open()),await he.set(e,t,this._db)}async open(){await he.open()}async update(e){return this._db||(this._db=this.db.open()),await he.update(e,this._db)}},lr={};dr(lr,{aes:()=>po,base64:()=>mo,none:()=>fo,plain:()=>ho,xor:()=>lo});var xe=14,ne=8,ze=!1,Ys=e=>{try{return unescape(encodeURIComponent(e))}catch{throw"Error on UTF-8 encode"}},Js=e=>{try{return decodeURIComponent(escape(e))}catch{throw"Bad Key"}},Zs=e=>{var t,i,r=[];for(e.length<16&&(r=[t=16-e.length,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t]),i=0;i{var i,r,n="";if(t){if((i=e[15])>16)throw"Decryption error: Maybe bad key";if(16===i)return"";for(r=0;r<16-i;r++)n+=String.fromCharCode(e[r])}else for(r=0;r<16;r++)n+=String.fromCharCode(e[r]);return n},or=(e,t)=>{var i,r=[];for(t||(e=Ys(e)),i=0;i{var t,i=[];for(t=0;t{var i,r=xe>=12?3:2,n=[],s=[],a=[],o=[],c=e.concat(t);for(a[0]=Qn(c),o=a[0],i=1;i{t=ta(t);var r,n=Math.ceil(e.length/16),s=[],a=[];for(r=0;r{t=ta(t);var n,s=e.length/16,a=[],o=[],c="";for(n=0;n=0;n--)o[n]=no(a[n],t),o[n]=0===n?Pt(o[n],i):Pt(o[n],a[n-1]);for(n=0;n{ze=!1;var i,r=Lt(e,t,0);for(i=1;i{ze=!0;var i,r=Lt(e,t,xe);for(i=xe-1;i>-1;i--)r=Zn(r),r=Jn(r),r=Lt(r,t,i),i>0&&(r=ea(r));return r},Jn=e=>{var t,i=ze?co:ur,r=[];for(t=0;t<16;t++)r[t]=i[e[t]];return r},Zn=e=>{var t,i=[],r=ze?[0,13,10,7,4,1,14,11,8,5,2,15,12,9,6,3]:[0,5,10,15,4,9,14,3,8,13,2,7,12,1,6,11];for(t=0;t<16;t++)i[t]=e[r[t]];return i},ea=e=>{var t,i=[];if(ze)for(t=0;t<4;t++)i[4*t]=At[e[4*t]]^Ct[e[1+4*t]]^kt[e[2+4*t]]^Et[e[3+4*t]],i[1+4*t]=Et[e[4*t]]^At[e[1+4*t]]^Ct[e[2+4*t]]^kt[e[3+4*t]],i[2+4*t]=kt[e[4*t]]^Et[e[1+4*t]]^At[e[2+4*t]]^Ct[e[3+4*t]],i[3+4*t]=Ct[e[4*t]]^kt[e[1+4*t]]^Et[e[2+4*t]]^At[e[3+4*t]];else for(t=0;t<4;t++)i[4*t]=vt[e[4*t]]^St[e[1+4*t]]^e[2+4*t]^e[3+4*t],i[1+4*t]=e[4*t]^vt[e[1+4*t]]^St[e[2+4*t]]^e[3+4*t],i[2+4*t]=e[4*t]^e[1+4*t]^vt[e[2+4*t]]^St[e[3+4*t]],i[3+4*t]=St[e[4*t]]^e[1+4*t]^e[2+4*t]^vt[e[3+4*t]];return i},Lt=(e,t,i)=>{var r,n=[];for(r=0;r<16;r++)n[r]=e[r]^t[i][r];return n},Pt=(e,t)=>{var i,r=[];for(i=0;i<16;i++)r[i]=e[i]^t[i];return r},ta=e=>{var t,i,r,n,s=[],a=[],o=[];for(t=0;t6&&t%ne==4&&(a=Xn(a)),r=0;r<4;r++)s[t][r]=s[t-ne][r]^a[r]}for(t=0;t{for(var t=0;t<4;t++)e[t]=ur[e[t]];return e},ao=e=>{var t,i=e[0];for(t=0;t<3;t++)e[t]=e[t+1];return e[3]=i,e},cr=(e,t)=>{var i,r=[];for(i=0;i{var t,i=[];for(t=0;t{var i,r;for(r=0,i=0;i<8;i++)r=(1&t)==1?r^e:r,e=e>127?283^e<<1:e<<1,t>>>=1;return r},Ae=e=>{var t,i=[];for(t=0;t<256;t++)i[t]=oo(e,t);return i},ur=cr("637c777bf26b6fc53001672bfed7ab76ca82c97dfa5947f0add4a2af9ca472c0b7fd9326363ff7cc34a5e5f171d8311504c723c31896059a071280e2eb27b27509832c1a1b6e5aa0523bd6b329e32f8453d100ed20fcb15b6acbbe394a4c58cfd0efaafb434d338545f9027f503c9fa851a3408f929d38f5bcb6da2110fff3d2cd0c13ec5f974417c4a77e3d645d197360814fdc222a908846eeb814de5e0bdbe0323a0a4906245cc2d3ac629195e479e7c8376d8dd54ea96c56f4ea657aae08ba78252e1ca6b4c6e8dd741f4bbd8b8a703eb5664803f60e613557b986c11d9ee1f8981169d98e949b1e87e9ce5528df8ca1890dbfe6426841992d0fb054bb16",2),co=so(ur),uo=cr("01020408102040801b366cd8ab4d9a2f5ebc63c697356ad4b37dfaefc591",2),vt=Ae(2),St=Ae(3),Et=Ae(9),Ct=Ae(11),kt=Ae(13),At=Ae(14),ia=(e,t,i)=>{var r,n=eo(8),s=Yn(or(t,i),n),a=s.key,o=s.iv,c=[[83,97,108,116,101,100,95,95].concat(n)];return e=or(e,i),r=c.concat(r=to(e,a,o)),na.encode(r)},ra=(e,t,i)=>{var r=na.decode(e),n=r.slice(8,16),s=Yn(or(t,i),n),a=s.key,o=s.iv;return e=io(r=r.slice(16,r.length),a,o,i)},Qn=e=>{function t(e,t){return e<>>32-t}function i(e,t){var i,r,n,s,a;return n=2147483648&e,s=2147483648&t,i=1073741824&e,r=1073741824&t,a=(1073741823&e)+(1073741823&t),i&r?2147483648^a^n^s:i|r?1073741824&a?3221225472^a^n^s:1073741824^a^n^s:a^n^s}function r(e,t,i){return e&t|~e&i}function n(e,t,i){return e&i|t&~i}function s(e,t,i){return e^t^i}function a(e,t,i){return t^(e|~i)}function o(e,n,s,a,o,c,u){return e=i(e,i(i(r(n,s,a),o),u)),i(t(e,c),n)}function c(e,r,s,a,o,c,u){return e=i(e,i(i(n(r,s,a),o),u)),i(t(e,c),r)}function u(e,r,n,a,o,c,u){return e=i(e,i(i(s(r,n,a),o),u)),i(t(e,c),r)}function l(e,r,n,s,o,c,u){return e=i(e,i(i(a(r,n,s),o),u)),i(t(e,c),r)}function h(e){for(var t,i=e.length,r=i+8,n=((r-r%64)/64+1)*16,s=[],a=0,o=0;o>>29,s}function p(e){var t,i,r=[];for(i=0;i<=3;i++)t=e>>>8*i&255,r=r.concat(t);return r}var d,m,f,$,y,_,g,x,v,w=[],b=cr("67452301efcdab8998badcfe10325476d76aa478e8c7b756242070dbc1bdceeef57c0faf4787c62aa8304613fd469501698098d88b44f7afffff5bb1895cd7be6b901122fd987193a679438e49b40821f61e2562c040b340265e5a51e9b6c7aad62f105d02441453d8a1e681e7d3fbc821e1cde6c33707d6f4d50d87455a14eda9e3e905fcefa3f8676f02d98d2a4c8afffa39428771f6816d9d6122fde5380ca4beea444bdecfa9f6bb4b60bebfbc70289b7ec6eaa127fad4ef308504881d05d9d4d039e6db99e51fa27cf8c4ac5665f4292244432aff97ab9423a7fc93a039655b59c38f0ccc92ffeff47d85845dd16fa87e4ffe2ce6e0a30143144e0811a1f7537e82bd3af2352ad7d2bbeb86d391",8);for(w=h(e),_=b[0],g=b[1],x=b[2],v=b[3],d=0;d{var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=e.split(""),i=(e,i)=>{var r,n,s=[],a="",o=Math.floor(16*e.length/3);for(r=0;r<16*e.length;r++)s.push(e[Math.floor(r/16)][r%16]);for(r=0;r>2],a+=t[(3&s[r])<<4|s[r+1]>>4],void 0!==s[r+1]?a+=t[(15&s[r+1])<<2|s[r+2]>>6]:a+="=",void 0!==s[r+2]?a+=t[63&s[r+2]]:a+="=";for(n=a.slice(0,64)+` -`,r=1;r{t=t.replace(/\n/g,"");var i,r=[],n=[],s=[];for(i=0;i>4,s[1]=(15&n[1])<<4|n[2]>>2,s[2]=(3&n[2])<<6|n[3],r.push(s[0],s[1],s[2]);return r.slice(0,r.length-r.length%16)};return"function"==typeof Array.indexOf&&(e=t),{encode:i,decode:r}})(),lo={encode:(e,t=2)=>e&&encodeURIComponent(e.split("").map((e,i)=>i%t?String.fromCharCode(e.charCodeAt(0)^t):e).join("")),decode:(e,t=2)=>e&&decodeURIComponent(e).split("").map((e,i)=>i%t?String.fromCharCode(e.charCodeAt(0)^t):e).join("")},ho={encode:e=>e&&encodeURIComponent(e),decode:e=>e&&decodeURIComponent(e)},po={encode:e=>e&&encodeURIComponent(ia(e,"dynamic").substring(10)),decode:e=>e&&ra("U2FsdGVkX1"+decodeURIComponent(e),"dynamic")},fo={encode:e=>e,decode:e=>e},mo={encode:e=>e&&decodeURIComponent(btoa(e)),decode:e=>e&&atob(e)},Rt=class{constructor(e){this.modules=new Mn(this),this.util=new $n(this),this.meta=new Un(this),this.regex=new Ue(this),this.rewrite=new Vn(this),this.url=new jn(this),this.is=new Wn(this),this.cookies=new Ge(this),this.client=new qe(this),this.encoding=lr,this.headers=Hn,this.listeners=[],e&&!this.config&&(this.config=e),e&&this.util.encode(self)}on(e,t){this.listeners.push({event:e,cb:t})}fire(e,t){let i=!1;for(let r of this.listeners)r.event===e&&(t=(i=!0,r.cb(...t)));return i&&t?t:null}};function hr(e,t){t||(t=e.__dynamic),t.define=new e.Proxy(e.Object.defineProperty,{apply(e,t,i){try{return Reflect.apply(e,t,i)}catch{return i[2]}}}),t.defines=new e.Proxy(e.Object.defineProperties,{apply(e,t,i){try{return Reflect.apply(e,t,i)}catch{return i[1]}}}),e.parent&&(t.parent=e.parent),e.top&&(t.top=e.top),e.document&&(t.elements={attributes:["src","href","srcset","action","data","integrity","nonce","imagesrcset",],iframeSrc:Object.getOwnPropertyDescriptor(e.HTMLIFrameElement.prototype,"src"),contentWindow:Object.getOwnPropertyDescriptor(e.HTMLIFrameElement.prototype,"contentWindow"),innerHTML:Object.getOwnPropertyDescriptor(e.Element.prototype,"innerHTML"),outerHTML:Object.getOwnPropertyDescriptor(e.Element.prototype,"outerHTML"),attrValue:Object.getOwnPropertyDescriptor(e.Attr.prototype,"value"),setAttribute:e.Element.prototype.setAttribute,getAttribute:e.Element.prototype.getAttribute,removeAttribute:e.Element.prototype.removeAttribute,hasAttribute:e.Element.prototype.hasAttribute,cloneNode:e.Node.prototype.cloneNode,addEventListener:e.Node.prototype.addEventListener,config:[{elements:[e.HTMLScriptElement,e.HTMLIFrameElement,e.HTMLEmbedElement,e.HTMLInputElement,e.HTMLTrackElement,e.HTMLMediaElement,e.HTMLSourceElement,e.Image,e.HTMLImageElement,],tags:["src"],action:"url"},{elements:[e.HTMLSourceElement,e.HTMLImageElement],tags:["srcset"],action:"srcset"},{elements:[e.HTMLAnchorElement,e.HTMLLinkElement,e.HTMLAreaElement,e.SVGImageElement,e.HTMLBaseElement,],tags:["href"],action:"url"},{elements:[e.HTMLIFrameElement],tags:["contentWindow","contentDocument"],action:"window"},{elements:[e.HTMLFormElement],tags:["action"],action:"url"},{elements:[e.HTMLObjectElement],tags:["data"],action:"url"},{elements:[e.HTMLScriptElement,e.HTMLLinkElement],tags:["integrity"],action:"rewrite",new:"nointegrity"},{elements:[e.HTMLScriptElement,e.HTMLLinkElement],tags:["nonce"],action:"rewrite",new:"nononce"},{elements:[e.HTMLIFrameElement],tags:["srcdoc"],action:"html"},{elements:[e.HTMLElement],tags:["style"],action:"css"},{elements:[e.HTMLLinkElement],tags:["imageSrcset"],action:"srcset"},],createGetter:t=>({get(){return new URL(this.href||e.__dynamic$location.href)[t]},set(e){}}),client:It},e.__dynamic.baseURL=e.document?new URL(e.__dynamic.url.decode(e.document.baseURI)):null),e.document&&(t.cookie={str:e.__dynamic$cookie||"",desc:Object.getOwnPropertyDescriptor(e.Document.prototype,"cookie")}),e.XMLHttpRequest&&(t.http={XMLResponseURL:Object.getOwnPropertyDescriptor(e.XMLHttpRequest.prototype,"responseURL"),ResponseURL:Object.getOwnPropertyDescriptor(e.Response.prototype,"url"),RequestURL:Object.getOwnPropertyDescriptor(e.Request.prototype,"url"),XMLHttpRequest:e.XMLHttpRequest}),e.Storage&&(t.storage={localStorage:e.localStorage,sessionStorage:e.sessionStorage,keys:{localStorage:Object.keys(e.localStorage),sessionStorage:Object.keys(e.sessionStorage)},methods:["getItem","setItem","removeItem","clear","length","keys","values","entries","forEach","hasOwnProperty","toString","toLocaleString","valueOf","isPrototypeOf","propertyIsEnumerable","constructor","key",]},t.storage.cloned={localStorage:t.util.clone(t.storage.localStorage),sessionStorage:t.util.clone(t.storage.sessionStorage)}),e.RTCPeerConnection&&(t.webrtc={endpoints:["stun:stun.webice.org"]}),e.trustedTypes&&(t.trustedTypes={policy:e.trustedTypes.createPolicy("dynamic",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e,createURL:e=>e}),createScript:e.TrustedTypePolicy.prototype.createScript}),e.__dynamic$config.tab&&(e.document&&e.__dynamic$config.tab.title&&(document.title=e.__dynamic$config.tab.title,t.define(e.document,"title",{get:()=>e.__dynamic$config.tab.title,set:e=>e})),e.__dynamic$config.tab.icon&&(e.__dynamic$icon=e.__dynamic$config.tab.icon),e.Navigator&&e.__dynamic$config.tab.ua&&t.define(e.navigator,"userAgent",{get:()=>e.__dynamic$config.tab.ua,set(){}}))}function pr(e){e.__dynamic.wrap=(t,i,r)=>{if(t.__dynamic$target)return t;if(t.toString().includes("{ [native code] }")&&!t.prototype){var n=i,s=t,a=function(...t){if("string"==typeof r){var i=e.__dynamic.fire(r,this?[this,...t]:t);if(i)return i}return n.call(this,s,...t)},o=function(...e){return a.call(this,...e)};return e.__dynamic.define(o,"name",{value:t.name,writable:!1}),o.__dynamic$target=t,o.toString=()=>`function ${t.name}() { [native code] }`,o}try{let c=class extends t{constructor(...e){var n=[...e],s=i.call(t,t,...e);s&&(e=s),super(...e),r&&r(this,n)}};return Object.defineProperty(c,"name",{value:t.name,writable:!1}),c}catch{return t}}}function It(e,t={},i=""){if(e.hasOwnProperty("__dynamic"))return!1;e.hasOwnProperty("__dynamic$config")||(e.__dynamic$config=t),e.parent?.__dynamic&&(e.__dynamic$bare=e.parent.__dynamic$bare);let r=new Rt(e.__dynamic$config);for(var n of(r.config.bare.path="string"==typeof r.config.bare.path||r.config.bare.path instanceof URL?new URL(r.config.bare.path,e.location):r.config.bare.path.map(t=>new URL(t,e.location)),e.__dynamic$baseURL=i||e.__dynamic$url||r.url.decode(location.pathname+location.search+location.hash)||"",e.__dynamic=r,e.__dynamic.bare=new e.__dynamic.modules.bare.BareClient(e.__dynamic$config.bare.path,e.__dynamic$bare),e.__dynamic.meta.load(new URL(e.__dynamic$baseURL)),hr(e,null),pr(e),e.__dynamic.client.methods)){let s=n.name,a=Object.entries(e.__dynamic.client).find(e=>e[0]==s);"mutation"==s&&e.frameElement||"self"==n.function&&a[1](e)}return e}var Fl=It(self)})(); /*! Bundled license information: - -cookie/index.js: - (*! - * cookie - * Copyright(c) 2012-2014 Roman Shtylman - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - *) -*/ \ No newline at end of file diff --git a/static/assets/history/config.js b/static/assets/history/config.js deleted file mode 100644 index a5e1d7634e..0000000000 --- a/static/assets/history/config.js +++ /dev/null @@ -1,26 +0,0 @@ -self.__dynamic$config = { - prefix: "/a/q/", - encoding: "xor", - mode: "production", - logLevel: 0, - bare: { - version: 2, - path: "/ca/", - }, - tab: { - title: null, - icon: null, - ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.3", - }, - assets: { - prefix: "/assets/history/", - files: { - handler: "handler.js?v=2025-04-15", - client: "client.js?v=12", - worker: "worker.js?v=12", - config: "config.js?v=2025-04-15", - inject: "", - }, - }, - block: [], -}; diff --git a/static/assets/history/handler.js b/static/assets/history/handler.js deleted file mode 100644 index 5c7c3e03f0..0000000000 --- a/static/assets/history/handler.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict";(()=>{var aa=Object.create,Je=Object.defineProperty,sa=Object.getOwnPropertyDescriptor,oa=Object.getOwnPropertyNames,ca=Object.getPrototypeOf,ua=Object.prototype.hasOwnProperty,la=(e,t,i)=>t in e?Je(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,Nt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),fr=(e,t)=>{for(var i in t)Je(e,i,{get:t[i],enumerable:!0})},ha=(e,t,i,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of oa(t))!ua.call(e,n)&&n!==i&&Je(e,n,{get:()=>t[n],enumerable:!(r=sa(t,n))||r.enumerable});return e},Ze=(e,t,i)=>(i=null!=e?aa(ca(e)):{},ha(!t&&e&&e.__esModule?i:Je(i,"default",{value:e,enumerable:!0}),e)),q=(e,t,i)=>(la(e,"symbol"!=typeof t?t+"":t,i),i),Mt=Nt(((e,t)=>{function i(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function r(e,t){for(var i,r="",n=0,s=-1,a=0,o=0;o<=e.length;++o){if(o2){var c=r.lastIndexOf("/");if(c!==r.length-1){-1===c?(r="",n=0):n=(r=r.slice(0,c)).length-1-r.lastIndexOf("/"),s=o,a=0;continue}}else if(2===r.length||1===r.length){r="",n=0,s=o,a=0;continue}t&&(r.length>0?r+="/..":r="..",n=2)}else r.length>0?r+="/"+e.slice(s+1,o):r=e.slice(s+1,o),n=o-s-1;s=o,a=0}else 46===i&&-1!==a?++a:a=-1}return r}var n={resolve:function(){for(var e,t="",n=!1,s=arguments.length-1;s>=-1&&!n;s--){var a;s>=0?a=arguments[s]:(void 0===e&&(e=process.cwd()),a=e),i(a),0!==a.length&&(t=a+"/"+t,n=47===a.charCodeAt(0))}return t=r(t,!n),n?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function(e){if(i(e),0===e.length)return".";var t=47===e.charCodeAt(0),n=47===e.charCodeAt(e.length-1);return 0===(e=r(e,!t)).length&&!t&&(e="."),e.length>0&&n&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return i(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,t=0;t0&&(void 0===e?e=r:e+="/"+r)}return void 0===e?".":n.normalize(e)},relative:function(e,t){if(i(e),i(t),e===t||(e=n.resolve(e))===(t=n.resolve(t)))return"";for(var r=1;rl){if(47===t.charCodeAt(o+h))return t.slice(o+h+1);if(0===h)return t.slice(o+h)}else a>l&&(47===e.charCodeAt(r+h)?p=h:0===h&&(p=0));break}var u=e.charCodeAt(r+h);if(u!==t.charCodeAt(o+h))break;47===u&&(p=h)}var d="";for(h=r+p+1;h<=s;++h)(h===s||47===e.charCodeAt(h))&&(0===d.length?d+="..":d+="/..");return d.length>0?d+t.slice(o+p):(o+=p,47===t.charCodeAt(o)&&++o,t.slice(o))},_makeLong:function(e){return e},dirname:function(e){if(i(e),0===e.length)return".";for(var t=e.charCodeAt(0),r=47===t,n=-1,s=!0,a=e.length-1;a>=1;--a)if(47===(t=e.charCodeAt(a))){if(!s){n=a;break}}else s=!1;return-1===n?r?"/":".":r&&1===n?"//":e.slice(0,n)},basename:function(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');i(e);var r,n=0,s=-1,a=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var o=t.length-1,c=-1;for(r=e.length-1;r>=0;--r){var l=e.charCodeAt(r);if(47===l){if(!a){n=r+1;break}}else-1===c&&(a=!1,c=r+1),o>=0&&(l===t.charCodeAt(o)?-1==--o&&(s=r):(o=-1,s=c))}return n===s?s=c:-1===s&&(s=e.length),e.slice(n,s)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){n=r+1;break}}else-1===s&&(a=!1,s=r+1);return-1===s?"":e.slice(n,s)},extname:function(e){i(e);for(var t=-1,r=0,n=-1,s=!0,a=0,o=e.length-1;o>=0;--o){var c=e.charCodeAt(o);if(47!==c)-1===n&&(s=!1,n=o+1),46===c?-1===t?t=o:1!==a&&(a=1):-1!==t&&(a=-1);else if(!s){r=o+1;break}}return-1===t||-1===n||0===a||1===a&&t===n-1&&t===r+1?"":e.slice(t,n)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var i=t.dir||t.root,r=t.base||(t.name||"")+(t.ext||"");return i?i===t.root?i+r:i+e+r:r}("/",e)},parse:function(e){i(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var r,n=e.charCodeAt(0),s=47===n;s?(t.root="/",r=1):r=0;for(var a=-1,o=0,c=-1,l=!0,p=e.length-1,h=0;p>=r;--p)if(47!==(n=e.charCodeAt(p)))-1===c&&(l=!1,c=p+1),46===n?-1===a?a=p:1!==h&&(h=1):-1!==a&&(h=-1);else if(!l){o=p+1;break}return-1===a||-1===c||0===h||1===h&&a===c-1&&a===o+1?-1!==c&&(t.base=t.name=0===o&&s?e.slice(1,c):e.slice(o,c)):(0===o&&s?(t.name=e.slice(1,a),t.base=e.slice(1,c)):(t.name=e.slice(o,a),t.base=e.slice(o,c)),t.ext=e.slice(a,c)),o>0?t.dir=e.slice(0,o-1):s&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};n.posix=n,t.exports=n})),wn=Nt((e=>{e.parse=function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string");for(var i={},n=(t||{}).decode||r,a=0;a{var i={decodeValues:!0,map:!1,silent:!1};function r(e){return"string"==typeof e&&!!e.trim()}function n(e,t){var n=e.split(";").filter(r),s=function(e){var t="",i="",r=e.split("=");return r.length>1?(t=r.shift(),i=r.join("=")):i=e,{name:t,value:i}}(n.shift()),a=s.name,o=s.value;t=t?Object.assign({},i,t):i;try{o=t.decodeValues?decodeURIComponent(o):o}catch(e){console.error("set-cookie-parser encountered an error while decoding a cookie with value '"+o+"'. Set options.decodeValues to false to disable this feature.",e)}var c={name:a,value:o};return n.forEach((function(e){var t=e.split("="),i=t.shift().trimLeft().toLowerCase(),r=t.join("=");"expires"===i?c.expires=new Date(r):"max-age"===i?c.maxAge=parseInt(r,10):"secure"===i?c.secure=!0:"httponly"===i?c.httpOnly=!0:"samesite"===i?c.sameSite=r:c[i]=r})),c}function s(e,t){if(t=t?Object.assign({},i,t):i,!e)return t.map?{}:[];if(e.headers)if("function"==typeof e.headers.getSetCookie)e=e.headers.getSetCookie();else if(e.headers["set-cookie"])e=e.headers["set-cookie"];else{var s=e.headers[Object.keys(e.headers).find((function(e){return"set-cookie"===e.toLowerCase()}))];!s&&e.headers.cookie&&!t.silent&&console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),e=s}if(Array.isArray(e)||(e=[e]),(t=t?Object.assign({},i,t):i).map){return e.filter(r).reduce((function(e,i){var r=n(i,t);return e[r.name]=r,e}),{})}return e.filter(r).map((function(e){return n(e,t)}))}t.exports=s,t.exports.parse=s,t.exports.parseString=n,t.exports.splitCookiesString=function(e){if(Array.isArray(e))return e;if("string"!=typeof e)return[];var t,i,r,n,s,a=[],o=0;function c(){for(;o=e.length)&&a.push(e.substring(t,e.length))}return a}})),gr=Ze(Mt()),et={"application/ecmascript":{source:"apache",compressible:!0,extensions:["ecma"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/http":{source:"iana"},"application/javascript":{source:"apache",charset:"UTF-8",compressible:!0,extensions:["js"]},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/manifest+json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/mp4":{source:"iana",extensions:["mp4","mpg4","mp4s","m4p"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/sql":{source:"iana",extensions:["sql"]},"application/wasm":{source:"iana",compressible:!0,extensions:["wasm"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-gzip":{source:"apache"},"application/x-javascript":{compressible:!0},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache",compressible:!0},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx","opus"]},"audio/red":{source:"iana"},"audio/rtx":{source:"iana"},"audio/scip":{source:"iana"},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",compressible:!0,extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/heic":{source:"iana",extensions:["heic"]},"image/heic-sequence":{source:"iana",extensions:["heics"]},"image/heif":{source:"iana",extensions:["heif"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/webp":{source:"iana",extensions:["webp"]},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/ecmascript":{source:"apache"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"text/markdown":{source:"iana",compressible:!0,extensions:["md","markdown"]}},xr=/^\s*([^;\s]*)(?:;|\s|$)/,fa=/^text\//i,U={};function yr(e){if(!e||"string"!=typeof e)return!1;var t=xr.exec(e),i=t&&et[t[1].toLowerCase()];return i&&i.charset?i.charset:!(!t||!fa.test(t[1]))&&"UTF-8"}function da(e){if(!e||"string"!=typeof e)return!1;var t=-1===e.indexOf("/")?U.lookup(e):e;if(!t)return!1;if(-1===t.indexOf("charset")){var i=U.charset(t);i&&(t+="; charset="+i.toLowerCase())}return t}function ma(e){if(!e||"string"!=typeof e)return!1;var t=xr.exec(e),i=t&&U.extensions[t[1].toLowerCase()];return!(!i||!i.length)&&i[0]}function ya(e){if(!e||"string"!=typeof e)return!1;var t=(0,gr.extname)("x."+e).toLowerCase().substr(1);return t&&U.types[t]||!1}function ga(e,t){var i=["nginx","apache",void 0,"iana"];Object.keys(et).forEach((function(r){var n=et[r],s=n.extensions;if(s&&s.length){e[r]=s;for(var a=0;al||c===l&&"application/"===t[o].substr(0,12)))continue}t[o]=r}}}))}U.charset=yr,U.charsets={lookup:yr},U.contentType=da,U.extension=ma,U.extensions=Object.create(null),U.lookup=ya,U.types=Object.create(null),ga(U.extensions,U.types);var _r=U,Us=Ze(Mt(),1),tt={};fr(tt,{deleteDB:()=>Ca,openDB:()=>$t,unwrap:()=>Pe,wrap:()=>G});var xa=(e,t)=>t.some((t=>e instanceof t)),br,wr;function _a(){return br||(br=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function ba(){return wr||(wr=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var vr=new WeakMap,Ot=new WeakMap,Sr=new WeakMap,Dt=new WeakMap,Ft=new WeakMap;function wa(e){let t=new Promise(((t,i)=>{let r=()=>{e.removeEventListener("success",n),e.removeEventListener("error",s)},n=()=>{t(G(e.result)),r()},s=()=>{i(e.error),r()};e.addEventListener("success",n),e.addEventListener("error",s)}));return t.then((t=>{t instanceof IDBCursor&&vr.set(t,e)})).catch((()=>{})),Ft.set(t,e),t}function va(e){if(Ot.has(e))return;let t=new Promise(((t,i)=>{let r=()=>{e.removeEventListener("complete",n),e.removeEventListener("error",s),e.removeEventListener("abort",s)},n=()=>{t(),r()},s=()=>{i(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",n),e.addEventListener("error",s),e.addEventListener("abort",s)}));Ot.set(e,t)}var Vt={get(e,t,i){if(e instanceof IDBTransaction){if("done"===t)return Ot.get(e);if("objectStoreNames"===t)return e.objectStoreNames||Sr.get(e);if("store"===t)return i.objectStoreNames[1]?void 0:i.objectStore(i.objectStoreNames[0])}return G(e[t])},set:(e,t,i)=>(e[t]=i,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function Er(e){Vt=e(Vt)}function Sa(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?ba().includes(e)?function(...t){return e.apply(Pe(this),t),G(vr.get(this))}:function(...t){return G(e.apply(Pe(this),t))}:function(t,...i){let r=e.call(Pe(this),t,...i);return Sr.set(r,t.sort?t.sort():[t]),G(r)}}function Ea(e){return"function"==typeof e?Sa(e):(e instanceof IDBTransaction&&va(e),xa(e,_a())?new Proxy(e,Vt):e)}function G(e){if(e instanceof IDBRequest)return wa(e);if(Dt.has(e))return Dt.get(e);let t=Ea(e);return t!==e&&(Dt.set(e,t),Ft.set(t,e)),t}var Pe=e=>Ft.get(e);function $t(e,t,{blocked:i,upgrade:r,blocking:n,terminated:s}={}){let a=indexedDB.open(e,t),o=G(a);return r&&a.addEventListener("upgradeneeded",(e=>{r(G(a.result),e.oldVersion,e.newVersion,G(a.transaction),e)})),i&&a.addEventListener("blocked",(e=>i(e.oldVersion,e.newVersion,e))),o.then((e=>{s&&e.addEventListener("close",(()=>s())),n&&e.addEventListener("versionchange",(e=>n(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),o}function Ca(e,{blocked:t}={}){let i=indexedDB.deleteDatabase(e);return t&&i.addEventListener("blocked",(e=>t(e.oldVersion,e))),G(i).then((()=>{}))}var ka=["get","getKey","getAll","getAllKeys","count"],Aa=["put","add","delete","clear"],Bt=new Map;function Cr(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(Bt.get(t))return Bt.get(t);let i=t.replace(/FromIndex$/,""),r=t!==i,n=Aa.includes(i);if(!(i in(r?IDBIndex:IDBObjectStore).prototype)||!n&&!ka.includes(i))return;let s=async function(e,...t){let s=this.transaction(e,n?"readwrite":"readonly"),a=s.store;return r&&(a=a.index(t.shift())),(await Promise.all([a[i](...t),n&&s.done]))[0]};return Bt.set(t,s),s}Er((e=>({...e,get:(t,i,r)=>Cr(t,i)||e.get(t,i,r),has:(t,i)=>!!Cr(t,i)||e.has(t,i)})));var La=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239],Rr=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,3104,541,1507,4938,6,4191],Pa="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࢘-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",Ir="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟊꟐꟑꟓꟕ-ꟙꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",jt={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},Ut="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",Ra={5:Ut,"5module":Ut+" export import",6:Ut+" const class extends export import super"},Ia=/^in(stanceof)?$/,Ta=new RegExp("["+Ir+"]"),Na=new RegExp("["+Ir+Pa+"]");function Wt(e,t){for(var i=65536,r=0;re)return!1;if((i+=t[r+1])>=e)return!0}return!1}function ce(e,t){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&Ta.test(String.fromCharCode(e)):!1!==t&&Wt(e,Rr)))}function be(e,t){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&Na.test(String.fromCharCode(e)):!1!==t&&(Wt(e,Rr)||Wt(e,La)))))}var L=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null};function z(e,t){return new L(e,{beforeExpr:!0,binop:t})}var K={beforeExpr:!0},H={startsExpr:!0},zt={};function k(e,t){return void 0===t&&(t={}),t.keyword=e,zt[e]=new L(e,t)}var u={num:new L("num",H),regexp:new L("regexp",H),string:new L("string",H),name:new L("name",H),privateId:new L("privateId",H),eof:new L("eof"),bracketL:new L("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new L("]"),braceL:new L("{",{beforeExpr:!0,startsExpr:!0}),braceR:new L("}"),parenL:new L("(",{beforeExpr:!0,startsExpr:!0}),parenR:new L(")"),comma:new L(",",K),semi:new L(";",K),colon:new L(":",K),dot:new L("."),question:new L("?",K),questionDot:new L("?."),arrow:new L("=>",K),template:new L("template"),invalidTemplate:new L("invalidTemplate"),ellipsis:new L("...",K),backQuote:new L("`",H),dollarBraceL:new L("${",{beforeExpr:!0,startsExpr:!0}),eq:new L("=",{beforeExpr:!0,isAssign:!0}),assign:new L("_=",{beforeExpr:!0,isAssign:!0}),incDec:new L("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new L("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:z("||",1),logicalAND:z("&&",2),bitwiseOR:z("|",3),bitwiseXOR:z("^",4),bitwiseAND:z("&",5),equality:z("==/!=/===/!==",6),relational:z("/<=/>=",7),bitShift:z("<>/>>>",8),plusMin:new L("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:z("%",10),star:z("*",10),slash:z("/",10),starstar:new L("**",{beforeExpr:!0}),coalesce:z("??",1),_break:k("break"),_case:k("case",K),_catch:k("catch"),_continue:k("continue"),_debugger:k("debugger"),_default:k("default",K),_do:k("do",{isLoop:!0,beforeExpr:!0}),_else:k("else",K),_finally:k("finally"),_for:k("for",{isLoop:!0}),_function:k("function",H),_if:k("if"),_return:k("return",K),_switch:k("switch"),_throw:k("throw",K),_try:k("try"),_var:k("var"),_const:k("const"),_while:k("while",{isLoop:!0}),_with:k("with"),_new:k("new",{beforeExpr:!0,startsExpr:!0}),_this:k("this",H),_super:k("super",H),_class:k("class",H),_extends:k("extends",K),_export:k("export"),_import:k("import",H),_null:k("null",H),_true:k("true",H),_false:k("false",H),_in:k("in",{beforeExpr:!0,binop:7}),_instanceof:k("instanceof",{beforeExpr:!0,binop:7}),_typeof:k("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:k("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:k("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},Y=/\r\n?|\n|\u2028|\u2029/,Ma=new RegExp(Y.source,"g");function we(e){return 10===e||13===e||8232===e||8233===e}function Tr(e,t,i){void 0===i&&(i=e.length);for(var r=t;r>10),56320+(1023&e)))}var Va=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,Ie=function(e,t){this.line=e,this.column=t};Ie.prototype.offset=function(e){return new Ie(this.line,this.column+e)};var st=function(e,t,i){this.start=t,this.end=i,null!==e.sourceFile&&(this.source=e.sourceFile)};function Dr(e,t){for(var i=1,r=0;;){var n=Tr(e,r,t);if(n<0)return new Ie(i,t-r);++i,r=n}}var qt={ecmaVersion:null,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},Ar=!1;function Fa(e){var t={};for(var i in qt)t[i]=e&&Ne(e,i)?e[i]:qt[i];if("latest"===t.ecmaVersion?t.ecmaVersion=1e8:null==t.ecmaVersion?(!Ar&&"object"==typeof console&&console.warn&&(Ar=!0,console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.")),t.ecmaVersion=11):t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),(!e||null==e.allowHashBang)&&(t.allowHashBang=t.ecmaVersion>=14),kr(t.onToken)){var r=t.onToken;t.onToken=function(e){return r.push(e)}}return kr(t.onComment)&&(t.onComment=Ba(t,t.onComment)),t}function Ba(e,t){return function(i,r,n,s,a,o){var c={type:i?"Block":"Line",value:r,start:n,end:s};e.locations&&(c.loc=new st(this,a,o)),e.ranges&&(c.range=[n,s]),t.push(c)}}var Te=1,ve=2,Kt=4,Or=8,Vr=16,Fr=32,Xt=64,Br=128,Me=256,Qt=Te|ve|Me;function Yt(e,t){return ve|(e?Kt:0)|(t?Or:0)}var rt=0,Jt=1,le=2,$r=3,jr=4,Ur=5,T=function(e,t,i){this.options=e=Fa(e),this.sourceFile=e.sourceFile,this.keywords=pe(Ra[e.ecmaVersion>=6?6:"module"===e.sourceType?"5module":5]);var r="";!0!==e.allowReserved&&(r=jt[e.ecmaVersion>=6?6:5===e.ecmaVersion?5:3],"module"===e.sourceType&&(r+=" await")),this.reservedWords=pe(r);var n=(r?r+" ":"")+jt.strict;this.reservedWordsStrict=pe(n),this.reservedWordsStrictBind=pe(n+" "+jt.strictBind),this.input=String(t),this.containsEsc=!1,i?(this.pos=i,this.lineStart=this.input.lastIndexOf("\n",i-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(Y).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=u.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(Te),this.regexpState=null,this.privateNameStack=[]},ie={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};T.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)},ie.inFunction.get=function(){return(this.currentVarScope().flags&ve)>0},ie.inGenerator.get=function(){return(this.currentVarScope().flags&Or)>0&&!this.currentVarScope().inClassFieldInit},ie.inAsync.get=function(){return(this.currentVarScope().flags&Kt)>0&&!this.currentVarScope().inClassFieldInit},ie.canAwait.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e];if(t.inClassFieldInit||t.flags&Me)return!1;if(t.flags&ve)return(t.flags&Kt)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},ie.allowSuper.get=function(){var e=this.currentThisScope(),t=e.flags,i=e.inClassFieldInit;return(t&Xt)>0||i||this.options.allowSuperOutsideMethod},ie.allowDirectSuper.get=function(){return(this.currentThisScope().flags&Br)>0},ie.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},ie.allowNewDotTarget.get=function(){var e=this.currentThisScope(),t=e.flags,i=e.inClassFieldInit;return(t&(ve|Me))>0||i},ie.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&Me)>0},T.extend=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var i=this,r=0;r=,?^&]/.test(n)||"!"===n&&"="===this.input.charAt(r+1))}e+=t[0].length,X.lastIndex=e,e+=X.exec(this.input)[0].length,";"===this.input[e]&&e++}},$.eat=function(e){return this.type===e&&(this.next(),!0)},$.isContextual=function(e){return this.type===u.name&&this.value===e&&!this.containsEsc},$.eatContextual=function(e){return!!this.isContextual(e)&&(this.next(),!0)},$.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},$.canInsertSemicolon=function(){return this.type===u.eof||this.type===u.braceR||Y.test(this.input.slice(this.lastTokEnd,this.start))},$.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},$.semicolon=function(){!this.eat(u.semi)&&!this.insertSemicolon()&&this.unexpected()},$.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},$.expect=function(e){this.eat(e)||this.unexpected()},$.unexpected=function(e){this.raise(e??this.start,"Unexpected token")};var ot=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};$.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var i=t?e.parenthesizedAssign:e.parenthesizedBind;i>-1&&this.raiseRecoverable(i,t?"Assigning to rvalue":"Parenthesized pattern")}},$.checkExpressionErrors=function(e,t){if(!e)return!1;var i=e.shorthandAssign,r=e.doubleProto;if(!t)return i>=0||r>=0;i>=0&&this.raise(i,"Shorthand property assignments are valid only in destructuring patterns"),r>=0&&this.raiseRecoverable(r,"Redefinition of __proto__ property")},$.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos55295&&r<56320)return!0;if(ce(r,!0)){for(var n=i+1;be(r=this.input.charCodeAt(n),!0);)++n;if(92===r||r>55295&&r<56320)return!0;var s=this.input.slice(i,n);if(!Ia.test(s))return!0}return!1},w.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;X.lastIndex=this.pos;var e,t=X.exec(this.input),i=this.pos+t[0].length;return!(Y.test(this.input.slice(this.pos,i))||"function"!==this.input.slice(i,i+8)||i+8!==this.input.length&&(be(e=this.input.charCodeAt(i+8))||e>55295&&e<56320))},w.parseStatement=function(e,t,i){var r,n=this.type,s=this.startNode();switch(this.isLet(e)&&(n=u._var,r="let"),n){case u._break:case u._continue:return this.parseBreakContinueStatement(s,n.keyword);case u._debugger:return this.parseDebuggerStatement(s);case u._do:return this.parseDoStatement(s);case u._for:return this.parseForStatement(s);case u._function:return e&&(this.strict||"if"!==e&&"label"!==e)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(s,!1,!e);case u._class:return e&&this.unexpected(),this.parseClass(s,!0);case u._if:return this.parseIfStatement(s);case u._return:return this.parseReturnStatement(s);case u._switch:return this.parseSwitchStatement(s);case u._throw:return this.parseThrowStatement(s);case u._try:return this.parseTryStatement(s);case u._const:case u._var:return r=r||this.value,e&&"var"!==r&&this.unexpected(),this.parseVarStatement(s,r);case u._while:return this.parseWhileStatement(s);case u._with:return this.parseWithStatement(s);case u.braceL:return this.parseBlock(!0,s);case u.semi:return this.parseEmptyStatement(s);case u._export:case u._import:if(this.options.ecmaVersion>10&&n===u._import){X.lastIndex=this.pos;var a=X.exec(this.input),o=this.pos+a[0].length,c=this.input.charCodeAt(o);if(40===c||46===c)return this.parseExpressionStatement(s,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),n===u._import?this.parseImport(s):this.parseExport(s,i);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(s,!0,!e);var l=this.value,p=this.parseExpression();return n===u.name&&"Identifier"===p.type&&this.eat(u.colon)?this.parseLabeledStatement(s,l,p,e):this.parseExpressionStatement(s,p)}},w.parseBreakContinueStatement=function(e,t){var i="break"===t;this.next(),this.eat(u.semi)||this.insertSemicolon()?e.label=null:this.type!==u.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var r=0;r=6?this.eat(u.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},w.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(Zt),this.enterScope(0),this.expect(u.parenL),this.type===u.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var i=this.isLet();if(this.type===u._var||this.type===u._const||i){var r=this.startNode(),n=i?"let":this.value;return this.next(),this.parseVar(r,!0,n),this.finishNode(r,"VariableDeclaration"),(this.type===u._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===r.declarations.length?(this.options.ecmaVersion>=9&&(this.type===u._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,r)):(t>-1&&this.unexpected(t),this.parseFor(e,r))}var s=this.isContextual("let"),a=!1,o=new ot,c=this.parseExpression(!(t>-1)||"await",o);return this.type===u._in||(a=this.options.ecmaVersion>=6&&this.isContextual("of"))?(this.options.ecmaVersion>=9&&(this.type===u._in?t>-1&&this.unexpected(t):e.await=t>-1),s&&a&&this.raise(c.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(c,!1,o),this.checkLValPattern(c),this.parseForIn(e,c)):(this.checkExpressionErrors(o,!0),t>-1&&this.unexpected(t),this.parseFor(e,c))},w.parseFunctionStatement=function(e,t,i){return this.next(),this.parseFunction(e,Re|(i?0:Gt),!1,t)},w.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(u._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")},w.parseReturnStatement=function(e){return!this.inFunction&&!this.options.allowReturnOutsideFunction&&this.raise(this.start,"'return' outside of function"),this.next(),this.eat(u.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},w.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(u.braceL),this.labels.push(ja),this.enterScope(0);for(var t,i=!1;this.type!==u.braceR;)if(this.type===u._case||this.type===u._default){var r=this.type===u._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),r?t.test=this.parseExpression():(i&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),i=!0,t.test=null),this.expect(u.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},w.parseThrowStatement=function(e){return this.next(),Y.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var Ua=[];w.parseCatchClauseParam=function(){var e=this.parseBindingAtom(),t="Identifier"===e.type;return this.enterScope(t?Fr:0),this.checkLValPattern(e,t?jr:le),this.expect(u.parenR),e},w.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===u._catch){var t=this.startNode();this.next(),this.eat(u.parenL)?t.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0)),t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(u._finally)?this.parseBlock():null,!e.handler&&!e.finalizer&&this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},w.parseVarStatement=function(e,t,i){return this.next(),this.parseVar(e,!1,t,i),this.semicolon(),this.finishNode(e,"VariableDeclaration")},w.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(Zt),e.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(e,"WhileStatement")},w.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement("with"),this.finishNode(e,"WithStatement")},w.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},w.parseLabeledStatement=function(e,t,i,r){for(var n=0,s=this.labels;n=0;o--){var c=this.labels[o];if(c.statementStart!==e.start)break;c.statementStart=this.start,c.kind=a}return this.labels.push({name:t,kind:a,statementStart:this.start}),e.body=this.parseStatement(r?-1===r.indexOf("label")?r+"label":r:"label"),this.labels.pop(),e.label=i,this.finishNode(e,"LabeledStatement")},w.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},w.parseBlock=function(e,t,i){for(void 0===e&&(e=!0),void 0===t&&(t=this.startNode()),t.body=[],this.expect(u.braceL),e&&this.enterScope(0);this.type!==u.braceR;){var r=this.parseStatement(null);t.body.push(r)}return i&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,"BlockStatement")},w.parseFor=function(e,t){return e.init=t,this.expect(u.semi),e.test=this.type===u.semi?null:this.parseExpression(),this.expect(u.semi),e.update=this.type===u.parenR?null:this.parseExpression(),this.expect(u.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")},w.parseForIn=function(e,t){var i=this.type===u._in;return this.next(),"VariableDeclaration"===t.type&&null!=t.declarations[0].init&&(!i||this.options.ecmaVersion<8||this.strict||"var"!==t.kind||"Identifier"!==t.declarations[0].id.type)&&this.raise(t.start,(i?"for-in":"for-of")+" loop variable declaration may not have an initializer"),e.left=t,e.right=i?this.parseExpression():this.parseMaybeAssign(),this.expect(u.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,i?"ForInStatement":"ForOfStatement")},w.parseVar=function(e,t,i,r){for(e.declarations=[],e.kind=i;;){var n=this.startNode();if(this.parseVarId(n,i),this.eat(u.eq)?n.init=this.parseMaybeAssign(t):r||"const"!==i||this.type===u._in||this.options.ecmaVersion>=6&&this.isContextual("of")?r||"Identifier"===n.id.type||t&&(this.type===u._in||this.isContextual("of"))?n.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(n,"VariableDeclarator")),!this.eat(u.comma))break}return e},w.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLValPattern(e.id,"var"===t?Jt:le,!1)};var Re=1,Gt=2,Hr=4;function Ha(e,t){var i=t.key.name,r=e[i],n="true";return"MethodDefinition"===t.type&&("get"===t.kind||"set"===t.kind)&&(n=(t.static?"s":"i")+t.kind),"iget"===r&&"iset"===n||"iset"===r&&"iget"===n||"sget"===r&&"sset"===n||"sset"===r&&"sget"===n?(e[i]="true",!1):!!r||(e[i]=n,!1)}function nt(e,t){var i=e.computed,r=e.key;return!i&&("Identifier"===r.type&&r.name===t||"Literal"===r.type&&r.value===t)}w.parseFunction=function(e,t,i,r,n){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!r)&&(this.type===u.star&&t&Gt&&this.unexpected(),e.generator=this.eat(u.star)),this.options.ecmaVersion>=8&&(e.async=!!r),t&Re&&(e.id=t&Hr&&this.type!==u.name?null:this.parseIdent(),e.id&&!(t&Gt)&&this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?Jt:le:$r));var s=this.yieldPos,a=this.awaitPos,o=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Yt(e.async,e.generator)),t&Re||(e.id=this.type===u.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,i,!1,n),this.yieldPos=s,this.awaitPos=a,this.awaitIdentPos=o,this.finishNode(e,t&Re?"FunctionDeclaration":"FunctionExpression")},w.parseFunctionParams=function(e){this.expect(u.parenL),e.params=this.parseBindingList(u.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},w.parseClass=function(e,t){this.next();var i=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var r=this.enterClassBody(),n=this.startNode(),s=!1;for(n.body=[],this.expect(u.braceL);this.type!==u.braceR;){var a=this.parseClassElement(null!==e.superClass);a&&(n.body.push(a),"MethodDefinition"===a.type&&"constructor"===a.kind?(s&&this.raiseRecoverable(a.start,"Duplicate constructor in the same class"),s=!0):a.key&&"PrivateIdentifier"===a.key.type&&Ha(r,a)&&this.raiseRecoverable(a.key.start,"Identifier '#"+a.key.name+"' has already been declared"))}return this.strict=i,this.next(),e.body=this.finishNode(n,"ClassBody"),this.exitClassBody(),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},w.parseClassElement=function(e){if(this.eat(u.semi))return null;var t=this.options.ecmaVersion,i=this.startNode(),r="",n=!1,s=!1,a="method",o=!1;if(this.eatContextual("static")){if(t>=13&&this.eat(u.braceL))return this.parseClassStaticBlock(i),i;this.isClassElementNameStart()||this.type===u.star?o=!0:r="static"}if(i.static=o,!r&&t>=8&&this.eatContextual("async")&&(!this.isClassElementNameStart()&&this.type!==u.star||this.canInsertSemicolon()?r="async":s=!0),!r&&(t>=9||!s)&&this.eat(u.star)&&(n=!0),!r&&!s&&!n){var c=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?a=c:r=c)}if(r?(i.computed=!1,i.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),i.key.name=r,this.finishNode(i.key,"Identifier")):this.parseClassElementName(i),t<13||this.type===u.parenL||"method"!==a||n||s){var l=!i.static&&nt(i,"constructor"),p=l&&e;l&&"method"!==a&&this.raise(i.key.start,"Constructor can't have get/set modifier"),i.kind=l?"constructor":a,this.parseClassMethod(i,n,s,p)}else this.parseClassField(i);return i},w.isClassElementNameStart=function(){return this.type===u.name||this.type===u.privateId||this.type===u.num||this.type===u.string||this.type===u.bracketL||this.type.keyword},w.parseClassElementName=function(e){this.type===u.privateId?("constructor"===this.value&&this.raise(this.start,"Classes can't have an element named '#constructor'"),e.computed=!1,e.key=this.parsePrivateIdent()):this.parsePropertyName(e)},w.parseClassMethod=function(e,t,i,r){var n=e.key;"constructor"===e.kind?(t&&this.raise(n.start,"Constructor can't be a generator"),i&&this.raise(n.start,"Constructor can't be an async method")):e.static&&nt(e,"prototype")&&this.raise(n.start,"Classes may not have a static property named prototype");var s=e.value=this.parseMethod(t,i,r);return"get"===e.kind&&0!==s.params.length&&this.raiseRecoverable(s.start,"getter should have no params"),"set"===e.kind&&1!==s.params.length&&this.raiseRecoverable(s.start,"setter should have exactly one param"),"set"===e.kind&&"RestElement"===s.params[0].type&&this.raiseRecoverable(s.params[0].start,"Setter cannot use rest params"),this.finishNode(e,"MethodDefinition")},w.parseClassField=function(e){if(nt(e,"constructor")?this.raise(e.key.start,"Classes can't have a field named 'constructor'"):e.static&&nt(e,"prototype")&&this.raise(e.key.start,"Classes can't have a static field named 'prototype'"),this.eat(u.eq)){var t=this.currentThisScope(),i=t.inClassFieldInit;t.inClassFieldInit=!0,e.value=this.parseMaybeAssign(),t.inClassFieldInit=i}else e.value=null;return this.semicolon(),this.finishNode(e,"PropertyDefinition")},w.parseClassStaticBlock=function(e){e.body=[];var t=this.labels;for(this.labels=[],this.enterScope(Me|Xt);this.type!==u.braceR;){var i=this.parseStatement(null);e.body.push(i)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(e,"StaticBlock")},w.parseClassId=function(e,t){this.type===u.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,le,!1)):(!0===t&&this.unexpected(),e.id=null)},w.parseClassSuper=function(e){e.superClass=this.eat(u._extends)?this.parseExprSubscripts(null,!1):null},w.enterClassBody=function(){var e={declared:Object.create(null),used:[]};return this.privateNameStack.push(e),e.declared},w.exitClassBody=function(){var e=this.privateNameStack.pop(),t=e.declared,i=e.used;if(this.options.checkPrivateFields)for(var r=this.privateNameStack.length,n=0===r?null:this.privateNameStack[r-1],s=0;s=11&&(this.eatContextual("as")?(e.exported=this.parseModuleExportName(),this.checkExport(t,e.exported,this.lastTokStart)):e.exported=null),this.expectContextual("from"),this.type!==u.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration")},w.parseExport=function(e,t){if(this.next(),this.eat(u.star))return this.parseExportAllDeclaration(e,t);if(this.eat(u._default))return this.checkExport(t,"default",this.lastTokStart),e.declaration=this.parseExportDefaultDeclaration(),this.finishNode(e,"ExportDefaultDeclaration");if(this.shouldParseExportStatement())e.declaration=this.parseExportDeclaration(e),"VariableDeclaration"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==u.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var i=0,r=e.specifiers;i=13&&this.type===u.string){var e=this.parseLiteral(this.value);return Va.test(e.value)&&this.raise(e.start,"An export name cannot include a lone surrogate."),e}return this.parseIdent(!0)},w.adaptDirectivePrologue=function(e){for(var t=0;t=5&&"ExpressionStatement"===e.type&&"Literal"===e.expression.type&&"string"==typeof e.expression.value&&('"'===this.input[e.start]||"'"===this.input[e.start])};var J=T.prototype;J.toAssignable=function(e,t,i){if(this.options.ecmaVersion>=6&&e)switch(e.type){case"Identifier":this.inAsync&&"await"===e.name&&this.raise(e.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",i&&this.checkPatternErrors(i,!0);for(var r=0,n=e.properties;r=8&&!o&&"async"===c.name&&!this.canInsertSemicolon()&&this.eat(u._function))return this.overrideContext(R.f_expr),this.parseFunction(this.startNodeAt(s,a),0,!1,!0,t);if(n&&!this.canInsertSemicolon()){if(this.eat(u.arrow))return this.parseArrowExpression(this.startNodeAt(s,a),[c],!1,t);if(this.options.ecmaVersion>=8&&"async"===c.name&&this.type===u.name&&!o&&(!this.potentialArrowInForAwait||"of"!==this.value||this.containsEsc))return c=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(u.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(s,a),[c],!0,t)}return c;case u.regexp:var l=this.value;return(r=this.parseLiteral(l.value)).regex={pattern:l.pattern,flags:l.flags},r;case u.num:case u.string:return this.parseLiteral(this.value);case u._null:case u._true:case u._false:return(r=this.startNode()).value=this.type===u._null?null:this.type===u._true,r.raw=this.type.keyword,this.next(),this.finishNode(r,"Literal");case u.parenL:var p=this.start,h=this.parseParenAndDistinguishExpression(n,t);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(h)&&(e.parenthesizedAssign=p),e.parenthesizedBind<0&&(e.parenthesizedBind=p)),h;case u.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(u.bracketR,!0,!0,e),this.finishNode(r,"ArrayExpression");case u.braceL:return this.overrideContext(R.b_expr),this.parseObj(!1,e);case u._function:return r=this.startNode(),this.next(),this.parseFunction(r,0);case u._class:return this.parseClass(this.startNode(),!1);case u._new:return this.parseNew();case u.backQuote:return this.parseTemplate();case u._import:return this.options.ecmaVersion>=11?this.parseExprImport(i):this.unexpected();default:return this.parseExprAtomDefault()}},v.parseExprAtomDefault=function(){this.unexpected()},v.parseExprImport=function(e){var t=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var i=this.parseIdent(!0);return this.type!==u.parenL||e?this.type===u.dot?(t.meta=i,this.parseImportMeta(t)):void this.unexpected():this.parseDynamicImport(t)},v.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(u.parenR)){var t=this.start;this.eat(u.comma)&&this.eat(u.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")},v.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),"meta"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for import is 'import.meta'"),t&&this.raiseRecoverable(e.start,"'import.meta' must not contain escaped characters"),"module"!==this.options.sourceType&&!this.options.allowImportExportEverywhere&&this.raiseRecoverable(e.start,"Cannot use 'import.meta' outside a module"),this.finishNode(e,"MetaProperty")},v.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),110===t.raw.charCodeAt(t.raw.length-1)&&(t.bigint=t.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(t,"Literal")},v.parseParenExpression=function(){this.expect(u.parenL);var e=this.parseExpression();return this.expect(u.parenR),e},v.shouldParseArrow=function(e){return!this.canInsertSemicolon()},v.parseParenAndDistinguishExpression=function(e,t){var i,r=this.start,n=this.startLoc,s=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var a,o=this.start,c=this.startLoc,l=[],p=!0,h=!1,d=new ot,m=this.yieldPos,f=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==u.parenR;){if(p?p=!1:this.expect(u.comma),s&&this.afterTrailingComma(u.parenR,!0)){h=!0;break}if(this.type===u.ellipsis){a=this.start,l.push(this.parseParenItem(this.parseRestBinding())),this.type===u.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element");break}l.push(this.parseMaybeAssign(!1,d,this.parseParenItem))}var y=this.lastTokEnd,g=this.lastTokEndLoc;if(this.expect(u.parenR),e&&this.shouldParseArrow(l)&&this.eat(u.arrow))return this.checkPatternErrors(d,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=m,this.awaitPos=f,this.parseParenArrowList(r,n,l,t);(!l.length||h)&&this.unexpected(this.lastTokStart),a&&this.unexpected(a),this.checkExpressionErrors(d,!0),this.yieldPos=m||this.yieldPos,this.awaitPos=f||this.awaitPos,l.length>1?((i=this.startNodeAt(o,c)).expressions=l,this.finishNodeAt(i,"SequenceExpression",y,g)):i=l[0]}else i=this.parseParenExpression();if(this.options.preserveParens){var _=this.startNodeAt(r,n);return _.expression=i,this.finishNode(_,"ParenthesizedExpression")}return i},v.parseParenItem=function(e){return e},v.parseParenArrowList=function(e,t,i,r){return this.parseArrowExpression(this.startNodeAt(e,t),i,!1,r)};var Wa=[];v.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(u.dot)){e.meta=t;var i=this.containsEsc;return e.property=this.parseIdent(!0),"target"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is 'new.target'"),i&&this.raiseRecoverable(e.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(e.start,"'new.target' can only be used in functions and class static block"),this.finishNode(e,"MetaProperty")}var r=this.start,n=this.startLoc;return e.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),r,n,!0,!1),this.eat(u.parenL)?e.arguments=this.parseExprList(u.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Wa,this.finishNode(e,"NewExpression")},v.parseTemplateElement=function(e){var t=e.isTagged,i=this.startNode();return this.type===u.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),i.value={raw:this.value,cooked:null}):i.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),i.tail=this.type===u.backQuote,this.finishNode(i,"TemplateElement")},v.parseTemplate=function(e){void 0===e&&(e={});var t=e.isTagged;void 0===t&&(t=!1);var i=this.startNode();this.next(),i.expressions=[];var r=this.parseTemplateElement({isTagged:t});for(i.quasis=[r];!r.tail;)this.type===u.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(u.dollarBraceL),i.expressions.push(this.parseExpression()),this.expect(u.braceR),i.quasis.push(r=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(i,"TemplateLiteral")},v.isAsyncProp=function(e){return!e.computed&&"Identifier"===e.key.type&&"async"===e.key.name&&(this.type===u.name||this.type===u.num||this.type===u.string||this.type===u.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===u.star)&&!Y.test(this.input.slice(this.lastTokEnd,this.start))},v.parseObj=function(e,t){var i=this.startNode(),r=!0,n={};for(i.properties=[],this.next();!this.eat(u.braceR);){if(r)r=!1;else if(this.expect(u.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(u.braceR))break;var s=this.parseProperty(e,t);e||this.checkPropClash(s,n,t),i.properties.push(s)}return this.finishNode(i,e?"ObjectPattern":"ObjectExpression")},v.parseProperty=function(e,t){var i,r,n,s,a=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(u.ellipsis))return e?(a.argument=this.parseIdent(!1),this.type===u.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.finishNode(a,"RestElement")):(a.argument=this.parseMaybeAssign(!1,t),this.type===u.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(a,"SpreadElement"));this.options.ecmaVersion>=6&&(a.method=!1,a.shorthand=!1,(e||t)&&(n=this.start,s=this.startLoc),e||(i=this.eat(u.star)));var o=this.containsEsc;return this.parsePropertyName(a),!e&&!o&&this.options.ecmaVersion>=8&&!i&&this.isAsyncProp(a)?(r=!0,i=this.options.ecmaVersion>=9&&this.eat(u.star),this.parsePropertyName(a)):r=!1,this.parsePropertyValue(a,e,i,r,n,s,t,o),this.finishNode(a,"Property")},v.parseGetterSetter=function(e){e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var t="get"===e.kind?0:1;if(e.value.params.length!==t){var i=e.value.start;"get"===e.kind?this.raiseRecoverable(i,"getter should have no params"):this.raiseRecoverable(i,"setter should have exactly one param")}else"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")},v.parsePropertyValue=function(e,t,i,r,n,s,a,o){(i||r)&&this.type===u.colon&&this.unexpected(),this.eat(u.colon)?(e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,a),e.kind="init"):this.options.ecmaVersion>=6&&this.type===u.parenL?(t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(i,r)):t||o||!(this.options.ecmaVersion>=5)||e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||this.type===u.comma||this.type===u.braceR||this.type===u.eq?this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?((i||r)&&this.unexpected(),this.checkUnreserved(e.key),"await"===e.key.name&&!this.awaitIdentPos&&(this.awaitIdentPos=n),e.kind="init",t?e.value=this.parseMaybeDefault(n,s,this.copyNode(e.key)):this.type===u.eq&&a?(a.shorthandAssign<0&&(a.shorthandAssign=this.start),e.value=this.parseMaybeDefault(n,s,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.shorthand=!0):this.unexpected():((i||r)&&this.unexpected(),this.parseGetterSetter(e))},v.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(u.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(u.bracketR),e.key;e.computed=!1}return e.key=this.type===u.num||this.type===u.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},v.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},v.parseMethod=function(e,t,i){var r=this.startNode(),n=this.yieldPos,s=this.awaitPos,a=this.awaitIdentPos;return this.initFunction(r),this.options.ecmaVersion>=6&&(r.generator=e),this.options.ecmaVersion>=8&&(r.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Yt(t,r.generator)|Xt|(i?Br:0)),this.expect(u.parenL),r.params=this.parseBindingList(u.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(r,!1,!0,!1),this.yieldPos=n,this.awaitPos=s,this.awaitIdentPos=a,this.finishNode(r,"FunctionExpression")},v.parseArrowExpression=function(e,t,i,r){var n=this.yieldPos,s=this.awaitPos,a=this.awaitIdentPos;return this.enterScope(Yt(i,!1)|Vr),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!i),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1,r),this.yieldPos=n,this.awaitPos=s,this.awaitIdentPos=a,this.finishNode(e,"ArrowFunctionExpression")},v.parseFunctionBody=function(e,t,i,r){var n=t&&this.type!==u.braceL,s=this.strict,a=!1;if(n)e.body=this.parseMaybeAssign(r),e.expression=!0,this.checkParams(e,!1);else{var o=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);(!s||o)&&((a=this.strictDirective(this.end))&&o&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list"));var c=this.labels;this.labels=[],a&&(this.strict=!0),this.checkParams(e,!s&&!a&&!t&&!i&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,Ur),e.body=this.parseBlock(!1,void 0,a&&!s),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=c}this.exitScope()},v.isSimpleParamList=function(e){for(var t=0,i=e;t-1||n.functions.indexOf(e)>-1||n.var.indexOf(e)>-1,n.lexical.push(e),this.inModule&&n.flags&Te&&delete this.undefinedExports[e]}else if(t===jr){this.currentScope().lexical.push(e)}else if(t===$r){var s=this.currentScope();r=this.treatFunctionsAsVar?s.lexical.indexOf(e)>-1:s.lexical.indexOf(e)>-1||s.var.indexOf(e)>-1,s.functions.push(e)}else for(var a=this.scopeStack.length-1;a>=0;--a){var o=this.scopeStack[a];if(o.lexical.indexOf(e)>-1&&!(o.flags&Fr&&o.lexical[0]===e)||!this.treatFunctionsAsVarInScope(o)&&o.functions.indexOf(e)>-1){r=!0;break}if(o.var.push(e),this.inModule&&o.flags&Te&&delete this.undefinedExports[e],o.flags&Qt)break}r&&this.raiseRecoverable(i,"Identifier '"+e+"' has already been declared")},de.checkLocalExport=function(e){-1===this.scopeStack[0].lexical.indexOf(e.name)&&-1===this.scopeStack[0].var.indexOf(e.name)&&(this.undefinedExports[e.name]=e)},de.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},de.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&Qt)return t}},de.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&Qt&&!(t.flags&Vr))return t}};var ct=function(e,t,i){this.type="",this.start=t,this.end=0,e.options.locations&&(this.loc=new st(e,i)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},De=T.prototype;function qr(e,t,i,r){return e.type=t,e.end=i,this.options.locations&&(e.loc.end=r),this.options.ranges&&(e.range[1]=i),e}De.startNode=function(){return new ct(this,this.start,this.startLoc)},De.startNodeAt=function(e,t){return new ct(this,e,t)},De.finishNode=function(e,t){return qr.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},De.finishNodeAt=function(e,t,i,r){return qr.call(this,e,t,i,r)},De.copyNode=function(e){var t=new ct(this,e.start,this.startLoc);for(var i in e)t[i]=e[i];return t};var Gr="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",zr=Gr+" Extended_Pictographic",Kr=zr,Xr=Kr+" EBase EComp EMod EPres ExtPict",Qr=Xr,Ga=Qr,za={9:Gr,10:zr,11:Kr,12:Xr,13:Qr,14:Ga},Ka="Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji",Xa={9:"",10:"",11:"",12:"",13:"",14:Ka},Lr="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",Yr="Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",Jr=Yr+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",Zr=Jr+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",en=Zr+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",tn=en+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",Qa=tn+" Hrkt Katakana_Or_Hiragana Kawi Nag_Mundari Nagm Unknown Zzzz",Ya={9:Yr,10:Jr,11:Zr,12:en,13:tn,14:Qa},rn={};function Ja(e){var t=rn[e]={binary:pe(za[e]+" "+Lr),binaryOfStrings:pe(Xa[e]),nonBinary:{General_Category:pe(Lr),Script:pe(Ya[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}for(it=0,Ht=[9,10,11,12,13,14];it=6?"uy":"")+(e.options.ecmaVersion>=9?"s":"")+(e.options.ecmaVersion>=13?"d":"")+(e.options.ecmaVersion>=15?"v":""),this.unicodeProperties=rn[e.options.ecmaVersion>=14?14:e.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function nn(e){return 36===e||e>=40&&e<=43||46===e||63===e||e>=91&&e<=94||e>=123&&e<=125}function Za(e){return ce(e,!0)||36===e||95===e}function es(e){return be(e,!0)||36===e||95===e||8204===e||8205===e}function an(e){return e>=65&&e<=90||e>=97&&e<=122}function ts(e){return e>=0&&e<=1114111}re.prototype.reset=function(e,t,i){var r=-1!==i.indexOf("v"),n=-1!==i.indexOf("u");this.start=0|e,this.source=t+"",this.flags=i,r&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=n&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=n&&this.parser.options.ecmaVersion>=9)},re.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+e)},re.prototype.at=function(e,t){void 0===t&&(t=!1);var i=this.source,r=i.length;if(e>=r)return-1;var n=i.charCodeAt(e);if(!t&&!this.switchU||n<=55295||n>=57344||e+1>=r)return n;var s=i.charCodeAt(e+1);return s>=56320&&s<=57343?(n<<10)+s-56613888:n},re.prototype.nextIndex=function(e,t){void 0===t&&(t=!1);var i=this.source,r=i.length;if(e>=r)return r;var n,s=i.charCodeAt(e);return!t&&!this.switchU||s<=55295||s>=57344||e+1>=r||(n=i.charCodeAt(e+1))<56320||n>57343?e+1:e+2},re.prototype.current=function(e){return void 0===e&&(e=!1),this.at(this.pos,e)},re.prototype.lookahead=function(e){return void 0===e&&(e=!1),this.at(this.nextIndex(this.pos,e),e)},re.prototype.advance=function(e){void 0===e&&(e=!1),this.pos=this.nextIndex(this.pos,e)},re.prototype.eat=function(e,t){return void 0===t&&(t=!1),this.current(t)===e&&(this.advance(t),!0)},re.prototype.eatChars=function(e,t){void 0===t&&(t=!1);for(var i=this.pos,r=0,n=e;r-1&&this.raise(e.start,"Duplicate regular expression flag"),"u"===a&&(r=!0),"v"===a&&(n=!0)}this.options.ecmaVersion>=15&&r&&n&&this.raise(e.start,"Invalid regular expression flag")},b.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},b.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,i=e.backReferenceNames;t=9&&(i=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!i,!0}return e.pos=t,!1},b.regexp_eatQuantifier=function(e,t){return void 0===t&&(t=!1),!!this.regexp_eatQuantifierPrefix(e,t)&&(e.eat(63),!0)},b.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},b.regexp_eatBracedQuantifier=function(e,t){var i=e.pos;if(e.eat(123)){var r=0,n=-1;if(this.regexp_eatDecimalDigits(e)&&(r=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(n=e.lastIntValue),e.eat(125)))return-1!==n&&n=9?this.regexp_groupSpecifier(e):63===e.current()&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1},b.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},b.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1},b.regexp_eatSyntaxCharacter=function(e){var t=e.current();return!!nn(t)&&(e.lastIntValue=t,e.advance(),!0)},b.regexp_eatPatternCharacters=function(e){for(var t=e.pos,i=0;-1!==(i=e.current())&&!nn(i);)e.advance();return e.pos!==t},b.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return!(-1===t||36===t||t>=40&&t<=43||46===t||63===t||91===t||94===t||124===t)&&(e.advance(),!0)},b.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e))return-1!==e.groupNames.indexOf(e.lastStringValue)&&e.raise("Duplicate capture group name"),void e.groupNames.push(e.lastStringValue);e.raise("Invalid group")}},b.regexp_eatGroupName=function(e){if(e.lastStringValue="",e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise("Invalid capture group name")}return!1},b.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue="",this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=fe(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=fe(e.lastIntValue);return!0}return!1},b.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,i=this.options.ecmaVersion>=11,r=e.current(i);return e.advance(i),92===r&&this.regexp_eatRegExpUnicodeEscapeSequence(e,i)&&(r=e.lastIntValue),Za(r)?(e.lastIntValue=r,!0):(e.pos=t,!1)},b.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,i=this.options.ecmaVersion>=11,r=e.current(i);return e.advance(i),92===r&&this.regexp_eatRegExpUnicodeEscapeSequence(e,i)&&(r=e.lastIntValue),es(r)?(e.lastIntValue=r,!0):(e.pos=t,!1)},b.regexp_eatAtomEscape=function(e){return!!(this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e))||(e.switchU&&(99===e.current()&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)},b.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var i=e.lastIntValue;if(e.switchU)return i>e.maxBackReference&&(e.maxBackReference=i),!0;if(i<=e.numCapturingParens)return!0;e.pos=t}return!1},b.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1},b.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},b.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},b.regexp_eatZero=function(e){return 48===e.current()&&!ut(e.lookahead())&&(e.lastIntValue=0,e.advance(),!0)},b.regexp_eatControlEscape=function(e){var t=e.current();return 116===t?(e.lastIntValue=9,e.advance(),!0):110===t?(e.lastIntValue=10,e.advance(),!0):118===t?(e.lastIntValue=11,e.advance(),!0):102===t?(e.lastIntValue=12,e.advance(),!0):114===t&&(e.lastIntValue=13,e.advance(),!0)},b.regexp_eatControlLetter=function(e){var t=e.current();return!!an(t)&&(e.lastIntValue=t%32,e.advance(),!0)},b.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){void 0===t&&(t=!1);var i=e.pos,r=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var n=e.lastIntValue;if(r&&n>=55296&&n<=56319){var s=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var a=e.lastIntValue;if(a>=56320&&a<=57343)return e.lastIntValue=1024*(n-55296)+(a-56320)+65536,!0}e.pos=s,e.lastIntValue=n}return!0}if(r&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&ts(e.lastIntValue))return!0;r&&e.raise("Invalid unicode escape"),e.pos=i}return!1},b.regexp_eatIdentityEscape=function(e){if(e.switchU)return!!this.regexp_eatSyntaxCharacter(e)||!!e.eat(47)&&(e.lastIntValue=47,!0);var t=e.current();return!(99===t||e.switchN&&107===t)&&(e.lastIntValue=t,e.advance(),!0)},b.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do{e.lastIntValue=10*e.lastIntValue+(t-48),e.advance()}while((t=e.current())>=48&&t<=57);return!0}return!1};var sn=0,ue=1,Q=2;function is(e){return 100===e||68===e||115===e||83===e||119===e||87===e}function on(e){return an(e)||95===e}function rs(e){return on(e)||ut(e)}function ns(e){return 33===e||e>=35&&e<=38||e>=42&&e<=44||46===e||e>=58&&e<=64||94===e||96===e||126===e}function as(e){return 40===e||41===e||45===e||47===e||e>=91&&e<=93||e>=123&&e<=125}function ss(e){return 33===e||35===e||37===e||38===e||44===e||45===e||e>=58&&e<=62||64===e||96===e||126===e}function ut(e){return e>=48&&e<=57}function cn(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function un(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e-48}function ln(e){return e>=48&&e<=55}b.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(is(t))return e.lastIntValue=-1,e.advance(),ue;var i=!1;if(e.switchU&&this.options.ecmaVersion>=9&&((i=80===t)||112===t)){var r;if(e.lastIntValue=-1,e.advance(),e.eat(123)&&(r=this.regexp_eatUnicodePropertyValueExpression(e))&&e.eat(125))return i&&r===Q&&e.raise("Invalid property name"),r;e.raise("Invalid property name")}return sn},b.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var i=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var r=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,i,r),ue}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var n=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,n)}return sn},b.regexp_validateUnicodePropertyNameAndValue=function(e,t,i){Ne(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(i)||e.raise("Invalid property value")},b.regexp_validateUnicodePropertyNameOrValue=function(e,t){return e.unicodeProperties.binary.test(t)?ue:e.switchV&&e.unicodeProperties.binaryOfStrings.test(t)?Q:void e.raise("Invalid property name")},b.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";on(t=e.current());)e.lastStringValue+=fe(t),e.advance();return""!==e.lastStringValue},b.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";rs(t=e.current());)e.lastStringValue+=fe(t),e.advance();return""!==e.lastStringValue},b.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},b.regexp_eatCharacterClass=function(e){if(e.eat(91)){var t=e.eat(94),i=this.regexp_classContents(e);return e.eat(93)||e.raise("Unterminated character class"),t&&i===Q&&e.raise("Negated character class may contain strings"),!0}return!1},b.regexp_classContents=function(e){return 93===e.current()?ue:e.switchV?this.regexp_classSetExpression(e):(this.regexp_nonEmptyClassRanges(e),ue)},b.regexp_nonEmptyClassRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var i=e.lastIntValue;e.switchU&&(-1===t||-1===i)&&e.raise("Invalid character class"),-1!==t&&-1!==i&&t>i&&e.raise("Range out of order in character class")}}},b.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var i=e.current();(99===i||ln(i))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var r=e.current();return 93!==r&&(e.lastIntValue=r,e.advance(),!0)},b.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},b.regexp_classSetExpression=function(e){var t,i=ue;if(!this.regexp_eatClassSetRange(e))if(t=this.regexp_eatClassSetOperand(e)){t===Q&&(i=Q);for(var r=e.pos;e.eatChars([38,38]);)38!==e.current()&&(t=this.regexp_eatClassSetOperand(e))?t!==Q&&(i=ue):e.raise("Invalid character in character class");if(r!==e.pos)return i;for(;e.eatChars([45,45]);)this.regexp_eatClassSetOperand(e)||e.raise("Invalid character in character class");if(r!==e.pos)return i}else e.raise("Invalid character in character class");for(;;)if(!this.regexp_eatClassSetRange(e)){if(!(t=this.regexp_eatClassSetOperand(e)))return i;t===Q&&(i=Q)}},b.regexp_eatClassSetRange=function(e){var t=e.pos;if(this.regexp_eatClassSetCharacter(e)){var i=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassSetCharacter(e)){var r=e.lastIntValue;return-1!==i&&-1!==r&&i>r&&e.raise("Range out of order in character class"),!0}e.pos=t}return!1},b.regexp_eatClassSetOperand=function(e){return this.regexp_eatClassSetCharacter(e)?ue:this.regexp_eatClassStringDisjunction(e)||this.regexp_eatNestedClass(e)},b.regexp_eatNestedClass=function(e){var t=e.pos;if(e.eat(91)){var i=e.eat(94),r=this.regexp_classContents(e);if(e.eat(93))return i&&r===Q&&e.raise("Negated character class may contain strings"),r;e.pos=t}if(e.eat(92)){var n=this.regexp_eatCharacterClassEscape(e);if(n)return n;e.pos=t}return null},b.regexp_eatClassStringDisjunction=function(e){var t=e.pos;if(e.eatChars([92,113])){if(e.eat(123)){var i=this.regexp_classStringDisjunctionContents(e);if(e.eat(125))return i}else e.raise("Invalid escape");e.pos=t}return null},b.regexp_classStringDisjunctionContents=function(e){for(var t=this.regexp_classString(e);e.eat(124);)this.regexp_classString(e)===Q&&(t=Q);return t},b.regexp_classString=function(e){for(var t=0;this.regexp_eatClassSetCharacter(e);)t++;return 1===t?ue:Q},b.regexp_eatClassSetCharacter=function(e){var t=e.pos;if(e.eat(92))return!(!this.regexp_eatCharacterEscape(e)&&!this.regexp_eatClassSetReservedPunctuator(e))||(e.eat(98)?(e.lastIntValue=8,!0):(e.pos=t,!1));var i=e.current();return!(i<0||i===e.lookahead()&&ns(i)||as(i))&&(e.advance(),e.lastIntValue=i,!0)},b.regexp_eatClassSetReservedPunctuator=function(e){var t=e.current();return!!ss(t)&&(e.lastIntValue=t,e.advance(),!0)},b.regexp_eatClassControlLetter=function(e){var t=e.current();return!(!ut(t)&&95!==t)&&(e.lastIntValue=t%32,e.advance(),!0)},b.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1},b.regexp_eatDecimalDigits=function(e){var t=e.pos,i=0;for(e.lastIntValue=0;ut(i=e.current());)e.lastIntValue=10*e.lastIntValue+(i-48),e.advance();return e.pos!==t},b.regexp_eatHexDigits=function(e){var t=e.pos,i=0;for(e.lastIntValue=0;cn(i=e.current());)e.lastIntValue=16*e.lastIntValue+un(i),e.advance();return e.pos!==t},b.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var i=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=64*t+8*i+e.lastIntValue:e.lastIntValue=8*t+i}else e.lastIntValue=t;return!0}return!1},b.regexp_eatOctalDigit=function(e){var t=e.current();return ln(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)},b.regexp_eatFixedHexDigits=function(e,t){var i=e.pos;e.lastIntValue=0;for(var r=0;r=this.input.length?this.finishToken(u.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},C.readToken=function(e){return ce(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},C.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=56320)return e;var t=this.input.charCodeAt(this.pos+1);return t<=56319||t>=57344?e:(e<<10)+t-56613888},C.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,i=this.input.indexOf("*/",this.pos+=2);if(-1===i&&this.raise(this.pos-2,"Unterminated comment"),this.pos=i+2,this.options.locations)for(var r=void 0,n=t;(r=Tr(this.input,n,this.pos))>-1;)++this.curLine,n=this.lineStart=r;this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,i),t,this.pos,e,this.curPosition())},C.skipLineComment=function(e){for(var t=this.pos,i=this.options.onComment&&this.curPosition(),r=this.input.charCodeAt(this.pos+=e);this.pos8&&e<14||e>=5760&&Nr.test(String.fromCharCode(e))))break e;++this.pos}}},C.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var i=this.type;this.type=e,this.value=t,this.updateContext(i)},C.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(u.ellipsis)):(++this.pos,this.finishToken(u.dot))},C.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(u.assign,2):this.finishOp(u.slash,1)},C.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),i=1,r=42===e?u.star:u.modulo;return this.options.ecmaVersion>=7&&42===e&&42===t&&(++i,r=u.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(u.assign,i+1):this.finishOp(r,i)},C.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);if(t===e){if(this.options.ecmaVersion>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(u.assign,3);return this.finishOp(124===e?u.logicalOR:u.logicalAND,2)}return 61===t?this.finishOp(u.assign,2):this.finishOp(124===e?u.bitwiseOR:u.bitwiseAND,1)},C.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(u.assign,2):this.finishOp(u.bitwiseXOR,1)},C.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45!==t||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!Y.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(u.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===t?this.finishOp(u.assign,2):this.finishOp(u.plusMin,1)},C.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),i=1;return t===e?(i=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+i)?this.finishOp(u.assign,i+1):this.finishOp(u.bitShift,i)):33!==t||60!==e||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===t&&(i=2),this.finishOp(u.relational,i)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},C.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(u.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(u.arrow)):this.finishOp(61===e?u.eq:u.prefix,1)},C.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(46===t){var i=this.input.charCodeAt(this.pos+2);if(i<48||i>57)return this.finishOp(u.questionDot,2)}if(63===t){if(e>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(u.assign,3);return this.finishOp(u.coalesce,2)}}return this.finishOp(u.question,1)},C.readToken_numberSign=function(){var e=35;if(this.options.ecmaVersion>=13&&(++this.pos,ce(e=this.fullCharCodeAtPos(),!0)||92===e))return this.finishToken(u.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+fe(e)+"'")},C.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(u.parenL);case 41:return++this.pos,this.finishToken(u.parenR);case 59:return++this.pos,this.finishToken(u.semi);case 44:return++this.pos,this.finishToken(u.comma);case 91:return++this.pos,this.finishToken(u.bracketL);case 93:return++this.pos,this.finishToken(u.bracketR);case 123:return++this.pos,this.finishToken(u.braceL);case 125:return++this.pos,this.finishToken(u.braceR);case 58:return++this.pos,this.finishToken(u.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(u.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(u.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+fe(e)+"'")},C.finishOp=function(e,t){var i=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,i)},C.readRegexp=function(){for(var e,t,i=this.pos;;){this.pos>=this.input.length&&this.raise(i,"Unterminated regular expression");var r=this.input.charAt(this.pos);if(Y.test(r)&&this.raise(i,"Unterminated regular expression"),e)e=!1;else{if("["===r)t=!0;else if("]"===r&&t)t=!1;else if("/"===r&&!t)break;e="\\"===r}++this.pos}var n=this.input.slice(i,this.pos);++this.pos;var s=this.pos,a=this.readWord1();this.containsEsc&&this.unexpected(s);var o=this.regexpState||(this.regexpState=new re(this));o.reset(i,n,a),this.validateRegExpFlags(o),this.validateRegExpPattern(o);var c=null;try{c=new RegExp(n,a)}catch{}return this.finishToken(u.regexp,{pattern:n,flags:a,value:c})},C.readInt=function(e,t,i){for(var r=this.options.ecmaVersion>=12&&void 0===t,n=i&&48===this.input.charCodeAt(this.pos),s=this.pos,a=0,o=0,c=0,l=t??1/0;c=97?p-97+10:p>=65?p-65+10:p>=48&&p<=57?p-48:1/0)>=e)break;o=p,a=a*e+h}}return r&&95===o&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===s||null!=t&&this.pos-s!==t?null:a},C.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var i=this.readInt(e);return null==i&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(i=hn(this.input.slice(t,this.pos)),++this.pos):ce(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(u.num,i)},C.readNumber=function(e){var t=this.pos;!e&&null===this.readInt(10,void 0,!0)&&this.raise(t,"Invalid number");var i=this.pos-t>=2&&48===this.input.charCodeAt(t);i&&this.strict&&this.raise(t,"Invalid number");var r=this.input.charCodeAt(this.pos);if(!i&&!e&&this.options.ecmaVersion>=11&&110===r){var n=hn(this.input.slice(t,this.pos));return++this.pos,ce(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(u.num,n)}i&&/[89]/.test(this.input.slice(t,this.pos))&&(i=!1),46===r&&!i&&(++this.pos,this.readInt(10),r=this.input.charCodeAt(this.pos)),(69===r||101===r)&&!i&&((43===(r=this.input.charCodeAt(++this.pos))||45===r)&&++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number")),ce(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var s=os(this.input.slice(t,this.pos),i);return this.finishToken(u.num,s)},C.readCodePoint=function(){var e;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var t=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(t,"Code point out of bounds")}else e=this.readHexChar(4);return e},C.readString=function(e){for(var t="",i=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var r=this.input.charCodeAt(this.pos);if(r===e)break;92===r?(t+=this.input.slice(i,this.pos),t+=this.readEscapedChar(!1),i=this.pos):8232===r||8233===r?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(we(r)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(i,this.pos++),this.finishToken(u.string,t)};var pn={};C.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e!==pn)throw e;this.readInvalidTemplateToken()}this.inTemplateElement=!1},C.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw pn;this.raise(e,t)},C.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var i=this.input.charCodeAt(this.pos);if(96===i||36===i&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==u.template&&this.type!==u.invalidTemplate?(e+=this.input.slice(t,this.pos),this.finishToken(u.template,e)):36===i?(this.pos+=2,this.finishToken(u.dollarBraceL)):(++this.pos,this.finishToken(u.backQuote));if(92===i)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(we(i)){switch(e+=this.input.slice(t,this.pos),++this.pos,i){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(i)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},C.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var r=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],n=parseInt(r,8);return n>255&&(r=r.slice(0,-1),n=parseInt(r,8)),this.pos+=r.length-1,t=this.input.charCodeAt(this.pos),("0"!==r||56===t||57===t)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-r.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(n)}return we(t)?"":String.fromCharCode(t)}},C.readHexChar=function(e){var t=this.pos,i=this.readInt(16,e);return null===i&&this.invalidStringToken(t,"Bad character escape sequence"),i},C.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,i=this.pos,r=this.options.ecmaVersion>=6;this.pos>16)+(t>>16)+(i>>16)<<16|65535&i}function fs(e,t){return e<>>32-t}function pt(e,t,i,r,n,s){return ye(fs(ye(ye(t,e),ye(r,s)),n),i)}function D(e,t,i,r,n,s,a){return pt(t&i|~t&r,e,t,n,s,a)}function O(e,t,i,r,n,s,a){return pt(t&r|i&~r,e,t,n,s,a)}function V(e,t,i,r,n,s,a){return pt(t^i^r,e,t,n,s,a)}function F(e,t,i,r,n,s,a){return pt(i^(t|~r),e,t,n,s,a)}function lt(e,t){e[t>>5]|=128<>>9<<4)]=t;let i=1732584193,r=-271733879,n=-1732584194,s=271733878;for(let t=0;t>5]>>>r%32&255);return t}function ni(e){let t=[],i=e.length>>2;for(let e=0;e>5]|=(255&e.charCodeAt(i/8))<16&&(i=lt(i,8*e.length));for(let e=0;e<16;e+=1)r[e]=909522486^i[e],n[e]=1549556828^i[e];let s=lt(r.concat(ni(t)),512+8*t.length);return mn(lt(n.concat(s),640))}function yn(e){let t="0123456789abcdef",i="";for(let r=0;r>>4&15)+t.charAt(15&n)}return i}function ai(e){return unescape(encodeURIComponent(e))}function gn(e){return ds(ai(e))}function ys(e){return yn(gn(e))}function xn(e,t){return ms(ai(e),ai(t))}function gs(e,t){return yn(xn(e,t))}function xs(e,t,i){return t?i?xn(t,e):gs(t,e):i?gn(e):ys(e)}var ti=3072;function _s(e){let t=new Headers(e);if(e.has("x-bare-headers")){let i=e.get("x-bare-headers");if(i.length>ti){t.delete("x-bare-headers");let e=0;for(let r=0;r{s.removeEventListener("close",o),s.removeEventListener("message",c)},o=()=>{a()},c=e=>{if(a(),"string"!=typeof e.data)throw new TypeError("the first websocket message was not a text frame");let t=JSON.parse(e.data);if("open"!==t.type)throw new TypeError("message was not of open type");e.stopImmediatePropagation(),r({protocol:t.protocol,setCookies:t.setCookies}),n(ge.OPEN),s.dispatchEvent(new Event("open"))};return s.addEventListener("close",o),s.addEventListener("message",c),s.addEventListener("open",(r=>{r.stopImmediatePropagation(),n(ge.CONNECTING),i().then((i=>ge.prototype.send.call(s,JSON.stringify({type:"connect",remote:e.toString(),protocols:t,headers:i,forwardHeaders:[]}))))}),{once:!0}),s}async request(e,t,i,r,n,s,a){if(r.protocol.startsWith("blob:")){let e=await ii(r),t=new dn(e.body,e);return t.rawHeaders=Object.fromEntries(e.headers),t.rawResponse=e,t}let o={};if(t instanceof Headers)for(let[e,i]of t)o[e]=i;else for(let e in t)o[e]=t[e];let c={credentials:"omit",method:e,signal:a};"only-if-cached"!==n&&(c.cache=n),void 0!==i&&(c.body=i),void 0!==s&&(c.duplex=s),c.headers=this.createBareHeaders(r,o);let l=await ii(this.http+"?cache="+xs(r.toString()),c),p=await this.readBareResponse(l),h=new dn(hs.includes(p.status)?void 0:l.body,{status:p.status,statusText:p.statusText??void 0,headers:new Headers(p.headers)});return h.rawHeaders=p.headers,h.rawResponse=l,h}async readBareResponse(e){if(!e.ok)throw new ht(e.status,await e.json());let t=bs(e.headers),i={},r=t.get("x-bare-status");null!==r&&(i.status=parseInt(r));let n=t.get("x-bare-status-text");null!==n&&(i.statusText=n);let s=t.get("x-bare-headers");return null!==s&&(i.headers=JSON.parse(s)),i}createBareHeaders(e,t,i=[],r=[],n=[]){let s=new Headers;s.set("x-bare-url",e.toString()),s.set("x-bare-headers",JSON.stringify(t));for(let e of i)s.append("x-bare-forward-headers",e);for(let e of r)s.append("x-bare-pass-headers",e);for(let e of n)s.append("x-bare-pass-status",e.toString());return _s(s),s}},ws="!#$%&'*+-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz|~";function vs(e){for(let t=0;tthis.loadManifest(e))).catch((e=>{throw delete this.working,e}))),this.working):this.client}getClient(){for(let[e,t]of Ss)if(this.manifest.versions.includes(e))return new t(this.server);throw new Error("Unable to find compatible client version. Starting from v2.0.0, @tomphttp/bare-client only supports Bare servers v3+. For more information, see https://github.com/tomphttp/bare-client/")}createWebSocket(e,t=[],i){if(!this.client)throw new TypeError("You need to wait for the client to finish fetching the manifest before creating any WebSockets. Try caching the manifest data before making this request.");try{e=new URL(e)}catch{throw new DOMException(`Faiiled to construct 'WebSocket': The URL '${e}' is invalid.`)}if(!Cs.includes(e.protocol))throw new DOMException(`Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. '${e.protocol}' is not allowed.`);Array.isArray(t)||(t=[t]),t=t.map(String);for(let e of t)if(!vs(e))throw new DOMException(`Failed to construct 'WebSocket': The subprotocol '${e}' is invalid.`);let r=this.client.connect(e,t,(async()=>{let t="function"==typeof i.headers?await i.headers():i.headers||{},r=t instanceof Headers?Object.fromEntries(t):t;return r.Host=e.host,r.Pragma="no-cache",r["Cache-Control"]="no-cache",r.Upgrade="websocket",r.Connection="Upgrade",r}),(e=>{n=e.protocol,i.setCookiesCallback&&i.setCookiesCallback(e.setCookies)}),(e=>{s=e}),i.webSocketImpl||me),n="",s=ge.CONNECTING,a=()=>{let e=Es.call(r);return e===ge.OPEN?s:e};i.readyStateHook?i.readyStateHook(r,a):Object.defineProperty(r,"readyState",{get:a,configurable:!0,enumerable:!0});let o=()=>{if(a()===ge.CONNECTING)return new DOMException("Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.")};i.sendErrorHook?i.sendErrorHook(r,o):r.send=function(...e){let t=o();if(t)throw t;ge.prototype.send.call(this,...e)},i.urlHook?i.urlHook(r,e):Object.defineProperty(r,"url",{get:()=>e.toString(),configurable:!0,enumerable:!0});let c=()=>n;return i.protocolHook?i.protocolHook(r,c):Object.defineProperty(r,"protocol",{get:c,configurable:!0,enumerable:!0}),r}async fetch(e,t){let i=ks(e)?new us(e,t):e,r=t?.headers||i.headers,n=r instanceof Headers?Object.fromEntries(r):r,s=t?.duplex,a=t?.body||i.body,o=new URL(i.url),c=await this.demand();for(let e=0;;e++){"host"in n?n.host=o.host:n.Host=o.host;let r=await c.request(i.method,n,a,o,i.cache,s,i.signal);r.finalURL=o.toString();let l=t?.redirect||i.redirect;if(!ps.includes(r.status))return r;switch(l){case"follow":{let t=r.headers.get("location");if(ls>e&&null!==t){o=new URL(t,o);continue}throw new TypeError("Failed to fetch")}case"error":throw new TypeError("Failed to fetch");case"manual":return r}}}};function ks(e){return"string"==typeof e||e instanceof URL}async function bn(e,t){let i=await _n(e,t);return new Oe(e,i)}var Hs=Ze(wn(),1),Tn=Ze(Sn(),1),{stringify:Os}=JSON;if(!String.prototype.repeat)throw new Error("String.prototype.repeat is undefined, see https://github.com/davidbonnet/astring#installation");if(!String.prototype.endsWith)throw new Error("String.prototype.endsWith is undefined, see https://github.com/davidbonnet/astring#installation");var dt={"||":2,"??":3,"&&":4,"|":5,"^":6,"&":7,"==":8,"!=":8,"===":8,"!==":8,"<":9,">":9,"<=":9,">=":9,in:9,instanceof:9,"<<":10,">>":10,">>>":10,"+":11,"-":11,"*":12,"%":12,"/":12,"**":13},ee=17,Vs={ArrayExpression:20,TaggedTemplateExpression:20,ThisExpression:20,Identifier:20,PrivateIdentifier:20,Literal:18,TemplateLiteral:20,Super:20,SequenceExpression:20,MemberExpression:19,ChainExpression:19,CallExpression:19,NewExpression:19,ArrowFunctionExpression:ee,ClassExpression:ee,FunctionExpression:ee,ObjectExpression:ee,UpdateExpression:16,UnaryExpression:15,AwaitExpression:15,BinaryExpression:14,LogicalExpression:13,ConditionalExpression:4,AssignmentExpression:3,YieldExpression:2,RestElement:1};function Ce(e,t){let{generator:i}=e;if(e.write("("),null!=t&&t.length>0){i[t[0].type](t[0],e);let{length:r}=t;for(let n=1;n0){e.write(r);for(let t=1;t0){i.VariableDeclarator(r[0],e);for(let t=1;t0){t.write(r),n&&null!=e.comments&&j(t,e.comments,s,r);let{length:o}=a;for(let e=0;e0){for(;n0&&t.write(", ");let e=i[n],r=e.type[6];if("D"===r)t.write(e.local.name,e),n++;else{if("N"!==r)break;t.write("* as "+e.local.name,e),n++}}if(n0)for(let e=0;;){let n=i[e],{name:s}=n.local;if(t.write(s,n),s!==n.exported.name&&t.write(" as "+n.exported.name),!(++e "),"O"===e.body.type[0]?(t.write("("),this.ObjectExpression(e.body,t),t.write(")")):this[e.body.type](e.body,t)},ThisExpression(e,t){t.write("this",e)},Super(e,t){t.write("super",e)},RestElement:kn=function(e,t){t.write("..."),this[e.argument.type](e.argument,t)},SpreadElement:kn,YieldExpression(e,t){t.write(e.delegate?"yield*":"yield"),e.argument&&(t.write(" "),this[e.argument.type](e.argument,t))},AwaitExpression(e,t){t.write("await ",e),mt(t,e.argument,e)},TemplateLiteral(e,t){let{quasis:i,expressions:r}=e;t.write("`");let{length:n}=r;for(let e=0;e0){let{elements:i}=e,{length:r}=i;for(let e=0;;){let n=i[e];if(null!=n&&this[n.type](n,t),!(++e0){t.write(r),n&&null!=e.comments&&j(t,e.comments,s,r);let a=","+r,{properties:o}=e,{length:c}=o;for(let e=0;;){let i=o[e];if(n&&null!=i.comments&&j(t,i.comments,s,r),t.write(s),this[i.type](i,t),!(++e0){let{properties:i}=e,{length:r}=i;for(let e=0;this[i[e].type](i[e],t),++e1||"U"===n[0]&&("n"===n[1]||"p"===n[1])&&r.prefix&&r.operator[0]===i&&("+"===i||"-"===i))&&t.write(" "),s?(t.write(i.length>1?" (":"("),this[n](r,t),t.write(")")):this[n](r,t)}else this[e.argument.type](e.argument,t),t.write(e.operator)},UpdateExpression(e,t){e.prefix?(t.write(e.operator),this[e.argument.type](e.argument,t)):(this[e.argument.type](e.argument,t),t.write(e.operator))},AssignmentExpression(e,t){this[e.left.type](e.left,t),t.write(" "+e.operator+" "),this[e.right.type](e.right,t)},AssignmentPattern(e,t){this[e.left.type](e.left,t),t.write(" = "),this[e.right.type](e.right,t)},BinaryExpression:An=function(e,t){let i="in"===e.operator;i&&t.write("("),mt(t,e.left,e,!1),t.write(" "+e.operator+" "),mt(t,e.right,e,!0),i&&t.write(")")},LogicalExpression:An,ConditionalExpression(e,t){let{test:i}=e,r=t.expressionsPrecedence[i.type];r===ee||r<=t.expressionsPrecedence.ConditionalExpression?(t.write("("),this[i.type](i,t),t.write(")")):this[i.type](i,t),t.write(" ? "),this[e.consequent.type](e.consequent,t),t.write(" : "),this[e.alternate.type](e.alternate,t)},NewExpression(e,t){t.write("new ");let i=t.expressionsPrecedence[e.callee.type];i===ee||i0&&(this.lineEndSize>0&&(1===r.length?e[i-1]===r:e.endsWith(r))?(this.line+=this.lineEndSize,this.column=0):this.column+=i)}toString(){return this.output}};function In(e,t){let i=new hi(t);return i.generator[e.type](e,i),i.output}var pi=class{constructor(e){this.mime=_r,this.idb=tt,this.path=Us,this.acorn={parse:fn},this.bare={createBareClient:bn,BareClient:Oe},this.base64={encode:btoa,decode:atob},this.estree={generate:In},this.cookie=Hs,this.setCookieParser=Tn.parse,this.ctx=e}},Nn=pi;function fi(e,t,i,r,n="",s=!1,a=""){if(self.__dynamic$config)var o="development"==self.__dynamic$config.mode;else o=!1;if(s){var c=[{nodeName:"script",tagName:"script",namespaceURI:"http://www.w3.org/1999/xhtml",childNodes:[],attrs:[{name:"src",value:e+(o?"?"+Math.floor(89999*Math.random()+1e4):"")}]},{nodeName:"script",tagName:"script",namespaceURI:"http://www.w3.org/1999/xhtml",childNodes:[],attrs:[{name:"src",value:t+(o?"?"+Math.floor(89999*Math.random()+1e4):"")}]}];return this.ctx.config.assets.files.inject&&c.unshift({nodeName:"script",tagName:"script",namespaceURI:"http://www.w3.org/1999/xhtml",childNodes:[],attrs:[{name:"src",value:this.ctx.config.assets.files.inject+(o?"?"+Math.floor(89999*Math.random()+1e4):"")}]}),r&&c.unshift({nodeName:"script",tagName:"script",namespaceURI:"http://www.w3.org/1999/xhtml",childNodes:[],attrs:[{name:"src",value:"data:application/javascript;base64,"+btoa(`self.__dynamic$cookies = atob("${btoa(r)}");document.currentScript?.remove();`)}]}),n&&c.unshift({nodeName:"script",tagName:"script",namespaceURI:"http://www.w3.org/1999/xhtml",childNodes:[],attrs:[{name:"src",value:"data:application/javascript;base64,"+btoa(n+";document.currentScript?.remove();")}]}),a&&c.unshift({nodeName:"script",tagName:"script",namespaceURI:"http://www.w3.org/1999/xhtml",childNodes:[],attrs:[{name:"src",value:"data:application/javascript;base64,"+btoa(a+";document.currentScript?.remove();")}]}),c}var l=[``).join("");return t?`${r}`:r}}},flagEnabled:a.U5,codec:{encode:a.hD,decode:a.P_}}),inUse:!1},f.push(t)):((0,a.U5)("rewriterLogs",e.base)&&console.log(`using cached rewriter ${r} from list of ${d} rewriters`),t=f[r]),t.inUse=!0,[t.rewriter,()=>t.inUse=!1]}},2015:function(e,t,r){r.d(t,{i:()=>a});var n=r(37),i=r(1478);function a(e,t,r,a){let s="",o="module"===t,l=e=>{o?s+=`import "${n.$W.files[e]}" -`:s+=`importScripts("${n.$W.files[e]}"); -`};l("wasm"),l("all"),s+=`$scramjetLoadClient().loadAndHook(${JSON.stringify(n.$W)});`;let c=(0,i.o)(e,r,a,o);return c instanceof Uint8Array&&(c=new TextDecoder().decode(c)),s+=c}},6684:function(e,t,r){r.d(t,{Sn:()=>h,YH:()=>u,Yq:()=>f,hU:()=>d,pL:()=>p,rj:()=>c});var n=r(6570);let i={none:0,"same-origin":1,"same-site":2,"cross-site":3};async function a(){return(0,n.P2)("$scramjet",1)}async function s(e){let t=await a();return await t.get("redirectTrackers",e)||null}async function o(e,t){let r=await a();await r.put("redirectTrackers",t,e)}async function l(e){let t=await a();await t.delete("redirectTrackers",e)}async function c(e,t,r){await s(e)||await o(e,{originalReferrer:t||"",mostRestrictiveSite:r,referrerPolicy:"",chainStarted:Date.now()})}async function u(e,t,r){let n=await s(e);n&&(await l(e),r&&(n.referrerPolicy=r),await o(t,n))}async function d(e,t){let r=await s(e);if(!r)return t;let n=i[r.mostRestrictiveSite];return(i[t]??0)>n?(r.mostRestrictiveSite=t,await o(e,r),t):r.mostRestrictiveSite}async function h(e){await l(e)}async function p(e,t,r){let n=await a();await n.put("referrerPolicies",{policy:t,referrer:r},e)}async function f(e){let t=await a();return await t.get("referrerPolicies",e)||null}},2416:function(e,t,r){r(6684),r(8228)},8228:function(e,t,r){r.d(t,{ps:()=>l});var n=r(6570);let i="publicSuffixList";async function a(){return(0,n.P2)("$scramjet",1)}async function s(){let e=await a();return await e.get("publicSuffixList",i)||null}async function o(e){let t=await a();await t.put("publicSuffixList",{data:e,expiry:Date.now()+36e5},i)}async function l(e,t,r){return t?e.origin.origin===t.origin?"same-origin":await c(e.origin,t,r)?"same-site":"cross-site":"none"}async function c(e,t,r){return await u(e,r)===await u(t,r)}async function u(e,t){let r=await d(t),n=e.hostname.toLowerCase().split("."),i="",a=!1;for(let e of r){let t=e.startsWith("!")?e.substring(1):e;if(function(e,t){if(e.lengthi.length&&(i=t)}}if(!i)return n.slice(-2).join(".");let s=i.split(".").length,o=a?s:s+1;return n.slice(-o).join(".")}async function d(e){let t,r=await s();if(r&&Date.now(){let t=e.trim(),r=t.indexOf(" ");return r>-1?t.substring(0,r):t}).filter(e=>e&&!e.startsWith("//"));return await o(n),n}},2794:function(e,t,r){r.d(t,{pX:()=>n,zr:()=>i});let n=Symbol.for("scramjet client global"),i=Symbol.for("scramjet frame handle")},5956:function(e,t,r){function n(e,t){let r=` - errorTrace.value = ${JSON.stringify(e)}; - fetchedURL.textContent = ${JSON.stringify(t)}; - for (const node of document.querySelectorAll("#hostname")) node.textContent = ${JSON.stringify(location.hostname)}; - reload.addEventListener("click", () => location.reload()); - version.textContent = ${JSON.stringify(globalThis.$scramjetVersion?.version||"unknown")}; - build.textContent = ${JSON.stringify(globalThis.$scramjetVersion?.build||"unknown")}; - - document.getElementById('copy-button').addEventListener('click', async () => { - const text = document.getElementById('errorTrace').value; - await navigator.clipboard.writeText(text); - const btn = document.getElementById('copy-button'); - btn.textContent = 'Copied!'; - setTimeout(() => btn.textContent = 'Copy', 2000); - }); - `;return` - - - - Scramjet - - - -
    -
    -

    Uh oh!

    -

    There was an error loading

    - - -
    -
    - - -
    -
    -

    Try:

    -
      -
    • Checking your internet connection
    • -
    • Verifying you entered the correct address
    • -
    • Clearing the site data
    • -
    • Contacting 's administrator
    • -
    • Verify the server isn't censored
    • -
    -

    If you're the administrator of , try:

    -
      -
    • Restarting your server
    • -
    • Updating Scramjet
    • -
    • Troubleshooting the error on the GitHub repository
    • -
    -
    -
    -
    - -
    -

    Scramjet v (build )

    - - - - `}function i(e,t){let r={"content-type":"text/html"};return crossOriginIsolated&&(r["Cross-Origin-Embedder-Policy"]="require-corp"),new Response(n(String(e),t),{status:500,headers:r})}r.d(t,{B:()=>n,v:()=>i})},1403:function(e,t,r){r.d(t,{H:()=>n});class n{handle;origin;syncToken=0;promises={};messageChannel=new MessageChannel;connected=!1;constructor(e,t){this.handle=e,this.origin=t,this.messageChannel.port1.addEventListener("message",e=>{"scramjet$type"in e.data&&("init"===e.data.scramjet$type?this.connected=!0:this.handleMessage(e.data))}),this.messageChannel.port1.start(),this.handle.postMessage({scramjet$type:"init",scramjet$port:this.messageChannel.port2},[this.messageChannel.port2])}handleMessage(e){let t=this.promises[e.scramjet$token];t&&(t(e),delete this.promises[e.scramjet$token])}async fetch(e){let t=this.syncToken++,r={scramjet$type:"fetch",scramjet$token:t,scramjet$request:{url:e.url,body:e.body,headers:Array.from(e.headers.entries()),method:e.method,mode:e.mode,destinitation:e.destination}},n=e.body?[e.body]:[];this.handle.postMessage(r,n);let{scramjet$response:i}=await new Promise(e=>{this.promises[t]=e});return!!i&&new Response(i.body,{headers:i.headers,status:i.status,statusText:i.statusText})}}},5790:function(e,t,r){r.d(t,{Pf:()=>m,V3:()=>S,dT:()=>w});var n=r(5956),i=r(8228),a=r(6684),s=r(1472),o=r(1478),l=r(1427),c=r(37),u=r(4435),d=r(884),h=r(2614),p=r(2015),f=r(8665).A;function g(e){return e.status>=300&&e.status<400}async function m(e,t){try{let r,n,o=new URL(e.url);if(o.pathname===this.config.files.wasm)return fetch(this.config.files.wasm).then(async e=>{let t=await e.arrayBuffer(),r=btoa(new Uint8Array(t).reduce((e,t)=>(e.push(String.fromCharCode(t)),e),[]).join("")),n="";return n+=`if ('document' in self && document.currentScript) { document.currentScript.remove(); } -self.WASM = '${r}';`,new Response(n,{headers:{"content-type":"text/javascript"}})});let u="",d={};for(let[e,t]of[...o.searchParams.entries()]){switch(e){case"type":u=t;break;case"dest":break;case"topFrame":r=t;break;case"parentFrame":n=t;break;default:f.warn(`${o.href} extraneous query parameter ${e}. Assuming
    element`),d[e]=t}o.searchParams.delete(e)}let h=new URL((0,s.v2)(o));for(let[e,t]of Object.entries(d))h.searchParams.set(e,t);let p={origin:h,base:h,topFrameName:r,parentFrameName:n};if(o.pathname.startsWith(`${this.config.prefix}blob:`)||o.pathname.startsWith(`${this.config.prefix}data:`)){let t,r=o.pathname.substring(this.config.prefix.length);r.startsWith("blob:")&&(r=(0,s.$n)(r));let n=await fetch(r,{});n.finalURL=r.startsWith("blob:")?r:"(data url)",n.body&&(t=await b(n,p,e.destination,u,this.cookieStore));let i=Object.fromEntries(n.headers.entries());return crossOriginIsolated&&(i["Cross-Origin-Opener-Policy"]="same-origin",i["Cross-Origin-Embedder-Policy"]="require-corp"),new Response(t,{status:n.status,statusText:n.statusText,headers:i})}let g=this.serviceWorkers.find(e=>e.origin===h.origin);if(g?.connected&&"swruntime"!==o.searchParams.get("from")){let t=await g.fetch(e);if(t)return t}if(h.origin===new URL(e.url).origin)throw Error("attempted to fetch from same origin - this means the site has obtained a reference to the real origin, aborting");let m=new l.u;for(let[t,r]of e.headers.entries())m.set(t,r);if(t&&new URL(t.url).pathname.startsWith(c.$W.prefix)){let e=new URL((0,s.v2)(t.url));e.toString().includes("youtube.com")||(m.set("Referer",e.href),m.set("Origin",e.origin))}let w=this.cookieStore.getCookies(h,!1);w.length&&m.set("Cookie",w);let v=!1;if("iframe"===e.destination&&"navigate"===e.mode&&e.referrer&&"no-referrer"!==e.referrer&&e.referrer!==location.origin+c.$W.prefix+"no-referrer"){let t=e.referrer,r=await self.clients.matchAll({type:"window"});for(;t;){if(!t.includes(c.$W.prefix)){v=!0;break}let e=r.find(e=>e.url===t),n=await (0,a.Yq)(t);if(!n||!n.referrer){e&&t.startsWith(location.origin)&&(v=!0);break}if(e&&"nested"===e.frameType)t=n.referrer;else break}}v?(m.set("Sec-Fetch-Dest","document"),m.set("Sec-Fetch-Mode","navigate")):(m.set("Sec-Fetch-Dest",e.destination||"empty"),m.set("Sec-Fetch-Mode",e.mode));let x="none";if(e.referrer&&""!==e.referrer&&"no-referrer"!==e.referrer&&e.referrer!==location.origin+c.$W.prefix+"no-referrer"&&e.referrer.includes(c.$W.prefix)){let t=(0,s.v2)(e.referrer);if(t){let e=new URL(t);x=await (0,i.ps)(p,e,this.client)}}await (0,a.rj)(h.toString(),e.referrer?(0,s.v2)(e.referrer):null,x),m.set("Sec-Fetch-Site",await (0,a.hU)(h.toString(),x));let E=new S(h,m.headers,e.body,e.method,e.destination,t);this.dispatchEvent(E);let T=await E.response||await this.client.fetch(E.url,{method:E.method,body:E.body,headers:E.requestHeaders,credentials:"omit",mode:"cors"===e.mode?e.mode:"same-origin",cache:e.cache,redirect:"manual",duplex:"half"});return T.finalURL=E.url.href,await y(h,p,u,e.destination,e.mode,T,this.cookieStore,t,this.client,this,e.referrer)}catch(i){let t={message:i.message,url:e.url,destination:e.destination};if(i.stack&&(t.stack=i.stack),console.error("ERROR FROM SERVICE WORKER FETCH: ",t),console.error(i),!["document","iframe"].includes(e.destination))return new Response(void 0,{status:500});let r=Object.entries(t).map(([e,t])=>`${e.charAt(0).toUpperCase()+e.slice(1)}: ${t}`).join("\n\n");return(0,n.v)(r,(0,s.v2)(e.url))}}async function y(e,t,r,n,o,l,d,h,p,f,m){let y,S="navigate"===o&&["document","iframe"].includes(n),v=await (0,u.l)(l.rawHeaders,t,p,{get:a.Yq,set:a.pL});if(S&&v["referrer-policy"]&&m&&await (0,a.pL)(e.href,v["referrer-policy"],m),g(l)){let t=new URL((0,s.v2)(v.location));await (0,a.YH)(e.toString(),t.toString(),v["referrer-policy"]);let n=await (0,i.ps)({origin:t,base:t},e,p);if(await (0,a.hU)(t.toString(),n),r){let e=new URL(v.location);e.searchParams.set("type",r),v.location=e.href}}let x=v["set-cookie"]||[];for(let t in x)if(h){let r=f.dispatch(h,{scramjet$type:"cookie",cookie:t,url:e.href});"document"!==n&&"iframe"!==n&&await r}for(let t in await d.setCookies(x instanceof Array?x:[x],e),v)Array.isArray(v[t])&&(v[t]=v[t][0]);if(function(e,t){if(["document","iframe"].includes(t)){let t=e["content-disposition"];if(t){if("inline"!==t)return!0}else{let t=e["content-type"]?.split(";")[0].trim().toLowerCase();if(t&&!["text/html","text/plain","text/css","text/javascript","text/xml","application/javascript","application/json","application/xml","application/pdf"].includes(t)&&!t.startsWith("text")&&!t.startsWith("image")&&!t.startsWith("font")&&!t.startsWith("video"))return!0}}return!1}(v,n)&&!g(l))if((0,c.U5)("interceptDownloads",e)){if(!h)throw Error("cant find client");let t=null,r=v["content-disposition"];if("string"==typeof r){let e=r.match(/filename=["']?([^"';\n]*)["']?/i);e&&e[1]&&(t=e[1])}let n=v["content-length"],i=await clients.matchAll({});if((i=i.filter(e=>!e.url.includes(c.$W.prefix))).length<1)throw Error("couldn't find a controller client to dispatch download to");let a={filename:t,url:e.href,type:v["content-type"],body:l.body,length:Number(n)};i[0].postMessage({scramjet$type:"download",download:a},[l.body]),await new Promise(()=>{})}else{let e=v["content-disposition"];if(!/\s*?((inline|attachment);\s*?)filename=/i.test(e)){let t=/^\s*?attachment/i.test(e)?"attachment":"inline",[r]=new URL(l.finalURL).pathname.split("/").slice(-1);v["content-disposition"]=`${t}; filename=${JSON.stringify(r)}`}}l.body&&!g(l)&&(y=await b(l,t,n,r,d)),"text/event-stream"===v.accept&&(v["content-type"]="text/event-stream"),delete v["permissions-policy"],crossOriginIsolated&&["document","iframe","worker","sharedworker","style","script"].includes(n)&&(v["Cross-Origin-Embedder-Policy"]="require-corp",v["Cross-Origin-Opener-Policy"]="same-origin");let E=new w(y,v,l.status,l.statusText,n,e,l,h);return f.dispatchEvent(E),g(l)||await (0,a.Sn)(e.toString()),new Response(E.responseBody,{headers:E.responseHeaders,status:E.status,statusText:E.statusText})}async function b(e,t,r,n,i){switch(r){case"iframe":case"document":if(e.headers.get("content-type")?.startsWith("text/html"))return(0,d.Qs)(await e.text(),i,t,!0);return e.body;case"script":return(0,o.o)(new Uint8Array(await e.arrayBuffer()),e.finalURL,t,"module"===n);case"style":return(0,h.s)(await e.text(),t);case"sharedworker":case"worker":return(0,p.i)(new Uint8Array(await e.arrayBuffer()),n,e.finalURL,t);default:return e.body}}class w extends Event{responseBody;responseHeaders;status;statusText;destination;url;rawResponse;client;constructor(e,t,r,n,i,a,s,o){super("handleResponse"),this.responseBody=e,this.responseHeaders=t,this.status=r,this.statusText=n,this.destination=i,this.url=a,this.rawResponse=s,this.client=o}}class S extends Event{url;requestHeaders;body;method;destination;client;constructor(e,t,r,n,i,a){super("request"),this.url=e,this.requestHeaders=t,this.body=r,this.method=n,this.destination=i,this.client=a}response}},7510:function(e,t,r){r.r(t),r.d(t,{FakeServiceWorker:()=>n.H,ScramjetHandleResponseEvent:()=>i.dT,ScramjetRequestEvent:()=>i.V3,ScramjetServiceWorker:()=>d,errorTemplate:()=>u.B,handleFetch:()=>i.Pf,renderError:()=>u.v});var n=r(1403),i=r(5790),a=r(236),s=r(1561),o=r(3831),l=r(6570),c=r(37),u=r(5956);class d extends EventTarget{client;config;syncPool={};synctoken=0;cookieStore=new o.k;serviceWorkers=[];constructor(){super(),this.client=new a.Ay,(async()=>{let e=await (0,l.P2)("$scramjet",1),t=await e.get("cookies","cookies");t&&this.cookieStore.load(t)})(),addEventListener("message",async({data:e})=>{if("scramjet$type"in e){if("scramjet$token"in e){let t=this.syncPool[e.scramjet$token];delete this.syncPool[e.scramjet$token],t(e);return}if("registerServiceWorker"===e.scramjet$type)return void this.serviceWorkers.push(new n.H(e.port,e.origin));if("cookie"===e.scramjet$type){this.cookieStore.setCookies([e.cookie],new URL(e.url));let t=await (0,l.P2)("$scramjet",1);await t.put("cookies",JSON.parse(this.cookieStore.dump()),"cookies")}"loadConfig"===e.scramjet$type&&(this.config=e.config)}})}async dispatch(e,t){let r,n=this.synctoken++,i=new Promise(e=>r=e);return this.syncPool[n]=r,t.scramjet$token=n,e.postMessage(t),await i}async loadConfig(){if(this.config)return;let e=await (0,l.P2)("$scramjet",1);this.config=await e.get("config","config"),this.config&&((0,c.Nk)(this.config),await (0,s.n$)())}route({request:e}){return!!e.url.startsWith(location.origin+this.config.prefix)||!!e.url.startsWith(location.origin+this.config.files.wasm)}async fetch({request:e,clientId:t}){this.config||await this.loadConfig();let r=await self.clients.get(t);return i.Pf.call(this,e,r)}}},236:function(e,t,r){r.d(t,{Ay:()=>S,DD:()=>w});let n=globalThis.fetch,i=globalThis.SharedWorker,a=globalThis.localStorage,s=globalThis.navigator.serviceWorker,o=MessagePort.prototype.postMessage,l={prototype:{send:WebSocket.prototype.send},CLOSED:WebSocket.CLOSED,CLOSING:WebSocket.CLOSING,CONNECTING:WebSocket.CONNECTING,OPEN:WebSocket.OPEN};async function c(){let e=Promise.race([Promise.any((await self.clients.matchAll({type:"window",includeUncontrolled:!0})).map(async e=>{let t,r=await (t=new MessageChannel,new Promise(r=>{e.postMessage({type:"getPort",port:t.port2},[t.port2]),t.port1.onmessage=e=>{r(e.data)}}));return await u(r),r})),new Promise((e,t)=>setTimeout(t,1e3,TypeError("timeout")))]);try{return await e}catch(e){if(e instanceof AggregateError)throw console.error("bare-mux: failed to get a bare-mux SharedWorker MessagePort as all clients returned an invalid MessagePort."),Error("All clients returned an invalid MessagePort.");return console.warn("bare-mux: failed to get a bare-mux SharedWorker MessagePort within 1s, retrying"),await c()}}function u(e){let t=new MessageChannel,r=new Promise((e,r)=>{t.port1.onmessage=t=>{"pong"===t.data.type&&e()},setTimeout(r,1500)});return o.call(e,{message:{type:"ping"},port:t.port2},[t.port2]),r}function d(e,t){let r=new i(e,"bare-mux-worker");return t&&s.addEventListener("message",t=>{if("getPort"===t.data.type&&t.data.port){console.debug("bare-mux: recieved request for port from sw");let r=new i(e,"bare-mux-worker");o.call(t.data.port,r.port,[r.port])}}),r.port}let h=null;class p{constructor(e){this.channel=new BroadcastChannel("bare-mux"),e instanceof MessagePort||e instanceof Promise?this.port=e:this.createChannel(e,!0)}createChannel(e,t){if(self.clients)this.port=c(),this.channel.onmessage=e=>{"refreshPort"===e.data.type&&(this.port=c())};else if(e&&SharedWorker){if(!e.startsWith("/")&&!e.includes("://"))throw Error("Invalid URL. Must be absolute or start at the root.");this.port=d(e,t),console.debug("bare-mux: setting localStorage bare-mux-path to",e),a["bare-mux-path"]=e}else{if(!SharedWorker)throw Error("Unable to get a channel to the SharedWorker.");{let e=a["bare-mux-path"];if(console.debug("bare-mux: got localStorage bare-mux-path:",e),!e)throw Error("Unable to get bare-mux workerPath from localStorage.");this.port=d(e,t)}}}async sendMessage(e,t){this.port instanceof Promise&&(this.port=await this.port);try{await u(this.port)}catch{return console.warn("bare-mux: Failed to get a ping response from the worker within 1.5s. Assuming port is dead."),this.createChannel(),await this.sendMessage(e,t)}let r=new MessageChannel,n=[r.port2,...t||[]],i=new Promise((e,t)=>{r.port1.onmessage=r=>{let n=r.data;"error"===n.type?t(n.error):e(n)}});return o.call(this.port,{message:e,port:r.port2},n),await i}}class f extends EventTarget{constructor(e,t=[],r,n){super(),this.protocols=t,this.readyState=l.CONNECTING,this.url=e.toString(),this.protocols=t;const i=e=>{this.protocols=e,this.readyState=l.OPEN;let t=new Event("open");this.dispatchEvent(t)},a=async e=>{let t=new MessageEvent("message",{data:e});this.dispatchEvent(t)},s=(e,t)=>{this.readyState=l.CLOSED;let r=new CloseEvent("close",{code:e,reason:t});this.dispatchEvent(r)},o=()=>{this.readyState=l.CLOSED;let e=new Event("error");this.dispatchEvent(e)};this.channel=new MessageChannel,this.channel.port1.onmessage=e=>{"open"===e.data.type?i(e.data.args[0]):"message"===e.data.type?a(e.data.args[0]):"close"===e.data.type?s(e.data.args[0],e.data.args[1]):"error"===e.data.type&&o()},r.sendMessage({type:"websocket",websocket:{url:e.toString(),protocols:t,requestHeaders:n,channel:this.channel.port2}},[this.channel.port2])}send(...e){if(this.readyState===l.CONNECTING)throw new DOMException("Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.");let t=e[0];t.buffer&&(t=t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)),o.call(this.channel.port1,{type:"data",data:t},t instanceof ArrayBuffer?[t]:[])}close(e,t){o.call(this.channel.port1,{type:"close",closeCode:e,closeReason:t})}}function g(e,t,r){console.error(`error while processing '${r}': `,t),e.postMessage({type:"error",error:t})}let m=["ws:","wss:"],y=[101,204,205,304],b=[301,302,303,307,308];class w{constructor(e){this.worker=new p(e)}async getTransport(){return(await this.worker.sendMessage({type:"get"})).name}async setTransport(e,t,r){await this.setManualTransport(` - const { default: BareTransport } = await import("${e}"); - return [BareTransport, "${e}"]; - `,t,r)}async setManualTransport(e,t,r){if("bare-mux-remote"===e)throw Error("Use setRemoteTransport.");await this.worker.sendMessage({type:"set",client:{function:e,args:t}},r)}async setRemoteTransport(e,t){let r=new MessageChannel;r.port1.onmessage=async t=>{let r=t.data.port,n=t.data.message;if("fetch"===n.type)try{e.ready||await e.init(),await async function(e,t,r){let n=await r.request(new URL(e.fetch.remote),e.fetch.method,e.fetch.body,e.fetch.headers,null);if(!function(){if(null===h){let e,t=new MessageChannel,r=new ReadableStream;try{o.call(t.port1,r,[r]),e=!0}catch(t){e=!1}return h=e,e}return h}()&&n.body instanceof ReadableStream){let e=new Response(n.body);n.body=await e.arrayBuffer()}n.body instanceof ReadableStream||n.body instanceof ArrayBuffer?o.call(t,{type:"fetch",fetch:n},[n.body]):o.call(t,{type:"fetch",fetch:n})}(n,r,e)}catch(e){g(r,e,"fetch")}else if("websocket"===n.type)try{e.ready||await e.init(),await async function(e,t,r){let[n,i]=r.connect(new URL(e.websocket.url),e.websocket.protocols,e.websocket.requestHeaders,t=>{o.call(e.websocket.channel,{type:"open",args:[t]})},t=>{t instanceof ArrayBuffer?o.call(e.websocket.channel,{type:"message",args:[t]},[t]):o.call(e.websocket.channel,{type:"message",args:[t]})},(t,r)=>{o.call(e.websocket.channel,{type:"close",args:[t,r]})},t=>{o.call(e.websocket.channel,{type:"error",args:[t]})});e.websocket.channel.onmessage=e=>{"data"===e.data.type?n(e.data.data):"close"===e.data.type&&i(e.data.closeCode,e.data.closeReason)},o.call(t,{type:"websocket"})}(n,r,e)}catch(e){g(r,e,"websocket")}},await this.worker.sendMessage({type:"set",client:{function:"bare-mux-remote",args:[r.port2,t]}},[r.port2])}getInnerPort(){return this.worker.port}}class S{constructor(e){this.worker=new p(e)}createWebSocket(e,t=[],r,n){try{e=new URL(e)}catch(t){throw new DOMException(`Faiiled to construct 'WebSocket': The URL '${e}' is invalid.`)}if(!m.includes(e.protocol))throw new DOMException(`Failed to construct 'WebSocket': The URL's scheme must be either 'ws' or 'wss'. '${e.protocol}' is not allowed.`);for(let e of(Array.isArray(t)||(t=[t]),t=t.map(String)))if(!function(e){for(let t=0;te&&null!==t){o=new URL(t,o);continue}throw TypeError("Failed to fetch")}case"error":throw TypeError("Failed to fetch");case"manual":return i}}}}console.debug("bare-mux: running v2.1.7 (build c56d286)")},8832:function(e,t,r){r.d(t,{H:()=>n,L:()=>i});let n=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(e=>[e.toLowerCase(),e])),i=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(e=>[e.toLowerCase(),e]))},6498:function(e,t,r){r.d(t,{A:()=>c});var n=r(2743),i=r(8466),a=r(8832);let s=new Set(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]);function o(e){return e.replace(/"/g,""")}let l=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),c=function e(t,r={}){let c="length"in t?t:[t],h="";for(let t=0;t`;case n.Mw:return h=t,``;case n.KB:return p=t,``;case n.eF:case n.OF:case n.vw:return function(t,r){var n;"foreign"===r.xmlMode&&(t.name=null!=(n=a.H.get(t.name))?n:t.name,t.parent&&u.has(t.parent.name)&&(r={...r,xmlMode:!1})),!r.xmlMode&&d.has(t.name)&&(r={...r,xmlMode:"foreign"});let s=`<${t.name}`,c=function(e,t){var r;if(!e)return;let n=(null!=(r=t.encodeEntities)?r:t.decodeEntities)===!1?o:t.xmlMode||"utf8"!==t.encodeEntities?i.WY:i.Gj;return Object.keys(e).map(r=>{var i,s;let o=null!=(i=e[r])?i:"";return("foreign"===t.xmlMode&&(r=null!=(s=a.L.get(r))?s:r),t.emptyAttrs||t.xmlMode||""!==o)?`${r}="${n(o)}"`:r}).join(" ")}(t.attribs,r);return c&&(s+=` ${c}`),0===t.children.length&&(r.xmlMode?!1!==r.selfClosingTags:r.selfClosingTags&&l.has(t.name))?(r.xmlMode||(s+=" "),s+="/>"):(s+=">",t.children.length>0&&(s+=e(t.children,r)),(r.xmlMode||!l.has(t.name))&&(s+=``)),s}(t,r);case n.EY:return function(e,t){var r;let n=e.data||"";return(null!=(r=t.encodeEntities)?r:t.decodeEntities)===!1||!t.xmlMode&&e.parent&&s.has(e.parent.name)||(n=t.xmlMode||"utf8"!==t.encodeEntities?(0,i.WY)(n):(0,i.X1)(n)),n}(t,r)}}(c[t],r);return h},u=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),d=new Set(["svg","math"])},2743:function(e,t,r){var n,i;function a(e){return e.type===n.Tag||e.type===n.Script||e.type===n.Style}r.d(t,{EY:()=>o,KB:()=>p,Mw:()=>c,OF:()=>d,RJ:()=>n,WL:()=>l,bL:()=>s,dz:()=>a,eF:()=>u,fl:()=>f,vw:()=>h}),(i=n||(n={})).Root="root",i.Text="text",i.Directive="directive",i.Comment="comment",i.Script="script",i.Style="style",i.Tag="tag",i.CDATA="cdata",i.Doctype="doctype";let s=n.Root,o=n.Text,l=n.Directive,c=n.Comment,u=n.Script,d=n.Style,h=n.Tag,p=n.CDATA,f=n.Doctype},8866:function(e,t,r){r.d(t,{DV:()=>s,Hg:()=>i.Hg,Mw:()=>i.Mw});var n=r(2743),i=r(6072);let a={withStartIndices:!1,withEndIndices:!1,xmlMode:!1};class s{constructor(e,t,r){this.dom=[],this.root=new i.yo(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"==typeof t&&(r=t,t=a),"object"==typeof e&&(t=e,e=void 0),this.callback=null!=e?e:null,this.options=null!=t?t:a,this.elementCB=null!=r?r:null}onparserinit(e){this.parser=e}onreset(){this.dom=[],this.root=new i.yo(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null}onend(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))}onerror(e){this.handleCallback(e)}onclosetag(){this.lastNode=null;let e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)}onopentag(e,t){let r=this.options.xmlMode?n.RJ.Tag:void 0,a=new i.Hg(e,t,void 0,r);this.addNode(a),this.tagStack.push(a)}ontext(e){let{lastNode:t}=this;if(t&&t.type===n.RJ.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{let t=new i.EY(e);this.addNode(t),this.lastNode=t}}oncomment(e){if(this.lastNode&&this.lastNode.type===n.RJ.Comment){this.lastNode.data+=e;return}let t=new i.Mw(e);this.addNode(t),this.lastNode=t}oncommentend(){this.lastNode=null}oncdatastart(){let e=new i.EY(""),t=new i.KB([e]);this.addNode(t),e.parent=t,this.lastNode=e}oncdataend(){this.lastNode=null}onprocessinginstruction(e,t){let r=new i.Cd(e,t);this.addNode(r)}handleCallback(e){if("function"==typeof this.callback)this.callback(e,this.dom);else if(e)throw e}addNode(e){let t=this.tagStack[this.tagStack.length-1],r=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),r&&(e.prev=r,r.next=e),e.parent=t,this.lastNode=null}}},6072:function(e,t,r){r.d(t,{Cd:()=>l,EY:()=>s,Hg:()=>h,KB:()=>u,Mw:()=>o,yo:()=>d});var n=r(2743);class i{constructor(){this.parent=null,this.prev=null,this.next=null,this.startIndex=null,this.endIndex=null}get parentNode(){return this.parent}set parentNode(e){this.parent=e}get previousSibling(){return this.prev}set previousSibling(e){this.prev=e}get nextSibling(){return this.next}set nextSibling(e){this.next=e}cloneNode(e=!1){return p(this,e)}}class a extends i{constructor(e){super(),this.data=e}get nodeValue(){return this.data}set nodeValue(e){this.data=e}}class s extends a{constructor(){super(...arguments),this.type=n.RJ.Text}get nodeType(){return 3}}class o extends a{constructor(){super(...arguments),this.type=n.RJ.Comment}get nodeType(){return 8}}class l extends a{constructor(e,t){super(t),this.name=e,this.type=n.RJ.Directive}get nodeType(){return 1}}class c extends i{constructor(e){super(),this.children=e}get firstChild(){var e;return null!=(e=this.children[0])?e:null}get lastChild(){return this.children.length>0?this.children[this.children.length-1]:null}get childNodes(){return this.children}set childNodes(e){this.children=e}}class u extends c{constructor(){super(...arguments),this.type=n.RJ.CDATA}get nodeType(){return 4}}class d extends c{constructor(){super(...arguments),this.type=n.RJ.Root}get nodeType(){return 9}}class h extends c{constructor(e,t,r=[],i="script"===e?n.RJ.Script:"style"===e?n.RJ.Style:n.RJ.Tag){super(r),this.name=e,this.attribs=t,this.type=i}get nodeType(){return 1}get tagName(){return this.name}set tagName(e){this.name=e}get attributes(){return Object.keys(this.attribs).map(e=>{var t,r;return{name:e,value:this.attribs[e],namespace:null==(t=this["x-attribsNamespace"])?void 0:t[e],prefix:null==(r=this["x-attribsPrefix"])?void 0:r[e]}})}}function p(e,t=!1){let r;if(e.type===n.RJ.Text)r=new s(e.data);else if(e.type===n.RJ.Comment)r=new o(e.data);else if((0,n.dz)(e)){let n=t?f(e.children):[],i=new h(e.name,{...e.attribs},n);n.forEach(e=>e.parent=i),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]={...e["x-attribsNamespace"]}),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]={...e["x-attribsPrefix"]}),r=i}else if(e.type===n.RJ.CDATA){let n=t?f(e.children):[],i=new u(n);n.forEach(e=>e.parent=i),r=i}else if(e.type===n.RJ.Root){let n=t?f(e.children):[],i=new d(n);n.forEach(e=>e.parent=i),e["x-mode"]&&(i["x-mode"]=e["x-mode"]),r=i}else if(e.type===n.RJ.Directive){let t=new l(e.name,e.data);null!=e["x-name"]&&(t["x-name"]=e["x-name"],t["x-publicId"]=e["x-publicId"],t["x-systemId"]=e["x-systemId"]),r=t}else throw Error(`Not implemented yet: ${e.type}`);return r.startIndex=e.startIndex,r.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(r.sourceCodeLocation=e.sourceCodeLocation),r}function f(e){let t=e.map(e=>p(e,!0));for(let e=1;ea,y6:()=>s});let i=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),a=null!=(n=String.fromCodePoint)?n:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e)};function s(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!=(t=i.get(e))?t:e}},2990:function(e,t,r){r.d(t,{FJ:()=>u,MK:()=>p.MK,Wf:()=>g,qN:()=>d.q,sr:()=>h.s});var n,i,a,s,o,l,c,u,d=r(7259),h=r(5949),p=r(2146);function f(e){return e>=o.ZERO&&e<=o.NINE}(n=o||(o={}))[n.NUM=35]="NUM",n[n.SEMI=59]="SEMI",n[n.EQUALS=61]="EQUALS",n[n.ZERO=48]="ZERO",n[n.NINE=57]="NINE",n[n.LOWER_A=97]="LOWER_A",n[n.LOWER_F=102]="LOWER_F",n[n.LOWER_X=120]="LOWER_X",n[n.LOWER_Z=122]="LOWER_Z",n[n.UPPER_A=65]="UPPER_A",n[n.UPPER_F=70]="UPPER_F",n[n.UPPER_Z=90]="UPPER_Z",(i=l||(l={}))[i.VALUE_LENGTH=49152]="VALUE_LENGTH",i[i.BRANCH_LENGTH=16256]="BRANCH_LENGTH",i[i.JUMP_TABLE=127]="JUMP_TABLE",(a=c||(c={}))[a.EntityStart=0]="EntityStart",a[a.NumericStart=1]="NumericStart",a[a.NumericDecimal=2]="NumericDecimal",a[a.NumericHex=3]="NumericHex",a[a.NamedEntity=4]="NamedEntity",(s=u||(u={}))[s.Legacy=0]="Legacy",s[s.Strict=1]="Strict",s[s.Attribute=2]="Attribute";class g{constructor(e,t,r){this.decodeTree=e,this.emitCodePoint=t,this.errors=r,this.state=c.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=u.Strict}startEntity(e){this.decodeMode=e,this.state=c.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(e,t){switch(this.state){case c.EntityStart:if(e.charCodeAt(t)===o.NUM)return this.state=c.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1);return this.state=c.NamedEntity,this.stateNamedEntity(e,t);case c.NumericStart:return this.stateNumericStart(e,t);case c.NumericDecimal:return this.stateNumericDecimal(e,t);case c.NumericHex:return this.stateNumericHex(e,t);case c.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===o.LOWER_X?(this.state=c.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=c.NumericDecimal,this.stateNumericDecimal(e,t))}addToNumericResult(e,t,r,n){if(t!==r){let i=r-t;this.result=this.result*Math.pow(n,i)+Number.parseInt(e.substr(t,i),n),this.consumed+=i}}stateNumericHex(e,t){let r=t;for(;t=o.UPPER_A)||!(n<=o.UPPER_F))&&(!(n>=o.LOWER_A)||!(n<=o.LOWER_F)))return this.addToNumericResult(e,r,t,16),this.emitNumericEntity(i,3);t+=1}return this.addToNumericResult(e,r,t,16),-1}stateNumericDecimal(e,t){let r=t;for(;t>14;for(;t>7,a=t&l.JUMP_TABLE;if(0===i)return 0!==a&&n===a?r:-1;if(a){let t=n-a;return t<0||t>=i?-1:e[r+t]-1}let s=r,o=s+i-1;for(;s<=o;){let t=s+o>>>1,r=e[t];if(rn))return e[t+i];o=t-1}}return -1}(r,n,this.treeIndex+Math.max(1,i),a),this.treeIndex<0)return 0===this.result||this.decodeMode===u.Attribute&&(0===i||function(e){var t;return e===o.EQUALS||(t=e)>=o.UPPER_A&&t<=o.UPPER_Z||t>=o.LOWER_A&&t<=o.LOWER_Z||f(t)}(a))?0:this.emitNotTerminatedNamedEntity();if(0!=(i=((n=r[this.treeIndex])&l.VALUE_LENGTH)>>14)){if(a===o.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);this.decodeMode!==u.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return -1}emitNotTerminatedNamedEntity(){var e;let{result:t,decodeTree:r}=this,n=(r[t]&l.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,n,this.consumed),null==(e=this.errors)||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,r){let{decodeTree:n}=this;return this.emitCodePoint(1===t?n[e]&~l.VALUE_LENGTH:n[e+1],r),3===t&&this.emitCodePoint(n[e+2],r),r}end(){var e;switch(this.state){case c.NamedEntity:return 0!==this.result&&(this.decodeMode!==u.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case c.NumericDecimal:return this.emitNumericEntity(0,2);case c.NumericHex:return this.emitNumericEntity(0,3);case c.NumericStart:return null==(e=this.errors)||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case c.EntityStart:return 0}}}},466:function(e,t,r){r(9496),r(747)},747:function(e,t,r){r.d(t,{Gj:()=>l,WY:()=>s,X1:()=>c});let n=/["$&'<>\u0080-\uFFFF]/g,i=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),a=null==String.prototype.codePointAt?(e,t)=>(64512&e.charCodeAt(t))==55296?(e.charCodeAt(t)-55296)*1024+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t):(e,t)=>e.codePointAt(t);function s(e){let t,r="",s=0;for(;null!==(t=n.exec(e));){let{index:o}=t,l=e.charCodeAt(o),c=i.get(l);void 0===c?(r+=`${e.substring(s,o)}&#x${a(e,o).toString(16)};`,s=n.lastIndex+=Number((64512&l)==55296)):(r+=e.substring(s,o)+c,s=o+1)}return r+e.substr(s)}function o(e,t){return function(r){let n,i=0,a="";for(;n=e.exec(r);)i!==n.index&&(a+=r.substring(i,n.index)),a+=t.get(n[0].charCodeAt(0)),i=n.index+1;return a+r.substring(i)}}let l=o(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),c=o(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))},7259:function(e,t,r){r.d(t,{q:()=>n});let n=new Uint16Array('ᵁ<\xd5ıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms\x7f\x84\x8b\x90\x95\x98\xa6\xb3\xb9\xc8\xcflig耻\xc6䃆P耻&䀦cute耻\xc1䃁reve;䄂Āiyx}rc耻\xc2䃂;䐐r;쀀\ud835\udd04rave耻\xc0䃀pha;䎑acr;䄀d;橓Āgp\x9d\xa1on;䄄f;쀀\ud835\udd38plyFunction;恡ing耻\xc5䃅Ācs\xbe\xc3r;쀀\ud835\udc9cign;扔ilde耻\xc3䃃ml耻\xc4䃄Ѐaceforsu\xe5\xfb\xfeėĜĢħĪĀcr\xea\xf2kslash;或Ŷ\xf6\xf8;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀\ud835\udd05pf;쀀\ud835\udd39eve;䋘c\xf2ēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻\xa9䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻\xc7䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷\xf2ſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀\ud835\udc9epĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀\ud835\udd07Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀\ud835\udd3bƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegra\xecȹoɴ͹\0\0ͻ\xbb͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔e\xe5ˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀\ud835\udc9frok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻\xd0䃐cute耻\xc9䃉ƀaiyӒӗӜron;䄚rc耻\xca䃊;䐭ot;䄖r;쀀\ud835\udd08rave耻\xc8䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀\ud835\udd3csilon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻\xcb䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀\ud835\udd09lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀\ud835\udd3dAll;戀riertrf;愱c\xf2׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀\ud835\udd0a;拙pf;쀀\ud835\udd3eeater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀\ud835\udca2;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅ\xf2کrok;䄦mpńېۘownHum\xf0įqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻\xcd䃍Āiyܓܘrc耻\xce䃎;䐘ot;䄰r;愑rave耻\xcc䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lie\xf3ϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀\ud835\udd40a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻\xcf䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀\ud835\udd0dpf;쀀\ud835\udd41ǣ߇\0ߌr;쀀\ud835\udca5rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀\ud835\udd0epf;쀀\ud835\udd42cr;쀀\ud835\udca6րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ight\xe1Μs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀\ud835\udd0fĀ;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊight\xe1οight\xe1ϊf;쀀\ud835\udd43erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂ\xf2ࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀\ud835\udd10nusPlus;戓pf;쀀\ud835\udd44c\xf2੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘\xeb૙eryThi\xee૙tedĀGL૸ଆreaterGreate\xf2ٳessLes\xf3ੈLine;䀊r;쀀\ud835\udd11ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀\ud835\udca9ilde耻\xd1䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻\xd3䃓Āiy෎ීrc耻\xd4䃔;䐞blac;䅐r;쀀\ud835\udd12rave耻\xd2䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀\ud835\udd46enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀\ud835\udcaaash耻\xd8䃘iŬื฼de耻\xd5䃕es;樷ml耻\xd6䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀\ud835\udd13i;䎦;䎠usMinus;䂱Āipຢອncareplan\xe5ڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀\ud835\udcab;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀\ud835\udd14pf;愚cr;쀀\ud835\udcac؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻\xae䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r\xbbཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀\ud835\udd16ortȀDLRUᄪᄴᄾᅉownArrow\xbbОeftArrow\xbb࢚ightArrow\xbb࿝pArrow;憑gma;䎣allCircle;战pf;쀀\ud835\udd4aɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀\ud835\udcaear;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Th\xe1ྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et\xbbሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻\xde䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀\ud835\udd17Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀\ud835\udd4bipleDot;惛Āctዖዛr;쀀\ud835\udcafrok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻\xda䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻\xdb䃛;䐣blac;䅰r;쀀\ud835\udd18rave耻\xd9䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀\ud835\udd4cЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥own\xe1ϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀\ud835\udcb0ilde;䅨ml耻\xdc䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀\ud835\udd19pf;쀀\ud835\udd4dcr;쀀\ud835\udcb1dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀\ud835\udd1apf;쀀\ud835\udd4ecr;쀀\ud835\udcb2Ȁfiosᓋᓐᓒᓘr;쀀\ud835\udd1b;䎞pf;쀀\ud835\udd4fcr;쀀\ud835\udcb3ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻\xdd䃝Āiyᔉᔍrc;䅶;䐫r;쀀\ud835\udd1cpf;쀀\ud835\udd50cr;쀀\ud835\udcb4ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidt\xe8૙a;䎖r;愨pf;愤cr;쀀\ud835\udcb5௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻\xe1䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻\xe2䃢te肻\xb4̆;䐰lig耻\xe6䃦Ā;r\xb2ᖺ;쀀\ud835\udd1erave耻\xe0䃠ĀepᗊᗖĀfpᗏᗔsym;愵\xe8ᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e\xbbᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢\xbb\xb9arr;捼Āgpᙣᙧon;䄅f;쀀\ud835\udd52΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒ\xf1ᚃing耻\xe5䃥ƀctyᚡᚦᚨr;쀀\ud835\udcb6;䀪mpĀ;e዁ᚯ\xf1ʈilde耻\xe3䃣ml耻\xe4䃤Āciᛂᛈonin\xf4ɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e\xbbᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰s\xe9ᜌno\xf5ēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀\ud835\udd1fg΀costuvwឍឝឳេ៕៛៞ƀaiuបពរ\xf0ݠrc;旯p\xbb፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄e\xe5ᑄ\xe5ᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀\ud835\udd53Ā;tᏋᡣom\xbbᏌtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻\xa6䂦Ȁceioᥑᥖᥚᥠr;쀀\ud835\udcb7mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t\xbb᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁\xeeړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻\xe7䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻\xb8ƭptyv;榲t脀\xa2;eᨭᨮ䂢r\xe4Ʋr;쀀\ud835\udd20ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark\xbbᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟\xbbཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it\xbb᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;q\xc7\xc6ɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁\xeeᅠeĀmx᫱᫶ent\xbb᫩e\xf3ɍǧ᫾\0ᬇĀ;dኻᬂot;橭n\xf4Ɇƀfryᬐᬔᬗ;쀀\ud835\udd54o\xe4ɔ脀\xa9;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀\ud835\udcb8Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒre\xe3᭳u\xe3᭵ee;拎edge;拏en耻\xa4䂤earrowĀlrᯮ᯳eft\xbbᮀight\xbbᮽe\xe4ᯝĀciᰁᰇonin\xf4Ƿnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍r\xf2΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸\xf2ᄳhĀ;vᱚᱛ怐\xbbऊūᱡᱧarow;椏a\xe3̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻\xb0䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀\ud835\udd21arĀlrᲳᲵ\xbbࣜ\xbbသʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀\xf7;o᳧ᳰntimes;拇n\xf8᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀\ud835\udd55ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedg\xe5\xfanƀadhᄮᵝᵧownarrow\xf3ᲃarpoonĀlrᵲᵶef\xf4Ჴigh\xf4ᲶŢᵿᶅkaro\xf7གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀\ud835\udcb9;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃r\xf2Щa\xf2ྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴo\xf4ᲉĀcsḎḔute耻\xe9䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻\xea䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀\ud835\udd22ƀ;rsṐṑṗ檚ave耻\xe8䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et\xbbẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀\ud835\udd56ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on\xbbớ;䏵ȀcsuvỪỳἋἣĀioữḱrc\xbbḮɩỹ\0\0ỻ\xedՈantĀglἂἆtr\xbbṝess\xbbṺƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯o\xf4͒ĀahὉὋ;䎷耻\xf0䃰Āmrὓὗl耻\xeb䃫o;悬ƀcipὡὤὧl;䀡s\xf4ծĀeoὬὴctatio\xeeՙnential\xe5չৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotse\xf1Ṅy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀\ud835\udd23lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀\ud835\udd57ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻\xbd䂽;慓耻\xbc䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻\xbe䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀\ud835\udcbbࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lan\xf4٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀\ud835\udd24Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox\xbbℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀\ud835\udd58Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎pro\xf8₞r;楸qĀlqؿ↖les\xf3₈i\xed٫Āen↣↭rtneqq;쀀≩︀\xc5↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽r\xf2ΠȀilmr⇐⇔⇗⇛rs\xf0ᒄf\xbb․il\xf4کĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it\xbb∊lip;怦con;抹r;쀀\ud835\udd25sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀\ud835\udd59bar;怕ƀclt≯≴≸r;쀀\ud835\udcbdas\xe8⇴rok;䄧Ābp⊂⊇ull;恃hen\xbbᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻\xed䃭ƀ;iyݱ⊰⊵rc耻\xee䃮;䐸Ācx⊼⊿y;䐵cl耻\xa1䂡ĀfrΟ⋉;쀀\ud835\udd26rave耻\xec䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓in\xe5ގar\xf4ܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝do\xf4⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙er\xf3ᕣ\xe3⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀\ud835\udd5aa;䎹uest耻\xbf䂿Āci⎊⎏r;쀀\ud835\udcbenʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻\xef䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀\ud835\udd27ath;䈷pf;쀀\ud835\udd5bǣ⏬\0⏱r;쀀\ud835\udcbfrcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀\ud835\udd28reen;䄸cy;䑅cy;䑜pf;쀀\ud835\udd5ccr;쀀\ud835\udcc0஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼r\xf2৆\xf2Εail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴ra\xeeࡌbda;䎻gƀ;dlࢎⓁⓃ;榑\xe5ࢎ;檅uo耻\xab䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝\xeb≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼\xecࢰ\xe2┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□a\xe9⓶arpoonĀdu▯▴own\xbbњp\xbb०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoon\xf3྘quigarro\xf7⇰hreetimes;拋ƀ;qs▋ও◺lan\xf4বʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋ppro\xf8Ⓠot;拖qĀgq♃♅\xf4উgt\xf2⒌\xf4ছi\xedলƀilr♕࣡♚sht;楼;쀀\ud835\udd29Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖r\xf2◁orne\xf2ᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che\xbb⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox\xbb⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽r\xebࣁgƀlmr⛿✍✔eftĀar০✇ight\xe1৲apsto;柼ight\xe1৽parrowĀlr✥✩ef\xf4⓭ight;憬ƀafl✶✹✽r;榅;쀀\ud835\udd5dus;樭imes;樴š❋❏st;戗\xe1ፎƀ;ef❗❘᠀旊nge\xbb❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇r\xf2ࢨorne\xf2ᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀\ud835\udcc1mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹re\xe5◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀\xc5⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻\xaf䂯Āet⡗⡙;時Ā;e⡞⡟朠se\xbb⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻ow\xeeҌef\xf4ए\xf0Ꮡker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle\xbbᘦr;쀀\ud835\udd2ao;愧ƀcdn⢯⢴⣉ro耻\xb5䂵Ȁ;acdᑤ⢽⣀⣄s\xf4ᚧir;櫰ot肻\xb7Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛\xf2−\xf0ઁĀdp⣩⣮els;抧f;쀀\ud835\udd5eĀct⣸⣽r;쀀\ud835\udcc2pos\xbbᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la\xbb˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉ro\xf8඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻\xa0ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸ui\xf6ୣĀei⩊⩎ar;椨\xed஘istĀ;s஠டr;쀀\ud835\udd2bȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lan\xf4௢i\xed௪Ā;rஶ⪁\xbbஷƀAap⪊⪍⪑r\xf2⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹r\xf2⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro\xf7⫁ightarro\xf7⪐ƀ;qs఻⪺⫪lan\xf4ౕĀ;sౕ⫴\xbbశi\xedౝĀ;rవ⫾iĀ;eచథi\xe4ඐĀpt⬌⬑f;쀀\ud835\udd5f膀\xac;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lle\xec୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳u\xe5ಥĀ;cಘ⭸Ā;eಒ⭽\xf1ಘȀAait⮈⮋⮝⮧r\xf2⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow\xbb⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉u\xe5൅;쀀\ud835\udcc3ortɭ⬅\0\0⯖ar\xe1⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭\xe5೸\xe5ഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗ\xf1സȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇ\xecௗlde耻\xf1䃱\xe7ృiangleĀlrⱒⱜeftĀ;eచⱚ\xf1దightĀ;eೋⱥ\xf1೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻\xf3䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻\xf4䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀\ud835\udd2cͯ⵹\0\0⵼\0ⶂn;䋛ave耻\xf2䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨr\xf2᪀Āir⶝ⶠr;榾oss;榻n\xe5๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀\ud835\udd60ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨r\xf2᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f\xbbⷿ耻\xaa䂪耻\xba䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧\xf2⸁ash耻\xf8䃸l;折iŬⸯ⸴de耻\xf5䃵esĀ;aǛ⸺s;樶ml耻\xf6䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀\xb6;l⹭⹮䂶le\xecЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀\ud835\udd2dƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕ma\xf4੶ne;明ƀ;tv⺿⻀⻈䏀chfork\xbb´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎\xf6⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻\xb1ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀\ud835\udd61nd耻\xa3䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷u\xe5໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾ppro\xf8⽃urlye\xf1໙\xf1໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨i\xedໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺\xf0⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴\xef໻rel;抰Āci⿀⿅r;쀀\ud835\udcc5;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀\ud835\udd2epf;쀀\ud835\udd62rime;恗cr;쀀\ud835\udcc6ƀaeo⿸〉〓tĀei⿾々rnion\xf3ڰnt;樖stĀ;e【】䀿\xf1Ἑ\xf4༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがr\xf2Ⴓ\xf2ϝail;検ar\xf2ᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕i\xe3ᅮmptyv;榳gȀ;del࿑らるろ;榒;榥\xe5࿑uo耻\xbb䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞\xeb≝\xf0✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶al\xf3༞ƀabrョリヮr\xf2៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗\xec࿲\xe2ヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜn\xe5Ⴛar\xf4ྩt;断ƀilrㅩဣㅮsht;楽;쀀\ud835\udd2fĀaoㅷㆆrĀduㅽㅿ\xbbѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭa\xe9トarpoonĀduㆻㆿow\xeeㅾp\xbb႒eftĀah㇊㇐rrow\xf3࿪arpoon\xf3Ցightarrows;應quigarro\xf7ニhreetimes;拌g;䋚ingdotse\xf1ἲƀahm㈍㈐㈓r\xf2࿪a\xf2Ց;怏oustĀ;a㈞㈟掱che\xbb㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾r\xebဃƀafl㉇㉊㉎r;榆;쀀\ud835\udd63us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒ar\xf2㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀\ud835\udcc7Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠re\xe5ㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛qu\xef➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡u\xe5ᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓i\xedሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒\xeb∨Ā;oਸ਼਴t耻\xa7䂧i;䀻war;椩mĀin㍩\xf0nu\xf3\xf1t;朶rĀ;o㍶⁕쀀\ud835\udd30Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜i\xe4ᑤara\xec⹯耻\xad䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲ar\xf2ᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetm\xe9㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀\ud835\udd64aĀdr㑍ЂesĀ;u㑔㑕晠it\xbb㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍\xf1ᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝\xf1ᆮƀ;afᅻ㒦ְrť㒫ֱ\xbbᅼar\xf2ᅈȀcemt㒹㒾㓂㓅r;쀀\ud835\udcc8tm\xee\xf1i\xec㐕ar\xe6ᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psilo\xeeỠh\xe9⺯s\xbb⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦ppro\xf8㋺urlye\xf1ᇾ\xf1ᇳƀaes㖂㖈㌛ppro\xf8㌚q\xf1㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻\xb9䂹耻\xb2䂲耻\xb3䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨\xeb∮Ā;oਫ਩war;椪lig耻\xdf䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄r\xeb๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀\ud835\udd31Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮ppro\xf8዁im\xbbኬs\xf0ኞĀas㚺㚮\xf0዁rn耻\xfe䃾Ǭ̟㛆⋧es膀\xd7;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀\xe1⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀\ud835\udd65rk;櫚\xe1㍢rime;怴ƀaip㜏㜒㝤d\xe5ቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own\xbbᶻeftĀ;e⠀㜾\xf1म;扜ightĀ;e㊪㝋\xf1ၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀\ud835\udcc9;䑆cy;䑛rok;䅧Āio㞋㞎x\xf4᝷headĀlr㞗㞠eftarro\xf7ࡏightarrow\xbbཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶r\xf2ϭar;楣Ācr㟜㟢ute耻\xfa䃺\xf2ᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻\xfb䃻;䑃ƀabh㠃㠆㠋r\xf2Ꭽlac;䅱a\xf2ᏃĀir㠓㠘sht;楾;쀀\ud835\udd32rave耻\xf9䃹š㠧㠱rĀlr㠬㠮\xbbॗ\xbbႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r\xbb㡆op;挏ri;旸Āal㡖㡚cr;䅫肻\xa8͉Āgp㡢㡦on;䅳f;쀀\ud835\udd66̀adhlsuᅋ㡸㡽፲㢑㢠own\xe1ᎳarpoonĀlr㢈㢌ef\xf4㠭igh\xf4㠯iƀ;hl㢙㢚㢜䏅\xbbᏺon\xbb㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r\xbb㢽op;挎ng;䅯ri;旹cr;쀀\ud835\udccaƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨\xbb᠓Āam㣯㣲r\xf2㢨l耻\xfc䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠r\xf2ϷarĀ;v㤦㤧櫨;櫩as\xe8ϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖app\xe1␕othin\xe7ẖƀhir㓫⻈㥙op\xf4⾵Ā;hᎷ㥢\xefㆍĀiu㥩㥭gm\xe1㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟et\xe1㚜iangleĀlr㦪㦯eft\xbbथight\xbbၑy;䐲ash\xbbံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨa\xf2ᑩr;쀀\ud835\udd33tr\xe9㦮suĀbp㧯㧱\xbbജ\xbb൙pf;쀀\ud835\udd67ro\xf0໻tr\xe9㦴Ācu㨆㨋r;쀀\ud835\udccbĀbp㨐㨘nĀEe㦀㨖\xbb㥾nĀEe㦒㨞\xbb㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀\ud835\udd34pf;쀀\ud835\udd68Ā;eᑹ㩦at\xe8ᑹcr;쀀\ud835\udcccૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tr\xe9៑r;쀀\ud835\udd35ĀAa㪔㪗r\xf2σr\xf2৶;䎾ĀAa㪡㪤r\xf2θr\xf2৫a\xf0✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀\ud835\udd69im\xe5ឲĀAa㫇㫊r\xf2ώr\xf2ਁĀcq㫒ីr;쀀\ud835\udccdĀpt៖㫜r\xe9។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻\xfd䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻\xa5䂥r;쀀\ud835\udd36cy;䑗pf;쀀\ud835\udd6acr;쀀\ud835\udcceĀcm㬦㬩y;䑎l耻\xff䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡tr\xe6ᕟa;䎶r;쀀\ud835\udd37cy;䐶grarr;懝pf;쀀\ud835\udd6bcr;쀀\ud835\udccfĀjn㮅㮇;怍j;怌'.split("").map(e=>e.charCodeAt(0)))},5949:function(e,t,r){r.d(t,{s:()=>n});let n=new Uint16Array("Ȁaglq \x15\x18\x1bɭ\x0f\0\0\x12p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(e=>e.charCodeAt(0)))},9496:function(){},8466:function(e,t,r){r.d(t,{Gj:()=>o.Gj,WY:()=>o.WY,X1:()=>o.X1}),r(2990),r(466);var n,i,a,s,o=r(747);(n=a||(a={}))[n.XML=0]="XML",n[n.HTML=1]="HTML",(i=s||(s={}))[i.UTF8=0]="UTF8",i[i.ASCII=1]="ASCII",i[i.Extensive=2]="Extensive",i[i.Attribute=3]="Attribute",i[i.Text=4]="Text"},4645:function(e,t,r){r.d(t,{i:()=>g});var n=r(5645),i=r(2990);let a=new Set(["input","option","optgroup","select","button","datalist","textarea"]),s=new Set(["p"]),o=new Set(["thead","tbody"]),l=new Set(["dd","dt"]),c=new Set(["rt","rp"]),u=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",s],["h1",s],["h2",s],["h3",s],["h4",s],["h5",s],["h6",s],["select",a],["input",a],["output",a],["button",a],["datalist",a],["textarea",a],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",l],["dt",l],["address",s],["article",s],["aside",s],["blockquote",s],["details",s],["div",s],["dl",s],["fieldset",s],["figcaption",s],["figure",s],["footer",s],["form",s],["header",s],["hr",s],["main",s],["nav",s],["ol",s],["pre",s],["section",s],["table",s],["ul",s],["rt",c],["rp",c],["tbody",o],["tfoot",o]]),d=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),h=new Set(["math","svg"]),p=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),f=/\s|\//;class g{constructor(e,t={}){var r,i,a,s,o,l;this.options=t,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=null!=e?e:{},this.htmlMode=!this.options.xmlMode,this.lowerCaseTagNames=null!=(r=t.lowerCaseTags)?r:this.htmlMode,this.lowerCaseAttributeNames=null!=(i=t.lowerCaseAttributeNames)?i:this.htmlMode,this.recognizeSelfClosing=null!=(a=t.recognizeSelfClosing)?a:!this.htmlMode,this.tokenizer=new(null!=(s=t.Tokenizer)?s:n.A)(this.options,this),this.foreignContext=[!this.htmlMode],null==(l=(o=this.cbs).onparserinit)||l.call(o,this)}ontext(e,t){var r,n;let i=this.getSlice(e,t);this.endIndex=t-1,null==(n=(r=this.cbs).ontext)||n.call(r,i),this.startIndex=t}ontextentity(e,t){var r,n;this.endIndex=t-1,null==(n=(r=this.cbs).ontext)||n.call(r,(0,i.MK)(e)),this.startIndex=t}isVoidElement(e){return this.htmlMode&&d.has(e)}onopentagname(e,t){this.endIndex=t;let r=this.getSlice(e,t);this.lowerCaseTagNames&&(r=r.toLowerCase()),this.emitOpenTag(r)}emitOpenTag(e){var t,r,n,i;this.openTagStart=this.startIndex,this.tagname=e;let a=this.htmlMode&&u.get(e);if(a)for(;this.stack.length>0&&a.has(this.stack[0]);){let e=this.stack.shift();null==(r=(t=this.cbs).onclosetag)||r.call(t,e,!0)}!this.isVoidElement(e)&&(this.stack.unshift(e),this.htmlMode&&(h.has(e)?this.foreignContext.unshift(!0):p.has(e)&&this.foreignContext.unshift(!1))),null==(i=(n=this.cbs).onopentagname)||i.call(n,e),this.cbs.onopentag&&(this.attribs={})}endOpenTag(e){var t,r;this.startIndex=this.openTagStart,this.attribs&&(null==(r=(t=this.cbs).onopentag)||r.call(t,this.tagname,this.attribs,e),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(e){this.endIndex=e,this.endOpenTag(!1),this.startIndex=e+1}onclosetag(e,t){var r,n,i,a,s,o,l,c;this.endIndex=t;let u=this.getSlice(e,t);if(this.lowerCaseTagNames&&(u=u.toLowerCase()),this.htmlMode&&(h.has(u)||p.has(u))&&this.foreignContext.shift(),this.isVoidElement(u))this.htmlMode&&"br"===u&&(null==(a=(i=this.cbs).onopentagname)||a.call(i,"br"),null==(o=(s=this.cbs).onopentag)||o.call(s,"br",{},!0),null==(c=(l=this.cbs).onclosetag)||c.call(l,"br",!1));else{let e=this.stack.indexOf(u);if(-1!==e)for(let t=0;t<=e;t++){let i=this.stack.shift();null==(n=(r=this.cbs).onclosetag)||n.call(r,i,t!==e)}else this.htmlMode&&"p"===u&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=t+1}onselfclosingtag(e){this.endIndex=e,this.recognizeSelfClosing||this.foreignContext[0]?(this.closeCurrentTag(!1),this.startIndex=e+1):this.onopentagend(e)}closeCurrentTag(e){var t,r;let n=this.tagname;this.endOpenTag(e),this.stack[0]===n&&(null==(r=(t=this.cbs).onclosetag)||r.call(t,n,!e),this.stack.shift())}onattribname(e,t){this.startIndex=e;let r=this.getSlice(e,t);this.attribname=this.lowerCaseAttributeNames?r.toLowerCase():r}onattribdata(e,t){this.attribvalue+=this.getSlice(e,t)}onattribentity(e){this.attribvalue+=(0,i.MK)(e)}onattribend(e,t){var r,i;this.endIndex=t,null==(i=(r=this.cbs).onattribute)||i.call(r,this.attribname,this.attribvalue,e===n.X.Double?'"':e===n.X.Single?"'":e===n.X.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(e){let t=e.search(f),r=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(r=r.toLowerCase()),r}ondeclaration(e,t){this.endIndex=t;let r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){let e=this.getInstructionName(r);this.cbs.onprocessinginstruction(`!${e}`,`!${r}`)}this.startIndex=t+1}onprocessinginstruction(e,t){this.endIndex=t;let r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){let e=this.getInstructionName(r);this.cbs.onprocessinginstruction(`?${e}`,`?${r}`)}this.startIndex=t+1}oncomment(e,t,r){var n,i,a,s;this.endIndex=t,null==(i=(n=this.cbs).oncomment)||i.call(n,this.getSlice(e,t-r)),null==(s=(a=this.cbs).oncommentend)||s.call(a),this.startIndex=t+1}oncdata(e,t,r){var n,i,a,s,o,l,c,u,d,h;this.endIndex=t;let p=this.getSlice(e,t-r);!this.htmlMode||this.options.recognizeCDATA?(null==(i=(n=this.cbs).oncdatastart)||i.call(n),null==(s=(a=this.cbs).ontext)||s.call(a,p),null==(l=(o=this.cbs).oncdataend)||l.call(o)):(null==(u=(c=this.cbs).oncomment)||u.call(c,`[CDATA[${p}]]`),null==(h=(d=this.cbs).oncommentend)||h.call(d)),this.startIndex=t+1}onend(){var e,t;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let e=0;e=this.buffers[0].length;)this.shiftBuffer();let r=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);for(;t-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),r+=this.buffers[0].slice(0,t-this.bufferOffset);return r}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(e){var t,r;if(this.ended){null==(r=(t=this.cbs).onerror)||r.call(t,Error(".write() after done!"));return}this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++)}end(e){var t,r;if(this.ended){null==(r=(t=this.cbs).onerror)||r.call(t,Error(".end() after done!"));return}e&&this.write(e),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndexp,X:()=>l});var n,i,a,s,o,l,c=r(2990);function u(e){return e===s.Space||e===s.NewLine||e===s.Tab||e===s.FormFeed||e===s.CarriageReturn}function d(e){return e===s.Slash||e===s.Gt||u(e)}(n=s||(s={}))[n.Tab=9]="Tab",n[n.NewLine=10]="NewLine",n[n.FormFeed=12]="FormFeed",n[n.CarriageReturn=13]="CarriageReturn",n[n.Space=32]="Space",n[n.ExclamationMark=33]="ExclamationMark",n[n.Number=35]="Number",n[n.Amp=38]="Amp",n[n.SingleQuote=39]="SingleQuote",n[n.DoubleQuote=34]="DoubleQuote",n[n.Dash=45]="Dash",n[n.Slash=47]="Slash",n[n.Zero=48]="Zero",n[n.Nine=57]="Nine",n[n.Semi=59]="Semi",n[n.Lt=60]="Lt",n[n.Eq=61]="Eq",n[n.Gt=62]="Gt",n[n.Questionmark=63]="Questionmark",n[n.UpperA=65]="UpperA",n[n.LowerA=97]="LowerA",n[n.UpperF=70]="UpperF",n[n.LowerF=102]="LowerF",n[n.UpperZ=90]="UpperZ",n[n.LowerZ=122]="LowerZ",n[n.LowerX=120]="LowerX",n[n.OpeningSquareBracket=91]="OpeningSquareBracket",(i=o||(o={}))[i.Text=1]="Text",i[i.BeforeTagName=2]="BeforeTagName",i[i.InTagName=3]="InTagName",i[i.InSelfClosingTag=4]="InSelfClosingTag",i[i.BeforeClosingTagName=5]="BeforeClosingTagName",i[i.InClosingTagName=6]="InClosingTagName",i[i.AfterClosingTagName=7]="AfterClosingTagName",i[i.BeforeAttributeName=8]="BeforeAttributeName",i[i.InAttributeName=9]="InAttributeName",i[i.AfterAttributeName=10]="AfterAttributeName",i[i.BeforeAttributeValue=11]="BeforeAttributeValue",i[i.InAttributeValueDq=12]="InAttributeValueDq",i[i.InAttributeValueSq=13]="InAttributeValueSq",i[i.InAttributeValueNq=14]="InAttributeValueNq",i[i.BeforeDeclaration=15]="BeforeDeclaration",i[i.InDeclaration=16]="InDeclaration",i[i.InProcessingInstruction=17]="InProcessingInstruction",i[i.BeforeComment=18]="BeforeComment",i[i.CDATASequence=19]="CDATASequence",i[i.InSpecialComment=20]="InSpecialComment",i[i.InCommentLike=21]="InCommentLike",i[i.BeforeSpecialS=22]="BeforeSpecialS",i[i.BeforeSpecialT=23]="BeforeSpecialT",i[i.SpecialStartSequence=24]="SpecialStartSequence",i[i.InSpecialTag=25]="InSpecialTag",i[i.InEntity=26]="InEntity",(a=l||(l={}))[a.NoValue=0]="NoValue",a[a.Unquoted=1]="Unquoted",a[a.Single=2]="Single",a[a.Double=3]="Double";let h={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101]),TextareaEnd:new Uint8Array([60,47,116,101,120,116,97,114,101,97]),XmpEnd:new Uint8Array([60,47,120,109,112])};class p{constructor({xmlMode:e=!1,decodeEntities:t=!0},r){this.cbs=r,this.state=o.Text,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=o.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.xmlMode=e,this.decodeEntities=t,this.entityDecoder=new c.Wf(e?c.sr:c.qN,(e,t)=>this.emitCodePoint(e,t))}reset(){this.state=o.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=o.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=o.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===s.Amp&&this.startEntity()}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?d(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.isSpecial=!1;this.sequenceIndex=0,this.state=o.InTagName,this.stateInTagName(e)}stateInSpecialTag(e){if(this.sequenceIndex===this.currentSequence.length){if(e===s.Gt||u(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=s.LowerA&&e<=s.LowerZ||e>=s.UpperA&&e<=s.UpperZ}startSpecial(e,t){this.isSpecial=!0,this.currentSequence=e,this.sequenceIndex=t,this.state=o.SpecialStartSequence}stateBeforeTagName(e){if(e===s.ExclamationMark)this.state=o.BeforeDeclaration,this.sectionStart=this.index+1;else if(e===s.Questionmark)this.state=o.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(e)){let t=32|e;this.sectionStart=this.index,this.xmlMode?this.state=o.InTagName:t===h.ScriptEnd[2]?this.state=o.BeforeSpecialS:t===h.TitleEnd[2]||t===h.XmpEnd[2]?this.state=o.BeforeSpecialT:this.state=o.InTagName}else e===s.Slash?this.state=o.BeforeClosingTagName:(this.state=o.Text,this.stateText(e))}stateInTagName(e){d(e)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=o.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateBeforeClosingTagName(e){u(e)||(e===s.Gt?this.state=o.Text:(this.state=this.isTagStartChar(e)?o.InClosingTagName:o.InSpecialComment,this.sectionStart=this.index))}stateInClosingTagName(e){(e===s.Gt||u(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=o.AfterClosingTagName,this.stateAfterClosingTagName(e))}stateAfterClosingTagName(e){(e===s.Gt||this.fastForwardTo(s.Gt))&&(this.state=o.Text,this.sectionStart=this.index+1)}stateBeforeAttributeName(e){e===s.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=o.InSpecialTag,this.sequenceIndex=0):this.state=o.Text,this.sectionStart=this.index+1):e===s.Slash?this.state=o.InSelfClosingTag:u(e)||(this.state=o.InAttributeName,this.sectionStart=this.index)}stateInSelfClosingTag(e){e===s.Gt?(this.cbs.onselfclosingtag(this.index),this.state=o.Text,this.sectionStart=this.index+1,this.isSpecial=!1):u(e)||(this.state=o.BeforeAttributeName,this.stateBeforeAttributeName(e))}stateInAttributeName(e){(e===s.Eq||d(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=this.index,this.state=o.AfterAttributeName,this.stateAfterAttributeName(e))}stateAfterAttributeName(e){e===s.Eq?this.state=o.BeforeAttributeValue:e===s.Slash||e===s.Gt?(this.cbs.onattribend(l.NoValue,this.sectionStart),this.sectionStart=-1,this.state=o.BeforeAttributeName,this.stateBeforeAttributeName(e)):u(e)||(this.cbs.onattribend(l.NoValue,this.sectionStart),this.state=o.InAttributeName,this.sectionStart=this.index)}stateBeforeAttributeValue(e){e===s.DoubleQuote?(this.state=o.InAttributeValueDq,this.sectionStart=this.index+1):e===s.SingleQuote?(this.state=o.InAttributeValueSq,this.sectionStart=this.index+1):u(e)||(this.sectionStart=this.index,this.state=o.InAttributeValueNq,this.stateInAttributeValueNoQuotes(e))}handleInAttributeValue(e,t){e===t||!this.decodeEntities&&this.fastForwardTo(t)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(t===s.DoubleQuote?l.Double:l.Single,this.index+1),this.state=o.BeforeAttributeName):this.decodeEntities&&e===s.Amp&&this.startEntity()}stateInAttributeValueDoubleQuotes(e){this.handleInAttributeValue(e,s.DoubleQuote)}stateInAttributeValueSingleQuotes(e){this.handleInAttributeValue(e,s.SingleQuote)}stateInAttributeValueNoQuotes(e){u(e)||e===s.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(l.Unquoted,this.index),this.state=o.BeforeAttributeName,this.stateBeforeAttributeName(e)):this.decodeEntities&&e===s.Amp&&this.startEntity()}stateBeforeDeclaration(e){e===s.OpeningSquareBracket?(this.state=o.CDATASequence,this.sequenceIndex=0):this.state=e===s.Dash?o.BeforeComment:o.InDeclaration}stateInDeclaration(e){(e===s.Gt||this.fastForwardTo(s.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=o.Text,this.sectionStart=this.index+1)}stateInProcessingInstruction(e){(e===s.Gt||this.fastForwardTo(s.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=o.Text,this.sectionStart=this.index+1)}stateBeforeComment(e){e===s.Dash?(this.state=o.InCommentLike,this.currentSequence=h.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=o.InDeclaration}stateInSpecialComment(e){(e===s.Gt||this.fastForwardTo(s.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=o.Text,this.sectionStart=this.index+1)}stateBeforeSpecialS(e){let t=32|e;t===h.ScriptEnd[3]?this.startSpecial(h.ScriptEnd,4):t===h.StyleEnd[3]?this.startSpecial(h.StyleEnd,4):(this.state=o.InTagName,this.stateInTagName(e))}stateBeforeSpecialT(e){switch(32|e){case h.TitleEnd[3]:this.startSpecial(h.TitleEnd,4);break;case h.TextareaEnd[3]:this.startSpecial(h.TextareaEnd,4);break;case h.XmpEnd[3]:this.startSpecial(h.XmpEnd,4);break;default:this.state=o.InTagName,this.stateInTagName(e)}}startEntity(){this.baseState=this.state,this.state=o.InEntity,this.entityStart=this.index,this.entityDecoder.startEntity(this.xmlMode?c.FJ.Strict:this.baseState===o.Text||this.baseState===o.InSpecialTag?c.FJ.Legacy:c.FJ.Attribute)}stateInEntity(){let e=this.entityDecoder.write(this.buffer,this.index-this.offset);e>=0?(this.state=this.baseState,0===e&&(this.index=this.entityStart)):this.index=this.offset+this.buffer.length-1}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===o.Text||this.state===o.InSpecialTag&&0===this.sequenceIndex?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===o.InAttributeValueDq||this.state===o.InAttributeValueSq||this.state===o.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index=e||(this.state===o.InCommentLike?this.currentSequence===h.CdataEnd?this.cbs.oncdata(this.sectionStart,e,0):this.cbs.oncomment(this.sectionStart,e,0):this.state===o.InTagName||this.state===o.BeforeAttributeName||this.state===o.BeforeAttributeValue||this.state===o.AfterAttributeName||this.state===o.InAttributeName||this.state===o.InAttributeValueSq||this.state===o.InAttributeValueDq||this.state===o.InAttributeValueNq||this.state===o.InClosingTagName||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){this.baseState!==o.Text&&this.baseState!==o.InSpecialTag?(this.sectionStarti,iX:()=>n.i});var n=r(4645);r(8866),r(5645);var i=r(2743);r(4993)},6570:function(e,t,r){let n,i,a,s;r.d(t,{P2:()=>f});let o=(e,t)=>t.some(t=>e instanceof t),l=new WeakMap,c=new WeakMap,u=new WeakMap,d={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return l.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return h(e[t])},set:(e,t,r)=>(e[t]=r,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function h(e){if(e instanceof IDBRequest){let t;return t=new Promise((t,r)=>{let n=()=>{e.removeEventListener("success",i),e.removeEventListener("error",a)},i=()=>{t(h(e.result)),n()},a=()=>{r(e.error),n()};e.addEventListener("success",i),e.addEventListener("error",a)}),u.set(t,e),t}if(c.has(e))return c.get(e);let t=function(e){if("function"==typeof e)return(i||(i=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(p(this),t),h(this.request)}:function(...t){return h(e.apply(p(this),t))};return(e instanceof IDBTransaction&&function(e){if(l.has(e))return;let t=new Promise((t,r)=>{let n=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",a),e.removeEventListener("abort",a)},i=()=>{t(),n()},a=()=>{r(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",i),e.addEventListener("error",a),e.addEventListener("abort",a)});l.set(e,t)}(e),o(e,n||(n=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])))?new Proxy(e,d):e}(e);return t!==e&&(c.set(e,t),u.set(t,e)),t}let p=e=>u.get(e);function f(e,t,{blocked:r,upgrade:n,blocking:i,terminated:a}={}){let s=indexedDB.open(e,t),o=h(s);return n&&s.addEventListener("upgradeneeded",e=>{n(h(s.result),e.oldVersion,e.newVersion,h(s.transaction),e)}),r&&s.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{a&&e.addEventListener("close",()=>a()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}let g=["get","getKey","getAll","getAllKeys","count"],m=["put","add","delete","clear"],y=new Map;function b(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t))return;if(y.get(t))return y.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,i=m.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(i||g.includes(r)))return;let a=async function(e,...t){let a=this.transaction(e,i?"readwrite":"readonly"),s=a.store;return n&&(s=s.index(t.shift())),(await Promise.all([s[r](...t),i&&a.done]))[0]};return y.set(t,a),a}d={...a=d,get:(e,t,r)=>b(e,t)||a.get(e,t,r),has:(e,t)=>!!b(e,t)||a.has(e,t)};let w=["continue","continuePrimaryKey","advance"],S={},v=new WeakMap,x=new WeakMap,E={get(e,t){if(!w.includes(t))return e[t];let r=S[t];return r||(r=S[t]=function(...e){v.set(this,x.get(this)[t](...e))}),r}};async function*T(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;let r=new Proxy(t,E);for(x.set(r,t),u.set(r,p(t));t;)yield r,t=await (v.get(r)||t.continue()),v.delete(r)}function k(e,t){return t===Symbol.asyncIterator&&o(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&o(e,[IDBIndex,IDBObjectStore])}d={...s=d,get:(e,t,r)=>k(e,t)?T:s.get(e,t,r),has:(e,t)=>k(e,t)||s.has(e,t)}},1652:function(e,t,r){r.d(t,{N:()=>n});function n(){return"10000000000".replace(/[018]/g,e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16))}},3907:function(e,t,r){let n;r.d(t,{LW:()=>b,QR:()=>x});var i=r(1652);function a(e,t){try{return e.apply(this,t)}catch(r){let e,t=(e=n.__externref_table_alloc(),n.__wbindgen_export_2.set(e,r),e);n.__wbindgen_exn_store(t)}}let s="undefined"!=typeof TextDecoder?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};"undefined"!=typeof TextDecoder&&s.decode();let o=null;function l(){return(null===o||0===o.byteLength)&&(o=new Uint8Array(n.memory.buffer)),o}function c(e,t){return e>>>=0,s.decode(l().subarray(e,e+t))}let u=0,d="undefined"!=typeof TextEncoder?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},h="function"==typeof d.encodeInto?function(e,t){return d.encodeInto(e,t)}:function(e,t){let r=d.encode(e);return t.set(r),{read:e.length,written:r.length}};function p(e,t,r){if(void 0===r){let r=d.encode(e),n=t(r.length,1)>>>0;return l().subarray(n,n+r.length).set(r),u=r.length,n}let n=e.length,i=t(n,1)>>>0,a=l(),s=0;for(;s127)break;a[i+s]=t}if(s!==n){0!==s&&(e=e.slice(s)),i=r(i,n,n=s+3*e.length,1)>>>0;let t=h(e,l().subarray(i+s,i+n));s+=t.written,i=r(i,n,s,1)>>>0}return u=s,i}let f=null;function g(){return(null===f||!0===f.buffer.detached||void 0===f.buffer.detached&&f.buffer!==n.memory.buffer)&&(f=new DataView(n.memory.buffer)),f}function m(e){let t=n.__wbindgen_export_2.get(e);return n.__externref_table_dealloc(e),t}let y="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>n.__wbg_rewriter_free(e>>>0,1));class b{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,y.unregister(this),e}free(){let e=this.__destroy_into_raw();n.__wbg_rewriter_free(e,0)}rewrite_js(e,t,r,i){let a=p(e,n.__wbindgen_malloc,n.__wbindgen_realloc),s=u,o=p(t,n.__wbindgen_malloc,n.__wbindgen_realloc),l=u,c=p(r,n.__wbindgen_malloc,n.__wbindgen_realloc),d=u,h=n.rewriter_rewrite_js(this.__wbg_ptr,a,s,o,l,c,d,i);if(h[2])throw m(h[1]);return m(h[0])}rewrite_js_bytes(e,t,r,i){let a,s=(a=(0,n.__wbindgen_malloc)(+e.length,1)>>>0,l().set(e,a/1),u=e.length,a),o=u,c=p(t,n.__wbindgen_malloc,n.__wbindgen_realloc),d=u,h=p(r,n.__wbindgen_malloc,n.__wbindgen_realloc),f=u,g=n.rewriter_rewrite_js_bytes(this.__wbg_ptr,s,o,c,d,h,f,i);if(g[2])throw m(g[1]);return m(g[0])}constructor(e){const t=n.rewriter_new(e);if(t[2])throw m(t[1]);return this.__wbg_ptr=t[0]>>>0,y.register(this,this.__wbg_ptr,this),this}}async function w(e,t){if("function"==typeof Response&&e instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(e,t)}catch(t){if("application/wasm"!=e.headers.get("Content-Type"))console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",t);else throw t}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}{let r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}function S(){let e={};return e.wbg={},e.wbg.__wbg_buffer_609cc3eee51ed158=function(e){return e.buffer},e.wbg.__wbg_call_7cccdd69e0791ae2=function(){return a(function(e,t,r){return e.call(t,r)},arguments)},e.wbg.__wbg_call_833bed5770ea2041=function(){return a(function(e,t,r,n){return e.call(t,r,n)},arguments)},e.wbg.__wbg_get_67b2ba62fc30de12=function(){return a(function(e,t){return Reflect.get(e,t)},arguments)},e.wbg.__wbg_new_405e22f390576ce2=function(){return{}},e.wbg.__wbg_new_78feb108b6472713=function(){return[]},e.wbg.__wbg_new_9ffbe0a71eff35e3=function(){return a(function(e,t){return new URL(c(e,t))},arguments)},e.wbg.__wbg_new_a12002a7f91c75be=function(e){return new Uint8Array(e)},e.wbg.__wbg_newwithbase_161c299e7a34e2eb=function(){return a(function(e,t,r,n){return new URL(c(e,t),c(r,n))},arguments)},e.wbg.__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a=function(e,t,r){return new Uint8Array(e,t>>>0,r>>>0)},e.wbg.__wbg_scramtag_3a255d78b157986d=function(e){let t=p((0,i.N)(),n.__wbindgen_malloc,n.__wbindgen_realloc),r=u;g().setInt32(e+4,r,!0),g().setInt32(e+0,t,!0)},e.wbg.__wbg_set_bb8cecf6a62b9f46=function(){return a(function(e,t,r){return Reflect.set(e,t,r)},arguments)},e.wbg.__wbg_toString_5285597960676b7b=function(e){return e.toString()},e.wbg.__wbg_toString_c813bbd34d063839=function(e){return e.toString()},e.wbg.__wbindgen_boolean_get=function(e){return"boolean"==typeof e?+!!e:2},e.wbg.__wbindgen_error_new=function(e,t){return Error(c(e,t))},e.wbg.__wbindgen_init_externref_table=function(){let e=n.__wbindgen_export_2,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)},e.wbg.__wbindgen_is_function=function(e){return"function"==typeof e},e.wbg.__wbindgen_memory=function(){return n.memory},e.wbg.__wbindgen_string_get=function(e,t){let r="string"==typeof t?t:void 0;var i=null==r?0:p(r,n.__wbindgen_malloc,n.__wbindgen_realloc),a=u;g().setInt32(e+4,a,!0),g().setInt32(e+0,i,!0)},e.wbg.__wbindgen_string_new=function(e,t){return c(e,t)},e.wbg.__wbindgen_throw=function(e,t){throw Error(c(e,t))},e}function v(e,t){return n=e.exports,E.__wbindgen_wasm_module=t,f=null,o=null,n.__wbindgen_start(),n}function x(e){if(void 0!==n)return n;void 0!==e&&(Object.getPrototypeOf(e)===Object.prototype?{module:e}=e:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let t=S();return e instanceof WebAssembly.Module||(e=new WebAssembly.Module(e)),v(new WebAssembly.Instance(e,t),e)}async function E(e){if(void 0!==n)return n;void 0!==e&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),void 0===e&&(e=new URL("wasm_bg.wasm",""));let t=S();("string"==typeof e||"function"==typeof Request&&e instanceof Request||"function"==typeof URL&&e instanceof URL)&&(e=fetch(e));let{instance:r,module:i}=await w(await e,t);return v(r,i)}}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},globalThis.$scramjetRequire=function(e){return r(409)(e)},globalThis.$scramjetLoadController=function(){return r(9052)},globalThis.$scramjetLoadClient=function(){return r(1323)},globalThis.$scramjetLoadWorker=function(){return r(7510)},globalThis.$scramjetVersion={build:"6e85a22",version:"2.0.0-alpha"},"document"in globalThis&&document?.currentScript&&document.currentScript.remove()})(); -//# sourceMappingURL=scramjet.all.js.map \ No newline at end of file diff --git a/static/assets/languagearts/sj.sync.js b/static/assets/languagearts/sj.sync.js deleted file mode 100644 index 451d64340f..0000000000 --- a/static/assets/languagearts/sj.sync.js +++ /dev/null @@ -1,2 +0,0 @@ -addEventListener("message",({data:{sab:e,args:[t,n,s,r,o],body:a,headers:g}})=>{let i=new DataView(e),l=new Uint8Array(e),d=new XMLHttpRequest;if(d.responseType="arraybuffer",d.open(t,n,!0,r,o),g)for(let[e,t]of Object.entries(g))d.setRequestHeader(e,t);d.send(a),d.onload=()=>{let t=1;i.setUint16(t,d.status),t+=2;let n=d.getAllResponseHeaders();i.setUint32(t,n.length),t+=4,e.byteLength{console.error("xhr failed"),i.setUint8(0,1)}}); -//# sourceMappingURL=scramjet.sync.js.map \ No newline at end of file diff --git a/static/assets/languagearts/sj.wasm.wasm b/static/assets/languagearts/sj.wasm.wasm deleted file mode 100644 index 018a8a2e7f..0000000000 Binary files a/static/assets/languagearts/sj.wasm.wasm and /dev/null differ diff --git a/static/assets/mathematics/bundle.js b/static/assets/mathematics/bundle.js deleted file mode 100644 index 3d69a85936..0000000000 --- a/static/assets/mathematics/bundle.js +++ /dev/null @@ -1,8 +0,0 @@ -(()=>{var e=[,(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var i=n(2),r=n(3);class a extends i.default{constructor(e){super(),this.ctx=e,this.rewriteUrl=e.rewriteUrl,this.sourceUrl=e.sourceUrl}rewrite(e,t={}){return e?this.recast(e,e=>{e.tagName&&this.emit("element",e,"rewrite"),e.attr&&this.emit("attr",e,"rewrite"),"#text"===e.nodeName&&this.emit("text",e,"rewrite")},t):e}source(e,t={}){return e?this.recast(e,e=>{e.tagName&&this.emit("element",e,"source"),e.attr&&this.emit("attr",e,"source"),"#text"===e.nodeName&&this.emit("text",e,"source")},t):e}recast(e,t,n={}){try{let i=(n.document?r.parse:r.parseFragment)(new String(e).toString());return this.iterate(i,t,n),(0,r.serialize)(i)}catch(a){return e}}iterate(e,t,n){if(!e)return e;if(e.tagName){let i=new o(e,!1,n);if(t(i),e.attrs)for(let r of e.attrs)r.skip||t(new s(i,r,n))}if(e.childNodes)for(let a of e.childNodes)a.skip||this.iterate(a,t,n);return"#text"===e.nodeName&&t(new _(e,new o(e.parentNode),!1,n)),e}wrapSrcset(e,t=this.ctx.meta){return e.split(",").map(e=>{let n=e.trimStart().split(" ");return n[0]&&(n[0]=this.ctx.rewriteUrl(n[0],t)),n.join(" ")}).join(", ")}unwrapSrcset(e,t=this.ctx.meta){return e.split(",").map(e=>{let n=e.trimStart().split(" ");return n[0]&&(n[0]=this.ctx.sourceUrl(n[0],t)),n.join(" ")}).join(", ")}static parse=r.parse;static parseFragment=r.parseFragment;static serialize=r.serialize}class o extends i.default{constructor(e,t=!1,n={}){super(),this.stream=t,this.node=e,this.options=n}setAttribute(e,t){for(let n of this.attrs)if(n.name===e)return n.value=t,!0;this.attrs.push({name:e,value:t})}getAttribute(e){let t=this.attrs.find(t=>t.name===e)||{};return t.value}hasAttribute(e){return!!this.attrs.find(t=>t.name===e)}removeAttribute(e){let t=this.attrs.findIndex(t=>t.name===e);void 0!==t&&this.attrs.splice(t,1)}get tagName(){return this.node.tagName}set tagName(e){this.node.tagName=e}get childNodes(){return this.stream?null:this.node.childNodes}get innerHTML(){return this.stream?null:(0,r.serialize)({nodeName:"#document-fragment",childNodes:this.childNodes})}set innerHTML(e){this.stream||(this.node.childNodes=(0,r.parseFragment)(e).childNodes)}get outerHTML(){return this.stream?null:(0,r.serialize)({nodeName:"#document-fragment",childNodes:[this]})}set outerHTML(e){this.stream||this.parentNode.childNodes.splice(this.parentNode.childNodes.findIndex(e=>e===this.node),1,...(0,r.parseFragment)(e).childNodes)}get textContent(){if(this.stream)return null;let e="";return iterate(this.node,t=>{"#text"===t.nodeName&&(e+=t.value)}),e}set textContent(e){this.stream||(this.node.childNodes=[{nodeName:"#text",value:e,parentNode:this.node}])}get nodeName(){return this.node.nodeName}get parentNode(){return this.node.parentNode?new o(this.node.parentNode):null}get attrs(){return this.node.attrs}get namespaceURI(){return this.node.namespaceURI}}class s{constructor(e,t,n={}){this.attr=t,this.attrs=e.attrs,this.node=e,this.options=n}delete(){let e=this.attrs.findIndex(e=>e===this.attr);return this.attrs.splice(e,1),Object.defineProperty(this,"deleted",{get:()=>!0}),!0}get name(){return this.attr.name}set name(e){this.attr.name=e}get value(){return this.attr.value}set value(e){this.attr.value=e}get deleted(){return!1}}class _{constructor(e,t,n=!1,i={}){this.stream=n,this.node=e,this.element=t,this.options=i}get nodeName(){return this.node.nodeName}get parentNode(){return this.element}get value(){return this.stream?this.node.text:this.node.value}set value(e){this.stream?this.node.text=e:this.node.value=e}}let l=a},(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var i,r="object"==typeof Reflect?Reflect:null,a=r&&"function"==typeof r.apply?r.apply:function e(t,n,i){return Function.prototype.apply.call(t,n,i)};function o(e){console&&console.warn&&console.warn(e)}i=r&&"function"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function e(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function e(t){return Object.getOwnPropertyNames(t)};var s=Number.isNaN||function e(t){return t!=t};function _(){_.init.call(this)}let l=_;_.EventEmitter=_,_.prototype._events=void 0,_.prototype._eventsCount=0,_.prototype._maxListeners=void 0;var c=10;function u(e){if("function"!=typeof e)throw TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function p(e){return void 0===e._maxListeners?_.defaultMaxListeners:e._maxListeners}function $(e,t,n,i){if(u(n),void 0===(a=e._events)?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),s=a[t]),void 0===s)s=a[t]=n,++e._eventsCount;else if("function"==typeof s?s=a[t]=i?[n,s]:[s,n]:i?s.unshift(n):s.push(n),(r=p(e))>0&&s.length>r&&!s.warned){s.warned=!0;var r,a,s,_=Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");_.name="MaxListenersExceededWarning",_.emitter=e,_.type=t,_.count=s.length,o(_)}return e}function d(){if(!this.fired)return(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length)?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function m(e,t,n){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=d.bind(i);return r.listener=n,i.wrapFn=r,r}function h(e,t,n){var i=e._events;if(void 0===i)return[];var r=i[t];return void 0===r?[]:"function"==typeof r?n?[r.listener||r]:[r]:n?v(r):g(r,r.length)}function f(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function g(e,t){for(var n=Array(t),i=0;i0&&(s=n[0]),s instanceof Error)throw s;var s,_=Error("Unhandled error."+(s?" ("+s.message+")":""));throw _.context=s,_}var l=o[t];if(void 0===l)return!1;if("function"==typeof l)a(l,this,n);else for(var c=l.length,u=g(l,c),i=0;i=0;o--)if(i[o]===n||i[o].listener===n){s=i[o].listener,a=o;break}if(a<0)return this;0===a?i.shift():x(i,a),1===i.length&&(r[t]=i[0]),void 0!==r.removeListener&&this.emit("removeListener",t,s||n)}return this},_.prototype.off=_.prototype.removeListener,_.prototype.removeAllListeners=function e(t){var n,i,r;if(void 0===(i=this._events))return this;if(void 0===i.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==i[t]&&(0==--this._eventsCount?this._events=Object.create(null):delete i[t]),this;if(0===arguments.length){var a,o=Object.keys(i);for(r=0;r=0;r--)this.removeListener(t,n[r]);return this},_.prototype.listeners=function e(t){return h(this,t,!0)},_.prototype.rawListeners=function e(t){return h(this,t,!1)},_.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):f.call(e,t)},_.prototype.listenerCount=f,_.prototype.eventNames=function e(){return this._eventsCount>0?i(this._events):[]}},(e,t,n)=>{"use strict";let i=n(4),r=n(26);t.parse=function e(t,n){let r=new i(n);return r.parse(t)},t.parseFragment=function e(t,n,r){"string"==typeof t&&(r=n,n=t,t=null);let a=new i(r);return a.parseFragment(n,t)},t.serialize=function(e,t){let n=new r(e,t);return n.serialize()}},(e,t,n)=>{"use strict";let i=n(5),r=n(10),a=n(12),o=n(13),s=n(18),_=n(14),l=n(22),c=n(23),u=n(24),p=n(25),$=n(8),d=n(7),m=n(11),h=m.TAG_NAMES,f=m.NAMESPACES,g=m.ATTRS,x={scriptingEnabled:!0,sourceCodeLocationInfo:!1,onParseError:null,treeAdapter:l},v="hidden",b="INITIAL_MODE",k="BEFORE_HTML_MODE",T="BEFORE_HEAD_MODE",E="IN_HEAD_MODE",y="IN_HEAD_NO_SCRIPT_MODE",A="AFTER_HEAD_MODE",C="IN_BODY_MODE",w="TEXT_MODE",S="IN_TABLE_MODE",N="IN_TABLE_TEXT_MODE",D="IN_CAPTION_MODE",P="IN_COLUMN_GROUP_MODE",O="IN_TABLE_BODY_MODE",L="IN_ROW_MODE",I="IN_CELL_MODE",R="IN_SELECT_MODE",M="IN_SELECT_IN_TABLE_MODE",F="IN_TEMPLATE_MODE",B="AFTER_BODY_MODE",H="IN_FRAMESET_MODE",j="AFTER_FRAMESET_MODE",U="AFTER_AFTER_BODY_MODE",z="AFTER_AFTER_FRAMESET_MODE",q={[h.TR]:L,[h.TBODY]:O,[h.THEAD]:O,[h.TFOOT]:O,[h.CAPTION]:D,[h.COLGROUP]:P,[h.TABLE]:S,[h.BODY]:C,[h.FRAMESET]:H},G={[h.CAPTION]:S,[h.COLGROUP]:S,[h.TBODY]:S,[h.TFOOT]:S,[h.THEAD]:S,[h.COL]:P,[h.TR]:O,[h.TD]:L,[h.TH]:L},K={[b]:{[i.CHARACTER_TOKEN]:el,[i.NULL_CHARACTER_TOKEN]:el,[i.WHITESPACE_CHARACTER_TOKEN]:et,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:e_,[i.START_TAG_TOKEN]:el,[i.END_TAG_TOKEN]:el,[i.EOF_TOKEN]:el},[k]:{[i.CHARACTER_TOKEN]:ep,[i.NULL_CHARACTER_TOKEN]:ep,[i.WHITESPACE_CHARACTER_TOKEN]:et,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:ec,[i.END_TAG_TOKEN]:eu,[i.EOF_TOKEN]:ep},[T]:{[i.CHARACTER_TOKEN]:e0,[i.NULL_CHARACTER_TOKEN]:e0,[i.WHITESPACE_CHARACTER_TOKEN]:et,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:en,[i.START_TAG_TOKEN]:e$,[i.END_TAG_TOKEN]:ed,[i.EOF_TOKEN]:e0},[E]:{[i.CHARACTER_TOKEN]:e7,[i.NULL_CHARACTER_TOKEN]:e7,[i.WHITESPACE_CHARACTER_TOKEN]:eo,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:en,[i.START_TAG_TOKEN]:em,[i.END_TAG_TOKEN]:eh,[i.EOF_TOKEN]:e7},[y]:{[i.CHARACTER_TOKEN]:e2,[i.NULL_CHARACTER_TOKEN]:e2,[i.WHITESPACE_CHARACTER_TOKEN]:eo,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:en,[i.START_TAG_TOKEN]:e3,[i.END_TAG_TOKEN]:ef,[i.EOF_TOKEN]:e2},[A]:{[i.CHARACTER_TOKEN]:e1,[i.NULL_CHARACTER_TOKEN]:e1,[i.WHITESPACE_CHARACTER_TOKEN]:eo,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:en,[i.START_TAG_TOKEN]:e6,[i.END_TAG_TOKEN]:eg,[i.EOF_TOKEN]:e1},[C]:{[i.CHARACTER_TOKEN]:e5,[i.NULL_CHARACTER_TOKEN]:et,[i.WHITESPACE_CHARACTER_TOKEN]:e4,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:eQ,[i.END_TAG_TOKEN]:ts,[i.EOF_TOKEN]:t_},[w]:{[i.CHARACTER_TOKEN]:eo,[i.NULL_CHARACTER_TOKEN]:eo,[i.WHITESPACE_CHARACTER_TOKEN]:eo,[i.COMMENT_TOKEN]:et,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:et,[i.END_TAG_TOKEN]:tl,[i.EOF_TOKEN]:tc},[S]:{[i.CHARACTER_TOKEN]:tu,[i.NULL_CHARACTER_TOKEN]:tu,[i.WHITESPACE_CHARACTER_TOKEN]:tu,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:tf,[i.END_TAG_TOKEN]:t2,[i.EOF_TOKEN]:t_},[N]:{[i.CHARACTER_TOKEN]:t1,[i.NULL_CHARACTER_TOKEN]:et,[i.WHITESPACE_CHARACTER_TOKEN]:tg,[i.COMMENT_TOKEN]:t4,[i.DOCTYPE_TOKEN]:t4,[i.START_TAG_TOKEN]:t4,[i.END_TAG_TOKEN]:t4,[i.EOF_TOKEN]:t4},[D]:{[i.CHARACTER_TOKEN]:e5,[i.NULL_CHARACTER_TOKEN]:et,[i.WHITESPACE_CHARACTER_TOKEN]:e4,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:t5,[i.END_TAG_TOKEN]:tx,[i.EOF_TOKEN]:t_},[P]:{[i.CHARACTER_TOKEN]:tk,[i.NULL_CHARACTER_TOKEN]:tk,[i.WHITESPACE_CHARACTER_TOKEN]:eo,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:tv,[i.END_TAG_TOKEN]:tb,[i.EOF_TOKEN]:t_},[O]:{[i.CHARACTER_TOKEN]:tu,[i.NULL_CHARACTER_TOKEN]:tu,[i.WHITESPACE_CHARACTER_TOKEN]:tu,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:tT,[i.END_TAG_TOKEN]:tE,[i.EOF_TOKEN]:t_},[L]:{[i.CHARACTER_TOKEN]:tu,[i.NULL_CHARACTER_TOKEN]:tu,[i.WHITESPACE_CHARACTER_TOKEN]:tu,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:ty,[i.END_TAG_TOKEN]:tA,[i.EOF_TOKEN]:t_},[I]:{[i.CHARACTER_TOKEN]:e5,[i.NULL_CHARACTER_TOKEN]:et,[i.WHITESPACE_CHARACTER_TOKEN]:e4,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:tC,[i.END_TAG_TOKEN]:tw,[i.EOF_TOKEN]:t_},[R]:{[i.CHARACTER_TOKEN]:eo,[i.NULL_CHARACTER_TOKEN]:et,[i.WHITESPACE_CHARACTER_TOKEN]:eo,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:tS,[i.END_TAG_TOKEN]:t8,[i.EOF_TOKEN]:t_},[M]:{[i.CHARACTER_TOKEN]:eo,[i.NULL_CHARACTER_TOKEN]:et,[i.WHITESPACE_CHARACTER_TOKEN]:eo,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:tN,[i.END_TAG_TOKEN]:tD,[i.EOF_TOKEN]:t_},[F]:{[i.CHARACTER_TOKEN]:e5,[i.NULL_CHARACTER_TOKEN]:et,[i.WHITESPACE_CHARACTER_TOKEN]:e4,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:tP,[i.END_TAG_TOKEN]:tO,[i.EOF_TOKEN]:tL},[B]:{[i.CHARACTER_TOKEN]:tM,[i.NULL_CHARACTER_TOKEN]:tM,[i.WHITESPACE_CHARACTER_TOKEN]:e4,[i.COMMENT_TOKEN]:er,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:tI,[i.END_TAG_TOKEN]:tR,[i.EOF_TOKEN]:es},[H]:{[i.CHARACTER_TOKEN]:et,[i.NULL_CHARACTER_TOKEN]:et,[i.WHITESPACE_CHARACTER_TOKEN]:eo,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:tF,[i.END_TAG_TOKEN]:tB,[i.EOF_TOKEN]:es},[j]:{[i.CHARACTER_TOKEN]:et,[i.NULL_CHARACTER_TOKEN]:et,[i.WHITESPACE_CHARACTER_TOKEN]:eo,[i.COMMENT_TOKEN]:ei,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:tH,[i.END_TAG_TOKEN]:tj,[i.EOF_TOKEN]:es},[U]:{[i.CHARACTER_TOKEN]:tz,[i.NULL_CHARACTER_TOKEN]:tz,[i.WHITESPACE_CHARACTER_TOKEN]:e4,[i.COMMENT_TOKEN]:ea,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:tU,[i.END_TAG_TOKEN]:tz,[i.EOF_TOKEN]:es},[z]:{[i.CHARACTER_TOKEN]:et,[i.NULL_CHARACTER_TOKEN]:et,[i.WHITESPACE_CHARACTER_TOKEN]:e4,[i.COMMENT_TOKEN]:ea,[i.DOCTYPE_TOKEN]:et,[i.START_TAG_TOKEN]:tq,[i.END_TAG_TOKEN]:et,[i.EOF_TOKEN]:es}};class V{constructor(e){this.options=c(x,e),this.treeAdapter=this.options.treeAdapter,this.pendingScript=null,this.options.sourceCodeLocationInfo&&_.install(this,o),this.options.onParseError&&_.install(this,s,{onParseError:this.options.onParseError})}parse(e){let t=this.treeAdapter.createDocument();return this._bootstrap(t,null),this.tokenizer.write(e,!0),this._runParsingLoop(null),t}parseFragment(e,t){t||(t=this.treeAdapter.createElement(h.TEMPLATE,f.HTML,[]));let n=this.treeAdapter.createElement("documentmock",f.HTML,[]);this._bootstrap(n,t),this.treeAdapter.getTagName(t)===h.TEMPLATE&&this._pushTmplInsertionMode(F),this._initTokenizerForFragmentParsing(),this._insertFakeRootElement(),this._resetInsertionMode(),this._findFormInFragmentContext(),this.tokenizer.write(e,!0),this._runParsingLoop(null);let i=this.treeAdapter.getFirstChild(n),r=this.treeAdapter.createDocumentFragment();return this._adoptNodes(i,r),r}_bootstrap(e,t){this.tokenizer=new i(this.options),this.stopped=!1,this.insertionMode=b,this.originalInsertionMode="",this.document=e,this.fragmentContext=t,this.headElement=null,this.formElement=null,this.openElements=new r(this.document,this.treeAdapter),this.activeFormattingElements=new a(this.treeAdapter),this.tmplInsertionModeStack=[],this.tmplInsertionModeStackTop=-1,this.currentTmplInsertionMode=null,this.pendingCharacterTokens=[],this.hasNonWhitespacePendingCharacterToken=!1,this.framesetOk=!0,this.skipNextNewLine=!1,this.fosterParentingEnabled=!1}_err(){}_runParsingLoop(e){for(;!this.stopped;){this._setupTokenizerCDATAMode();let t=this.tokenizer.getNextToken();if(t.type===i.HIBERNATION_TOKEN)break;if(this.skipNextNewLine&&(this.skipNextNewLine=!1,t.type===i.WHITESPACE_CHARACTER_TOKEN&&"\n"===t.chars[0])){if(1===t.chars.length)continue;t.chars=t.chars.substr(1)}if(this._processInputToken(t),e&&this.pendingScript)break}}runParsingLoopForCurrentChunk(e,t){if(this._runParsingLoop(t),t&&this.pendingScript){let n=this.pendingScript;this.pendingScript=null,t(n);return}e&&e()}_setupTokenizerCDATAMode(){let e=this._getAdjustedCurrentElement();this.tokenizer.allowCDATA=e&&e!==this.document&&this.treeAdapter.getNamespaceURI(e)!==f.HTML&&!this._isIntegrationPoint(e)}_switchToTextParsing(e,t){this._insertElement(e,f.HTML),this.tokenizer.state=t,this.originalInsertionMode=this.insertionMode,this.insertionMode=w}switchToPlaintextParsing(){this.insertionMode=w,this.originalInsertionMode=C,this.tokenizer.state=i.MODE.PLAINTEXT}_getAdjustedCurrentElement(){return 0===this.openElements.stackTop&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let e=this.fragmentContext;do{if(this.treeAdapter.getTagName(e)===h.FORM){this.formElement=e;break}e=this.treeAdapter.getParentNode(e)}while(e)}_initTokenizerForFragmentParsing(){if(this.treeAdapter.getNamespaceURI(this.fragmentContext)===f.HTML){let e=this.treeAdapter.getTagName(this.fragmentContext);e===h.TITLE||e===h.TEXTAREA?this.tokenizer.state=i.MODE.RCDATA:e===h.STYLE||e===h.XMP||e===h.IFRAME||e===h.NOEMBED||e===h.NOFRAMES||e===h.NOSCRIPT?this.tokenizer.state=i.MODE.RAWTEXT:e===h.SCRIPT?this.tokenizer.state=i.MODE.SCRIPT_DATA:e===h.PLAINTEXT&&(this.tokenizer.state=i.MODE.PLAINTEXT)}}_setDocumentType(e){let t=e.name||"",n=e.publicId||"",i=e.systemId||"";this.treeAdapter.setDocumentType(this.document,t,n,i)}_attachElementToTree(e){if(this._shouldFosterParentOnInsertion())this._fosterParentElement(e);else{let t=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.appendChild(t,e)}}_appendElement(e,t){let n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n)}_insertElement(e,t){let n=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(n),this.openElements.push(n)}_insertFakeElement(e){let t=this.treeAdapter.createElement(e,f.HTML,[]);this._attachElementToTree(t),this.openElements.push(t)}_insertTemplate(e){let t=this.treeAdapter.createElement(e.tagName,f.HTML,e.attrs),n=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(t,n),this._attachElementToTree(t),this.openElements.push(t)}_insertFakeRootElement(){let e=this.treeAdapter.createElement(h.HTML,f.HTML,[]);this.treeAdapter.appendChild(this.openElements.current,e),this.openElements.push(e)}_appendCommentNode(e,t){let n=this.treeAdapter.createCommentNode(e.data);this.treeAdapter.appendChild(t,n)}_insertCharacters(e){if(this._shouldFosterParentOnInsertion())this._fosterParentText(e.chars);else{let t=this.openElements.currentTmplContent||this.openElements.current;this.treeAdapter.insertText(t,e.chars)}}_adoptNodes(e,t){for(let n=this.treeAdapter.getFirstChild(e);n;n=this.treeAdapter.getFirstChild(e))this.treeAdapter.detachNode(n),this.treeAdapter.appendChild(t,n)}_shouldProcessTokenInForeignContent(e){let t=this._getAdjustedCurrentElement();if(!t||t===this.document)return!1;let n=this.treeAdapter.getNamespaceURI(t);if(n===f.HTML||this.treeAdapter.getTagName(t)===h.ANNOTATION_XML&&n===f.MATHML&&e.type===i.START_TAG_TOKEN&&e.tagName===h.SVG)return!1;let r=e.type===i.CHARACTER_TOKEN||e.type===i.NULL_CHARACTER_TOKEN||e.type===i.WHITESPACE_CHARACTER_TOKEN,a=e.type===i.START_TAG_TOKEN&&e.tagName!==h.MGLYPH&&e.tagName!==h.MALIGNMARK;return!((a||r)&&this._isIntegrationPoint(t,f.MATHML)||(e.type===i.START_TAG_TOKEN||r)&&this._isIntegrationPoint(t,f.HTML))&&e.type!==i.EOF_TOKEN}_processToken(e){K[this.insertionMode][e.type](this,e)}_processTokenInBodyMode(e){K[C][e.type](this,e)}_processTokenInForeignContent(e){e.type===i.CHARACTER_TOKEN?tK(this,e):e.type===i.NULL_CHARACTER_TOKEN?tG(this,e):e.type===i.WHITESPACE_CHARACTER_TOKEN?eo(this,e):e.type===i.COMMENT_TOKEN?ei(this,e):e.type===i.START_TAG_TOKEN?tV(this,e):e.type===i.END_TAG_TOKEN&&tW(this,e)}_processInputToken(e){this._shouldProcessTokenInForeignContent(e)?this._processTokenInForeignContent(e):this._processToken(e),e.type===i.START_TAG_TOKEN&&e.selfClosing&&!e.ackSelfClosing&&this._err($.nonVoidHtmlElementStartTagWithTrailingSolidus)}_isIntegrationPoint(e,t){let n=this.treeAdapter.getTagName(e),i=this.treeAdapter.getNamespaceURI(e),r=this.treeAdapter.getAttrList(e);return p.isIntegrationPoint(n,i,r,t)}_reconstructActiveFormattingElements(){let e=this.activeFormattingElements.length;if(e){let t=e,n=null;do if(t--,(n=this.activeFormattingElements.entries[t]).type===a.MARKER_ENTRY||this.openElements.contains(n.element)){t++;break}while(t>0);for(let i=t;i=0;e--){let n=this.openElements.items[e];0===e&&(t=!0,this.fragmentContext&&(n=this.fragmentContext));let i=this.treeAdapter.getTagName(n),r=q[i];if(r){this.insertionMode=r;break}if(t||i!==h.TD&&i!==h.TH){if(t||i!==h.HEAD){if(i===h.SELECT){this._resetInsertionModeForSelect(e);break}if(i===h.TEMPLATE){this.insertionMode=this.currentTmplInsertionMode;break}else if(i===h.HTML){this.insertionMode=this.headElement?A:T;break}else if(t){this.insertionMode=C;break}}else{this.insertionMode=E;break}}else{this.insertionMode=I;break}}}_resetInsertionModeForSelect(e){if(e>0)for(let t=e-1;t>0;t--){let n=this.openElements.items[t],i=this.treeAdapter.getTagName(n);if(i===h.TEMPLATE)break;if(i===h.TABLE){this.insertionMode=M;return}}this.insertionMode=R}_pushTmplInsertionMode(e){this.tmplInsertionModeStack.push(e),this.tmplInsertionModeStackTop++,this.currentTmplInsertionMode=e}_popTmplInsertionMode(){this.tmplInsertionModeStack.pop(),this.tmplInsertionModeStackTop--,this.currentTmplInsertionMode=this.tmplInsertionModeStack[this.tmplInsertionModeStackTop]}_isElementCausesFosterParenting(e){let t=this.treeAdapter.getTagName(e);return t===h.TABLE||t===h.TBODY||t===h.TFOOT||t===h.THEAD||t===h.TR}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&this._isElementCausesFosterParenting(this.openElements.current)}_findFosterParentingLocation(){let e={parent:null,beforeElement:null};for(let t=this.openElements.stackTop;t>=0;t--){let n=this.openElements.items[t],i=this.treeAdapter.getTagName(n),r=this.treeAdapter.getNamespaceURI(n);if(i===h.TEMPLATE&&r===f.HTML){e.parent=this.treeAdapter.getTemplateContent(n);break}if(i===h.TABLE){e.parent=this.treeAdapter.getParentNode(n),e.parent?e.beforeElement=n:e.parent=this.openElements.items[t-1];break}}return e.parent||(e.parent=this.openElements.items[0]),e}_fosterParentElement(e){let t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertBefore(t.parent,e,t.beforeElement):this.treeAdapter.appendChild(t.parent,e)}_fosterParentText(e){let t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertTextBefore(t.parent,e,t.beforeElement):this.treeAdapter.insertText(t.parent,e)}_isSpecialElement(e){let t=this.treeAdapter.getTagName(e),n=this.treeAdapter.getNamespaceURI(e);return m.SPECIAL_ELEMENTS[n][t]}}function W(e,t){let n=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return n?e.openElements.contains(n.element)?e.openElements.hasInScope(t.tagName)||(n=null):(e.activeFormattingElements.removeEntry(n),n=null):to(e,t),n}function Y(e,t){let n=null;for(let i=e.openElements.stackTop;i>=0;i--){let r=e.openElements.items[i];if(r===t.element)break;e._isSpecialElement(r)&&(n=r)}return n||(e.openElements.popUntilElementPopped(t.element),e.activeFormattingElements.removeEntry(t)),n}function Q(e,t,n){let i=t,r=e.openElements.getCommonAncestor(t);for(let a=0,o=r;o!==n;a++,o=r){r=e.openElements.getCommonAncestor(o);let s=e.activeFormattingElements.getElementEntry(o),_=s&&a>=3,l=!s||_;l?(_&&e.activeFormattingElements.removeEntry(s),e.openElements.remove(o)):(o=X(e,s),i===t&&(e.activeFormattingElements.bookmark=s),e.treeAdapter.detachNode(i),e.treeAdapter.appendChild(o,i),i=o)}return i}function X(e,t){let n=e.treeAdapter.getNamespaceURI(t.element),i=e.treeAdapter.createElement(t.token.tagName,n,t.token.attrs);return e.openElements.replace(t.element,i),t.element=i,i}function J(e,t,n){if(e._isElementCausesFosterParenting(t))e._fosterParentElement(n);else{let i=e.treeAdapter.getTagName(t),r=e.treeAdapter.getNamespaceURI(t);i===h.TEMPLATE&&r===f.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,n)}}function Z(e,t,n){let i=e.treeAdapter.getNamespaceURI(n.element),r=n.token,a=e.treeAdapter.createElement(r.tagName,i,r.attrs);e._adoptNodes(t,a),e.treeAdapter.appendChild(t,a),e.activeFormattingElements.insertElementAfterBookmark(a,n.token),e.activeFormattingElements.removeEntry(n),e.openElements.remove(n.element),e.openElements.insertAfter(t,a)}function ee(e,t){let n;for(let i=0;i<8&&(n=W(e,t,n));i++){let r=Y(e,n);if(!r)break;e.activeFormattingElements.bookmark=n;let a=Q(e,r,n.element),o=e.openElements.getCommonAncestor(n.element);e.treeAdapter.detachNode(a),J(e,o,a),Z(e,r,n)}}function et(){}function en(e){e._err($.misplacedDoctype)}function ei(e,t){e._appendCommentNode(t,e.openElements.currentTmplContent||e.openElements.current)}function er(e,t){e._appendCommentNode(t,e.openElements.items[0])}function ea(e,t){e._appendCommentNode(t,e.document)}function eo(e,t){e._insertCharacters(t)}function es(e){e.stopped=!0}function e_(e,t){e._setDocumentType(t);let n=t.forceQuirks?m.DOCUMENT_MODE.QUIRKS:u.getDocumentMode(t);u.isConforming(t)||e._err($.nonConformingDoctype),e.treeAdapter.setDocumentMode(e.document,n),e.insertionMode=k}function el(e,t){e._err($.missingDoctype,{beforeToken:!0}),e.treeAdapter.setDocumentMode(e.document,m.DOCUMENT_MODE.QUIRKS),e.insertionMode=k,e._processToken(t)}function ec(e,t){t.tagName===h.HTML?(e._insertElement(t,f.HTML),e.insertionMode=T):ep(e,t)}function eu(e,t){let n=t.tagName;(n===h.HTML||n===h.HEAD||n===h.BODY||n===h.BR)&&ep(e,t)}function ep(e,t){e._insertFakeRootElement(),e.insertionMode=T,e._processToken(t)}function e$(e,t){let n=t.tagName;n===h.HTML?eQ(e,t):n===h.HEAD?(e._insertElement(t,f.HTML),e.headElement=e.openElements.current,e.insertionMode=E):e0(e,t)}function ed(e,t){let n=t.tagName;n===h.HEAD||n===h.BODY||n===h.HTML||n===h.BR?e0(e,t):e._err($.endTagWithoutMatchingOpenElement)}function e0(e,t){e._insertFakeElement(h.HEAD),e.headElement=e.openElements.current,e.insertionMode=E,e._processToken(t)}function em(e,t){let n=t.tagName;n===h.HTML?eQ(e,t):n===h.BASE||n===h.BASEFONT||n===h.BGSOUND||n===h.LINK||n===h.META?(e._appendElement(t,f.HTML),t.ackSelfClosing=!0):n===h.TITLE?e._switchToTextParsing(t,i.MODE.RCDATA):n===h.NOSCRIPT?e.options.scriptingEnabled?e._switchToTextParsing(t,i.MODE.RAWTEXT):(e._insertElement(t,f.HTML),e.insertionMode=y):n===h.NOFRAMES||n===h.STYLE?e._switchToTextParsing(t,i.MODE.RAWTEXT):n===h.SCRIPT?e._switchToTextParsing(t,i.MODE.SCRIPT_DATA):n===h.TEMPLATE?(e._insertTemplate(t,f.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=F,e._pushTmplInsertionMode(F)):n===h.HEAD?e._err($.misplacedStartTagForHeadElement):e7(e,t)}function eh(e,t){let n=t.tagName;n===h.HEAD?(e.openElements.pop(),e.insertionMode=A):n===h.BODY||n===h.BR||n===h.HTML?e7(e,t):n===h.TEMPLATE&&e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagName!==h.TEMPLATE&&e._err($.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(h.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode()):e._err($.endTagWithoutMatchingOpenElement)}function e7(e,t){e.openElements.pop(),e.insertionMode=A,e._processToken(t)}function e3(e,t){let n=t.tagName;n===h.HTML?eQ(e,t):n===h.BASEFONT||n===h.BGSOUND||n===h.HEAD||n===h.LINK||n===h.META||n===h.NOFRAMES||n===h.STYLE?em(e,t):n===h.NOSCRIPT?e._err($.nestedNoscriptInHead):e2(e,t)}function ef(e,t){let n=t.tagName;n===h.NOSCRIPT?(e.openElements.pop(),e.insertionMode=E):n===h.BR?e2(e,t):e._err($.endTagWithoutMatchingOpenElement)}function e2(e,t){let n=t.type===i.EOF_TOKEN?$.openElementsLeftAfterEof:$.disallowedContentInNoscriptInHead;e._err(n),e.openElements.pop(),e.insertionMode=E,e._processToken(t)}function e6(e,t){let n=t.tagName;n===h.HTML?eQ(e,t):n===h.BODY?(e._insertElement(t,f.HTML),e.framesetOk=!1,e.insertionMode=C):n===h.FRAMESET?(e._insertElement(t,f.HTML),e.insertionMode=H):n===h.BASE||n===h.BASEFONT||n===h.BGSOUND||n===h.LINK||n===h.META||n===h.NOFRAMES||n===h.SCRIPT||n===h.STYLE||n===h.TEMPLATE||n===h.TITLE?(e._err($.abandonedHeadElementChild),e.openElements.push(e.headElement),em(e,t),e.openElements.remove(e.headElement)):n===h.HEAD?e._err($.misplacedStartTagForHeadElement):e1(e,t)}function eg(e,t){let n=t.tagName;n===h.BODY||n===h.HTML||n===h.BR?e1(e,t):n===h.TEMPLATE?eh(e,t):e._err($.endTagWithoutMatchingOpenElement)}function e1(e,t){e._insertFakeElement(h.BODY),e.insertionMode=C,e._processToken(t)}function e4(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t)}function e5(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1}function ex(e,t){0===e.openElements.tmplCount&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs)}function ev(e,t){let n=e.openElements.tryPeekProperlyNestedBodyElement();n&&0===e.openElements.tmplCount&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(n,t.attrs))}function eb(e,t){let n=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&n&&(e.treeAdapter.detachNode(n),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,f.HTML),e.insertionMode=H)}function ek(e,t){e.openElements.hasInButtonScope(h.P)&&e._closePElement(),e._insertElement(t,f.HTML)}function eT(e,t){e.openElements.hasInButtonScope(h.P)&&e._closePElement();let n=e.openElements.currentTagName;(n===h.H1||n===h.H2||n===h.H3||n===h.H4||n===h.H5||n===h.H6)&&e.openElements.pop(),e._insertElement(t,f.HTML)}function eE(e,t){e.openElements.hasInButtonScope(h.P)&&e._closePElement(),e._insertElement(t,f.HTML),e.skipNextNewLine=!0,e.framesetOk=!1}function ey(e,t){let n=e.openElements.tmplCount>0;e.formElement&&!n||(e.openElements.hasInButtonScope(h.P)&&e._closePElement(),e._insertElement(t,f.HTML),n||(e.formElement=e.openElements.current))}function eA(e,t){e.framesetOk=!1;let n=t.tagName;for(let i=e.openElements.stackTop;i>=0;i--){let r=e.openElements.items[i],a=e.treeAdapter.getTagName(r),o=null;if(n===h.LI&&a===h.LI?o=h.LI:(n===h.DD||n===h.DT)&&(a===h.DD||a===h.DT)&&(o=a),o){e.openElements.generateImpliedEndTagsWithExclusion(o),e.openElements.popUntilTagNamePopped(o);break}if(a!==h.ADDRESS&&a!==h.DIV&&a!==h.P&&e._isSpecialElement(r))break}e.openElements.hasInButtonScope(h.P)&&e._closePElement(),e._insertElement(t,f.HTML)}function eC(e,t){e.openElements.hasInButtonScope(h.P)&&e._closePElement(),e._insertElement(t,f.HTML),e.tokenizer.state=i.MODE.PLAINTEXT}function ew(e,t){e.openElements.hasInScope(h.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(h.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(t,f.HTML),e.framesetOk=!1}function eS(e,t){let n=e.activeFormattingElements.getElementEntryInScopeWithTagName(h.A);n&&(ee(e,t),e.openElements.remove(n.element),e.activeFormattingElements.removeEntry(n)),e._reconstructActiveFormattingElements(),e._insertElement(t,f.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function e8(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,f.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function eN(e,t){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(h.NOBR)&&(ee(e,t),e._reconstructActiveFormattingElements()),e._insertElement(t,f.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t)}function eD(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,f.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1}function eP(e,t){e.treeAdapter.getDocumentMode(e.document)!==m.DOCUMENT_MODE.QUIRKS&&e.openElements.hasInButtonScope(h.P)&&e._closePElement(),e._insertElement(t,f.HTML),e.framesetOk=!1,e.insertionMode=S}function eO(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,f.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function eL(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,f.HTML);let n=i.getTokenAttr(t,g.TYPE);n&&n.toLowerCase()===v||(e.framesetOk=!1),t.ackSelfClosing=!0}function eI(e,t){e._appendElement(t,f.HTML),t.ackSelfClosing=!0}function eR(e,t){e.openElements.hasInButtonScope(h.P)&&e._closePElement(),e._appendElement(t,f.HTML),e.framesetOk=!1,t.ackSelfClosing=!0}function eM(e,t){t.tagName=h.IMG,eO(e,t)}function eF(e,t){e._insertElement(t,f.HTML),e.skipNextNewLine=!0,e.tokenizer.state=i.MODE.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=w}function eB(e,t){e.openElements.hasInButtonScope(h.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(t,i.MODE.RAWTEXT)}function eH(e,t){e.framesetOk=!1,e._switchToTextParsing(t,i.MODE.RAWTEXT)}function ej(e,t){e._switchToTextParsing(t,i.MODE.RAWTEXT)}function eU(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,f.HTML),e.framesetOk=!1,e.insertionMode===S||e.insertionMode===D||e.insertionMode===O||e.insertionMode===L||e.insertionMode===I?e.insertionMode=M:e.insertionMode=R}function ez(e,t){e.openElements.currentTagName===h.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(t,f.HTML)}function eq(e,t){e.openElements.hasInScope(h.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(t,f.HTML)}function eG(e,t){e.openElements.hasInScope(h.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(h.RTC),e._insertElement(t,f.HTML)}function eK(e,t){e.openElements.hasInButtonScope(h.P)&&e._closePElement(),e._insertElement(t,f.HTML)}function eV(e,t){e._reconstructActiveFormattingElements(),p.adjustTokenMathMLAttrs(t),p.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,f.MATHML):e._insertElement(t,f.MATHML),t.ackSelfClosing=!0}function eW(e,t){e._reconstructActiveFormattingElements(),p.adjustTokenSVGAttrs(t),p.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,f.SVG):e._insertElement(t,f.SVG),t.ackSelfClosing=!0}function eY(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,f.HTML)}function eQ(e,t){let n=t.tagName;switch(n.length){case 1:n===h.I||n===h.S||n===h.B||n===h.U?e8(e,t):n===h.P?ek(e,t):n===h.A?eS(e,t):eY(e,t);break;case 2:n===h.DL||n===h.OL||n===h.UL?ek(e,t):n===h.H1||n===h.H2||n===h.H3||n===h.H4||n===h.H5||n===h.H6?eT(e,t):n===h.LI||n===h.DD||n===h.DT?eA(e,t):n===h.EM||n===h.TT?e8(e,t):n===h.BR?eO(e,t):n===h.HR?eR(e,t):n===h.RB?eq(e,t):n===h.RT||n===h.RP?eG(e,t):n!==h.TH&&n!==h.TD&&n!==h.TR&&eY(e,t);break;case 3:n===h.DIV||n===h.DIR||n===h.NAV?ek(e,t):n===h.PRE?eE(e,t):n===h.BIG?e8(e,t):n===h.IMG||n===h.WBR?eO(e,t):n===h.XMP?eB(e,t):n===h.SVG?eW(e,t):n===h.RTC?eq(e,t):n!==h.COL&&eY(e,t);break;case 4:n===h.HTML?ex(e,t):n===h.BASE||n===h.LINK||n===h.META?em(e,t):n===h.BODY?ev(e,t):n===h.MAIN||n===h.MENU?ek(e,t):n===h.FORM?ey(e,t):n===h.CODE||n===h.FONT?e8(e,t):n===h.NOBR?eN(e,t):n===h.AREA?eO(e,t):n===h.MATH?eV(e,t):n===h.MENU?eK(e,t):n!==h.HEAD&&eY(e,t);break;case 5:n===h.STYLE||n===h.TITLE?em(e,t):n===h.ASIDE?ek(e,t):n===h.SMALL?e8(e,t):n===h.TABLE?eP(e,t):n===h.EMBED?eO(e,t):n===h.INPUT?eL(e,t):n===h.PARAM||n===h.TRACK?eI(e,t):n===h.IMAGE?eM(e,t):n!==h.FRAME&&n!==h.TBODY&&n!==h.TFOOT&&n!==h.THEAD&&eY(e,t);break;case 6:n===h.SCRIPT?em(e,t):n===h.CENTER||n===h.FIGURE||n===h.FOOTER||n===h.HEADER||n===h.HGROUP||n===h.DIALOG?ek(e,t):n===h.BUTTON?ew(e,t):n===h.STRIKE||n===h.STRONG?e8(e,t):n===h.APPLET||n===h.OBJECT?eD(e,t):n===h.KEYGEN?eO(e,t):n===h.SOURCE?eI(e,t):n===h.IFRAME?eH(e,t):n===h.SELECT?eU(e,t):n===h.OPTION?ez(e,t):eY(e,t);break;case 7:n===h.BGSOUND?em(e,t):n===h.DETAILS||n===h.ADDRESS||n===h.ARTICLE||n===h.SECTION||n===h.SUMMARY?ek(e,t):n===h.LISTING?eE(e,t):n===h.MARQUEE?eD(e,t):n===h.NOEMBED?ej(e,t):n!==h.CAPTION&&eY(e,t);break;case 8:n===h.BASEFONT?em(e,t):n===h.FRAMESET?eb(e,t):n===h.FIELDSET?ek(e,t):n===h.TEXTAREA?eF(e,t):n===h.TEMPLATE?em(e,t):n===h.NOSCRIPT?e.options.scriptingEnabled?ej(e,t):eY(e,t):n===h.OPTGROUP?ez(e,t):n!==h.COLGROUP&&eY(e,t);break;case 9:n===h.PLAINTEXT?eC(e,t):eY(e,t);break;case 10:n===h.BLOCKQUOTE||n===h.FIGCAPTION?ek(e,t):eY(e,t);break;default:eY(e,t)}}function eX(e){e.openElements.hasInScope(h.BODY)&&(e.insertionMode=B)}function e9(e,t){e.openElements.hasInScope(h.BODY)&&(e.insertionMode=B,e._processToken(t))}function eJ(e,t){let n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n))}function eZ(e){let t=e.openElements.tmplCount>0,n=e.formElement;t||(e.formElement=null),(n||t)&&e.openElements.hasInScope(h.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(h.FORM):e.openElements.remove(n))}function te(e){e.openElements.hasInButtonScope(h.P)||e._insertFakeElement(h.P),e._closePElement()}function tt(e){e.openElements.hasInListItemScope(h.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(h.LI),e.openElements.popUntilTagNamePopped(h.LI))}function tn(e,t){let n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilTagNamePopped(n))}function ti(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped())}function tr(e,t){let n=t.tagName;e.openElements.hasInScope(n)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(n),e.activeFormattingElements.clearToLastMarker())}function ta(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(h.BR),e.openElements.pop(),e.framesetOk=!1}function to(e,t){let n=t.tagName;for(let i=e.openElements.stackTop;i>0;i--){let r=e.openElements.items[i];if(e.treeAdapter.getTagName(r)===n){e.openElements.generateImpliedEndTagsWithExclusion(n),e.openElements.popUntilElementPopped(r);break}if(e._isSpecialElement(r))break}}function ts(e,t){let n=t.tagName;switch(n.length){case 1:n===h.A||n===h.B||n===h.I||n===h.S||n===h.U?ee(e,t):n===h.P?te(e,t):to(e,t);break;case 2:n===h.DL||n===h.UL||n===h.OL?eJ(e,t):n===h.LI?tt(e,t):n===h.DD||n===h.DT?tn(e,t):n===h.H1||n===h.H2||n===h.H3||n===h.H4||n===h.H5||n===h.H6?ti(e,t):n===h.BR?ta(e,t):n===h.EM||n===h.TT?ee(e,t):to(e,t);break;case 3:n===h.BIG?ee(e,t):n===h.DIR||n===h.DIV||n===h.NAV||n===h.PRE?eJ(e,t):to(e,t);break;case 4:n===h.BODY?eX(e,t):n===h.HTML?e9(e,t):n===h.FORM?eZ(e,t):n===h.CODE||n===h.FONT||n===h.NOBR?ee(e,t):n===h.MAIN||n===h.MENU?eJ(e,t):to(e,t);break;case 5:n===h.ASIDE?eJ(e,t):n===h.SMALL?ee(e,t):to(e,t);break;case 6:n===h.CENTER||n===h.FIGURE||n===h.FOOTER||n===h.HEADER||n===h.HGROUP||n===h.DIALOG?eJ(e,t):n===h.APPLET||n===h.OBJECT?tr(e,t):n===h.STRIKE||n===h.STRONG?ee(e,t):to(e,t);break;case 7:n===h.ADDRESS||n===h.ARTICLE||n===h.DETAILS||n===h.SECTION||n===h.SUMMARY||n===h.LISTING?eJ(e,t):n===h.MARQUEE?tr(e,t):to(e,t);break;case 8:n===h.FIELDSET?eJ(e,t):n===h.TEMPLATE?eh(e,t):to(e,t);break;case 10:n===h.BLOCKQUOTE||n===h.FIGCAPTION?eJ(e,t):to(e,t);break;default:to(e,t)}}function t_(e,t){e.tmplInsertionModeStackTop>-1?tL(e,t):e.stopped=!0}function tl(e,t){t.tagName===h.SCRIPT&&(e.pendingScript=e.openElements.current),e.openElements.pop(),e.insertionMode=e.originalInsertionMode}function tc(e,t){e._err($.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e._processToken(t)}function tu(e,t){let n=e.openElements.currentTagName;n===h.TABLE||n===h.TBODY||n===h.TFOOT||n===h.THEAD||n===h.TR?(e.pendingCharacterTokens=[],e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=N,e._processToken(t)):t6(e,t)}function tp(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,f.HTML),e.insertionMode=D}function t$(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,f.HTML),e.insertionMode=P}function td(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(h.COLGROUP),e.insertionMode=P,e._processToken(t)}function t0(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,f.HTML),e.insertionMode=O}function tm(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(h.TBODY),e.insertionMode=O,e._processToken(t)}function th(e,t){e.openElements.hasInTableScope(h.TABLE)&&(e.openElements.popUntilTagNamePopped(h.TABLE),e._resetInsertionMode(),e._processToken(t))}function t7(e,t){let n=i.getTokenAttr(t,g.TYPE);n&&n.toLowerCase()===v?e._appendElement(t,f.HTML):t6(e,t),t.ackSelfClosing=!0}function t3(e,t){e.formElement||0!==e.openElements.tmplCount||(e._insertElement(t,f.HTML),e.formElement=e.openElements.current,e.openElements.pop())}function tf(e,t){let n=t.tagName;switch(n.length){case 2:n===h.TD||n===h.TH||n===h.TR?tm(e,t):t6(e,t);break;case 3:n===h.COL?td(e,t):t6(e,t);break;case 4:n===h.FORM?t3(e,t):t6(e,t);break;case 5:n===h.TABLE?th(e,t):n===h.STYLE?em(e,t):n===h.TBODY||n===h.TFOOT||n===h.THEAD?t0(e,t):n===h.INPUT?t7(e,t):t6(e,t);break;case 6:n===h.SCRIPT?em(e,t):t6(e,t);break;case 7:n===h.CAPTION?tp(e,t):t6(e,t);break;case 8:n===h.COLGROUP?t$(e,t):n===h.TEMPLATE?em(e,t):t6(e,t);break;default:t6(e,t)}}function t2(e,t){let n=t.tagName;n===h.TABLE?e.openElements.hasInTableScope(h.TABLE)&&(e.openElements.popUntilTagNamePopped(h.TABLE),e._resetInsertionMode()):n===h.TEMPLATE?eh(e,t):n!==h.BODY&&n!==h.CAPTION&&n!==h.COL&&n!==h.COLGROUP&&n!==h.HTML&&n!==h.TBODY&&n!==h.TD&&n!==h.TFOOT&&n!==h.TH&&n!==h.THEAD&&n!==h.TR&&t6(e,t)}function t6(e,t){let n=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,e._processTokenInBodyMode(t),e.fosterParentingEnabled=n}function tg(e,t){e.pendingCharacterTokens.push(t)}function t1(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0}function t4(e,t){let n=0;if(e.hasNonWhitespacePendingCharacterToken)for(;n0?(e.openElements.popUntilTagNamePopped(h.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e._popTmplInsertionMode(),e._resetInsertionMode(),e._processToken(t)):e.stopped=!0}function tI(e,t){t.tagName===h.HTML?eQ(e,t):tM(e,t)}function tR(e,t){t.tagName===h.HTML?e.fragmentContext||(e.insertionMode=U):tM(e,t)}function tM(e,t){e.insertionMode=C,e._processToken(t)}function tF(e,t){let n=t.tagName;n===h.HTML?eQ(e,t):n===h.FRAMESET?e._insertElement(t,f.HTML):n===h.FRAME?(e._appendElement(t,f.HTML),t.ackSelfClosing=!0):n===h.NOFRAMES&&em(e,t)}function tB(e,t){t.tagName!==h.FRAMESET||e.openElements.isRootHtmlElementCurrent()||(e.openElements.pop(),e.fragmentContext||e.openElements.currentTagName===h.FRAMESET||(e.insertionMode=j))}function tH(e,t){let n=t.tagName;n===h.HTML?eQ(e,t):n===h.NOFRAMES&&em(e,t)}function tj(e,t){t.tagName===h.HTML&&(e.insertionMode=z)}function tU(e,t){t.tagName===h.HTML?eQ(e,t):tz(e,t)}function tz(e,t){e.insertionMode=C,e._processToken(t)}function tq(e,t){let n=t.tagName;n===h.HTML?eQ(e,t):n===h.NOFRAMES&&em(e,t)}function tG(e,t){t.chars=d.REPLACEMENT_CHARACTER,e._insertCharacters(t)}function tK(e,t){e._insertCharacters(t),e.framesetOk=!1}function tV(e,t){if(p.causesExit(t)&&!e.fragmentContext){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==f.HTML&&!e._isIntegrationPoint(e.openElements.current);)e.openElements.pop();e._processToken(t)}else{let n=e._getAdjustedCurrentElement(),i=e.treeAdapter.getNamespaceURI(n);i===f.MATHML?p.adjustTokenMathMLAttrs(t):i===f.SVG&&(p.adjustTokenSVGTagName(t),p.adjustTokenSVGAttrs(t)),p.adjustTokenXMLAttrs(t),t.selfClosing?e._appendElement(t,i):e._insertElement(t,i),t.ackSelfClosing=!0}}function tW(e,t){for(let n=e.openElements.stackTop;n>0;n--){let i=e.openElements.items[n];if(e.treeAdapter.getNamespaceURI(i)===f.HTML){e._processToken(t);break}if(e.treeAdapter.getTagName(i).toLowerCase()===t.tagName){e.openElements.popUntilElementPopped(i);break}}}e.exports=V},(e,t,n)=>{"use strict";let i=n(6),r=n(7),a=n(9),o=n(8),s=r.CODE_POINTS,_=r.CODE_POINT_SEQUENCES,l={128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376},c=7,u="DATA_STATE",p="RCDATA_STATE",$="RAWTEXT_STATE",d="SCRIPT_DATA_STATE",m="PLAINTEXT_STATE",h="TAG_OPEN_STATE",f="END_TAG_OPEN_STATE",g="TAG_NAME_STATE",x="RCDATA_LESS_THAN_SIGN_STATE",v="RCDATA_END_TAG_OPEN_STATE",b="RCDATA_END_TAG_NAME_STATE",k="RAWTEXT_LESS_THAN_SIGN_STATE",T="RAWTEXT_END_TAG_OPEN_STATE",E="RAWTEXT_END_TAG_NAME_STATE",y="SCRIPT_DATA_LESS_THAN_SIGN_STATE",A="SCRIPT_DATA_END_TAG_OPEN_STATE",C="SCRIPT_DATA_END_TAG_NAME_STATE",w="SCRIPT_DATA_ESCAPE_START_STATE",S="SCRIPT_DATA_ESCAPE_START_DASH_STATE",N="SCRIPT_DATA_ESCAPED_STATE",D="SCRIPT_DATA_ESCAPED_DASH_STATE",P="SCRIPT_DATA_ESCAPED_DASH_DASH_STATE",O="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE",L="SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE",I="SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE",R="SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE",M="SCRIPT_DATA_DOUBLE_ESCAPED_STATE",F="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE",B="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE",H="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE",j="SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE",U="BEFORE_ATTRIBUTE_NAME_STATE",z="ATTRIBUTE_NAME_STATE",q="AFTER_ATTRIBUTE_NAME_STATE",G="BEFORE_ATTRIBUTE_VALUE_STATE",K="ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE",V="ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE",W="ATTRIBUTE_VALUE_UNQUOTED_STATE",Y="AFTER_ATTRIBUTE_VALUE_QUOTED_STATE",Q="SELF_CLOSING_START_TAG_STATE",X="BOGUS_COMMENT_STATE",J="MARKUP_DECLARATION_OPEN_STATE",Z="COMMENT_START_STATE",ee="COMMENT_START_DASH_STATE",et="COMMENT_STATE",en="COMMENT_LESS_THAN_SIGN_STATE",ei="COMMENT_LESS_THAN_SIGN_BANG_STATE",er="COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE",ea="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE",eo="COMMENT_END_DASH_STATE",es="COMMENT_END_STATE",e_="COMMENT_END_BANG_STATE",el="DOCTYPE_STATE",ec="BEFORE_DOCTYPE_NAME_STATE",eu="DOCTYPE_NAME_STATE",ep="AFTER_DOCTYPE_NAME_STATE",e$="AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE",ed="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE",e0="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE",em="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE",eh="AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE",e7="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE",e3="AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE",ef="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE",e2="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE",e6="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE",eg="AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE",e1="BOGUS_DOCTYPE_STATE",e4="CDATA_SECTION_STATE",e5="CDATA_SECTION_BRACKET_STATE",ex="CDATA_SECTION_END_STATE",ev="CHARACTER_REFERENCE_STATE",eb="NAMED_CHARACTER_REFERENCE_STATE",ek="AMBIGUOS_AMPERSAND_STATE",eT="NUMERIC_CHARACTER_REFERENCE_STATE",eE="HEXADEMICAL_CHARACTER_REFERENCE_START_STATE",ey="DECIMAL_CHARACTER_REFERENCE_START_STATE",eA="HEXADEMICAL_CHARACTER_REFERENCE_STATE",eC="DECIMAL_CHARACTER_REFERENCE_STATE",ew="NUMERIC_CHARACTER_REFERENCE_END_STATE";function eS(e){return e===s.SPACE||e===s.LINE_FEED||e===s.TABULATION||e===s.FORM_FEED}function e8(e){return e>=s.DIGIT_0&&e<=s.DIGIT_9}function eN(e){return e>=s.LATIN_CAPITAL_A&&e<=s.LATIN_CAPITAL_Z}function eD(e){return e>=s.LATIN_SMALL_A&&e<=s.LATIN_SMALL_Z}function eP(e){return eD(e)||eN(e)}function eO(e){return eP(e)||e8(e)}function eL(e){return e>=s.LATIN_CAPITAL_A&&e<=s.LATIN_CAPITAL_F}function eI(e){return e>=s.LATIN_SMALL_A&&e<=s.LATIN_SMALL_F}function eR(e){return e8(e)||eL(e)||eI(e)}function eM(e){return e+32}function eF(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-=65536)>>>10&1023|55296)+String.fromCharCode(56320|1023&e)}function eB(e){return String.fromCharCode(eM(e))}function eH(e,t){let n=a[++e],i=++e,r=i+n-1;for(;i<=r;){let o=i+r>>>1,s=a[o];if(st))return a[o+n];r=o-1}}return -1}class ej{constructor(){this.preprocessor=new i,this.tokenQueue=[],this.allowCDATA=!1,this.state=u,this.returnState="",this.charRefCode=-1,this.tempBuff=[],this.lastStartTagName="",this.consumedAfterSnapshot=-1,this.active=!1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr=null}_err(){}_errOnNextCodePoint(e){this._consume(),this._err(e),this._unconsume()}getNextToken(){for(;!this.tokenQueue.length&&this.active;){this.consumedAfterSnapshot=0;let e=this._consume();this._ensureHibernation()||this[this.state](e)}return this.tokenQueue.shift()}write(e,t){this.active=!0,this.preprocessor.write(e,t)}insertHtmlAtCurrentPos(e){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(e)}_ensureHibernation(){if(this.preprocessor.endOfChunkHit){for(;this.consumedAfterSnapshot>0;this.consumedAfterSnapshot--)this.preprocessor.retreat();return this.active=!1,this.tokenQueue.push({type:ej.HIBERNATION_TOKEN}),!0}return!1}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_unconsume(){this.consumedAfterSnapshot--,this.preprocessor.retreat()}_reconsumeInState(e){this.state=e,this._unconsume()}_consumeSequenceIfMatch(e,t,n){let i=0,r=!0,a=e.length,o=0,_=t,l;for(;o0&&(_=this._consume(),i++),_===s.EOF||_!==(l=e[o])&&(n||_!==eM(l))){r=!1;break}if(!r)for(;i--;)this._unconsume();return r}_isTempBufferEqualToScriptString(){if(this.tempBuff.length!==_.SCRIPT_STRING.length)return!1;for(let e=0;e0&&this._err(o.endTagWithAttributes),e.selfClosing&&this._err(o.endTagWithTrailingSolidus)),this.tokenQueue.push(e)}_emitCurrentCharacterToken(){this.currentCharacterToken&&(this.tokenQueue.push(this.currentCharacterToken),this.currentCharacterToken=null)}_emitEOFToken(){this._createEOFToken(),this._emitCurrentToken()}_appendCharToCurrentCharacterToken(e,t){this.currentCharacterToken&&this.currentCharacterToken.type!==e&&this._emitCurrentCharacterToken(),this.currentCharacterToken?this.currentCharacterToken.chars+=t:this._createCharacterToken(e,t)}_emitCodePoint(e){let t=ej.CHARACTER_TOKEN;eS(e)?t=ej.WHITESPACE_CHARACTER_TOKEN:e===s.NULL&&(t=ej.NULL_CHARACTER_TOKEN),this._appendCharToCurrentCharacterToken(t,eF(e))}_emitSeveralCodePoints(e){for(let t=0;t-1;){let r=a[i],o=r<7,_=o&&1&r;_&&(t=2&r?[a[++i],a[++i]]:[a[++i]],n=0);let l=this._consume();if(this.tempBuff.push(l),n++,l===s.EOF)break;i=o?4&r?eH(i,l):-1:l===r?++i:-1}for(;n--;)this.tempBuff.pop(),this._unconsume();return t}_isCharacterReferenceInAttribute(){return this.returnState===K||this.returnState===V||this.returnState===W}_isCharacterReferenceAttributeQuirk(e){if(!e&&this._isCharacterReferenceInAttribute()){let t=this._consume();return this._unconsume(),t===s.EQUALS_SIGN||eO(t)}return!1}_flushCodePointsConsumedAsCharacterReference(){if(this._isCharacterReferenceInAttribute())for(let e=0;e")):e===s.NULL?(this._err(o.unexpectedNullCharacter),this.state=N,this._emitChars(r.REPLACEMENT_CHARACTER)):e===s.EOF?(this._err(o.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=N,this._emitCodePoint(e))}[O](e){e===s.SOLIDUS?(this.tempBuff=[],this.state=L):eP(e)?(this.tempBuff=[],this._emitChars("<"),this._reconsumeInState(R)):(this._emitChars("<"),this._reconsumeInState(N))}[L](e){eP(e)?(this._createEndTagToken(),this._reconsumeInState(I)):(this._emitChars("")):e===s.NULL?(this._err(o.unexpectedNullCharacter),this.state=M,this._emitChars(r.REPLACEMENT_CHARACTER)):e===s.EOF?(this._err(o.eofInScriptHtmlCommentLikeText),this._emitEOFToken()):(this.state=M,this._emitCodePoint(e))}[H](e){e===s.SOLIDUS?(this.tempBuff=[],this.state=j,this._emitChars("/")):this._reconsumeInState(M)}[j](e){eS(e)||e===s.SOLIDUS||e===s.GREATER_THAN_SIGN?(this.state=this._isTempBufferEqualToScriptString()?N:M,this._emitCodePoint(e)):eN(e)?(this.tempBuff.push(eM(e)),this._emitCodePoint(e)):eD(e)?(this.tempBuff.push(e),this._emitCodePoint(e)):this._reconsumeInState(M)}[U](e){!eS(e)&&(e===s.SOLIDUS||e===s.GREATER_THAN_SIGN||e===s.EOF?this._reconsumeInState(q):e===s.EQUALS_SIGN?(this._err(o.unexpectedEqualsSignBeforeAttributeName),this._createAttr("="),this.state=z):(this._createAttr(""),this._reconsumeInState(z)))}[z](e){eS(e)||e===s.SOLIDUS||e===s.GREATER_THAN_SIGN||e===s.EOF?(this._leaveAttrName(q),this._unconsume()):e===s.EQUALS_SIGN?this._leaveAttrName(G):eN(e)?this.currentAttr.name+=eB(e):e===s.QUOTATION_MARK||e===s.APOSTROPHE||e===s.LESS_THAN_SIGN?(this._err(o.unexpectedCharacterInAttributeName),this.currentAttr.name+=eF(e)):e===s.NULL?(this._err(o.unexpectedNullCharacter),this.currentAttr.name+=r.REPLACEMENT_CHARACTER):this.currentAttr.name+=eF(e)}[q](e){!eS(e)&&(e===s.SOLIDUS?this.state=Q:e===s.EQUALS_SIGN?this.state=G:e===s.GREATER_THAN_SIGN?(this.state=u,this._emitCurrentToken()):e===s.EOF?(this._err(o.eofInTag),this._emitEOFToken()):(this._createAttr(""),this._reconsumeInState(z)))}[G](e){!eS(e)&&(e===s.QUOTATION_MARK?this.state=K:e===s.APOSTROPHE?this.state=V:e===s.GREATER_THAN_SIGN?(this._err(o.missingAttributeValue),this.state=u,this._emitCurrentToken()):this._reconsumeInState(W))}[K](e){e===s.QUOTATION_MARK?this.state=Y:e===s.AMPERSAND?(this.returnState=K,this.state=ev):e===s.NULL?(this._err(o.unexpectedNullCharacter),this.currentAttr.value+=r.REPLACEMENT_CHARACTER):e===s.EOF?(this._err(o.eofInTag),this._emitEOFToken()):this.currentAttr.value+=eF(e)}[V](e){e===s.APOSTROPHE?this.state=Y:e===s.AMPERSAND?(this.returnState=V,this.state=ev):e===s.NULL?(this._err(o.unexpectedNullCharacter),this.currentAttr.value+=r.REPLACEMENT_CHARACTER):e===s.EOF?(this._err(o.eofInTag),this._emitEOFToken()):this.currentAttr.value+=eF(e)}[W](e){eS(e)?this._leaveAttrValue(U):e===s.AMPERSAND?(this.returnState=W,this.state=ev):e===s.GREATER_THAN_SIGN?(this._leaveAttrValue(u),this._emitCurrentToken()):e===s.NULL?(this._err(o.unexpectedNullCharacter),this.currentAttr.value+=r.REPLACEMENT_CHARACTER):e===s.QUOTATION_MARK||e===s.APOSTROPHE||e===s.LESS_THAN_SIGN||e===s.EQUALS_SIGN||e===s.GRAVE_ACCENT?(this._err(o.unexpectedCharacterInUnquotedAttributeValue),this.currentAttr.value+=eF(e)):e===s.EOF?(this._err(o.eofInTag),this._emitEOFToken()):this.currentAttr.value+=eF(e)}[Y](e){eS(e)?this._leaveAttrValue(U):e===s.SOLIDUS?this._leaveAttrValue(Q):e===s.GREATER_THAN_SIGN?(this._leaveAttrValue(u),this._emitCurrentToken()):e===s.EOF?(this._err(o.eofInTag),this._emitEOFToken()):(this._err(o.missingWhitespaceBetweenAttributes),this._reconsumeInState(U))}[Q](e){e===s.GREATER_THAN_SIGN?(this.currentToken.selfClosing=!0,this.state=u,this._emitCurrentToken()):e===s.EOF?(this._err(o.eofInTag),this._emitEOFToken()):(this._err(o.unexpectedSolidusInTag),this._reconsumeInState(U))}[X](e){e===s.GREATER_THAN_SIGN?(this.state=u,this._emitCurrentToken()):e===s.EOF?(this._emitCurrentToken(),this._emitEOFToken()):e===s.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.data+=r.REPLACEMENT_CHARACTER):this.currentToken.data+=eF(e)}[J](e){this._consumeSequenceIfMatch(_.DASH_DASH_STRING,e,!0)?(this._createCommentToken(),this.state=Z):this._consumeSequenceIfMatch(_.DOCTYPE_STRING,e,!1)?this.state=el:this._consumeSequenceIfMatch(_.CDATA_START_STRING,e,!0)?this.allowCDATA?this.state=e4:(this._err(o.cdataInHtmlContent),this._createCommentToken(),this.currentToken.data="[CDATA[",this.state=X):this._ensureHibernation()||(this._err(o.incorrectlyOpenedComment),this._createCommentToken(),this._reconsumeInState(X))}[Z](e){e===s.HYPHEN_MINUS?this.state=ee:e===s.GREATER_THAN_SIGN?(this._err(o.abruptClosingOfEmptyComment),this.state=u,this._emitCurrentToken()):this._reconsumeInState(et)}[ee](e){e===s.HYPHEN_MINUS?this.state=es:e===s.GREATER_THAN_SIGN?(this._err(o.abruptClosingOfEmptyComment),this.state=u,this._emitCurrentToken()):e===s.EOF?(this._err(o.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="-",this._reconsumeInState(et))}[et](e){e===s.HYPHEN_MINUS?this.state=eo:e===s.LESS_THAN_SIGN?(this.currentToken.data+="<",this.state=en):e===s.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.data+=r.REPLACEMENT_CHARACTER):e===s.EOF?(this._err(o.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.data+=eF(e)}[en](e){e===s.EXCLAMATION_MARK?(this.currentToken.data+="!",this.state=ei):e===s.LESS_THAN_SIGN?this.currentToken.data+="!":this._reconsumeInState(et)}[ei](e){e===s.HYPHEN_MINUS?this.state=er:this._reconsumeInState(et)}[er](e){e===s.HYPHEN_MINUS?this.state=ea:this._reconsumeInState(eo)}[ea](e){e!==s.GREATER_THAN_SIGN&&e!==s.EOF&&this._err(o.nestedComment),this._reconsumeInState(es)}[eo](e){e===s.HYPHEN_MINUS?this.state=es:e===s.EOF?(this._err(o.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="-",this._reconsumeInState(et))}[es](e){e===s.GREATER_THAN_SIGN?(this.state=u,this._emitCurrentToken()):e===s.EXCLAMATION_MARK?this.state=e_:e===s.HYPHEN_MINUS?this.currentToken.data+="-":e===s.EOF?(this._err(o.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="--",this._reconsumeInState(et))}[e_](e){e===s.HYPHEN_MINUS?(this.currentToken.data+="--!",this.state=eo):e===s.GREATER_THAN_SIGN?(this._err(o.incorrectlyClosedComment),this.state=u,this._emitCurrentToken()):e===s.EOF?(this._err(o.eofInComment),this._emitCurrentToken(),this._emitEOFToken()):(this.currentToken.data+="--!",this._reconsumeInState(et))}[el](e){eS(e)?this.state=ec:e===s.GREATER_THAN_SIGN?this._reconsumeInState(ec):e===s.EOF?(this._err(o.eofInDoctype),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingWhitespaceBeforeDoctypeName),this._reconsumeInState(ec))}[ec](e){!eS(e)&&(eN(e)?(this._createDoctypeToken(eB(e)),this.state=eu):e===s.NULL?(this._err(o.unexpectedNullCharacter),this._createDoctypeToken(r.REPLACEMENT_CHARACTER),this.state=eu):e===s.GREATER_THAN_SIGN?(this._err(o.missingDoctypeName),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=u):e===s.EOF?(this._err(o.eofInDoctype),this._createDoctypeToken(null),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._createDoctypeToken(eF(e)),this.state=eu))}[eu](e){eS(e)?this.state=ep:e===s.GREATER_THAN_SIGN?(this.state=u,this._emitCurrentToken()):eN(e)?this.currentToken.name+=eB(e):e===s.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.name+=r.REPLACEMENT_CHARACTER):e===s.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.name+=eF(e)}[ep](e){!eS(e)&&(e===s.GREATER_THAN_SIGN?(this.state=u,this._emitCurrentToken()):e===s.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this._consumeSequenceIfMatch(_.PUBLIC_STRING,e,!1)?this.state=e$:this._consumeSequenceIfMatch(_.SYSTEM_STRING,e,!1)?this.state=e3:this._ensureHibernation()||(this._err(o.invalidCharacterSequenceAfterDoctypeName),this.currentToken.forceQuirks=!0,this._reconsumeInState(e1)))}[e$](e){eS(e)?this.state=ed:e===s.QUOTATION_MARK?(this._err(o.missingWhitespaceAfterDoctypePublicKeyword),this.currentToken.publicId="",this.state=e0):e===s.APOSTROPHE?(this._err(o.missingWhitespaceAfterDoctypePublicKeyword),this.currentToken.publicId="",this.state=em):e===s.GREATER_THAN_SIGN?(this._err(o.missingDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this.state=u,this._emitCurrentToken()):e===s.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingQuoteBeforeDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(e1))}[ed](e){!eS(e)&&(e===s.QUOTATION_MARK?(this.currentToken.publicId="",this.state=e0):e===s.APOSTROPHE?(this.currentToken.publicId="",this.state=em):e===s.GREATER_THAN_SIGN?(this._err(o.missingDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this.state=u,this._emitCurrentToken()):e===s.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingQuoteBeforeDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(e1)))}[e0](e){e===s.QUOTATION_MARK?this.state=eh:e===s.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.publicId+=r.REPLACEMENT_CHARACTER):e===s.GREATER_THAN_SIGN?(this._err(o.abruptDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=u):e===s.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.publicId+=eF(e)}[em](e){e===s.APOSTROPHE?this.state=eh:e===s.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.publicId+=r.REPLACEMENT_CHARACTER):e===s.GREATER_THAN_SIGN?(this._err(o.abruptDoctypePublicIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=u):e===s.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.publicId+=eF(e)}[eh](e){eS(e)?this.state=e7:e===s.GREATER_THAN_SIGN?(this.state=u,this._emitCurrentToken()):e===s.QUOTATION_MARK?(this._err(o.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),this.currentToken.systemId="",this.state=e2):e===s.APOSTROPHE?(this._err(o.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),this.currentToken.systemId="",this.state=e6):e===s.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(e1))}[e7](e){!eS(e)&&(e===s.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=u):e===s.QUOTATION_MARK?(this.currentToken.systemId="",this.state=e2):e===s.APOSTROPHE?(this.currentToken.systemId="",this.state=e6):e===s.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(e1)))}[e3](e){eS(e)?this.state=ef:e===s.QUOTATION_MARK?(this._err(o.missingWhitespaceAfterDoctypeSystemKeyword),this.currentToken.systemId="",this.state=e2):e===s.APOSTROPHE?(this._err(o.missingWhitespaceAfterDoctypeSystemKeyword),this.currentToken.systemId="",this.state=e6):e===s.GREATER_THAN_SIGN?(this._err(o.missingDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this.state=u,this._emitCurrentToken()):e===s.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(e1))}[ef](e){!eS(e)&&(e===s.QUOTATION_MARK?(this.currentToken.systemId="",this.state=e2):e===s.APOSTROPHE?(this.currentToken.systemId="",this.state=e6):e===s.GREATER_THAN_SIGN?(this._err(o.missingDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this.state=u,this._emitCurrentToken()):e===s.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.missingQuoteBeforeDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._reconsumeInState(e1)))}[e2](e){e===s.QUOTATION_MARK?this.state=eg:e===s.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.systemId+=r.REPLACEMENT_CHARACTER):e===s.GREATER_THAN_SIGN?(this._err(o.abruptDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=u):e===s.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.systemId+=eF(e)}[e6](e){e===s.APOSTROPHE?this.state=eg:e===s.NULL?(this._err(o.unexpectedNullCharacter),this.currentToken.systemId+=r.REPLACEMENT_CHARACTER):e===s.GREATER_THAN_SIGN?(this._err(o.abruptDoctypeSystemIdentifier),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this.state=u):e===s.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):this.currentToken.systemId+=eF(e)}[eg](e){!eS(e)&&(e===s.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=u):e===s.EOF?(this._err(o.eofInDoctype),this.currentToken.forceQuirks=!0,this._emitCurrentToken(),this._emitEOFToken()):(this._err(o.unexpectedCharacterAfterDoctypeSystemIdentifier),this._reconsumeInState(e1)))}[e1](e){e===s.GREATER_THAN_SIGN?(this._emitCurrentToken(),this.state=u):e===s.NULL?this._err(o.unexpectedNullCharacter):e===s.EOF&&(this._emitCurrentToken(),this._emitEOFToken())}[e4](e){e===s.RIGHT_SQUARE_BRACKET?this.state=e5:e===s.EOF?(this._err(o.eofInCdata),this._emitEOFToken()):this._emitCodePoint(e)}[e5](e){e===s.RIGHT_SQUARE_BRACKET?this.state=ex:(this._emitChars("]"),this._reconsumeInState(e4))}[ex](e){e===s.GREATER_THAN_SIGN?this.state=u:e===s.RIGHT_SQUARE_BRACKET?this._emitChars("]"):(this._emitChars("]]"),this._reconsumeInState(e4))}[ev](e){this.tempBuff=[s.AMPERSAND],e===s.NUMBER_SIGN?(this.tempBuff.push(e),this.state=eT):eO(e)?this._reconsumeInState(eb):(this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}[eb](e){let t=this._matchNamedCharacterReference(e);if(this._ensureHibernation())this.tempBuff=[s.AMPERSAND];else if(t){let n=this.tempBuff[this.tempBuff.length-1]===s.SEMICOLON;this._isCharacterReferenceAttributeQuirk(n)||(n||this._errOnNextCodePoint(o.missingSemicolonAfterCharacterReference),this.tempBuff=t),this._flushCodePointsConsumedAsCharacterReference(),this.state=this.returnState}else this._flushCodePointsConsumedAsCharacterReference(),this.state=ek}[ek](e){eO(e)?this._isCharacterReferenceInAttribute()?this.currentAttr.value+=eF(e):this._emitCodePoint(e):(e===s.SEMICOLON&&this._err(o.unknownNamedCharacterReference),this._reconsumeInState(this.returnState))}[eT](e){this.charRefCode=0,e===s.LATIN_SMALL_X||e===s.LATIN_CAPITAL_X?(this.tempBuff.push(e),this.state=eE):this._reconsumeInState(ey)}[eE](e){eR(e)?this._reconsumeInState(eA):(this._err(o.absenceOfDigitsInNumericCharacterReference),this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}[ey](e){e8(e)?this._reconsumeInState(eC):(this._err(o.absenceOfDigitsInNumericCharacterReference),this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState))}[eA](e){eL(e)?this.charRefCode=16*this.charRefCode+e-55:eI(e)?this.charRefCode=16*this.charRefCode+e-87:e8(e)?this.charRefCode=16*this.charRefCode+e-48:e===s.SEMICOLON?this.state=ew:(this._err(o.missingSemicolonAfterCharacterReference),this._reconsumeInState(ew))}[eC](e){e8(e)?this.charRefCode=10*this.charRefCode+e-48:e===s.SEMICOLON?this.state=ew:(this._err(o.missingSemicolonAfterCharacterReference),this._reconsumeInState(ew))}[ew](){if(this.charRefCode===s.NULL)this._err(o.nullCharacterReference),this.charRefCode=s.REPLACEMENT_CHARACTER;else if(this.charRefCode>1114111)this._err(o.characterReferenceOutsideUnicodeRange),this.charRefCode=s.REPLACEMENT_CHARACTER;else if(r.isSurrogate(this.charRefCode))this._err(o.surrogateCharacterReference),this.charRefCode=s.REPLACEMENT_CHARACTER;else if(r.isUndefinedCodePoint(this.charRefCode))this._err(o.noncharacterCharacterReference);else if(r.isControlCodePoint(this.charRefCode)||this.charRefCode===s.CARRIAGE_RETURN){this._err(o.controlCharacterReference);let e=l[this.charRefCode];e&&(this.charRefCode=e)}this.tempBuff=[this.charRefCode],this._flushCodePointsConsumedAsCharacterReference(),this._reconsumeInState(this.returnState)}}ej.CHARACTER_TOKEN="CHARACTER_TOKEN",ej.NULL_CHARACTER_TOKEN="NULL_CHARACTER_TOKEN",ej.WHITESPACE_CHARACTER_TOKEN="WHITESPACE_CHARACTER_TOKEN",ej.START_TAG_TOKEN="START_TAG_TOKEN",ej.END_TAG_TOKEN="END_TAG_TOKEN",ej.COMMENT_TOKEN="COMMENT_TOKEN",ej.DOCTYPE_TOKEN="DOCTYPE_TOKEN",ej.EOF_TOKEN="EOF_TOKEN",ej.HIBERNATION_TOKEN="HIBERNATION_TOKEN",ej.MODE={DATA:u,RCDATA:p,RAWTEXT:$,SCRIPT_DATA:d,PLAINTEXT:m},ej.getTokenAttr=function(e,t){for(let n=e.attrs.length-1;n>=0;n--)if(e.attrs[n].name===t)return e.attrs[n].value;return null},e.exports=ej},(e,t,n)=>{"use strict";let i=n(7),r=n(8),a=i.CODE_POINTS;class o{constructor(){this.html=null,this.pos=-1,this.lastGapPos=-1,this.lastCharPos=-1,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=65536}_err(){}_addGap(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}_processSurrogate(e){if(this.pos!==this.lastCharPos){let t=this.html.charCodeAt(this.pos+1);if(i.isSurrogatePair(t))return this.pos++,this._addGap(),i.getSurrogatePairCodePoint(e,t)}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,a.EOF;return this._err(r.surrogateInInputStream),e}dropParsedChunk(){this.pos>this.bufferWaterline&&(this.lastCharPos-=this.pos,this.html=this.html.substring(this.pos),this.pos=0,this.lastGapPos=-1,this.gapStack=[])}write(e,t){this.html?this.html+=e:this.html=e,this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1,this.lastChunkWritten=t}insertHtmlAtCurrentPos(e){this.html=this.html.substring(0,this.pos+1)+e+this.html.substring(this.pos+1,this.html.length),this.lastCharPos=this.html.length-1,this.endOfChunkHit=!1}advance(){if(this.pos++,this.pos>this.lastCharPos)return this.endOfChunkHit=!this.lastChunkWritten,a.EOF;let e=this.html.charCodeAt(this.pos);if(this.skipNextNewLine&&e===a.LINE_FEED)return this.skipNextNewLine=!1,this._addGap(),this.advance();if(e===a.CARRIAGE_RETURN)return this.skipNextNewLine=!0,a.LINE_FEED;this.skipNextNewLine=!1,i.isSurrogate(e)&&(e=this._processSurrogate(e));let t=e>31&&e<127||e===a.LINE_FEED||e===a.CARRIAGE_RETURN||e>159&&e<64976;return t||this._checkForProblematicCharacters(e),e}_checkForProblematicCharacters(e){i.isControlCodePoint(e)?this._err(r.controlCharacterInInputStream):i.isUndefinedCodePoint(e)&&this._err(r.noncharacterInInputStream)}retreat(){this.pos===this.lastGapPos&&(this.lastGapPos=this.gapStack.pop(),this.pos--),this.pos--}}e.exports=o},(e,t)=>{"use strict";let n=[65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];t.REPLACEMENT_CHARACTER="�",t.CODE_POINTS={EOF:-1,NULL:0,TABULATION:9,CARRIAGE_RETURN:13,LINE_FEED:10,FORM_FEED:12,SPACE:32,EXCLAMATION_MARK:33,QUOTATION_MARK:34,NUMBER_SIGN:35,AMPERSAND:38,APOSTROPHE:39,HYPHEN_MINUS:45,SOLIDUS:47,DIGIT_0:48,DIGIT_9:57,SEMICOLON:59,LESS_THAN_SIGN:60,EQUALS_SIGN:61,GREATER_THAN_SIGN:62,QUESTION_MARK:63,LATIN_CAPITAL_A:65,LATIN_CAPITAL_F:70,LATIN_CAPITAL_X:88,LATIN_CAPITAL_Z:90,RIGHT_SQUARE_BRACKET:93,GRAVE_ACCENT:96,LATIN_SMALL_A:97,LATIN_SMALL_F:102,LATIN_SMALL_X:120,LATIN_SMALL_Z:122,REPLACEMENT_CHARACTER:65533},t.CODE_POINT_SEQUENCES={DASH_DASH_STRING:[45,45],DOCTYPE_STRING:[68,79,67,84,89,80,69],CDATA_START_STRING:[91,67,68,65,84,65,91],SCRIPT_STRING:[115,99,114,105,112,116],PUBLIC_STRING:[80,85,66,76,73,67],SYSTEM_STRING:[83,89,83,84,69,77]},t.isSurrogate=function(e){return e>=55296&&e<=57343},t.isSurrogatePair=function(e){return e>=56320&&e<=57343},t.getSurrogatePairCodePoint=function(e,t){return(e-55296)*1024+9216+t},t.isControlCodePoint=function(e){return 32!==e&&10!==e&&13!==e&&9!==e&&12!==e&&e>=1&&e<=31||e>=127&&e<=159},t.isUndefinedCodePoint=function(e){return e>=64976&&e<=65007||n.indexOf(e)>-1}},e=>{"use strict";e.exports={controlCharacterInInputStream:"control-character-in-input-stream",noncharacterInInputStream:"noncharacter-in-input-stream",surrogateInInputStream:"surrogate-in-input-stream",nonVoidHtmlElementStartTagWithTrailingSolidus:"non-void-html-element-start-tag-with-trailing-solidus",endTagWithAttributes:"end-tag-with-attributes",endTagWithTrailingSolidus:"end-tag-with-trailing-solidus",unexpectedSolidusInTag:"unexpected-solidus-in-tag",unexpectedNullCharacter:"unexpected-null-character",unexpectedQuestionMarkInsteadOfTagName:"unexpected-question-mark-instead-of-tag-name",invalidFirstCharacterOfTagName:"invalid-first-character-of-tag-name",unexpectedEqualsSignBeforeAttributeName:"unexpected-equals-sign-before-attribute-name",missingEndTagName:"missing-end-tag-name",unexpectedCharacterInAttributeName:"unexpected-character-in-attribute-name",unknownNamedCharacterReference:"unknown-named-character-reference",missingSemicolonAfterCharacterReference:"missing-semicolon-after-character-reference",unexpectedCharacterAfterDoctypeSystemIdentifier:"unexpected-character-after-doctype-system-identifier",unexpectedCharacterInUnquotedAttributeValue:"unexpected-character-in-unquoted-attribute-value",eofBeforeTagName:"eof-before-tag-name",eofInTag:"eof-in-tag",missingAttributeValue:"missing-attribute-value",missingWhitespaceBetweenAttributes:"missing-whitespace-between-attributes",missingWhitespaceAfterDoctypePublicKeyword:"missing-whitespace-after-doctype-public-keyword",missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:"missing-whitespace-between-doctype-public-and-system-identifiers",missingWhitespaceAfterDoctypeSystemKeyword:"missing-whitespace-after-doctype-system-keyword",missingQuoteBeforeDoctypePublicIdentifier:"missing-quote-before-doctype-public-identifier",missingQuoteBeforeDoctypeSystemIdentifier:"missing-quote-before-doctype-system-identifier",missingDoctypePublicIdentifier:"missing-doctype-public-identifier",missingDoctypeSystemIdentifier:"missing-doctype-system-identifier",abruptDoctypePublicIdentifier:"abrupt-doctype-public-identifier",abruptDoctypeSystemIdentifier:"abrupt-doctype-system-identifier",cdataInHtmlContent:"cdata-in-html-content",incorrectlyOpenedComment:"incorrectly-opened-comment",eofInScriptHtmlCommentLikeText:"eof-in-script-html-comment-like-text",eofInDoctype:"eof-in-doctype",nestedComment:"nested-comment",abruptClosingOfEmptyComment:"abrupt-closing-of-empty-comment",eofInComment:"eof-in-comment",incorrectlyClosedComment:"incorrectly-closed-comment",eofInCdata:"eof-in-cdata",absenceOfDigitsInNumericCharacterReference:"absence-of-digits-in-numeric-character-reference",nullCharacterReference:"null-character-reference",surrogateCharacterReference:"surrogate-character-reference",characterReferenceOutsideUnicodeRange:"character-reference-outside-unicode-range",controlCharacterReference:"control-character-reference",noncharacterCharacterReference:"noncharacter-character-reference",missingWhitespaceBeforeDoctypeName:"missing-whitespace-before-doctype-name",missingDoctypeName:"missing-doctype-name",invalidCharacterSequenceAfterDoctypeName:"invalid-character-sequence-after-doctype-name",duplicateAttribute:"duplicate-attribute",nonConformingDoctype:"non-conforming-doctype",missingDoctype:"missing-doctype",misplacedDoctype:"misplaced-doctype",endTagWithoutMatchingOpenElement:"end-tag-without-matching-open-element",closingOfElementWithOpenChildElements:"closing-of-element-with-open-child-elements",disallowedContentInNoscriptInHead:"disallowed-content-in-noscript-in-head",openElementsLeftAfterEof:"open-elements-left-after-eof",abandonedHeadElementChild:"abandoned-head-element-child",misplacedStartTagForHeadElement:"misplaced-start-tag-for-head-element",nestedNoscriptInHead:"nested-noscript-in-head",eofInElementThatCanContainOnlyText:"eof-in-element-that-can-contain-only-text"}},e=>{"use strict";e.exports=new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4e3,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,1e4,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13e3,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204])},(e,t,n)=>{"use strict";let i=n(11),r=i.TAG_NAMES,a=i.NAMESPACES;function o(e){switch(e.length){case 1:return e===r.P;case 2:return e===r.RB||e===r.RP||e===r.RT||e===r.DD||e===r.DT||e===r.LI;case 3:return e===r.RTC;case 6:return e===r.OPTION;case 8:return e===r.OPTGROUP}return!1}function s(e){switch(e.length){case 1:return e===r.P;case 2:return e===r.RB||e===r.RP||e===r.RT||e===r.DD||e===r.DT||e===r.LI||e===r.TD||e===r.TH||e===r.TR;case 3:return e===r.RTC;case 5:return e===r.TBODY||e===r.TFOOT||e===r.THEAD;case 6:return e===r.OPTION;case 7:return e===r.CAPTION;case 8:return e===r.OPTGROUP||e===r.COLGROUP}return!1}function _(e,t){switch(e.length){case 2:if(e===r.TD||e===r.TH)return t===a.HTML;if(e===r.MI||e===r.MO||e===r.MN||e===r.MS)return t===a.MATHML;break;case 4:if(e===r.HTML)return t===a.HTML;if(e===r.DESC)return t===a.SVG;break;case 5:if(e===r.TABLE)return t===a.HTML;if(e===r.MTEXT)return t===a.MATHML;if(e===r.TITLE)return t===a.SVG;break;case 6:return(e===r.APPLET||e===r.OBJECT)&&t===a.HTML;case 7:return(e===r.CAPTION||e===r.MARQUEE)&&t===a.HTML;case 8:return e===r.TEMPLATE&&t===a.HTML;case 13:return e===r.FOREIGN_OBJECT&&t===a.SVG;case 14:return e===r.ANNOTATION_XML&&t===a.MATHML}return!1}class l{constructor(e,t){this.stackTop=-1,this.items=[],this.current=e,this.currentTagName=null,this.currentTmplContent=null,this.tmplCount=0,this.treeAdapter=t}_indexOf(e){let t=-1;for(let n=this.stackTop;n>=0;n--)if(this.items[n]===e){t=n;break}return t}_isInTemplate(){return this.currentTagName===r.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===a.HTML}_updateCurrentElement(){this.current=this.items[this.stackTop],this.currentTagName=this.current&&this.treeAdapter.getTagName(this.current),this.currentTmplContent=this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):null}push(e){this.items[++this.stackTop]=e,this._updateCurrentElement(),this._isInTemplate()&&this.tmplCount++}pop(){this.stackTop--,this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this._updateCurrentElement()}replace(e,t){let n=this._indexOf(e);this.items[n]=t,n===this.stackTop&&this._updateCurrentElement()}insertAfter(e,t){let n=this._indexOf(e)+1;this.items.splice(n,0,t),n===++this.stackTop&&this._updateCurrentElement()}popUntilTagNamePopped(e){for(;this.stackTop>-1;){let t=this.currentTagName,n=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),t===e&&n===a.HTML)break}}popUntilElementPopped(e){for(;this.stackTop>-1;){let t=this.current;if(this.pop(),t===e)break}}popUntilNumberedHeaderPopped(){for(;this.stackTop>-1;){let e=this.currentTagName,t=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===r.H1||e===r.H2||e===r.H3||e===r.H4||e===r.H5||e===r.H6&&t===a.HTML)break}}popUntilTableCellPopped(){for(;this.stackTop>-1;){let e=this.currentTagName,t=this.treeAdapter.getNamespaceURI(this.current);if(this.pop(),e===r.TD||e===r.TH&&t===a.HTML)break}}popAllUpToHtmlElement(){this.stackTop=0,this._updateCurrentElement()}clearBackToTableContext(){for(;this.currentTagName!==r.TABLE&&this.currentTagName!==r.TEMPLATE&&this.currentTagName!==r.HTML||this.treeAdapter.getNamespaceURI(this.current)!==a.HTML;)this.pop()}clearBackToTableBodyContext(){for(;this.currentTagName!==r.TBODY&&this.currentTagName!==r.TFOOT&&this.currentTagName!==r.THEAD&&this.currentTagName!==r.TEMPLATE&&this.currentTagName!==r.HTML||this.treeAdapter.getNamespaceURI(this.current)!==a.HTML;)this.pop()}clearBackToTableRowContext(){for(;this.currentTagName!==r.TR&&this.currentTagName!==r.TEMPLATE&&this.currentTagName!==r.HTML||this.treeAdapter.getNamespaceURI(this.current)!==a.HTML;)this.pop()}remove(e){for(let t=this.stackTop;t>=0;t--)if(this.items[t]===e){this.items.splice(t,1),this.stackTop--,this._updateCurrentElement();break}}tryPeekProperlyNestedBodyElement(){let e=this.items[1];return e&&this.treeAdapter.getTagName(e)===r.BODY?e:null}contains(e){return this._indexOf(e)>-1}getCommonAncestor(e){let t=this._indexOf(e);return--t>=0?this.items[t]:null}isRootHtmlElementCurrent(){return 0===this.stackTop&&this.currentTagName===r.HTML}hasInScope(e){for(let t=this.stackTop;t>=0;t--){let n=this.treeAdapter.getTagName(this.items[t]),i=this.treeAdapter.getNamespaceURI(this.items[t]);if(n===e&&i===a.HTML)break;if(_(n,i))return!1}return!0}hasNumberedHeaderInScope(){for(let e=this.stackTop;e>=0;e--){let t=this.treeAdapter.getTagName(this.items[e]),n=this.treeAdapter.getNamespaceURI(this.items[e]);if((t===r.H1||t===r.H2||t===r.H3||t===r.H4||t===r.H5||t===r.H6)&&n===a.HTML)break;if(_(t,n))return!1}return!0}hasInListItemScope(e){for(let t=this.stackTop;t>=0;t--){let n=this.treeAdapter.getTagName(this.items[t]),i=this.treeAdapter.getNamespaceURI(this.items[t]);if(n===e&&i===a.HTML)break;if((n===r.UL||n===r.OL)&&i===a.HTML||_(n,i))return!1}return!0}hasInButtonScope(e){for(let t=this.stackTop;t>=0;t--){let n=this.treeAdapter.getTagName(this.items[t]),i=this.treeAdapter.getNamespaceURI(this.items[t]);if(n===e&&i===a.HTML)break;if(n===r.BUTTON&&i===a.HTML||_(n,i))return!1}return!0}hasInTableScope(e){for(let t=this.stackTop;t>=0;t--){let n=this.treeAdapter.getTagName(this.items[t]),i=this.treeAdapter.getNamespaceURI(this.items[t]);if(i===a.HTML){if(n===e)break;if(n===r.TABLE||n===r.TEMPLATE||n===r.HTML)return!1}}return!0}hasTableBodyContextInTableScope(){for(let e=this.stackTop;e>=0;e--){let t=this.treeAdapter.getTagName(this.items[e]),n=this.treeAdapter.getNamespaceURI(this.items[e]);if(n===a.HTML){if(t===r.TBODY||t===r.THEAD||t===r.TFOOT)break;if(t===r.TABLE||t===r.HTML)return!1}}return!0}hasInSelectScope(e){for(let t=this.stackTop;t>=0;t--){let n=this.treeAdapter.getTagName(this.items[t]),i=this.treeAdapter.getNamespaceURI(this.items[t]);if(i===a.HTML){if(n===e)break;if(n!==r.OPTION&&n!==r.OPTGROUP)return!1}}return!0}generateImpliedEndTags(){for(;o(this.currentTagName);)this.pop()}generateImpliedEndTagsThoroughly(){for(;s(this.currentTagName);)this.pop()}generateImpliedEndTagsWithExclusion(e){for(;o(this.currentTagName)&&this.currentTagName!==e;)this.pop()}}e.exports=l},(e,t)=>{"use strict";let n=t.NAMESPACES={HTML:"http://www.w3.org/1999/xhtml",MATHML:"http://www.w3.org/1998/Math/MathML",SVG:"http://www.w3.org/2000/svg",XLINK:"http://www.w3.org/1999/xlink",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"};t.ATTRS={TYPE:"type",ACTION:"action",ENCODING:"encoding",PROMPT:"prompt",NAME:"name",COLOR:"color",FACE:"face",SIZE:"size"},t.DOCUMENT_MODE={NO_QUIRKS:"no-quirks",QUIRKS:"quirks",LIMITED_QUIRKS:"limited-quirks"};let i=t.TAG_NAMES={A:"a",ADDRESS:"address",ANNOTATION_XML:"annotation-xml",APPLET:"applet",AREA:"area",ARTICLE:"article",ASIDE:"aside",B:"b",BASE:"base",BASEFONT:"basefont",BGSOUND:"bgsound",BIG:"big",BLOCKQUOTE:"blockquote",BODY:"body",BR:"br",BUTTON:"button",CAPTION:"caption",CENTER:"center",CODE:"code",COL:"col",COLGROUP:"colgroup",DD:"dd",DESC:"desc",DETAILS:"details",DIALOG:"dialog",DIR:"dir",DIV:"div",DL:"dl",DT:"dt",EM:"em",EMBED:"embed",FIELDSET:"fieldset",FIGCAPTION:"figcaption",FIGURE:"figure",FONT:"font",FOOTER:"footer",FOREIGN_OBJECT:"foreignObject",FORM:"form",FRAME:"frame",FRAMESET:"frameset",H1:"h1",H2:"h2",H3:"h3",H4:"h4",H5:"h5",H6:"h6",HEAD:"head",HEADER:"header",HGROUP:"hgroup",HR:"hr",HTML:"html",I:"i",IMG:"img",IMAGE:"image",INPUT:"input",IFRAME:"iframe",KEYGEN:"keygen",LABEL:"label",LI:"li",LINK:"link",LISTING:"listing",MAIN:"main",MALIGNMARK:"malignmark",MARQUEE:"marquee",MATH:"math",MENU:"menu",META:"meta",MGLYPH:"mglyph",MI:"mi",MO:"mo",MN:"mn",MS:"ms",MTEXT:"mtext",NAV:"nav",NOBR:"nobr",NOFRAMES:"noframes",NOEMBED:"noembed",NOSCRIPT:"noscript",OBJECT:"object",OL:"ol",OPTGROUP:"optgroup",OPTION:"option",P:"p",PARAM:"param",PLAINTEXT:"plaintext",PRE:"pre",RB:"rb",RP:"rp",RT:"rt",RTC:"rtc",RUBY:"ruby",S:"s",SCRIPT:"script",SECTION:"section",SELECT:"select",SOURCE:"source",SMALL:"small",SPAN:"span",STRIKE:"strike",STRONG:"strong",STYLE:"style",SUB:"sub",SUMMARY:"summary",SUP:"sup",TABLE:"table",TBODY:"tbody",TEMPLATE:"template",TEXTAREA:"textarea",TFOOT:"tfoot",TD:"td",TH:"th",THEAD:"thead",TITLE:"title",TR:"tr",TRACK:"track",TT:"tt",U:"u",UL:"ul",SVG:"svg",VAR:"var",WBR:"wbr",XMP:"xmp"};t.SPECIAL_ELEMENTS={[n.HTML]:{[i.ADDRESS]:!0,[i.APPLET]:!0,[i.AREA]:!0,[i.ARTICLE]:!0,[i.ASIDE]:!0,[i.BASE]:!0,[i.BASEFONT]:!0,[i.BGSOUND]:!0,[i.BLOCKQUOTE]:!0,[i.BODY]:!0,[i.BR]:!0,[i.BUTTON]:!0,[i.CAPTION]:!0,[i.CENTER]:!0,[i.COL]:!0,[i.COLGROUP]:!0,[i.DD]:!0,[i.DETAILS]:!0,[i.DIR]:!0,[i.DIV]:!0,[i.DL]:!0,[i.DT]:!0,[i.EMBED]:!0,[i.FIELDSET]:!0,[i.FIGCAPTION]:!0,[i.FIGURE]:!0,[i.FOOTER]:!0,[i.FORM]:!0,[i.FRAME]:!0,[i.FRAMESET]:!0,[i.H1]:!0,[i.H2]:!0,[i.H3]:!0,[i.H4]:!0,[i.H5]:!0,[i.H6]:!0,[i.HEAD]:!0,[i.HEADER]:!0,[i.HGROUP]:!0,[i.HR]:!0,[i.HTML]:!0,[i.IFRAME]:!0,[i.IMG]:!0,[i.INPUT]:!0,[i.LI]:!0,[i.LINK]:!0,[i.LISTING]:!0,[i.MAIN]:!0,[i.MARQUEE]:!0,[i.MENU]:!0,[i.META]:!0,[i.NAV]:!0,[i.NOEMBED]:!0,[i.NOFRAMES]:!0,[i.NOSCRIPT]:!0,[i.OBJECT]:!0,[i.OL]:!0,[i.P]:!0,[i.PARAM]:!0,[i.PLAINTEXT]:!0,[i.PRE]:!0,[i.SCRIPT]:!0,[i.SECTION]:!0,[i.SELECT]:!0,[i.SOURCE]:!0,[i.STYLE]:!0,[i.SUMMARY]:!0,[i.TABLE]:!0,[i.TBODY]:!0,[i.TD]:!0,[i.TEMPLATE]:!0,[i.TEXTAREA]:!0,[i.TFOOT]:!0,[i.TH]:!0,[i.THEAD]:!0,[i.TITLE]:!0,[i.TR]:!0,[i.TRACK]:!0,[i.UL]:!0,[i.WBR]:!0,[i.XMP]:!0},[n.MATHML]:{[i.MI]:!0,[i.MO]:!0,[i.MN]:!0,[i.MS]:!0,[i.MTEXT]:!0,[i.ANNOTATION_XML]:!0},[n.SVG]:{[i.TITLE]:!0,[i.FOREIGN_OBJECT]:!0,[i.DESC]:!0}}},e=>{"use strict";class t{constructor(e){this.length=0,this.entries=[],this.treeAdapter=e,this.bookmark=null}_getNoahArkConditionCandidates(e){let n=[];if(this.length>=3){let i=this.treeAdapter.getAttrList(e).length,r=this.treeAdapter.getTagName(e),a=this.treeAdapter.getNamespaceURI(e);for(let o=this.length-1;o>=0;o--){let s=this.entries[o];if(s.type===t.MARKER_ENTRY)break;let _=s.element,l=this.treeAdapter.getAttrList(_),c=this.treeAdapter.getTagName(_)===r&&this.treeAdapter.getNamespaceURI(_)===a&&l.length===i;c&&n.push({idx:o,attrs:l})}}return n.length<3?[]:n}_ensureNoahArkCondition(e){let t=this._getNoahArkConditionCandidates(e),n=t.length;if(n){let i=this.treeAdapter.getAttrList(e),r=i.length,a=Object.create(null);for(let o=0;o=2;u--)this.entries.splice(t[u].idx,1),this.length--}}insertMarker(){this.entries.push({type:t.MARKER_ENTRY}),this.length++}pushElement(e,n){this._ensureNoahArkCondition(e),this.entries.push({type:t.ELEMENT_ENTRY,element:e,token:n}),this.length++}insertElementAfterBookmark(e,n){let i=this.length-1;for(;i>=0&&this.entries[i]!==this.bookmark;i--);this.entries.splice(i+1,0,{type:t.ELEMENT_ENTRY,element:e,token:n}),this.length++}removeEntry(e){for(let t=this.length-1;t>=0;t--)if(this.entries[t]===e){this.entries.splice(t,1),this.length--;break}}clearToLastMarker(){for(;this.length;){let e=this.entries.pop();if(this.length--,e.type===t.MARKER_ENTRY)break}}getElementEntryInScopeWithTagName(e){for(let n=this.length-1;n>=0;n--){let i=this.entries[n];if(i.type===t.MARKER_ENTRY)break;if(this.treeAdapter.getTagName(i.element)===e)return i}return null}getElementEntry(e){for(let n=this.length-1;n>=0;n--){let i=this.entries[n];if(i.type===t.ELEMENT_ENTRY&&i.element===e)return i}return null}}t.MARKER_ENTRY="MARKER_ENTRY",t.ELEMENT_ENTRY="ELEMENT_ENTRY",e.exports=t},(e,t,n)=>{"use strict";let i=n(14),r=n(5),a=n(15),o=n(17),s=n(11),_=s.TAG_NAMES;class l extends i{constructor(e){super(e),this.parser=e,this.treeAdapter=this.parser.treeAdapter,this.posTracker=null,this.lastStartTagToken=null,this.lastFosterParentingLocation=null,this.currentToken=null}_setStartLocation(e){let t=null;this.lastStartTagToken&&((t=Object.assign({},this.lastStartTagToken.location)).startTag=this.lastStartTagToken.location),this.treeAdapter.setNodeSourceCodeLocation(e,t)}_setEndLocation(e,t){let n=this.treeAdapter.getNodeSourceCodeLocation(e);if(n&&t.location){let i=t.location,a=this.treeAdapter.getTagName(e),o=t.type===r.END_TAG_TOKEN&&a===t.tagName,s={};o?(s.endTag=Object.assign({},i),s.endLine=i.endLine,s.endCol=i.endCol,s.endOffset=i.endOffset):(s.endLine=i.startLine,s.endCol=i.startCol,s.endOffset=i.startOffset),this.treeAdapter.updateNodeSourceCodeLocation(e,s)}}_getOverriddenMethods(e,t){return{_bootstrap(n,r){t._bootstrap.call(this,n,r),e.lastStartTagToken=null,e.lastFosterParentingLocation=null,e.currentToken=null;let s=i.install(this.tokenizer,a);e.posTracker=s.posTracker,i.install(this.openElements,o,{onItemPop:function(t){e._setEndLocation(t,e.currentToken)}})},_runParsingLoop(n){t._runParsingLoop.call(this,n);for(let i=this.openElements.stackTop;i>=0;i--)e._setEndLocation(this.openElements.items[i],e.currentToken)},_processTokenInForeignContent(n){e.currentToken=n,t._processTokenInForeignContent.call(this,n)},_processToken(n){e.currentToken=n,t._processToken.call(this,n);let i=n.type===r.END_TAG_TOKEN&&(n.tagName===_.HTML||n.tagName===_.BODY&&this.openElements.hasInScope(_.BODY));if(i)for(let a=this.openElements.stackTop;a>=0;a--){let o=this.openElements.items[a];if(this.treeAdapter.getTagName(o)===n.tagName){e._setEndLocation(o,n);break}}},_setDocumentType(e){t._setDocumentType.call(this,e);let n=this.treeAdapter.getChildNodes(this.document),i=n.length;for(let r=0;r{"use strict";class t{constructor(e){let t={},n=this._getOverriddenMethods(this,t);for(let i of Object.keys(n))"function"==typeof n[i]&&(t[i]=e[i],e[i]=n[i])}_getOverriddenMethods(){throw Error("Not implemented")}}t.install=function(e,t,n){e.__mixins||(e.__mixins=[]);for(let i=0;i{"use strict";let i=n(14),r=n(5),a=n(16);class o extends i{constructor(e){super(e),this.tokenizer=e,this.posTracker=i.install(e.preprocessor,a),this.currentAttrLocation=null,this.ctLoc=null}_getCurrentLocation(){return{startLine:this.posTracker.line,startCol:this.posTracker.col,startOffset:this.posTracker.offset,endLine:-1,endCol:-1,endOffset:-1}}_attachCurrentAttrLocationInfo(){this.currentAttrLocation.endLine=this.posTracker.line,this.currentAttrLocation.endCol=this.posTracker.col,this.currentAttrLocation.endOffset=this.posTracker.offset;let e=this.tokenizer.currentToken,t=this.tokenizer.currentAttr;e.location.attrs||(e.location.attrs=Object.create(null)),e.location.attrs[t.name]=this.currentAttrLocation}_getOverriddenMethods(e,t){let n={_createStartTagToken(){t._createStartTagToken.call(this),this.currentToken.location=e.ctLoc},_createEndTagToken(){t._createEndTagToken.call(this),this.currentToken.location=e.ctLoc},_createCommentToken(){t._createCommentToken.call(this),this.currentToken.location=e.ctLoc},_createDoctypeToken(n){t._createDoctypeToken.call(this,n),this.currentToken.location=e.ctLoc},_createCharacterToken(n,i){t._createCharacterToken.call(this,n,i),this.currentCharacterToken.location=e.ctLoc},_createEOFToken(){t._createEOFToken.call(this),this.currentToken.location=e._getCurrentLocation()},_createAttr(n){t._createAttr.call(this,n),e.currentAttrLocation=e._getCurrentLocation()},_leaveAttrName(n){t._leaveAttrName.call(this,n),e._attachCurrentAttrLocationInfo()},_leaveAttrValue(n){t._leaveAttrValue.call(this,n),e._attachCurrentAttrLocationInfo()},_emitCurrentToken(){let n=this.currentToken.location;this.currentCharacterToken&&(this.currentCharacterToken.location.endLine=n.startLine,this.currentCharacterToken.location.endCol=n.startCol,this.currentCharacterToken.location.endOffset=n.startOffset),this.currentToken.type===r.EOF_TOKEN?(n.endLine=n.startLine,n.endCol=n.startCol,n.endOffset=n.startOffset):(n.endLine=e.posTracker.line,n.endCol=e.posTracker.col+1,n.endOffset=e.posTracker.offset+1),t._emitCurrentToken.call(this)},_emitCurrentCharacterToken(){let n=this.currentCharacterToken&&this.currentCharacterToken.location;n&&-1===n.endOffset&&(n.endLine=e.posTracker.line,n.endCol=e.posTracker.col,n.endOffset=e.posTracker.offset),t._emitCurrentCharacterToken.call(this)}};return Object.keys(r.MODE).forEach(i=>{let a=r.MODE[i];n[a]=function(n){e.ctLoc=e._getCurrentLocation(),t[a].call(this,n)}}),n}}e.exports=o},(e,t,n)=>{"use strict";let i=n(14);class r extends i{constructor(e){super(e),this.preprocessor=e,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.offset=0,this.col=0,this.line=1}_getOverriddenMethods(e,t){return{advance(){let n=this.pos+1,i=this.html[n];return e.isEol&&(e.isEol=!1,e.line++,e.lineStartPos=n),("\n"===i||"\r"===i&&"\n"!==this.html[n+1])&&(e.isEol=!0),e.col=n-e.lineStartPos+1,e.offset=e.droppedBufferSize+n,t.advance.call(this)},retreat(){t.retreat.call(this),e.isEol=!1,e.col=this.pos-e.lineStartPos+1},dropParsedChunk(){let n=this.pos;t.dropParsedChunk.call(this);let i=n-this.pos;e.lineStartPos-=i,e.droppedBufferSize+=i,e.offset=e.droppedBufferSize+this.pos}}}}e.exports=r},(e,t,n)=>{"use strict";let i=n(14);class r extends i{constructor(e,t){super(e),this.onItemPop=t.onItemPop}_getOverriddenMethods(e,t){return{pop(){e.onItemPop(this.current),t.pop.call(this)},popAllUpToHtmlElement(){for(let n=this.stackTop;n>0;n--)e.onItemPop(this.items[n]);t.popAllUpToHtmlElement.call(this)},remove(n){e.onItemPop(this.current),t.remove.call(this,n)}}}}e.exports=r},(e,t,n)=>{"use strict";let i=n(19),r=n(20),a=n(15),o=n(14);class s extends i{constructor(e,t){super(e,t),this.opts=t,this.ctLoc=null,this.locBeforeToken=!1}_setErrorLocation(e){this.ctLoc&&(e.startLine=this.ctLoc.startLine,e.startCol=this.ctLoc.startCol,e.startOffset=this.ctLoc.startOffset,e.endLine=this.locBeforeToken?this.ctLoc.startLine:this.ctLoc.endLine,e.endCol=this.locBeforeToken?this.ctLoc.startCol:this.ctLoc.endCol,e.endOffset=this.locBeforeToken?this.ctLoc.startOffset:this.ctLoc.endOffset)}_getOverriddenMethods(e,t){return{_bootstrap(n,i){t._bootstrap.call(this,n,i),o.install(this.tokenizer,r,e.opts),o.install(this.tokenizer,a)},_processInputToken(n){e.ctLoc=n.location,t._processInputToken.call(this,n)},_err(t,n){e.locBeforeToken=n&&n.beforeToken,e._reportError(t)}}}}e.exports=s},(e,t,n)=>{"use strict";let i=n(14);class r extends i{constructor(e,t){super(e),this.posTracker=null,this.onParseError=t.onParseError}_setErrorLocation(e){e.startLine=e.endLine=this.posTracker.line,e.startCol=e.endCol=this.posTracker.col,e.startOffset=e.endOffset=this.posTracker.offset}_reportError(e){let t={code:e,startLine:-1,startCol:-1,startOffset:-1,endLine:-1,endCol:-1,endOffset:-1};this._setErrorLocation(t),this.onParseError(t)}_getOverriddenMethods(e){return{_err(t){e._reportError(t)}}}}e.exports=r},(e,t,n)=>{"use strict";let i=n(19),r=n(21),a=n(14);class o extends i{constructor(e,t){super(e,t);let n=a.install(e.preprocessor,r,t);this.posTracker=n.posTracker}}e.exports=o},(e,t,n)=>{"use strict";let i=n(19),r=n(16),a=n(14);class o extends i{constructor(e,t){super(e,t),this.posTracker=a.install(e,r),this.lastErrOffset=-1}_reportError(e){this.lastErrOffset!==this.posTracker.offset&&(this.lastErrOffset=this.posTracker.offset,super._reportError(e))}}e.exports=o},(e,t,n)=>{"use strict";let{DOCUMENT_MODE:i}=n(11);t.createDocument=function(){return{nodeName:"#document",mode:i.NO_QUIRKS,childNodes:[]}},t.createDocumentFragment=function(){return{nodeName:"#document-fragment",childNodes:[]}},t.createElement=function(e,t,n){return{nodeName:e,tagName:e,attrs:n,namespaceURI:t,childNodes:[],parentNode:null}},t.createCommentNode=function(e){return{nodeName:"#comment",data:e,parentNode:null}};let r=function(e){return{nodeName:"#text",value:e,parentNode:null}},a=t.appendChild=function(e,t){e.childNodes.push(t),t.parentNode=e},o=t.insertBefore=function(e,t,n){let i=e.childNodes.indexOf(n);e.childNodes.splice(i,0,t),t.parentNode=e};t.setTemplateContent=function(e,t){e.content=t},t.getTemplateContent=function(e){return e.content},t.setDocumentType=function(e,t,n,i){let r=null;for(let o=0;o{"use strict";e.exports=function e(t,n){return[t,n=n||Object.create(null)].reduce((e,t)=>(Object.keys(t).forEach(n=>{e[n]=t[n]}),e),Object.create(null))}},(e,t,n)=>{"use strict";let{DOCUMENT_MODE:i}=n(11),r="html",a=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],o=a.concat(["-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"]),s=["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"],_=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],l=_.concat(["-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"]);function c(e){let t=-1!==e.indexOf('"')?"'":'"';return t+e+t}function u(e,t){for(let n=0;n-1)return i.QUIRKS;let c=null===t?o:a;if(u(n,c))return i.QUIRKS;if(u(n,c=null===t?_:l))return i.LIMITED_QUIRKS}return i.NO_QUIRKS},t.serializeContent=function(e,t,n){let i="!DOCTYPE ";return e&&(i+=e),t?i+=" PUBLIC "+c(t):n&&(i+=" SYSTEM"),null!==n&&(i+=" "+c(n)),i}},(e,t,n)=>{"use strict";let i=n(5),r=n(11),a=r.TAG_NAMES,o=r.NAMESPACES,s=r.ATTRS,_={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},l={attributename:"attributeName",attributetype:"attributeType",basefrequency:"baseFrequency",baseprofile:"baseProfile",calcmode:"calcMode",clippathunits:"clipPathUnits",diffuseconstant:"diffuseConstant",edgemode:"edgeMode",filterunits:"filterUnits",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",limitingconeangle:"limitingConeAngle",markerheight:"markerHeight",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textlength:"textLength",viewbox:"viewBox",viewtarget:"viewTarget",xchannelselector:"xChannelSelector",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan"},c={"xlink:actuate":{prefix:"xlink",name:"actuate",namespace:o.XLINK},"xlink:arcrole":{prefix:"xlink",name:"arcrole",namespace:o.XLINK},"xlink:href":{prefix:"xlink",name:"href",namespace:o.XLINK},"xlink:role":{prefix:"xlink",name:"role",namespace:o.XLINK},"xlink:show":{prefix:"xlink",name:"show",namespace:o.XLINK},"xlink:title":{prefix:"xlink",name:"title",namespace:o.XLINK},"xlink:type":{prefix:"xlink",name:"type",namespace:o.XLINK},"xml:base":{prefix:"xml",name:"base",namespace:o.XML},"xml:lang":{prefix:"xml",name:"lang",namespace:o.XML},"xml:space":{prefix:"xml",name:"space",namespace:o.XML},xmlns:{prefix:"",name:"xmlns",namespace:o.XMLNS},"xmlns:xlink":{prefix:"xmlns",name:"xlink",namespace:o.XMLNS}},u=t.SVG_TAG_NAMES_ADJUSTMENT_MAP={altglyph:"altGlyph",altglyphdef:"altGlyphDef",altglyphitem:"altGlyphItem",animatecolor:"animateColor",animatemotion:"animateMotion",animatetransform:"animateTransform",clippath:"clipPath",feblend:"feBlend",fecolormatrix:"feColorMatrix",fecomponenttransfer:"feComponentTransfer",fecomposite:"feComposite",feconvolvematrix:"feConvolveMatrix",fediffuselighting:"feDiffuseLighting",fedisplacementmap:"feDisplacementMap",fedistantlight:"feDistantLight",feflood:"feFlood",fefunca:"feFuncA",fefuncb:"feFuncB",fefuncg:"feFuncG",fefuncr:"feFuncR",fegaussianblur:"feGaussianBlur",feimage:"feImage",femerge:"feMerge",femergenode:"feMergeNode",femorphology:"feMorphology",feoffset:"feOffset",fepointlight:"fePointLight",fespecularlighting:"feSpecularLighting",fespotlight:"feSpotLight",fetile:"feTile",feturbulence:"feTurbulence",foreignobject:"foreignObject",glyphref:"glyphRef",lineargradient:"linearGradient",radialgradient:"radialGradient",textpath:"textPath"},p={[a.B]:!0,[a.BIG]:!0,[a.BLOCKQUOTE]:!0,[a.BODY]:!0,[a.BR]:!0,[a.CENTER]:!0,[a.CODE]:!0,[a.DD]:!0,[a.DIV]:!0,[a.DL]:!0,[a.DT]:!0,[a.EM]:!0,[a.EMBED]:!0,[a.H1]:!0,[a.H2]:!0,[a.H3]:!0,[a.H4]:!0,[a.H5]:!0,[a.H6]:!0,[a.HEAD]:!0,[a.HR]:!0,[a.I]:!0,[a.IMG]:!0,[a.LI]:!0,[a.LISTING]:!0,[a.MENU]:!0,[a.META]:!0,[a.NOBR]:!0,[a.OL]:!0,[a.P]:!0,[a.PRE]:!0,[a.RUBY]:!0,[a.S]:!0,[a.SMALL]:!0,[a.SPAN]:!0,[a.STRONG]:!0,[a.STRIKE]:!0,[a.SUB]:!0,[a.SUP]:!0,[a.TABLE]:!0,[a.TT]:!0,[a.U]:!0,[a.UL]:!0,[a.VAR]:!0};function $(e,t){return t===o.MATHML&&(e===a.MI||e===a.MO||e===a.MN||e===a.MS||e===a.MTEXT)}function d(e,t,n){if(t===o.MATHML&&e===a.ANNOTATION_XML){for(let i=0;i{"use strict";let i=n(22),r=n(23),a=n(24),o=n(11),s=o.TAG_NAMES,_=o.NAMESPACES,l={treeAdapter:i},c=/&/g,u=/\u00a0/g,p=/"/g,$=//g;class m{constructor(e,t){this.options=r(l,t),this.treeAdapter=this.options.treeAdapter,this.html="",this.startNode=e}serialize(){return this._serializeChildNodes(this.startNode),this.html}_serializeChildNodes(e){let t=this.treeAdapter.getChildNodes(e);if(t)for(let n=0,i=t.length;n",t!==s.AREA&&t!==s.BASE&&t!==s.BASEFONT&&t!==s.BGSOUND&&t!==s.BR&&t!==s.COL&&t!==s.EMBED&&t!==s.FRAME&&t!==s.HR&&t!==s.IMG&&t!==s.INPUT&&t!==s.KEYGEN&&t!==s.LINK&&t!==s.META&&t!==s.PARAM&&t!==s.SOURCE&&t!==s.TRACK&&t!==s.WBR){let i=t===s.TEMPLATE&&n===_.HTML?this.treeAdapter.getTemplateContent(e):e;this._serializeChildNodes(i),this.html+=""}}_serializeAttributes(e){let t=this.treeAdapter.getAttrList(e);for(let n=0,i=t.length;n"}_serializeDocumentTypeNode(e){let t=this.treeAdapter.getDocumentTypeNodeName(e);this.html+="<"+a.serializeContent(t,null,null)+">"}}m.escapeString=function(e,t){return e=e.replace(c,"&").replace(u," "),e=t?e.replace(p,"""):e.replace($,"<").replace(d,">")},e.exports=m},(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var i=n(28),r=n(2),a=n(138);class o extends r.default{constructor(e){super(),this.ctx=e,this.meta=e.meta,this.parsel=a.default,this.parse=i.parse,this.walk=i.walk,this.generate=i.generate}rewrite(e,t){return this.recast(e,t,"rewrite")}source(e,t){return this.recast(e,t,"source")}recast(e,t,n){if(!e)return e;e=new String(e).toString();try{let i=this.parse(e,{...t,parseCustomProperty:!0});return this.walk(i,e=>{this.emit(e.type,e,t,n)}),this.generate(i)}catch(r){return e}}}let s=o},(e,t,n)=>{"use strict";n.r(t),n.d(t,{version:()=>r.version,createSyntax:()=>a.default,List:()=>o.List,Lexer:()=>s.Lexer,tokenTypes:()=>_.tokenTypes,tokenNames:()=>_.tokenNames,TokenStream:()=>_.TokenStream,definitionSyntax:()=>l,clone:()=>c.clone,isCustomProperty:()=>u.isCustomProperty,keyword:()=>u.keyword,property:()=>u.property,vendorPrefix:()=>u.vendorPrefix,ident:()=>p,string:()=>$,url:()=>d,tokenize:()=>m,parse:()=>h,generate:()=>f,lexer:()=>g,createLexer:()=>x,walk:()=>v,find:()=>b,findLast:()=>k,findAll:()=>T,toPlainObject:()=>E,fromPlainObject:()=>y,fork:()=>A});var i=n(29),r=n(135),a=n(30),o=n(40),s=n(55),_=n(31),l=n(62),c=n(136),u=n(58),p=n(137),$=n(111),d=n(116);let{tokenize:m,parse:h,generate:f,lexer:g,createLexer:x,walk:v,find:b,findLast:k,findAll:T,toPlainObject:E,fromPlainObject:y,fork:A}=i.default},(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var i=n(30),r=n(74),a=n(119),o=n(134);let s=(0,i.default)({...r.default,...a.default,...o.default})},(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var i=n(31),r=n(39),a=n(44),o=n(53),s=n(54),_=n(55),l=n(73);function c(e){let t=(0,r.createParser)(e),n=(0,s.createWalker)(e),u=(0,a.createGenerator)(e),{fromPlainObject:p,toPlainObject:$}=(0,o.createConvertor)(n),d={lexer:null,createLexer:e=>new _.Lexer(e,d,d.lexer.structure),tokenize:i.tokenize,parse:t,generate:u,walk:n,find:n.find,findLast:n.findLast,findAll:n.findAll,fromPlainObject:p,toPlainObject:$,fork(t){let n=(0,l.default)({},e);return c("function"==typeof t?t(n,Object.assign):(0,l.default)(n,t))}};return d.lexer=new _.Lexer({generic:!0,types:e.types,atrules:e.atrules,properties:e.properties,node:e.node},d),d}let u=e=>c((0,l.default)({},e))},(e,t,n)=>{"use strict";n.r(t),n.d(t,{tokenize:()=>l,AtKeyword:()=>i.AtKeyword,BadString:()=>i.BadString,BadUrl:()=>i.BadUrl,CDC:()=>i.CDC,CDO:()=>i.CDO,Colon:()=>i.Colon,Comma:()=>i.Comma,Comment:()=>i.Comment,Delim:()=>i.Delim,Dimension:()=>i.Dimension,EOF:()=>i.EOF,Function:()=>i.Function,Hash:()=>i.Hash,Ident:()=>i.Ident,LeftCurlyBracket:()=>i.LeftCurlyBracket,LeftParenthesis:()=>i.LeftParenthesis,LeftSquareBracket:()=>i.LeftSquareBracket,Number:()=>i.Number,Percentage:()=>i.Percentage,RightCurlyBracket:()=>i.RightCurlyBracket,RightParenthesis:()=>i.RightParenthesis,RightSquareBracket:()=>i.RightSquareBracket,Semicolon:()=>i.Semicolon,String:()=>i.String,Url:()=>i.Url,WhiteSpace:()=>i.WhiteSpace,tokenTypes:()=>i,tokenNames:()=>o.default,DigitCategory:()=>r.DigitCategory,EofCategory:()=>r.EofCategory,NameStartCategory:()=>r.NameStartCategory,NonPrintableCategory:()=>r.NonPrintableCategory,WhiteSpaceCategory:()=>r.WhiteSpaceCategory,charCodeCategory:()=>r.charCodeCategory,isBOM:()=>r.isBOM,isDigit:()=>r.isDigit,isHexDigit:()=>r.isHexDigit,isIdentifierStart:()=>r.isIdentifierStart,isLetter:()=>r.isLetter,isLowercaseLetter:()=>r.isLowercaseLetter,isName:()=>r.isName,isNameStart:()=>r.isNameStart,isNewline:()=>r.isNewline,isNonAscii:()=>r.isNonAscii,isNonPrintable:()=>r.isNonPrintable,isNumberStart:()=>r.isNumberStart,isUppercaseLetter:()=>r.isUppercaseLetter,isValidEscape:()=>r.isValidEscape,isWhiteSpace:()=>r.isWhiteSpace,cmpChar:()=>a.cmpChar,cmpStr:()=>a.cmpStr,consumeBadUrlRemnants:()=>a.consumeBadUrlRemnants,consumeEscaped:()=>a.consumeEscaped,consumeName:()=>a.consumeName,consumeNumber:()=>a.consumeNumber,decodeEscaped:()=>a.decodeEscaped,findDecimalNumberEnd:()=>a.findDecimalNumberEnd,findWhiteSpaceEnd:()=>a.findWhiteSpaceEnd,findWhiteSpaceStart:()=>a.findWhiteSpaceStart,getNewlineLength:()=>a.getNewlineLength,OffsetToLocation:()=>s.OffsetToLocation,TokenStream:()=>_.TokenStream});var i=n(32),r=n(33),a=n(34),o=n(35),s=n(36),_=n(38);function l(e,t){function n(t){return t=e.length){u{"use strict";n.r(t),n.d(t,{EOF:()=>i,Ident:()=>r,Function:()=>a,AtKeyword:()=>o,Hash:()=>s,String:()=>_,BadString:()=>l,Url:()=>c,BadUrl:()=>u,Delim:()=>p,Number:()=>$,Percentage:()=>d,Dimension:()=>m,WhiteSpace:()=>h,CDO:()=>f,CDC:()=>g,Colon:()=>x,Semicolon:()=>v,Comma:()=>b,LeftSquareBracket:()=>k,RightSquareBracket:()=>T,LeftParenthesis:()=>E,RightParenthesis:()=>y,LeftCurlyBracket:()=>A,RightCurlyBracket:()=>C,Comment:()=>w});let i=0,r=1,a=2,o=3,s=4,_=5,l=6,c=7,u=8,p=9,$=10,d=11,m=12,h=13,f=14,g=15,x=16,v=17,b=18,k=19,T=20,E=21,y=22,A=23,C=24,w=25},(e,t,n)=>{"use strict";n.r(t),n.d(t,{isDigit:()=>i,isHexDigit:()=>r,isUppercaseLetter:()=>a,isLowercaseLetter:()=>o,isLetter:()=>s,isNonAscii:()=>_,isNameStart:()=>l,isName:()=>c,isNonPrintable:()=>u,isNewline:()=>p,isWhiteSpace:()=>$,isValidEscape:()=>d,isIdentifierStart:()=>m,isNumberStart:()=>h,isBOM:()=>f,EofCategory:()=>x,WhiteSpaceCategory:()=>v,DigitCategory:()=>b,NameStartCategory:()=>k,NonPrintableCategory:()=>T,charCodeCategory:()=>y});function i(e){return e>=48&&e<=57}function r(e){return i(e)||e>=65&&e<=70||e>=97&&e<=102}function a(e){return e>=65&&e<=90}function o(e){return e>=97&&e<=122}function s(e){return a(e)||o(e)}function _(e){return e>=128}function l(e){return s(e)||_(e)||95===e}function c(e){return l(e)||i(e)||45===e}function u(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e}function p(e){return 10===e||13===e||12===e}function $(e){return p(e)||32===e||9===e}function d(e,t){return!(92!==e||p(t)||0===t)}function m(e,t,n){return 45===e?l(t)||45===t||d(t,n):!!l(e)||92===e&&d(e,t)}function h(e,t,n){return 43===e||45===e?i(t)?2:46===t&&i(n)?3:0:46===e?i(t)?2:0:i(e)?1:0}function f(e){return 65279===e||65534===e?1:0}let g=Array(128),x=128,v=130,b=131,k=132,T=133;for(let E=0;E{"use strict";n.r(t),n.d(t,{getNewlineLength:()=>a,cmpChar:()=>o,cmpStr:()=>s,findWhiteSpaceStart:()=>_,findWhiteSpaceEnd:()=>l,findDecimalNumberEnd:()=>c,consumeEscaped:()=>u,consumeName:()=>p,consumeNumber:()=>$,consumeBadUrlRemnants:()=>d,decodeEscaped:()=>m});var i=n(33);function r(e,t){return te.length)return!1;for(let a=t;a=0&&(0,i.isWhiteSpace)(e.charCodeAt(t));t--);return t+1}function l(e,t){for(;t=55296&&t<=57343||t>1114111)&&(t=65533),String.fromCodePoint(t)}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});let i=["EOF-token","ident-token","function-token","at-keyword-token","hash-token","string-token","bad-string-token","url-token","bad-url-token","delim-token","number-token","percentage-token","dimension-token","whitespace-token","CDO-token","CDC-token","colon-token","semicolon-token","comma-token","[-token","]-token","(-token",")-token","{-token","}-token"]},(e,t,n)=>{"use strict";n.r(t),n.d(t,{OffsetToLocation:()=>o});var i=n(37),r=n(33);function a(e){let t=e.source,n=t.length,a=t.length>0?(0,r.isBOM)(t.charCodeAt(0)):0,o=(0,i.adoptBuffer)(e.lines,n),s=(0,i.adoptBuffer)(e.columns,n),_=e.startLine,l=e.startColumn;for(let c=a;c{"use strict";n.r(t),n.d(t,{adoptBuffer:()=>i});function i(e=null,t){return null===e||e.length{"use strict";n.r(t),n.d(t,{TokenStream:()=>_});var i=n(37),r=n(34),a=n(35),o=n(32);let s=new Map([[o.Function,o.RightParenthesis],[o.LeftParenthesis,o.RightParenthesis],[o.LeftSquareBracket,o.RightSquareBracket],[o.LeftCurlyBracket,o.RightCurlyBracket]]);class _{constructor(e,t){this.setSource(e,t)}reset(){this.eof=!1,this.tokenIndex=-1,this.tokenType=0,this.tokenStart=this.firstCharOffset,this.tokenEnd=this.firstCharOffset}setSource(e="",t=()=>{}){e=String(e||"");let n=e.length,r=(0,i.adoptBuffer)(this.offsetAndType,e.length+1),a=(0,i.adoptBuffer)(this.balance,e.length+1),_=0,l=0,c=0,u=-1;for(this.offsetAndType=null,this.balance=null,t(e,(e,t,i)=>{switch(e){default:a[_]=n;break;case l:{let p=16777215&c;for(l=(c=a[p])>>24,a[_]=p,a[p++]=_;p<_;p++)a[p]===n&&(a[p]=_);break}case o.LeftParenthesis:case o.Function:case o.LeftSquareBracket:case o.LeftCurlyBracket:a[_]=c,c=(l=s.get(e))<<24|_}r[_++]=e<<24|i,-1===u&&(u=t)}),r[_]=o.EOF<<24|n,a[_]=n,a[n]=n;0!==c;){let p=16777215&c;c=a[p],a[p]=n}this.source=e,this.firstCharOffset=-1===u?0:u,this.tokenCount=_,this.offsetAndType=r,this.balance=a,this.reset(),this.next()}lookupType(e){return(e+=this.tokenIndex)>24:o.EOF}lookupOffset(e){return(e+=this.tokenIndex)0?e>24,this.tokenEnd=16777215&t):(this.tokenIndex=this.tokenCount,this.next())}next(){let e=this.tokenIndex+1;e>24,this.tokenEnd=16777215&e):(this.eof=!0,this.tokenIndex=this.tokenCount,this.tokenType=o.EOF,this.tokenStart=this.tokenEnd=this.source.length)}skipSC(){for(;this.tokenType===o.WhiteSpace||this.tokenType===o.Comment;)this.next()}skipUntilBalanced(e,t){let n=e,i,r;loop:for(;n0?16777215&this.offsetAndType[n-1]:this.firstCharOffset,t(this.source.charCodeAt(r))){case 1:break loop;case 2:n++;break loop;default:this.balance[i]===n&&(n=i)}}this.skip(n-this.tokenIndex)}forEachToken(e){for(let t=0,n=this.firstCharOffset;t>24;n=a,e(o,i,a,t)}}dump(){let e=Array(this.tokenCount);return this.forEachToken((t,n,i,r)=>{e[r]={idx:r,type:a.default[t],chunk:this.source.substring(n,i),balance:this.balance[r]}}),e}}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{createParser:()=>u});var i=n(40),r=n(41),a=n(31),o=n(43);let s=()=>{};function _(e){return function(){return this[e]()}}function l(e){let t=Object.create(null);for(let n in e){let i=e[n];i.parse&&(t[n]=i.parse)}return t}function c(e){let t={context:Object.create(null),scope:Object.assign(Object.create(null),e.scope),atrule:l(e.atrule),pseudo:l(e.pseudo),node:l(e.node)};for(let n in e.parseContext)switch(typeof e.parseContext[n]){case"function":t.context[n]=e.parseContext[n];break;case"string":t.context[n]=_(e.parseContext[n])}return{config:t,...t,...t.node}}function u(e){let t="",n="",_=!1,l=s,u=!1,p=new a.OffsetToLocation,$=Object.assign(new a.TokenStream,c(e||{}),{parseAtrulePrelude:!0,parseRulePrelude:!0,parseValue:!0,parseCustomProperty:!1,readSequence:o.readSequence,consumeUntilBalanceEnd:()=>0,consumeUntilLeftCurlyBracket:e=>123===e?1:0,consumeUntilLeftCurlyBracketOrSemicolon:e=>123===e||59===e?1:0,consumeUntilExclamationMarkOrSemicolon:e=>33===e||59===e?1:0,consumeUntilSemicolonIncluded:e=>59===e?2:0,createList:()=>new i.List,createSingleNodeList:e=>new i.List().appendData(e),getFirstListNode:e=>e&&e.first,getLastListNode:e=>e&&e.last,parseWithFallback(e,t){let n=this.tokenIndex;try{return e.call(this)}catch(i){if(u)throw i;let r=t.call(this,n);return u=!0,l(i,r),u=!1,r}},lookupNonWSType(e){let t;do if((t=this.lookupType(e++))!==a.WhiteSpace)return t;while(0!==t);return 0},charCodeAt:e=>e>=0&&et.substring(e,n),substrToCursor(e){return this.source.substring(e,this.tokenStart)},cmpChar:(e,n)=>(0,a.cmpChar)(t,e,n),cmpStr:(e,n,i)=>(0,a.cmpStr)(t,e,n,i),consume(e){let t=this.tokenStart;return this.eat(e),this.substrToCursor(t)},consumeFunctionName(){let e=t.substring(this.tokenStart,this.tokenEnd-1);return this.eat(a.Function),e},consumeNumber(e){let n=t.substring(this.tokenStart,(0,a.consumeNumber)(t,this.tokenStart));return this.eat(e),n},eat(e){if(this.tokenType!==e){let t=a.tokenNames[e].slice(0,-6).replace(/-/g," ").replace(/^./,e=>e.toUpperCase()),n=`${/[[\](){}]/.test(t)?`"${t}"`:t} is expected`,i=this.tokenStart;switch(e){case a.Ident:this.tokenType===a.Function||this.tokenType===a.Url?(i=this.tokenEnd-1,n="Identifier is expected but function found"):n="Identifier is expected";break;case a.Hash:this.isDelim(35)&&(this.next(),i++,n="Name is expected");break;case a.Percentage:this.tokenType===a.Number&&(i=this.tokenEnd,n="Percent sign is expected")}this.error(n,i)}this.next()},eatIdent(e){(this.tokenType!==a.Ident||!1===this.lookupValue(0,e))&&this.error(`Identifier "${e}" is expected`),this.next()},eatDelim(e){this.isDelim(e)||this.error(`Delim "${String.fromCharCode(e)}" is expected`),this.next()},getLocation:(e,t)=>_?p.getLocationRange(e,t,n):null,getLocationFromList(e){if(_){let t=this.getFirstListNode(e),i=this.getLastListNode(e);return p.getLocationRange(null!==t?t.loc.start.offset-p.startOffset:this.tokenStart,null!==i?i.loc.end.offset-p.startOffset:this.tokenStart,n)}return null},error(e,n){let i=void 0!==n&&n",_=Boolean(i.positions),l="function"==typeof i.onParseError?i.onParseError:s,u=!1,$.parseAtrulePrelude=!("parseAtrulePrelude"in i)||Boolean(i.parseAtrulePrelude),$.parseRulePrelude=!("parseRulePrelude"in i)||Boolean(i.parseRulePrelude),$.parseValue=!("parseValue"in i)||Boolean(i.parseValue),$.parseCustomProperty="parseCustomProperty"in i&&Boolean(i.parseCustomProperty);let{context:r="default",onComment:o}=i;if(r in $.context==!1)throw Error("Unknown context `"+r+"`");"function"==typeof o&&$.forEachToken((e,n,i)=>{if(e===a.Comment){let r=$.getLocation(n,i),s=(0,a.cmpStr)(t,i-2,i,"*/")?t.slice(n+2,i-2):t.slice(n+2,i);o(s,r)}});let c=$.context[r].call($,i);return $.eof||$.error(),c};return Object.assign(d,{SyntaxError:r.SyntaxError,config:$.config})}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{List:()=>r});let i=null;class r{static createItem(e){return{prev:null,next:null,data:e}}constructor(){this.head=null,this.tail=null,this.cursor=null}createItem(e){return r.createItem(e)}allocateCursor(e,t){let n;return null!==i?(n=i,i=i.cursor,n.prev=e,n.next=t,n.cursor=this.cursor):n={prev:e,next:t,cursor:this.cursor},this.cursor=n,n}releaseCursor(){let{cursor:e}=this;this.cursor=e.cursor,e.prev=null,e.next=null,e.cursor=i,i=e}updateCursors(e,t,n,i){let{cursor:r}=this;for(;null!==r;)r.prev===e&&(r.prev=t),r.next===n&&(r.next=i),r=r.cursor}*[Symbol.iterator](){for(let e=this.head;null!==e;e=e.next)yield e.data}get size(){let e=0;for(let t=this.head;null!==t;t=t.next)e++;return e}get isEmpty(){return null===this.head}get first(){return this.head&&this.head.data}get last(){return this.tail&&this.tail.data}fromArray(e){let t=null;for(let n of(this.head=null,e)){let i=r.createItem(n);null!==t?t.next=i:this.head=i,i.prev=t,t=i}return this.tail=t,this}toArray(){return[...this]}toJSON(){return[...this]}forEach(e,t=this){let n=this.allocateCursor(null,this.head);for(;null!==n.next;){let i=n.next;n.next=i.next,e.call(t,i.data,i,this)}this.releaseCursor()}forEachRight(e,t=this){let n=this.allocateCursor(this.tail,null);for(;null!==n.prev;){let i=n.prev;n.prev=i.prev,e.call(t,i.data,i,this)}this.releaseCursor()}reduce(e,t,n=this){let i=this.allocateCursor(null,this.head),r=t,a;for(;null!==i.next;)a=i.next,i.next=a.next,r=e.call(n,r,a.data,a,this);return this.releaseCursor(),r}reduceRight(e,t,n=this){let i=this.allocateCursor(this.tail,null),r=t,a;for(;null!==i.prev;)a=i.prev,i.prev=a.prev,r=e.call(n,r,a.data,a,this);return this.releaseCursor(),r}some(e,t=this){for(let n=this.head;null!==n;n=n.next)if(e.call(t,n.data,n,this))return!0;return!1}map(e,t=this){let n=new r;for(let i=this.head;null!==i;i=i.next)n.appendData(e.call(t,i.data,i,this));return n}filter(e,t=this){let n=new r;for(let i=this.head;null!==i;i=i.next)e.call(t,i.data,i,this)&&n.appendData(i.data);return n}nextUntil(e,t,n=this){if(null===e)return;let i=this.allocateCursor(null,e);for(;null!==i.next;){let r=i.next;if(i.next=r.next,t.call(n,r.data,r,this))break}this.releaseCursor()}prevUntil(e,t,n=this){if(null===e)return;let i=this.allocateCursor(e,null);for(;null!==i.prev;){let r=i.prev;if(i.prev=r.prev,t.call(n,r.data,r,this))break}this.releaseCursor()}clear(){this.head=null,this.tail=null}copy(){let e=new r;for(let t of this)e.appendData(t);return e}prepend(e){return this.updateCursors(null,e,this.head,e),null!==this.head?(this.head.prev=e,e.next=this.head):this.tail=e,this.head=e,this}prependData(e){return this.prepend(r.createItem(e))}append(e){return this.insert(e)}appendData(e){return this.insert(r.createItem(e))}insert(e,t=null){if(null!==t){if(this.updateCursors(t.prev,e,t,e),null===t.prev){if(this.head!==t)throw Error("before doesn't belong to list");this.head=e,t.prev=e,e.next=t,this.updateCursors(null,e)}else t.prev.next=e,e.prev=t.prev,t.prev=e,e.next=t}else this.updateCursors(this.tail,e,null,e),null!==this.tail?(this.tail.next=e,e.prev=this.tail):this.head=e,this.tail=e;return this}insertData(e,t){return this.insert(r.createItem(e),t)}remove(e){if(this.updateCursors(e,e.prev,e,e.next),null!==e.prev)e.prev.next=e.next;else{if(this.head!==e)throw Error("item doesn't belong to list");this.head=e.next}if(null!==e.next)e.next.prev=e.prev;else{if(this.tail!==e)throw Error("item doesn't belong to list");this.tail=e.prev}return e.prev=null,e.next=null,e}push(e){this.insert(r.createItem(e))}pop(){return null!==this.tail?this.remove(this.tail):null}unshift(e){this.prepend(r.createItem(e))}shift(){return null!==this.head?this.remove(this.head):null}prependList(e){return this.insertList(e,this.head)}appendList(e){return this.insertList(e)}insertList(e,t){return null===e.head||(null!=t?(this.updateCursors(t.prev,e.tail,t,e.head),null!==t.prev?(t.prev.next=e.head,e.head.prev=t.prev):this.head=e.head,t.prev=e.tail,e.tail.next=t):(this.updateCursors(this.tail,e.tail,null,e.head),null!==this.tail?(this.tail.next=e.head,e.head.prev=this.tail):this.head=e.head,this.tail=e.tail),e.head=null,e.tail=null),this}replace(e,t){"head"in t?this.insertList(t,e):this.insert(t,e),this.remove(e)}}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{SyntaxError:()=>o});var i=n(42);let r=" ";function a({source:e,line:t,column:n},i){function a(e,t){return o.slice(e,t).map((t,n)=>String(e+n+1).padStart(l)+" |"+t).join("\n")}let o=e.split(/\r\n?|\n|\f/),s=Math.max(1,t-i)-1,_=Math.min(t+i,o.length+1),l=Math.max(4,String(_).length)+1,c=0;(n+=(r.length-1)*(o[t-1].substr(0,n-1).match(/\t/g)||[]).length)>100&&(c=n-60+3,n=58);for(let u=s;u<=_;u++)u>=0&&u0&&o[u].length>c?"…":"")+o[u].substr(c,98)+(o[u].length>c+100-1?"…":""));return[a(s,t),Array(n+l+2).join("-")+"^",a(t,_)].filter(Boolean).join("\n")}function o(e,t,n,r,o){let s=Object.assign((0,i.createCustomError)("SyntaxError",e),{source:t,offset:n,line:r,column:o,sourceFragment:e=>a({source:t,line:r,column:o},isNaN(e)?0:e),get formattedMessage(){return`Parse error: ${e} -`+a({source:t,line:r,column:o},2)}});return s}},(e,t,n)=>{"use strict";function i(e,t){let n=Object.create(SyntaxError.prototype),i=Error();return Object.assign(n,{name:e,message:t,get stack(){return(i.stack||"").replace(/^(.+\n){1,3}/,`${e}: ${t} -`)}})}n.r(t),n.d(t,{createCustomError:()=>i})},(e,t,n)=>{"use strict";n.r(t),n.d(t,{readSequence:()=>r});var i=n(31);function r(e){let t=this.createList(),n=!1,r={recognizer:e};for(;!this.eof;){switch(this.tokenType){case i.Comment:this.next();continue;case i.WhiteSpace:n=!0,this.next();continue}let a=e.getNode.call(this,r);if(void 0===a)break;n&&(e.onWhiteSpace&&e.onWhiteSpace.call(this,a,t,r),n=!1),t.push(a)}return n&&e.onWhiteSpace&&e.onWhiteSpace.call(this,null,t,r),t}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{createGenerator:()=>_});var i=n(31),r=n(45),a=n(52);function o(e,t){if("function"==typeof t){let n=null;e.children.forEach(e=>{null!==n&&t.call(this,n),this.node(e),n=e});return}e.children.forEach(this.node,this)}function s(e){(0,i.tokenize)(e,(t,n,i)=>{this.token(t,e.slice(n,i))})}function _(e){let t=new Map;for(let n in e.node)t.set(n,e.node[n].generate);return function(e,n){let _="",l=0,c={node(e){if(t.has(e.type))t.get(e.type).call(u,e);else throw Error("Unknown node type: "+e.type)},tokenBefore:a.safe,token(e,t){l=this.tokenBefore(l,e,t),this.emit(t,e,!1),e===i.Delim&&92===t.charCodeAt(0)&&this.emit("\n",i.WhiteSpace,!0)},emit(e){_+=e},result:()=>_};n&&("function"==typeof n.decorator&&(c=n.decorator(c)),n.sourceMap&&(c=(0,r.generateSourceMap)(c)),n.mode in a&&(c.tokenBefore=a[n.mode]));let u={node:e=>c.node(e),children:o,token:(e,t)=>c.token(e,t),tokenize:s};return c.node(e),c.result()}}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{generateSourceMap:()=>a});var i=n(46);let r=new Set(["Atrule","Selector","Declaration"]);function a(e){let t=new i.SourceMapGenerator,n={line:1,column:0},a={line:0,column:0},o={line:1,column:0},s={generated:o},_=1,l=0,c=!1,u=e.node;e.node=function(e){if(e.loc&&e.loc.start&&r.has(e.type)){let i=e.loc.start.line,p=e.loc.start.column-1;(a.line!==i||a.column!==p)&&(a.line=i,a.column=p,n.line=_,n.column=l,c&&(c=!1,(n.line!==o.line||n.column!==o.column)&&t.addMapping(s)),c=!0,t.addMapping({source:e.loc.source,original:a,generated:n}))}u.call(this,e),c&&r.has(e.type)&&(o.line=_,o.column=l)};let p=e.emit;e.emit=function(e,t,n){for(let i=0;i{var i=n(47),r=n(49),a=n(50).ArraySet,o=n(51).MappingList;function s(e){e||(e={}),this._file=r.getArg(e,"file",null),this._sourceRoot=r.getArg(e,"sourceRoot",null),this._skipValidation=r.getArg(e,"skipValidation",!1),this._sources=new a,this._names=new a,this._mappings=new o,this._sourcesContents=null}s.prototype._version=3,s.fromSourceMap=function e(t){var n=t.sourceRoot,i=new s({file:t.file,sourceRoot:n});return t.eachMapping(function(e){var t={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(t.source=e.source,null!=n&&(t.source=r.relative(n,t.source)),t.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(t.name=e.name)),i.addMapping(t)}),t.sources.forEach(function(e){var a=e;null!==n&&(a=r.relative(n,e)),i._sources.has(a)||i._sources.add(a);var o=t.sourceContentFor(e);null!=o&&i.setSourceContent(e,o)}),i},s.prototype.addMapping=function e(t){var n=r.getArg(t,"generated"),i=r.getArg(t,"original",null),a=r.getArg(t,"source",null),o=r.getArg(t,"name",null);this._skipValidation||this._validateMapping(n,i,a,o),null==a||(a=String(a),this._sources.has(a)||this._sources.add(a)),null==o||(o=String(o),this._names.has(o)||this._names.add(o)),this._mappings.add({generatedLine:n.line,generatedColumn:n.column,originalLine:null!=i&&i.line,originalColumn:null!=i&&i.column,source:a,name:o})},s.prototype.setSourceContent=function e(t,n){var i=t;null!=this._sourceRoot&&(i=r.relative(this._sourceRoot,i)),null!=n?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[r.toSetString(i)]=n):this._sourcesContents&&(delete this._sourcesContents[r.toSetString(i)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},s.prototype.applySourceMap=function e(t,n,i){var o=n;if(null==n){if(null==t.file)throw Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');o=t.file}var s=this._sourceRoot;null!=s&&(o=r.relative(s,o));var _=new a,l=new a;this._mappings.unsortedForEach(function(e){if(e.source===o&&null!=e.originalLine){var n=t.originalPositionFor({line:e.originalLine,column:e.originalColumn});null!=n.source&&(e.source=n.source,null!=i&&(e.source=r.join(i,e.source)),null!=s&&(e.source=r.relative(s,e.source)),e.originalLine=n.line,e.originalColumn=n.column,null!=n.name&&(e.name=n.name))}var a=e.source;null==a||_.has(a)||_.add(a);var c=e.name;null==c||l.has(c)||l.add(c)},this),this._sources=_,this._names=l,t.sources.forEach(function(e){var n=t.sourceContentFor(e);null!=n&&(null!=i&&(e=r.join(i,e)),null!=s&&(e=r.relative(s,e)),this.setSourceContent(e,n))},this)},s.prototype._validateMapping=function e(t,n,i,r){if(n&&"number"!=typeof n.line&&"number"!=typeof n.column)throw Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!t||!("line"in t)||!("column"in t)||!(t.line>0)||!(t.column>=0)||n||i||r){if(!t||!("line"in t)||!("column"in t)||!n||!("line"in n)||!("column"in n)||!(t.line>0)||!(t.column>=0)||!(n.line>0)||!(n.column>=0)||!i)throw Error("Invalid mapping: "+JSON.stringify({generated:t,source:i,original:n,name:r}))}},s.prototype._serializeMappings=function e(){for(var t,n,a,o,s=0,_=1,l=0,c=0,u=0,p=0,$="",d=this._mappings.toArray(),m=0,h=d.length;m0){if(!r.compareByGeneratedPositionsInflated(n,d[m-1]))continue;t+=","}t+=i.encode(n.generatedColumn-s),s=n.generatedColumn,null!=n.source&&(o=this._sources.indexOf(n.source),t+=i.encode(o-p),p=o,t+=i.encode(n.originalLine-1-c),c=n.originalLine-1,t+=i.encode(n.originalColumn-l),l=n.originalColumn,null!=n.name&&(a=this._names.indexOf(n.name),t+=i.encode(a-u),u=a)),$+=t}return $},s.prototype._generateSourcesContent=function e(t,n){return t.map(function(e){if(!this._sourcesContents)return null;null!=n&&(e=r.relative(n,e));var t=r.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,t)?this._sourcesContents[t]:null},this)},s.prototype.toJSON=function e(){var t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(t.file=this._file),null!=this._sourceRoot&&(t.sourceRoot=this._sourceRoot),this._sourcesContents&&(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t},s.prototype.toString=function e(){return JSON.stringify(this.toJSON())},t.SourceMapGenerator=s},(e,t,n)=>{var i=n(48),r=5,a=1<>1;return(1&e)==1?-t:t}t.encode=function e(t){var n,a="",l=_(t);do n=l&o,(l>>>=r)>0&&(n|=s),a+=i.encode(n);while(l>0);return a},t.decode=function e(t,n,a){var _,c,u=t.length,p=0,$=0;do{if(n>=u)throw Error("Expected more digits in base 64 VLQ value.");if(-1===(c=i.decode(t.charCodeAt(n++))))throw Error("Invalid base64 digit: "+t.charAt(n-1));_=!!(c&s),c&=o,p+=c<<$,$+=r}while(_);a.value=l(p),a.rest=n}},(e,t)=>{var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e{function n(e,t,n){if(t in e)return e[t];if(3===arguments.length)return n;throw Error('"'+t+'" is a required argument.')}t.getArg=n;var i=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,r=/^data:.+\,.+$/;function a(e){var t=e.match(i);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function o(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}t.urlParse=a,t.urlGenerate=o;var s=32;function _(e){var t=[];return function(n){for(var i=0;is&&t.pop(),a}}var l=_(function e(n){var i=n,r=a(n);if(r){if(!r.path)return n;i=r.path}for(var s=t.isAbsolute(i),_=[],l=0,c=0;;){if(l=c,-1===(c=i.indexOf("/",l))){_.push(i.slice(l));break}for(_.push(i.slice(l,c));c=0;c--)"."===(u=_[c])?_.splice(c,1):".."===u?p++:p>0&&(""===u?(_.splice(c+1,p),p=0):(_.splice(c,2),p--));return(""===(i=_.join("/"))&&(i=s?"/":"."),r)?(r.path=i,o(r)):i});function c(e,t){""===e&&(e="."),""===t&&(t=".");var n=a(t),i=a(e);if(i&&(e=i.path||"/"),n&&!n.scheme)return i&&(n.scheme=i.scheme),o(n);if(n||t.match(r))return t;if(i&&!i.host&&!i.path)return i.host=t,o(i);var s="/"===t.charAt(0)?t:l(e.replace(/\/+$/,"")+"/"+t);return i?(i.path=s,o(i)):s}function u(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var n=0;0!==t.indexOf(e+"/");){var i=e.lastIndexOf("/");if(i<0||(e=e.slice(0,i)).match(/^([^\/]+:\/)?\/*$/))return t;++n}return Array(n+1).join("../")+t.substr(e.length+1)}t.normalize=l,t.join=c,t.isAbsolute=function(e){return"/"===e.charAt(0)||i.test(e)},t.relative=u;var p=!("__proto__"in Object.create(null));function $(e){return e}function d(e){return h(e)?"$"+e:e}function m(e){return h(e)?e.slice(1):e}function h(e){if(!e)return!1;var t=e.length;if(t<9||95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var n=t-10;n>=0;n--)if(36!==e.charCodeAt(n))return!1;return!0}function f(e,t,n){var i=b(e.source,t.source);return 0!==i||0!=(i=e.originalLine-t.originalLine)||0!=(i=e.originalColumn-t.originalColumn)||n||0!=(i=e.generatedColumn-t.generatedColumn)||0!=(i=e.generatedLine-t.generatedLine)?i:b(e.name,t.name)}function g(e,t,n){var i;return 0!=(i=e.originalLine-t.originalLine)||0!=(i=e.originalColumn-t.originalColumn)||n||0!=(i=e.generatedColumn-t.generatedColumn)||0!=(i=e.generatedLine-t.generatedLine)?i:b(e.name,t.name)}function x(e,t,n){var i=e.generatedLine-t.generatedLine;return 0!==i||0!=(i=e.generatedColumn-t.generatedColumn)||n||0!==(i=b(e.source,t.source))||0!=(i=e.originalLine-t.originalLine)||0!=(i=e.originalColumn-t.originalColumn)?i:b(e.name,t.name)}function v(e,t,n){var i=e.generatedColumn-t.generatedColumn;return 0!==i||n||0!==(i=b(e.source,t.source))||0!=(i=e.originalLine-t.originalLine)||0!=(i=e.originalColumn-t.originalColumn)?i:b(e.name,t.name)}function b(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}function k(e,t){var n=e.generatedLine-t.generatedLine;return 0!==n||0!=(n=e.generatedColumn-t.generatedColumn)||0!==(n=b(e.source,t.source))||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)?n:b(e.name,t.name)}function T(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}function E(e,t,n){if(t=t||"",e&&("/"!==e[e.length-1]&&"/"!==t[0]&&(e+="/"),t=e+t),n){var i=a(n);if(!i)throw Error("sourceMapURL could not be parsed");if(i.path){var r=i.path.lastIndexOf("/");r>=0&&(i.path=i.path.substring(0,r+1))}t=c(o(i),t)}return l(t)}t.toSetString=p?$:d,t.fromSetString=p?$:m,t.compareByOriginalPositions=f,t.compareByOriginalPositionsNoSource=g,t.compareByGeneratedPositionsDeflated=x,t.compareByGeneratedPositionsDeflatedNoLine=v,t.compareByGeneratedPositionsInflated=k,t.parseSourceMapInput=T,t.computeSourceURL=E},(e,t,n)=>{var i=n(49),r=Object.prototype.hasOwnProperty,a="undefined"!=typeof Map;function o(){this._array=[],this._set=a?new Map:Object.create(null)}o.fromArray=function e(t,n){for(var i=new o,r=0,a=t.length;r=0)return n}else{var o=i.toSetString(t);if(r.call(this._set,o))return this._set[o]}throw Error('"'+t+'" is not in the set.')},o.prototype.at=function e(t){if(t>=0&&t{var i=n(49);function r(e,t){var n=e.generatedLine,r=t.generatedLine,a=e.generatedColumn,o=t.generatedColumn;return r>n||r==n&&o>=a||0>=i.compareByGeneratedPositionsInflated(e,t)}function a(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}a.prototype.unsortedForEach=function e(t,n){this._array.forEach(t,n)},a.prototype.add=function e(t){r(this._last,t)?(this._last=t,this._array.push(t)):(this._sorted=!1,this._array.push(t))},a.prototype.toArray=function e(){return this._sorted||(this._array.sort(i.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},t.MappingList=a},(e,t,n)=>{"use strict";n.r(t),n.d(t,{spec:()=>_,safe:()=>l});var i=n(31);let r=(e,t)=>{if(e===i.Delim&&(e=t),"string"==typeof e){let n=e.charCodeAt(0);return n>127?32768:n<<8}return e},a=[[i.Ident,i.Ident],[i.Ident,i.Function],[i.Ident,i.Url],[i.Ident,i.BadUrl],[i.Ident,"-"],[i.Ident,i.Number],[i.Ident,i.Percentage],[i.Ident,i.Dimension],[i.Ident,i.CDC],[i.Ident,i.LeftParenthesis],[i.AtKeyword,i.Ident],[i.AtKeyword,i.Function],[i.AtKeyword,i.Url],[i.AtKeyword,i.BadUrl],[i.AtKeyword,"-"],[i.AtKeyword,i.Number],[i.AtKeyword,i.Percentage],[i.AtKeyword,i.Dimension],[i.AtKeyword,i.CDC],[i.Hash,i.Ident],[i.Hash,i.Function],[i.Hash,i.Url],[i.Hash,i.BadUrl],[i.Hash,"-"],[i.Hash,i.Number],[i.Hash,i.Percentage],[i.Hash,i.Dimension],[i.Hash,i.CDC],[i.Dimension,i.Ident],[i.Dimension,i.Function],[i.Dimension,i.Url],[i.Dimension,i.BadUrl],[i.Dimension,"-"],[i.Dimension,i.Number],[i.Dimension,i.Percentage],[i.Dimension,i.Dimension],[i.Dimension,i.CDC],["#",i.Ident],["#",i.Function],["#",i.Url],["#",i.BadUrl],["#","-"],["#",i.Number],["#",i.Percentage],["#",i.Dimension],["#",i.CDC],["-",i.Ident],["-",i.Function],["-",i.Url],["-",i.BadUrl],["-","-"],["-",i.Number],["-",i.Percentage],["-",i.Dimension],["-",i.CDC],[i.Number,i.Ident],[i.Number,i.Function],[i.Number,i.Url],[i.Number,i.BadUrl],[i.Number,i.Number],[i.Number,i.Percentage],[i.Number,i.Dimension],[i.Number,"%"],[i.Number,i.CDC],["@",i.Ident],["@",i.Function],["@",i.Url],["@",i.BadUrl],["@","-"],["@",i.CDC],[".",i.Number],[".",i.Percentage],[".",i.Dimension],["+",i.Number],["+",i.Percentage],["+",i.Dimension],["/","*"]],o=a.concat([[i.Ident,i.Hash],[i.Dimension,i.Hash],[i.Hash,i.Hash],[i.AtKeyword,i.LeftParenthesis],[i.AtKeyword,i.String],[i.AtKeyword,i.Colon],[i.Percentage,i.Percentage],[i.Percentage,i.Dimension],[i.Percentage,i.Function],[i.Percentage,"-"],[i.RightParenthesis,i.Ident],[i.RightParenthesis,i.Function],[i.RightParenthesis,i.Percentage],[i.RightParenthesis,i.Dimension],[i.RightParenthesis,i.Hash],[i.RightParenthesis,"-"]]);function s(e){let t=new Set(e.map(([e,t])=>r(e)<<16|r(t)));return function(e,n,a){let o=r(n,a),s=a.charCodeAt(0),_=45===s&&n!==i.Ident&&n!==i.Function&&n!==i.CDC||43===s?t.has(e<<16|s<<8):t.has(e<<16|o);return _&&this.emit(" ",i.WhiteSpace,!0),o}}let _=s(a),l=s(o)},(e,t,n)=>{"use strict";n.r(t),n.d(t,{createConvertor:()=>r});var i=n(40);function r(e){return{fromPlainObject:function(t){return e(t,{enter:function(e){e.children&&e.children instanceof i.List==!1&&(e.children=new i.List().fromArray(e.children))}}),t},toPlainObject:function(t){return e(t,{leave:function(e){e.children&&e.children instanceof i.List&&(e.children=e.children.toArray())}}),t}}}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{createWalker:()=>u});let{hasOwnProperty:i}=Object.prototype,r=function(){};function a(e){return"function"==typeof e?e:r}function o(e,t){return function(n,i,r){n.type===t&&e.call(this,n,i,r)}}function s(e,t){let n=t.structure,r=[];for(let a in n){if(!1===i.call(n,a))continue;let o=n[a],s={name:a,type:!1,nullable:!1};for(let _ of(Array.isArray(o)||(o=[o]),o))null===_?s.nullable=!0:"string"==typeof _?s.type="node":Array.isArray(_)&&(s.type="list");s.type&&r.push(s)}return r.length?{context:t.walkContext,fields:r}:null}function _(e){let t={};for(let n in e.node)if(i.call(e.node,n)){let r=e.node[n];if(!r.structure)throw Error("Missed `structure` field in `"+n+"` node type definition");t[n]=s(n,r)}return t}function l(e,t){let n=e.fields.slice(),i=e.context,r="string"==typeof i;return t&&n.reverse(),function(e,a,o,s){let _;for(let l of(r&&(_=a[i],a[i]=e),n)){let c=e[l.name];if(!l.nullable||c){if("list"===l.type){let u=t?c.reduceRight(s,!1):c.reduce(s,!1);if(u)return!0}else if(o(c))return!0}}r&&(a[i]=_)}}function c({StyleSheet:e,Atrule:t,Rule:n,Block:i,DeclarationList:r}){return{Atrule:{StyleSheet:e,Atrule:t,Rule:n,Block:i},Rule:{StyleSheet:e,Atrule:t,Rule:n,Block:i},Declaration:{StyleSheet:e,Atrule:t,Rule:n,Block:i,DeclarationList:r}}}function u(e){let t=_(e),n={},s={},u=Symbol("break-walk"),p=Symbol("skip-node");for(let $ in t)i.call(t,$)&&null!==t[$]&&(n[$]=l(t[$],!1),s[$]=l(t[$],!0));let d=c(n),m=c(s),h=function(e,i){function _(e,t,n){let i=l.call(f,e,t,n);return i===u||i!==p&&(!!($.hasOwnProperty(e.type)&&$[e.type](e,f,_,h))||c.call(f,e,t,n)===u)}let l=r,c=r,$=n,h=(e,t,n,i)=>e||_(t,n,i),f={break:u,skip:p,root:e,stylesheet:null,atrule:null,atrulePrelude:null,rule:null,selector:null,block:null,declaration:null,function:null};if("function"==typeof i)l=i;else if(i&&(l=a(i.enter),c=a(i.leave),i.reverse&&($=s),i.visit)){if(d.hasOwnProperty(i.visit))$=i.reverse?m[i.visit]:d[i.visit];else if(!t.hasOwnProperty(i.visit))throw Error("Bad value `"+i.visit+"` for `visit` option (should be: "+Object.keys(t).sort().join(", ")+")");l=o(l,i.visit),c=o(c,i.visit)}if(l===r&&c===r)throw Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");_(e)};return h.break=u,h.skip=p,h.find=function(e,t){let n=null;return h(e,function(e,i,r){if(t.call(this,e,i,r))return n=e,u}),n},h.findLast=function(e,t){let n=null;return h(e,{reverse:!0,enter:function(e,i,r){if(t.call(this,e,i,r))return n=e,u}}),n},h.findAll=function(e,t){let n=[];return h(e,function(e,i,r){t.call(this,e,i,r)&&n.push(e)}),n},h}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{Lexer:()=>v});var i=n(56),r=n(58),a=n(59),o=n(62),s=n(67),_=n(68),l=n(69),c=n(70),u=n(71),p=n(72);let $=(0,_.buildMatchGraph)("inherit | initial | unset"),d=(0,_.buildMatchGraph)("inherit | initial | unset | <-ms-legacy-expression>");function m(e,t,n){let i={};for(let r in e)e[r].syntax&&(i[r]=n?e[r].syntax:(0,o.generate)(e[r].syntax,{compact:t}));return i}function h(e,t,n){let i={};for(let[r,a]of Object.entries(e))i[r]={prelude:a.prelude&&(n?a.prelude.syntax:(0,o.generate)(a.prelude.syntax,{compact:t})),descriptors:a.descriptors&&m(a.descriptors,t,n)};return i}function f(e){for(let t=0;t(Object.defineProperty(a,"syntax",{value:(0,o.parse)(e)}),a.syntax)}):a.syntax=e,Object.defineProperty(a,"match",{get:()=>(Object.defineProperty(a,"match",{value:(0,_.buildMatchGraph)(a.syntax,r)}),a.match)})),a}addAtrule_(e,t){t&&(this.atrules[e]={type:"Atrule",name:e,prelude:t.prelude?this.createDescriptor(t.prelude,"AtrulePrelude",e):null,descriptors:t.descriptors?Object.keys(t.descriptors).reduce((n,i)=>(n[i]=this.createDescriptor(t.descriptors[i],"AtruleDescriptor",i,e),n),Object.create(null)):null})}addProperty_(e,t){t&&(this.properties[e]=this.createDescriptor(t,"Property",e))}addType_(e,t){t&&(this.types[e]=this.createDescriptor(t,"Type",e),t===a.default["-ms-legacy-expression"]&&(this.valueCommonSyntax=d))}checkAtruleName(e){if(!this.getAtrule(e))return new i.SyntaxReferenceError("Unknown at-rule","@"+e)}checkAtrulePrelude(e,t){let n=this.checkAtruleName(e);if(n)return n;let i=this.getAtrule(e);return!i.prelude&&t?SyntaxError("At-rule `@"+e+"` should not contain a prelude"):i.prelude&&!t?SyntaxError("At-rule `@"+e+"` should contain a prelude"):void 0}checkAtruleDescriptorName(e,t){let n=this.checkAtruleName(e);if(n)return n;let a=this.getAtrule(e),o=r.keyword(t);return a.descriptors?a.descriptors[o.name]||a.descriptors[o.basename]?void 0:new i.SyntaxReferenceError("Unknown at-rule descriptor",t):SyntaxError("At-rule `@"+e+"` has no known descriptors")}checkPropertyName(e){if(!this.getProperty(e))return new i.SyntaxReferenceError("Unknown property",e)}matchAtrulePrelude(e,t){let n=this.checkAtrulePrelude(e,t);return n?g(null,n):t?x(this,this.getAtrule(e).prelude,t,!1):g(null,null)}matchAtruleDescriptor(e,t,n){let i=this.checkAtruleDescriptorName(e,t);if(i)return g(null,i);let a=this.getAtrule(e),o=r.keyword(t);return x(this,a.descriptors[o.name]||a.descriptors[o.basename],n,!1)}matchDeclaration(e){return"Declaration"!==e.type?g(null,Error("Not a Declaration node")):this.matchProperty(e.property,e.value)}matchProperty(e,t){if(r.property(e).custom)return g(null,Error("Lexer matching doesn't applicable for custom properties"));let n=this.checkPropertyName(e);return n?g(null,n):x(this,this.getProperty(e),t,!0)}matchType(e,t){let n=this.getType(e);return n?x(this,n,t,!1):g(null,new i.SyntaxReferenceError("Unknown type",e))}match(e,t){return"string"==typeof e||e&&e.type?("string"!=typeof e&&e.match||(e=this.createDescriptor(e,"Type","anonymous")),x(this,e,t,!1)):g(null,new i.SyntaxReferenceError("Bad syntax"))}findValueFragments(e,t,n,i){return(0,u.matchFragments)(this,t,this.matchProperty(e,t),n,i)}findDeclarationValueFragments(e,t,n){return(0,u.matchFragments)(this,e.value,this.matchDeclaration(e),t,n)}findAllFragments(e,t,n){let i=[];return this.syntax.walk(e,{visit:"Declaration",enter:e=>{i.push.apply(i,this.findDeclarationValueFragments(e,t,n))}}),i}getAtrule(e,t=!0){let n=r.keyword(e),i=n.vendor&&t?this.atrules[n.name]||this.atrules[n.basename]:this.atrules[n.name];return i||null}getAtrulePrelude(e,t=!0){let n=this.getAtrule(e,t);return n&&n.prelude||null}getAtruleDescriptor(e,t){return this.atrules.hasOwnProperty(e)&&this.atrules.declarators&&this.atrules[e].declarators[t]||null}getProperty(e,t=!0){let n=r.property(e),i=n.vendor&&t?this.properties[n.name]||this.properties[n.basename]:this.properties[n.name];return i||null}getType(e){return hasOwnProperty.call(this.types,e)?this.types[e]:null}validate(){function e(i,r,a,s){if(a.has(r))return a.get(r);a.set(r,!1),null!==s.syntax&&(0,o.walk)(s.syntax,function(o){if("Type"!==o.type&&"Property"!==o.type)return;let s="Type"===o.type?i.types:i.properties,_="Type"===o.type?t:n;(!hasOwnProperty.call(s,o.name)||e(i,o.name,_,s[o.name]))&&a.set(r,!0)},this)}let t=new Map,n=new Map;for(let i in this.types)e(this,i,t,this.types[i]);for(let r in this.properties)e(this,r,n,this.properties[r]);return(t=[...t.keys()].filter(e=>t.get(e)),n=[...n.keys()].filter(e=>n.get(e)),t.length||n.length)?{types:t,properties:n}:null}dump(e,t){return{generic:this.generic,types:m(this.types,!t,e),properties:m(this.properties,!t,e),atrules:h(this.atrules,!t,e)}}toString(){return JSON.stringify(this.dump())}}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{SyntaxReferenceError:()=>l,SyntaxMatchError:()=>c});var i=n(42),r=n(57);let a={offset:0,line:1,column:1};function o(e,t){let n=e.tokens,i=e.longestMatch,r=i1?($=s(o||t,"end")||_(a,p),d=_($)):($=s(o,"start")||_(s(t,"start")||a,p.slice(0,l)),d=s(o,"end")||_($,p.substr(l,c))),{css:p,mismatchOffset:l,mismatchLength:c,start:$,end:d}}function s(e,t){let n=e&&e.loc&&e.loc[t];return n?"line"in n?_(n):n:null}function _({offset:e,line:t,column:n},i){let r={offset:e,line:t,column:n};if(i){let a=i.split(/\n|\r\n?|\f/);r.offset+=i.length,r.line+=a.length-1,r.column=1===a.length?r.column+i.length:a.pop().length+1}return r}let l=function(e,t){let n=(0,i.createCustomError)("SyntaxReferenceError",e+(t?" `"+t+"`":""));return n.reference=t,n},c=function(e,t,n,a){let s=(0,i.createCustomError)("SyntaxMatchError",e),{css:_,mismatchOffset:l,mismatchLength:c,start:u,end:p}=o(a,n);return s.rawMessage=e,s.syntax=t?(0,r.generate)(t):"",s.css=_,s.mismatchOffset=l,s.mismatchLength=c,s.message=e+"\n syntax: "+s.syntax+"\n value: "+(_||"")+"\n --------"+Array(s.mismatchOffset+1).join("-")+"^",Object.assign(s,u),s.loc={source:n&&n.loc&&n.loc.source||"",start:u,end:p},s}},(e,t,n)=>{"use strict";function i(e){return e}function r(e){let{min:t,max:n,comma:i}=e;return 0===t&&0===n?"*":0===t&&1===n?"?":1===t&&0===n?i?"#":"+":1===t&&1===n?"":(i?"#":"")+(t===n?"{"+t+"}":"{"+t+","+(0!==n?n:"")+"}")}function a(e){if("Range"===e.type)return" ["+(null===e.min?"-∞":e.min)+","+(null===e.max?"∞":e.max)+"]";throw Error("Unknown node type `"+e.type+"`")}function o(e,t,n,i){let r=" "===e.combinator||i?e.combinator:" "+e.combinator+" ",a=e.terms.map(e=>s(e,t,n,i)).join(r);return e.explicit||n?(i||","===a[0]?"[":"[ ")+a+(i?"]":" ]"):a}function s(e,t,n,i){let _;switch(e.type){case"Group":_=o(e,t,n,i)+(e.disallowEmpty?"!":"");break;case"Multiplier":return s(e.term,t,n,i)+t(r(e),e);case"Type":_="<"+e.name+(e.opts?t(a(e.opts),e.opts):"")+">";break;case"Property":_="<'"+e.name+"'>";break;case"Keyword":_=e.name;break;case"AtKeyword":_="@"+e.name;break;case"Function":_=e.name+"(";break;case"String":case"Token":_=e.value;break;case"Comma":_=",";break;default:throw Error("Unknown node type `"+e.type+"`")}return t(_,e)}function _(e,t){let n=i,r=!1,a=!1;return"function"==typeof t?n=t:t&&(r=Boolean(t.forceBraces),a=Boolean(t.compact),"function"==typeof t.decorate&&(n=t.decorate)),s(e,n,r,a)}n.r(t),n.d(t,{generate:()=>_})},(e,t,n)=>{"use strict";n.r(t),n.d(t,{keyword:()=>a,property:()=>o,vendorPrefix:()=>s,isCustomProperty:()=>_});let i=new Map,r=new Map,a=c,o=u,s=l;function _(e,t){return t=t||0,e.length-t>=2&&45===e.charCodeAt(t)&&45===e.charCodeAt(t+1)}function l(e,t){if(t=t||0,e.length-t>=3&&45===e.charCodeAt(t)&&45!==e.charCodeAt(t+1)){let n=e.indexOf("-",t+2);if(-1!==n)return e.substring(t,n+1)}return""}function c(e){if(i.has(e))return i.get(e);let t=e.toLowerCase(),n=i.get(t);if(void 0===n){let r=_(t,0),a=r?"":l(t,0);n=Object.freeze({basename:t.substr(a.length),name:t,prefix:a,vendor:a,custom:r})}return i.set(e,n),n}function u(e){if(r.has(e))return r.get(e);let t=e,n=e[0];"/"===n?n="/"===e[1]?"//":"/":"_"!==n&&"*"!==n&&"$"!==n&&"#"!==n&&"+"!==n&&"&"!==n&&(n="");let i=_(t,n.length);if(!i&&(t=t.toLowerCase(),r.has(t))){let a=r.get(t);return r.set(e,a),a}let o=i?"":l(t,n.length),s=t.substr(0,n.length+o.length),c=Object.freeze({basename:t.substr(s.length),name:t.substr(n.length),hack:n,vendor:o,prefix:s,custom:i});return r.set(e,c),c}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>M});var i=n(60),r=n(61),a=n(31);let o=["unset","initial","inherit"],s=["calc(","-moz-calc(","-webkit-calc("],_=new Map([[a.Function,a.RightParenthesis],[a.LeftParenthesis,a.RightParenthesis],[a.LeftSquareBracket,a.RightSquareBracket],[a.LeftCurlyBracket,a.RightCurlyBracket]]),l=["px","mm","cm","in","pt","pc","q","em","ex","ch","rem","vh","vw","vmin","vmax","vm"],c=["deg","grad","rad","turn"],u=["s","ms"],p=["hz","khz"],$=["dpi","dpcm","dppx","x"],d=["fr"],m=["db"],h=["st"];function f(e,t){return te.max)return!0}return!1}function k(e,t){let n=0,i=[],r=0;scan:do{switch(e.type){case a.RightCurlyBracket:case a.RightParenthesis:case a.RightSquareBracket:if(e.type!==n)break scan;if(n=i.pop(),0===i.length){r++;break scan}break;case a.Function:case a.LeftParenthesis:case a.LeftSquareBracket:case a.LeftCurlyBracket:i.push(n),n=_.get(e.type)}r++}while(e=t(r));return r}function T(e){return function(t,n,i){return null===t?0:t.type===a.Function&&x(t.value,s)?k(t,n):e(t,n,i)}}function E(e){return function(t){return null===t||t.type!==e?0:1}}function y(e){return e+="(",function(t,n){return null!==t&&g(t.value,e)?k(t,n):0}}function A(e){if(null===e||e.type!==a.Ident)return 0;let t=e.value.toLowerCase();return x(t,o)||g(t,"default")?0:1}function C(e){return null===e||e.type!==a.Ident||45!==f(e.value,0)||45!==f(e.value,1)?0:1}function w(e){if(null===e||e.type!==a.Hash)return 0;let t=e.value.length;if(4!==t&&5!==t&&7!==t&&9!==t)return 0;for(let n=1;n{"use strict";n.r(t),n.d(t,{default:()=>_});var i=n(31);function r(e,t){return null!==e&&e.type===i.Delim&&e.value.charCodeAt(0)===t}function a(e,t,n){for(;null!==e&&(e.type===i.WhiteSpace||e.type===i.Comment);)e=n(++t);return t}function o(e,t,n,r){if(!e)return 0;let a=e.value.charCodeAt(t);if(43===a||45===a){if(n)return 0;t++}for(;t{"use strict";n.r(t),n.d(t,{default:()=>_});var i=n(31);function r(e,t){return null!==e&&e.type===i.Delim&&e.value.charCodeAt(0)===t}function a(e,t){return e.value.charCodeAt(0)===t}function o(e,t,n){let r=0;for(let a=t;a6)return 0}return r}function s(e,t,n){if(!e)return 0;for(;r(n(t),63);){if(++e>6)return 0;t++}return t}function _(e,t){let n=0;if(null===e||e.type!==i.Ident||!(0,i.cmpChar)(e.value,0,117)||null===(e=t(++n)))return 0;if(r(e,43))return null===(e=t(++n))?0:e.type===i.Ident?s(o(e,0,!0),++n,t):r(e,63)?s(1,++n,t):0;if(e.type===i.Number){let _=o(e,1,!0);return 0===_?0:null===(e=t(++n))?n:e.type===i.Dimension||e.type===i.Number?a(e,45)&&o(e,1,!1)?n+1:0:s(_,n,t)}return e.type===i.Dimension?s(o(e,1,!0),++n,t):0}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{SyntaxError:()=>i.SyntaxError,generate:()=>r.generate,parse:()=>a.parse,walk:()=>o.walk});var i=n(63),r=n(57),a=n(64),o=n(66)},(e,t,n)=>{"use strict";n.r(t),n.d(t,{SyntaxError:()=>r});var i=n(42);function r(e,t,n){return Object.assign((0,i.createCustomError)("SyntaxError",e),{input:t,offset:n,rawMessage:e,message:e+"\n "+t+"\n--"+Array((n||t.length)+1).join("-")+"^"})}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{parse:()=>k});var i=n(65);let r=new Uint8Array(128).map((e,t)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(t))?1:0),a={" ":1,"&&":2,"||":3,"|":4};function o(e){return e.substringToPos(e.findWsEnd(e.pos))}function s(e){let t=e.pos;for(;t=128||0===r[n])break}return e.pos===t&&e.error("Expect a keyword"),e.substringToPos(t)}function _(e){let t=e.pos;for(;t57)break}return e.pos===t&&e.error("Expect a number"),e.substringToPos(t)}function l(e){let t=e.str.indexOf("'",e.pos+1);return -1===t&&(e.pos=e.str.length,e.error("Expect an apostrophe")),e.substringToPos(t+1)}function c(e){let t=null,n=null;return e.eat(123),t=_(e),44===e.charCode()?(e.pos++,125!==e.charCode()&&(n=_(e))):n=t,e.eat(125),{min:Number(t),max:n?Number(n):0}}function u(e){let t=null,n=!1;switch(e.charCode()){case 42:e.pos++,t={min:0,max:0};break;case 43:e.pos++,t={min:1,max:0};break;case 63:e.pos++,t={min:0,max:1};break;case 35:e.pos++,n=!0,t=123===e.charCode()?c(e):{min:1,max:0};break;case 123:t=c(e);break;default:return null}return{type:"Multiplier",comma:n,min:t.min,max:t.max,term:null}}function p(e,t){let n=u(e);return null!==n?(n.term=t,n):t}function $(e){let t=e.peek();return""===t?null:{type:"Token",value:t}}function d(e){let t;return e.eat(60),e.eat(39),t=s(e),e.eat(39),e.eat(62),p(e,{type:"Property",name:t})}function m(e){let t=null,n=null,i=1;return(e.eat(91),45===e.charCode()&&(e.peek(),i=-1),-1==i&&8734===e.charCode()?e.peek():t=i*Number(_(e)),o(e),e.eat(44),o(e),8734===e.charCode()?e.peek():(i=1,45===e.charCode()&&(e.peek(),i=-1),n=i*Number(_(e))),e.eat(93),null===t&&null===n)?null:{type:"Range",min:t,max:n}}function h(e){let t,n=null;return e.eat(60),t=s(e),40===e.charCode()&&41===e.nextCharCode()&&(e.pos+=2,t+="()"),91===e.charCodeAt(e.findWsEnd(e.pos))&&(o(e),n=m(e)),e.eat(62),p(e,{type:"Type",name:t,opts:n})}function f(e){let t=s(e);return 40===e.charCode()?(e.pos++,{type:"Function",name:t}):p(e,{type:"Keyword",name:t})}function g(e,t){function n(e,t){return{type:"Group",terms:e,combinator:t,disallowEmpty:!1,explicit:!1}}let i;for(t=Object.keys(t).sort((e,t)=>a[e]-a[t]);t.length>0;){i=t.shift();let r=0,o=0;for(;r1&&(e.splice(o,r-o,n(e.slice(o,r),i)),r=o+1),o=-1))}-1!==o&&t.length&&e.splice(o,r-o,n(e.slice(o,r),i))}return i}function x(e){let t=[],n={},i,r=null,a=e.pos;for(;i=b(e);)"Spaces"!==i.type&&("Combinator"===i.type?((null===r||"Combinator"===r.type)&&(e.pos=a,e.error("Unexpected combinator")),n[i.value]=!0):null!==r&&"Combinator"!==r.type&&(n[" "]=!0,t.push({type:"Combinator",value:" "})),t.push(i),r=i,a=e.pos);return null!==r&&"Combinator"===r.type&&(e.pos-=a,e.error("Unexpected combinator")),{type:"Group",terms:t,combinator:g(t,n)||" ",disallowEmpty:!1,explicit:!1}}function v(e){let t;return e.eat(91),t=x(e),e.eat(93),t.explicit=!0,33===e.charCode()&&(e.pos++,t.disallowEmpty=!0),t}function b(e){let t=e.charCode();if(t<128&&1===r[t])return f(e);switch(t){case 93:case 42:case 43:case 63:case 35:case 33:break;case 91:return p(e,v(e));case 60:return 39===e.nextCharCode()?d(e):h(e);case 124:return{type:"Combinator",value:e.substringToPos(e.pos+(124===e.nextCharCode()?2:1))};case 38:return e.pos++,e.eat(38),{type:"Combinator",value:"&&"};case 44:return e.pos++,{type:"Comma"};case 39:return p(e,{type:"String",value:l(e)});case 32:case 9:case 10:case 13:case 12:return{type:"Spaces",value:o(e)};case 64:if((t=e.nextCharCode())<128&&1===r[t])return e.pos++,{type:"AtKeyword",name:s(e)};return $(e);case 123:if((t=e.nextCharCode())<48||t>57)return $(e);break;default:return $(e)}}function k(e){let t=new i.Tokenizer(e),n=x(t);return(t.pos!==e.length&&t.error("Unexpected input"),1===n.terms.length&&"Group"===n.terms[0].type)?n.terms[0]:n}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{Tokenizer:()=>r});var i=n(63);class r{constructor(e){this.str=e,this.pos=0}charCodeAt(e){return e{"use strict";n.r(t),n.d(t,{walk:()=>a});let i=function(){};function r(e){return"function"==typeof e?e:i}function a(e,t,n){let a=i,o=i;if("function"==typeof t?a=t:t&&(a=r(t.enter),o=r(t.leave)),a===i&&o===i)throw Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");!function e(t){switch(a.call(n,t),t.type){case"Group":t.terms.forEach(e);break;case"Multiplier":e(t.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw Error("Unknown type: "+t.type)}o.call(n,t)}(e,n)}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var i=n(31);let r={decorator:function(e){let t=[],n=null;return{...e,node(t){let i=n;n=t,e.node.call(this,t),n=i},emit(e,i,r){t.push({type:i,value:e,node:r?null:n})},result:()=>t}}};function a(e){let t=[];return(0,i.tokenize)(e,(n,i,r)=>t.push({type:n,value:e.slice(i,r),node:null})),t}function o(e,t){return"string"==typeof e?a(e):t.generate(e,r)}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{MATCH:()=>r,MISMATCH:()=>a,DISALLOW_EMPTY:()=>o,buildMatchGraph:()=>$});var i=n(64);let r={type:"Match"},a={type:"Mismatch"},o={type:"DisallowEmpty"};function s(e,t,n){return t===r&&n===a||e===r&&t===r&&n===r?e:("If"===e.type&&e.else===a&&t===r&&(t=e.then,e=e.match),{type:"If",match:e,then:t,else:n})}function _(e){return e.length>2&&40===e.charCodeAt(e.length-2)&&41===e.charCodeAt(e.length-1)}function l(e){return"Keyword"===e.type||"AtKeyword"===e.type||"Function"===e.type||"Type"===e.type&&_(e.name)}function c(e,t,n){switch(e){case" ":{let i=r;for(let o=t.length-1;o>=0;o--){let u=t[o];i=s(u,i,a)}return i}case"|":{let p=a,$=null;for(let d=t.length-1;d>=0;d--){let m=t[d];if(l(m)&&(null===$&&d>0&&l(t[d-1])&&($=Object.create(null),p=s({type:"Enum",map:$},r,p)),null!==$)){let h=(_(m.name)?m.name.slice(0,-1):m.name).toLowerCase();if(h in $==!1){$[h]=m;continue}}$=null,p=s(m,r,p)}return p}case"&&":{if(t.length>5)return{type:"MatchOnce",terms:t,all:!0};let f=a;for(let g=t.length-1;g>=0;g--){let x=t[g],v;v=t.length>1?c(e,t.filter(function(e){return e!==x}),!1):r,f=s(x,v,f)}return f}case"||":{if(t.length>5)return{type:"MatchOnce",terms:t,all:!1};let b=n?r:a;for(let k=t.length-1;k>=0;k--){let T=t[k],E;E=t.length>1?c(e,t.filter(function(e){return e!==T}),!0):r,b=s(T,E,b)}return b}}}function u(e){let t=r,n=p(e.term);if(0===e.max)n=s(n,o,a),(t=s(n,null,a)).then=s(r,r,t),e.comma&&(t.then.else=s({type:"Comma",syntax:e},t,a));else for(let i=e.min||1;i<=e.max;i++)e.comma&&t!==r&&(t=s({type:"Comma",syntax:e},t,a)),t=s(n,s(r,r,t),a);if(0===e.min)t=s(r,r,t);else for(let _=0;_{"use strict";n.r(t),n.d(t,{totalIterationCount:()=>_,matchAsList:()=>m,matchAsTree:()=>h});var i=n(68),r=n(32);let{hasOwnProperty:a}=Object.prototype,o=0,s="Match",_=0;function l(e){let t=null,n=null,i=e;for(;null!==i;)n=i.prev,i.prev=t,t=i,i=n;return t}function c(e,t){if(e.length!==t.length)return!1;for(let n=0;n=65&&r<=90&&(r|=32),r!==i)return!1}return!0}function u(e){return e.type===r.Delim&&"?"!==e.value}function p(e){return null===e||e.type===r.Comma||e.type===r.Function||e.type===r.LeftParenthesis||e.type===r.LeftSquareBracket||e.type===r.LeftCurlyBracket||u(e)}function $(e){return null===e||e.type===r.RightParenthesis||e.type===r.RightSquareBracket||e.type===r.RightCurlyBracket||e.type===r.Delim}function d(e,t,n){function l(){do A=++Cw&&(w=C)}function g(){v={syntax:t.syntax,opts:t.syntax.opts||null!==v&&v.opts||null,prev:v},S={type:2,syntax:t.syntax,token:S.token,prev:S}}function x(){S=2===S.type?S.prev:{type:3,syntax:v.syntax,token:S.token,prev:S},v=v.prev}let v=null,b=null,k=null,T=null,E=0,y=null,A=null,C=-1,w=0,S={type:o,syntax:null,token:null,prev:null};for(l();null===y&&++E<15e3;)switch(t.type){case"Match":if(null===b){if(null!==A&&(C!==e.length-1||"\\0"!==A.value&&"\\9"!==A.value)){t=i.MISMATCH;break}y=s;break}if((t=b.nextState)===i.DISALLOW_EMPTY){if(b.matchStack===S){t=i.MISMATCH;break}t=i.MATCH}for(;b.syntaxStack!==v;)x();b=b.prev;break;case"Mismatch":if(null!==T&&!1!==T)(null===k||C>k.tokenIndex)&&(k=T,T=!1);else if(null===k){y="Mismatch";break}t=k.nextState,b=k.thenStack,v=k.syntaxStack,S=k.matchStack,A=(C=k.tokenIndex)C){for(;C":"<'"+t.name+"'>"));if(!1!==T&&null!==A&&"Type"===t.type){let M="custom-ident"===t.name&&A.type===r.Ident||"length"===t.name&&"0"===A.value;if(M){null===T&&(T=d(t,k)),t=i.MISMATCH;break}}g(),t=R.match;break}case"Keyword":{let F=t.name;if(null!==A){let B=A.value;if(-1!==B.indexOf("\\")&&(B=B.replace(/\\[09].*$/,"")),c(B,F)){f(),t=i.MATCH;break}}t=i.MISMATCH;break}case"AtKeyword":case"Function":if(null!==A&&c(A.value,t.name)){f(),t=i.MATCH;break}t=i.MISMATCH;break;case"Token":if(null!==A&&A.value===t.value){f(),t=i.MATCH;break}t=i.MISMATCH;break;case"Comma":null!==A&&A.type===r.Comma?p(S.token)?t=i.MISMATCH:(f(),t=$(A)?i.MISMATCH:i.MATCH):t=p(S.token)||$(A)?i.MATCH:i.MISMATCH;break;case"String":let H="",j=C;for(;j{"use strict";function i(e){function t(e){return null!==e&&("Type"===e.type||"Property"===e.type||"Keyword"===e.type)}let n=null;return null!==this.matched&&function i(r){if(Array.isArray(r.match)){for(let a=0;a"Type"===e.type&&e.name===t)}function a(e,t){return s(this,e,e=>"Property"===e.type&&e.name===t)}function o(e){return s(this,e,e=>"Keyword"===e.type)}function s(e,t,n){let r=i.call(e,t);return null!==r&&r.some(n)}n.r(t),n.d(t,{getTrace:()=>i,isType:()=>r,isProperty:()=>a,isKeyword:()=>o})},(e,t,n)=>{"use strict";n.r(t),n.d(t,{matchFragments:()=>o});var i=n(40);function r(e){return"node"in e?e.node:r(e.match[0])}function a(e){return"node"in e?e.node:a(e.match[e.match.length-1])}function o(e,t,n,o,s){let _=[];return null!==n.matched&&function n(l){if(null!==l.syntax&&l.syntax.type===o&&l.syntax.name===s){let c=r(l),u=a(l);e.syntax.walk(t,function(e,t,n){if(e===c){let r=new i.List;do{if(r.appendData(t.data),t.data===u)break;t=t.next}while(null!==t);_.push({parent:n,nodes:r})}})}Array.isArray(l.match)&&l.match.forEach(n)}(n.matched),_}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{getStructureFromConfig:()=>l});var i=n(40);let{hasOwnProperty:r}=Object.prototype;function a(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e&&e>=0}function o(e){return Boolean(e)&&a(e.offset)&&a(e.line)&&a(e.column)}function s(e,t){return function n(a,s){if(!a||a.constructor!==Object)return s(a,"Type of node should be an Object");for(let _ in a){let l=!0;if(!1!==r.call(a,_)){if("type"===_)a.type!==e&&s(a,"Wrong node type `"+a.type+"`, expected `"+e+"`");else if("loc"===_){if(null===a.loc)continue;if(a.loc&&a.loc.constructor===Object){if("string"!=typeof a.loc.source)_+=".source";else if(o(a.loc.start)){if(o(a.loc.end))continue;_+=".end"}else _+=".start"}l=!1}else if(t.hasOwnProperty(_)){l=!1;for(let c=0;!l&&c");else if(Array.isArray(u))_.push("List");else throw Error("Wrong value `"+u+"` in `"+e+"."+o+"` structure definition")}a[o]=_.join(" | ")}return{docs:a,check:s(e,i)}}function l(e){let t={};if(e.node){for(let n in e.node)if(r.call(e.node,n)){let i=e.node[n];if(i.structure)t[n]=_(n,i);else throw Error("Missed `structure` field in `"+n+"` node type definition")}}return t}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>$});let{hasOwnProperty:i}=Object.prototype,r={generic:!0,types:c,atrules:{prelude:u,descriptors:u},properties:c,parseContext:s,scope:_,atrule:["parse"],pseudo:["parse"],node:["name","structure","parse","generate","walkContext"]};function a(e){return e&&e.constructor===Object}function o(e){return a(e)?{...e}:e}function s(e,t){return Object.assign(e,t)}function _(e,t){for(let n in t)i.call(t,n)&&(a(e[n])?_(e[n],o(t[n])):e[n]=o(t[n]));return e}function l(e,t){return"string"==typeof t&&/^\s*\|/.test(t)?"string"==typeof e?e+t:t.replace(/^\s*\|\s*/,""):t||null}function c(e,t){if("string"==typeof t)return l(e,t);let n={...e};for(let r in t)i.call(t,r)&&(n[r]=l(i.call(e,r)?e[r]:void 0,t[r]));return n}function u(e,t){let n=c(e,t);return!a(n)||Object.keys(n).length?n:null}function p(e,t,n){for(let r in n)if(!1!==i.call(n,r)){if(!0===n[r])r in t&&i.call(t,r)&&(e[r]=o(t[r]));else if(n[r]){if("function"==typeof n[r]){let s=n[r];e[r]=s({},e[r]),e[r]=s(e[r]||{},t[r])}else if(a(n[r])){let _={};for(let l in e[r])_[l]=p({},e[r][l],n[r]);for(let c in t[r])_[c]=p(_[c]||{},t[r][c],n[r]);e[r]=_}else if(Array.isArray(n[r])){let u={},$=n[r].reduce(function(e,t){return e[t]=!0,e},{});for(let[d,m]of Object.entries(e[r]||{}))u[d]={},m&&p(u[d],m,$);for(let h in t[r])i.call(t[r],h)&&(u[h]||(u[h]={}),t[r]&&t[r][h]&&p(u[h],t[r][h],$));e[r]=u}}}return e}let $=(e,t)=>p(e,t,r)},(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var i=n(75),r=n(76);let a={generic:!0,...i.default,node:r}},(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});let i={generic:!0,types:{"absolute-size":"xx-small|x-small|small|medium|large|x-large|xx-large|xxx-large","alpha-value":"|","angle-percentage":"|","angular-color-hint":"","angular-color-stop":"&&?","angular-color-stop-list":"[ [, ]?]# , ","animateable-feature":"scroll-position|contents|",attachment:"scroll|fixed|local","attr()":"attr( ? [, ]? )","attr-matcher":"['~'|'|'|'^'|'$'|'*']? '='","attr-modifier":"i|s","attribute-selector":"'[' ']'|'[' [|] ? ']'","auto-repeat":"repeat( [auto-fill|auto-fit] , [? ]+ ? )","auto-track-list":"[? [|]]* ? [? [|]]* ?","baseline-position":"[first|last]? baseline","basic-shape":"||||","bg-image":"none|","bg-layer":"|| [/ ]?||||||||","bg-position":"[[left|center|right|top|bottom|]|[left|center|right|] [top|center|bottom|]|[center|[left|right] ?]&&[center|[top|bottom] ?]]","bg-size":"[|auto]{1,2}|cover|contain","blur()":"blur( )","blend-mode":"normal|multiply|screen|overlay|darken|lighten|color-dodge|color-burn|hard-light|soft-light|difference|exclusion|hue|saturation|color|luminosity",box:"border-box|padding-box|content-box","brightness()":"brightness( )","calc()":"calc( )","calc-sum":" [['+'|'-'] ]*","calc-product":" ['*' |'/' ]*","calc-value":"|||( )","cf-final-image":"|","cf-mixing-image":"?&&","circle()":"circle( []? [at ]? )","clamp()":"clamp( #{3} )","class-selector":"'.' ","clip-source":"",color:"||||||currentcolor|","color-stop":"|","color-stop-angle":"{1,2}","color-stop-length":"{1,2}","color-stop-list":"[ [, ]?]# , ",combinator:"'>'|'+'|'~'|['||']","common-lig-values":"[common-ligatures|no-common-ligatures]","compat-auto":"searchfield|textarea|push-button|slider-horizontal|checkbox|radio|square-button|menulist|listbox|meter|progress-bar|button","composite-style":"clear|copy|source-over|source-in|source-out|source-atop|destination-over|destination-in|destination-out|destination-atop|xor","compositing-operator":"add|subtract|intersect|exclude","compound-selector":"[? * [ *]*]!","compound-selector-list":"#","complex-selector":" [? ]*","complex-selector-list":"#","conic-gradient()":"conic-gradient( [from ]? [at ]? , )","contextual-alt-values":"[contextual|no-contextual]","content-distribution":"space-between|space-around|space-evenly|stretch","content-list":"[|contents|||||]+","content-position":"center|start|end|flex-start|flex-end","content-replacement":"","contrast()":"contrast( [] )","counter()":"counter( , ? )","counter-style":"|symbols( )","counter-style-name":"","counters()":"counters( , , ? )","cross-fade()":"cross-fade( , ? )","cubic-bezier-timing-function":"ease|ease-in|ease-out|ease-in-out|cubic-bezier( , , , )","deprecated-system-color":"ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText","discretionary-lig-values":"[discretionary-ligatures|no-discretionary-ligatures]","display-box":"contents|none","display-inside":"flow|flow-root|table|flex|grid|ruby","display-internal":"table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption|ruby-base|ruby-text|ruby-base-container|ruby-text-container","display-legacy":"inline-block|inline-list-item|inline-table|inline-flex|inline-grid","display-listitem":"?&&[flow|flow-root]?&&list-item","display-outside":"block|inline|run-in","drop-shadow()":"drop-shadow( {2,3} ? )","east-asian-variant-values":"[jis78|jis83|jis90|jis04|simplified|traditional]","east-asian-width-values":"[full-width|proportional-width]","element()":"element( , [first|start|last|first-except]? )|element( )","ellipse()":"ellipse( [{2}]? [at ]? )","ending-shape":"circle|ellipse","env()":"env( , ? )","explicit-track-list":"[? ]+ ?","family-name":"|+","feature-tag-value":" [|on|off]?","feature-type":"@stylistic|@historical-forms|@styleset|@character-variant|@swash|@ornaments|@annotation","feature-value-block":" '{' '}'","feature-value-block-list":"+","feature-value-declaration":" : + ;","feature-value-declaration-list":"","feature-value-name":"","fill-rule":"nonzero|evenodd","filter-function":"|||||||||","filter-function-list":"[|]+","final-bg-layer":"<'background-color'>|||| [/ ]?||||||||","fit-content()":"fit-content( [|] )","fixed-breadth":"","fixed-repeat":"repeat( [] , [? ]+ ? )","fixed-size":"|minmax( , )|minmax( , )","font-stretch-absolute":"normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|","font-variant-css21":"[normal|small-caps]","font-weight-absolute":"normal|bold|","frequency-percentage":"|","general-enclosed":"[ )]|( )","generic-family":"serif|sans-serif|cursive|fantasy|monospace|-apple-system","generic-name":"serif|sans-serif|cursive|fantasy|monospace","geometry-box":"|fill-box|stroke-box|view-box",gradient:"|||||<-legacy-gradient>","grayscale()":"grayscale( )","grid-line":"auto||[&&?]|[span&&[||]]","historical-lig-values":"[historical-ligatures|no-historical-ligatures]","hsl()":"hsl( [/ ]? )|hsl( , , , ? )","hsla()":"hsla( [/ ]? )|hsla( , , , ? )",hue:"|","hue-rotate()":"hue-rotate( )",image:"||||||","image()":"image( ? [? , ?]! )","image-set()":"image-set( # )","image-set-option":"[|] [||type( )]","image-src":"|","image-tags":"ltr|rtl","inflexible-breadth":"||min-content|max-content|auto","inset()":"inset( {1,4} [round <'border-radius'>]? )","invert()":"invert( )","keyframes-name":"|","keyframe-block":"# { }","keyframe-block-list":"+","keyframe-selector":"from|to|","leader()":"leader( )","leader-type":"dotted|solid|space|","length-percentage":"|","line-names":"'[' * ']'","line-name-list":"[|]+","line-style":"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset","line-width":"|thin|medium|thick","linear-color-hint":"","linear-color-stop":" ?","linear-gradient()":"linear-gradient( [|to ]? , )","mask-layer":"|| [/ ]?||||||[|no-clip]||||","mask-position":"[|left|center|right] [|top|center|bottom]?","mask-reference":"none||","mask-source":"","masking-mode":"alpha|luminance|match-source","matrix()":"matrix( #{6} )","matrix3d()":"matrix3d( #{16} )","max()":"max( # )","media-and":" [and ]+","media-condition":"|||","media-condition-without-or":"||","media-feature":"( [||] )","media-in-parens":"( )||","media-not":"not ","media-or":" [or ]+","media-query":"|[not|only]? [and ]?","media-query-list":"#","media-type":"","mf-boolean":"","mf-name":"","mf-plain":" : ","mf-range":" ['<'|'>']? '='? | ['<'|'>']? '='? | '<' '='? '<' '='? | '>' '='? '>' '='? ","mf-value":"|||","min()":"min( # )","minmax()":"minmax( [||min-content|max-content|auto] , [|||min-content|max-content|auto] )","named-color":"transparent|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|<-non-standard-color>","namespace-prefix":"","ns-prefix":"[|'*']? '|'","number-percentage":"|","numeric-figure-values":"[lining-nums|oldstyle-nums]","numeric-fraction-values":"[diagonal-fractions|stacked-fractions]","numeric-spacing-values":"[proportional-nums|tabular-nums]",nth:"|even|odd","opacity()":"opacity( [] )","overflow-position":"unsafe|safe","outline-radius":"|","page-body":"? [; ]?| ","page-margin-box":" '{' '}'","page-margin-box-type":"@top-left-corner|@top-left|@top-center|@top-right|@top-right-corner|@bottom-left-corner|@bottom-left|@bottom-center|@bottom-right|@bottom-right-corner|@left-top|@left-middle|@left-bottom|@right-top|@right-middle|@right-bottom","page-selector-list":"[#]?","page-selector":"+| *","page-size":"A5|A4|A3|B5|B4|JIS-B5|JIS-B4|letter|legal|ledger","path()":"path( [ ,]? )","paint()":"paint( , ? )","perspective()":"perspective( )","polygon()":"polygon( ? , [ ]# )",position:"[[left|center|right]||[top|center|bottom]|[left|center|right|] [top|center|bottom|]?|[[left|right] ]&&[[top|bottom] ]]","pseudo-class-selector":"':' |':' ')'","pseudo-element-selector":"':' ","pseudo-page":": [left|right|first|blank]",quote:"open-quote|close-quote|no-open-quote|no-close-quote","radial-gradient()":"radial-gradient( [||]? [at ]? , )","relative-selector":"? ","relative-selector-list":"#","relative-size":"larger|smaller","repeat-style":"repeat-x|repeat-y|[repeat|space|round|no-repeat]{1,2}","repeating-linear-gradient()":"repeating-linear-gradient( [|to ]? , )","repeating-radial-gradient()":"repeating-radial-gradient( [||]? [at ]? , )","rgb()":"rgb( {3} [/ ]? )|rgb( {3} [/ ]? )|rgb( #{3} , ? )|rgb( #{3} , ? )","rgba()":"rgba( {3} [/ ]? )|rgba( {3} [/ ]? )|rgba( #{3} , ? )|rgba( #{3} , ? )","rotate()":"rotate( [|] )","rotate3d()":"rotate3d( , , , [|] )","rotateX()":"rotateX( [|] )","rotateY()":"rotateY( [|] )","rotateZ()":"rotateZ( [|] )","saturate()":"saturate( )","scale()":"scale( , ? )","scale3d()":"scale3d( , , )","scaleX()":"scaleX( )","scaleY()":"scaleY( )","scaleZ()":"scaleZ( )","self-position":"center|start|end|self-start|self-end|flex-start|flex-end","shape-radius":"|closest-side|farthest-side","skew()":"skew( [|] , [|]? )","skewX()":"skewX( [|] )","skewY()":"skewY( [|] )","sepia()":"sepia( )",shadow:"inset?&&{2,4}&&?","shadow-t":"[{2,3}&&?]",shape:"rect( , , , )|rect( )","shape-box":"|margin-box","side-or-corner":"[left|right]||[top|bottom]","single-animation":"