From 6e9379963f270d04bec52fff3f1de6092d1d11f3 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Wed, 3 Jul 2024 18:54:23 -0700 Subject: [PATCH] Migrate to playwright --- .github/workflows/node.js.yml | 11 +- .gitignore | 5 + build/UserALEWebExtension/background.js | 38 +- build/UserALEWebExtension/background.js.map | 1 - build/UserALEWebExtension/content.js | 16 +- build/UserALEWebExtension/content.js.map | 1 - build/UserALEWebExtension/globals.d.ts | 1 + build/UserALEWebExtension/options.js | 32 +- build/UserALEWebExtension/options.js.map | 1 - build/UserALEWebExtension/optionsPage.html | 2 +- build/configure.d.ts | 4 +- build/main.d.ts | 4 +- build/userale-2.4.0.js | 9 +- build/userale-2.4.0.js.map | 2 +- build/userale-2.4.0.min.js | 2 +- build/userale.d.ts | 2 +- cypress.config.ts | 25 -- example/no-logging.html | 76 ++++ example/server.js | 7 +- install-skywalking-eyes.sh | 21 -- jest.config.ts | 220 ------------ journey/tsconfig.json | 8 - journey/userale.journey.cy.ts | 89 ----- package-lock.json | 339 ++++-------------- package.json | 28 +- rollup.config.js | 2 +- src/UserALEWebExtension/background.ts | 30 +- src/UserALEWebExtension/content.ts | 10 +- src/UserALEWebExtension/globals.ts | 1 + src/UserALEWebExtension/options.ts | 28 +- src/UserALEWebExtension/optionsPage.html | 2 +- src/configure.ts | 9 +- src/main.ts | 4 +- src/types.d.ts | 2 +- test/e2e/playwright.config.ts | 75 ++++ test/e2e/spec/01-extension.spec.ts | 79 ++++ test/e2e/spec/01-package.spec.ts | 46 +++ test/e2e/spec/02-shared.spec.ts | 93 +++++ test/e2e/spec/fixtures/extension.fixture.ts | 74 ++++ test/unit/jest.config.ts | 46 +++ jest.setup.js => test/unit/jest.setup.js | 4 +- test/{ => unit/spec}/attachHandlers.spec.ts | 0 test/{ => unit/spec}/auth.spec.ts | 0 test/{ => unit/spec}/configure.spec.ts | 0 .../spec}/getInitialSettings.spec.ts | 0 .../spec}/getInitialSettings_fetchAll.html | 2 +- .../spec}/getInitialSettings_userParam.html | 2 +- test/{ => unit/spec}/headers.spec.ts | 0 test/{ => unit/spec}/main.html | 2 +- test/{ => unit/spec}/main.spec.ts | 0 test/{ => unit/spec}/packageLogs.spec.ts | 0 test/{ => unit/spec}/sendLogs.spec.ts | 0 test/{ => unit/spec}/testUtils.ts | 0 tsconfig.json | 2 +- 54 files changed, 703 insertions(+), 754 deletions(-) delete mode 100644 build/UserALEWebExtension/background.js.map delete mode 100644 build/UserALEWebExtension/content.js.map delete mode 100644 build/UserALEWebExtension/options.js.map delete mode 100644 cypress.config.ts create mode 100644 example/no-logging.html delete mode 100755 install-skywalking-eyes.sh delete mode 100644 jest.config.ts delete mode 100644 journey/tsconfig.json delete mode 100644 journey/userale.journey.cy.ts create mode 100644 test/e2e/playwright.config.ts create mode 100644 test/e2e/spec/01-extension.spec.ts create mode 100644 test/e2e/spec/01-package.spec.ts create mode 100644 test/e2e/spec/02-shared.spec.ts create mode 100644 test/e2e/spec/fixtures/extension.fixture.ts create mode 100644 test/unit/jest.config.ts rename jest.setup.js => test/unit/jest.setup.js (88%) rename test/{ => unit/spec}/attachHandlers.spec.ts (100%) rename test/{ => unit/spec}/auth.spec.ts (100%) rename test/{ => unit/spec}/configure.spec.ts (100%) rename test/{ => unit/spec}/getInitialSettings.spec.ts (100%) rename test/{ => unit/spec}/getInitialSettings_fetchAll.html (95%) rename test/{ => unit/spec}/getInitialSettings_userParam.html (95%) rename test/{ => unit/spec}/headers.spec.ts (100%) rename test/{ => unit/spec}/main.html (93%) rename test/{ => unit/spec}/main.spec.ts (100%) rename test/{ => unit/spec}/packageLogs.spec.ts (100%) rename test/{ => unit/spec}/sendLogs.spec.ts (100%) rename test/{ => unit/spec}/testUtils.ts (100%) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index 90ba73b5..294ed456 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -79,13 +79,22 @@ jobs: - name: Install dependencies run: npm ci # clean install + - name: Install Playwright Browsers + run: | + npx playwright install --with-deps + sudo apt-get update + sudo apt-get install -y xvfb + - name: Build run: | export PATH=${PATH}:`go env GOPATH`/bin npm run build - name: Test - run: npm run test + run: | + export DISPLAY=:99 + Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & + npm test # TODO: add automatic release notes # TODO: add cronjobs for automatically triggering new release candidates diff --git a/.gitignore b/.gitignore index 5361215e..f88850cd 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,8 @@ DS_store cypress tsconfig.tsbuildinfo .rollup.cache +/test-results/ +/playwright-report/ +/blob-report/ +/playwright/.cache/ +**/chromeData/* diff --git a/build/UserALEWebExtension/background.js b/build/UserALEWebExtension/background.js index 03d3ad30..e17ab0d1 100644 --- a/build/UserALEWebExtension/background.js +++ b/build/UserALEWebExtension/background.js @@ -268,7 +268,7 @@ class Configuration { /** * Shallow merges a newConfig with the configuration class, updating it. * Retrieves/updates the userid if userFromParams is provided. - * @param {Settings.Config} newConfig Configuration object to merge into the current config. + * @param {Partial} newConfig Configuration object to merge into the current config. */ update(newConfig) { Object.keys(newConfig).forEach((option) => { @@ -286,7 +286,10 @@ class Configuration { if (willNullifyUserId && hasNewUserFromParams) { return; } - this[option] = newConfig[option]; + const newOption = newConfig[option]; + if (newOption !== undefined) { + this[option] = newOption; + } }); } /** @@ -1195,7 +1198,7 @@ const version = version$1; /** * Updates the current configuration * object with the provided values. - * @param {Settings.Config} newConfig The configuration options to use. + * @param {Partial} newConfig The configuration options to use. * @return {Settings.Config} Returns the updated configuration. */ function options(newConfig) { @@ -1238,6 +1241,7 @@ function log(customLog) { /* eslint-disable */ // browser is defined in firefox, but chrome uses the 'chrome' global. var browser = window.browser || chrome; +const configKey = "useraleConfigPayload"; /* eslint-enable */ /* @@ -1304,11 +1308,14 @@ function updateTabToHttpSessionMapping(message, sender) { * @param {Extension.ConfigPayload} config The extension config to apply * @return {void} */ -function updateConfig(config) { - urlWhitelist = new RegExp(config.pluginConfig.urlWhitelist); - options(config.useraleConfig); - // TODO: tabs need a page load to apply this config change. - dispatchTabMessage(config.useraleConfig); +function updateConfig(payload) { + urlWhitelist = new RegExp(payload.pluginConfig.urlWhitelist); + options(payload.useraleConfig); + browser.storage.local.set({ [configKey]: payload }); + dispatchTabMessage({ + type: CONFIG_CHANGE, + payload: payload.useraleConfig, + }); } /** * Send a message to all tabs @@ -1343,7 +1350,8 @@ function filterUrl(log) { * @return {Object} The transformed log */ function injectSessions(log) { - const id = (log === null || log === void 0 ? void 0 : log.details).id; + var _a; + const id = (_a = log.details) === null || _a === void 0 ? void 0 : _a.id; if (id && id in tabToHttpSession) { log.httpSessionId = tabToHttpSession[id]; } @@ -1355,10 +1363,15 @@ function injectSessions(log) { } // @ts-expect-error Typescript is not aware that firefox's broswer is overloaded // to support chromium style MV2 callbacks -browser.storage.local.get(defaultConfig, (res) => { +browser.storage.local.get([configKey], (res) => { + if (res[configKey]) { + updateConfig(res[configKey]); + } + else { + updateConfig(defaultConfig); + } // Apply url filter to logs generated by the background page. addCallbacks({ filterUrl, injectSessions }); - updateConfig(res); const userAleHttpSessionId = window.sessionStorage.getItem("userAleHttpSessionId"); browserSessionId = userAleHttpSessionId ? JSON.parse(userAleHttpSessionId) @@ -1402,7 +1415,7 @@ function packageTabLog(tabId, data, type) { */ function packageDetailedTabLog(tab, data, type) { Object.assign(data, { type }); - // Two fields in the Tab interface do no match our serializable JSONObject interface + // Two fields in the Tab interface do not match our serializable JSONObject interface // remove them before create custom log const restOfTab = __rest(tab, ["mutedInfo", "sharingState"]); const payload = Object.assign({}, restOfTab); @@ -1447,4 +1460,3 @@ browser.tabs.onZoomChange.addListener((ZoomChangeInfo) => { const payload = Object.assign({}, restOfTab); packageTabLog(ZoomChangeInfo.tabId, payload, "tabs.onZoomChange"); }); -//# sourceMappingURL=background.js.map diff --git a/build/UserALEWebExtension/background.js.map b/build/UserALEWebExtension/background.js.map deleted file mode 100644 index be4dd74e..00000000 --- a/build/UserALEWebExtension/background.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"background.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/UserALEWebExtension/messageTypes.ts","../../src/getInitialSettings.ts","../../src/configure.ts","../../node_modules/detect-browser/es/index.js","../../src/packageLogs.ts","../../src/attachHandlers.ts","../../src/sendLogs.ts","../../src/main.ts","../../src/UserALEWebExtension/globals.ts","../../src/UserALEWebExtension/background.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,"var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['pie', /^Microsoft Pocket Internet Explorer\\/(\\d+\\.\\d+)$/],\n ['pie', /^Mozilla\\/\\d\\.\\d+\\s\\(compatible;\\s(?:MSP?IE|MSInternet Explorer) (\\d+\\.\\d+);.*Windows CE.*\\)$/],\n ['netfront', /^Mozilla\\/\\d\\.\\d+.*NetFront\\/(\\d.\\d)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FB[AS]V\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['curl', /^curl\\/([0-9\\.]+)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\n var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n",null,null,null,null,null,null],"names":["this","logs","config","userAleVersion","userale.version","log","userale.log","userale.options","userale.addCallbacks","MessageTypes.ADD_LOG","MessageTypes.HTTP_SESSION","MessageTypes.CONFIG_CHANGE","userale.packageCustomLog"],"mappings":"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","x_google_ignoreList":[0,4]} \ No newline at end of file diff --git a/build/UserALEWebExtension/content.js b/build/UserALEWebExtension/content.js index 10e6ae48..50055abb 100644 --- a/build/UserALEWebExtension/content.js +++ b/build/UserALEWebExtension/content.js @@ -215,7 +215,7 @@ class Configuration { /** * Shallow merges a newConfig with the configuration class, updating it. * Retrieves/updates the userid if userFromParams is provided. - * @param {Settings.Config} newConfig Configuration object to merge into the current config. + * @param {Partial} newConfig Configuration object to merge into the current config. */ update(newConfig) { Object.keys(newConfig).forEach((option) => { @@ -233,7 +233,10 @@ class Configuration { if (willNullifyUserId && hasNewUserFromParams) { return; } - this[option] = newConfig[option]; + const newOption = newConfig[option]; + if (newOption !== undefined) { + this[option] = newOption; + } }); } /** @@ -1140,7 +1143,7 @@ function setup(config) { /** * Updates the current configuration * object with the provided values. - * @param {Settings.Config} newConfig The configuration options to use. + * @param {Partial} newConfig The configuration options to use. * @return {Settings.Config} Returns the updated configuration. */ function options(newConfig) { @@ -1169,6 +1172,7 @@ function options(newConfig) { /* eslint-disable */ // browser is defined in firefox, but chrome uses the 'chrome' global. var browser = window.browser || chrome; +const configKey = "useraleConfigPayload"; function rerouteLog(log) { browser.runtime.sendMessage({ type: ADD_LOG, payload: log }); return false; @@ -1191,11 +1195,11 @@ function rerouteLog(log) { * See the License for the specific language governing permissions and * limitations under the License. */ -browser.storage.local.get("useraleConfig", +browser.storage.local.get([configKey], // @ts-expect-error Typescript is not aware that firefox's broswer is overloaded // to support chromium style MV2 callbacks (res) => { - options(res.useraleConfig); + options(res[configKey].useraleConfig); addCallbacks({ rerouteLog }); // Send httpSession to background scirpt to inject into tab events. const userAleHttpSessionId = window.sessionStorage.getItem("userAleHttpSessionId"); @@ -1208,8 +1212,8 @@ browser.storage.local.get("useraleConfig", }); // TODO: Add types for message browser.runtime.onMessage.addListener(function (message) { + console.log(message); if (message.type === CONFIG_CHANGE) { options(message.payload); } }); -//# sourceMappingURL=content.js.map diff --git a/build/UserALEWebExtension/content.js.map b/build/UserALEWebExtension/content.js.map deleted file mode 100644 index 1a4105b5..00000000 --- a/build/UserALEWebExtension/content.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"content.js","sources":["../../src/UserALEWebExtension/messageTypes.ts","../../src/getInitialSettings.ts","../../src/configure.ts","../../node_modules/detect-browser/es/index.js","../../src/packageLogs.ts","../../src/attachHandlers.ts","../../src/sendLogs.ts","../../src/main.ts","../../src/UserALEWebExtension/globals.ts","../../src/UserALEWebExtension/content.ts"],"sourcesContent":[null,null,null,"var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['pie', /^Microsoft Pocket Internet Explorer\\/(\\d+\\.\\d+)$/],\n ['pie', /^Mozilla\\/\\d\\.\\d+\\s\\(compatible;\\s(?:MSP?IE|MSInternet Explorer) (\\d+\\.\\d+);.*Windows CE.*\\)$/],\n ['netfront', /^Mozilla\\/\\d\\.\\d+.*NetFront\\/(\\d.\\d)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FB[AS]V\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['curl', /^curl\\/([0-9\\.]+)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\n var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n",null,null,null,null,null,null],"names":["this","logs","config","userAleVersion","MessageTypes.ADD_LOG","userale.options","userale.addCallbacks","MessageTypes.HTTP_SESSION","MessageTypes.CONFIG_CHANGE"],"mappings":"AAAA;;;;;;;;;;;;;;;AAeG;AAEH,MAAM,MAAM,GAAG,UAAU,CAAC;AAEnB,MAAM,aAAa,GAAG,MAAM,GAAG,eAAe,CAAC;AAC/C,MAAM,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AACnC,MAAM,YAAY,GAAG,MAAM,GAAG,cAAc;;;;ACrBnD;;;;;;;;;;;;;;;AAeG;AAIH,IAAI,SAAS,GAAkB,IAAI,CAAC;AACpC,IAAI,aAAa,GAAkB,IAAI,CAAC;AAExC;;;;AAIG;SACa,kBAAkB,GAAA;AAChC,IAAA,IAAI,SAAS,KAAK,IAAI,EAAE;AACtB,QAAA,SAAS,GAAG,YAAY,CACtB,kBAAkB,EAClB,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAChC,CAAC;KACH;AAED,IAAA,IAAI,aAAa,KAAK,IAAI,EAAE;QAC1B,aAAa,GAAG,YAAY,CAC1B,sBAAsB,EACtB,qBAAqB,EAAE,CACxB,CAAC;KACH;AAED,IAAA,MAAM,MAAM,GACV,QAAQ,CAAC,aAAa;QACtB,CAAC,YAAA;YACC,MAAM,OAAO,GAAG,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACxD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACpC,GAAG,CAAC;IAEP,MAAM,GAAG,GAAG,MAAM;UACd,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;AAClC,UAAE,YAAA;AACE,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CAAC;AACN,IAAA,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;AACpC,IAAA,MAAM,QAAQ,GAAoB;AAChC,QAAA,UAAU,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI;AACpC,QAAA,SAAS,EAAE,GAAG,CAAC,gBAAgB,CAAC,KAAK,OAAO,GAAG,KAAK,GAAG,IAAI;AAC3D,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI;AACpC,QAAA,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;AAC7C,QAAA,aAAa,EAAE,aAAa;QAC5B,iBAAiB,EAAE,EAAE,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChD,QAAA,UAAU,EAAE,GAAG,CAAC,kBAAkB,CAAC,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK;QAC7D,UAAU,EAAE,EAAE,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC;AAC5C,QAAA,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS;QAC3C,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AACzD,QAAA,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI;AAClC,QAAA,WAAW,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI;QACxC,gBAAgB,EAAE,EAAE,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC;AACjD,QAAA,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,uBAAuB;AAC/C,QAAA,cAAc,EAAE,GAAG,CAAC,sBAAsB,CAAC,IAAI,IAAI;AACnD,QAAA,cAAc,EAAE,GAAG,CAAC,uBAAuB,CAAC,IAAI,IAAI;AACpD,QAAA,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI;KACjC,CAAC;AACF,IAAA,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;AAKG;AACa,SAAA,YAAY,CAAC,UAAkB,EAAE,KAAU,EAAA;IACzD,IAAI,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;AACtD,QAAA,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC;AAED;;;;AAIG;AACG,SAAU,cAAc,CAAC,CAAQ,EAAA;AACrC,IAAA,IAAI,QAA+B,CAAC;IACpC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC;AACvC;;;;AAIG;AAEH,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,YAAA,QAAQ,GAAG,YAAA;AACT,gBAAA,OAAO,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;AAC5B,aAAC,CAAC;SACH;AAAM,aAAA,IAAI,KAAK,GAAG,CAAC,CAAC,SAAS,EAAE;AAC9B,YAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC;YACpD,QAAQ,GAAG,UAAU,EAAE,EAAA;gBACrB,OAAO,EAAE,GAAG,QAAQ,CAAC;AACvB,aAAC,CAAC;SACH;aAAM;YACL,QAAQ,GAAG,UAAU,EAAE,EAAA;AACrB,gBAAA,OAAO,EAAE,CAAC;AACZ,aAAC,CAAC;SACH;KACF;SAAM;AACL,QAAA,QAAQ,GAAG,YAAA;AACT,YAAA,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;AACpB,SAAC,CAAC;KACH;AAED,IAAA,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;AAGG;AACH,SAAS,qBAAqB,GAAA;;IAE5B,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACpC,IAAA,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,KAAI;AAC7B,QAAA,OAAO,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,KAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACd;;AC/IA;;;;;;;;;;;;;;;AAeG;AAKH;MACa,aAAa,CAAA;;AA4BxB,IAAA,WAAA,GAAA;;QAtBO,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAU,CAAA,UAAA,GAAwB,IAAI,CAAC;QACvC,IAAgB,CAAA,gBAAA,GAAuB,IAAI,CAAC;QAC5C,IAAS,CAAA,SAAA,GAAyB,IAAI,CAAC;QACvC,IAAO,CAAA,OAAA,GAAqB,IAAI,CAAC;QACjC,IAAa,CAAA,aAAA,GAAuB,IAAI,CAAC;QACzC,IAAiB,CAAA,iBAAA,GAAW,CAAC,CAAC;QAC9B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAE,CAAA,EAAA,GAAY,KAAK,CAAC;QACpB,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;QACvB,IAAS,CAAA,SAAA,GAAuB,IAAI,CAAC;QACrC,IAAI,CAAA,IAAA,GAA0B,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/C,IAAQ,CAAA,QAAA,GAAsB,IAAI,CAAC;QACnC,IAAW,CAAA,WAAA,GAAqB,IAAI,CAAC;QACrC,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;QAC7B,IAAG,CAAA,GAAA,GAAW,EAAE,CAAC;QACjB,IAAc,CAAA,cAAA,GAA4B,IAAI,CAAC;QAC/C,IAAc,CAAA,cAAA,GAAqB,IAAI,CAAC;QACxC,IAAM,CAAA,MAAA,GAAoB,IAAI,CAAC;QAC/B,IAAO,CAAA,OAAA,GAAqB,IAAI,CAAC;;AAKtC,QAAA,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;;AAGM,IAAA,OAAO,WAAW,GAAA;AACvB,QAAA,IAAI,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE;AACnC,YAAA,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;SAC9C;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC;KAC/B;IAEO,UAAU,GAAA;AAChB,QAAA,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;KACvB;AAED;;AAEG;IACI,KAAK,GAAA;QACV,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;AAED;;;;AAIG;AACI,IAAA,MAAM,CAAC,SAAiC,EAAA;QAC7C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACxC,YAAA,IAAI,MAAM,KAAK,gBAAgB,EAAE;AAC/B,gBAAA,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAA4B,CAAC;gBACrE,MAAM,MAAM,GAAG,eAAe;AAC5B,sBAAE,aAAa,CAAC,mBAAmB,CAAC,eAAe,CAAC;sBAClD,IAAI,CAAC;gBACT,IAAI,MAAM,EAAE;AACV,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;iBACzB;aACF;AACD,YAAA,MAAM,oBAAoB,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;AACzD,YAAA,MAAM,iBAAiB,GACrB,MAAM,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;AACpD,YAAA,IAAI,iBAAiB,IAAI,oBAAoB,EAAE;gBAC7C,OAAO;aACR;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;KACJ;AAED;;;;AAIG;IACI,OAAO,mBAAmB,CAAC,KAAa,EAAA;QAC7C,MAAM,SAAS,GAAG,KAAK,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAAC,CAAC;AACnE,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAElD,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;AACzB,YAAA,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;SAC3D;AACD,QAAA,OAAO,IAAI,CAAC;KACb;;AA9FD;AACe,aAAQ,CAAA,QAAA,GAAyB,IAAzB;;ACxBzB,IAAI,aAAa,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,aAAa,KAAK,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9E,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF,IAAI,WAAW,kBAAkB,YAAY;AAC7C,IAAI,SAAS,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;AAC5C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACrB,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,OAAO,WAAW,CAAC;AACvB,CAAC,EAAE,CAAC,CAAC;AAEL,IAAI,QAAQ,kBAAkB,YAAY;AAC1C,IAAI,SAAS,QAAQ,CAAC,OAAO,EAAE;AAC/B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AAC3B,QAAQ,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;AACnC,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC;AACpB,CAAC,EAAE,CAAC,CAAC;AAEL,IAAI,mBAAmB,kBAAkB,YAAY;AACrD,IAAI,SAAS,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE;AACzD,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACrB,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;AACjC,KAAK;AACL,IAAI,OAAO,mBAAmB,CAAC;AAC/B,CAAC,EAAE,CAAC,CAAC;AAEL,IAAI,OAAO,kBAAkB,YAAY;AACzC,IAAI,SAAS,OAAO,GAAG;AACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAC1B,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC,EAAE,CAAC,CAAC;AAEL,IAAI,eAAe,kBAAkB,YAAY;AACjD,IAAI,SAAS,eAAe,GAAG;AAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;AACnC,QAAQ,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;AACnC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,eAAe,CAAC;AAC3B,CAAC,EAAE,CAAC,CAAC;AAEL;AACA,IAAI,kBAAkB,GAAG,8HAA8H,CAAC;AACxJ,IAAI,kBAAkB,GAAG,oFAAoF,CAAC;AAC9G,IAAI,sBAAsB,GAAG,CAAC,CAAC;AAC/B,IAAI,cAAc,GAAG;AACrB,IAAI,CAAC,KAAK,EAAE,wBAAwB,CAAC;AACrC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC;AACjC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC;AACvC,IAAI,CAAC,eAAe,EAAE,wBAAwB,CAAC;AAC/C,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC;AAC1C,IAAI,CAAC,SAAS,EAAE,4BAA4B,CAAC;AAC7C,IAAI,CAAC,MAAM,EAAE,uBAAuB,CAAC;AACrC,IAAI,CAAC,MAAM,EAAE,0BAA0B,CAAC;AACxC,IAAI,CAAC,QAAQ,EAAE,2BAA2B,CAAC;AAC3C,IAAI,CAAC,eAAe,EAAE,mBAAmB,CAAC;AAC1C,IAAI;AACJ,QAAQ,kBAAkB;AAC1B,QAAQ,wDAAwD;AAChE,KAAK;AACL,IAAI,CAAC,QAAQ,EAAE,kDAAkD,CAAC;AAClE,IAAI,CAAC,WAAW,EAAE,+BAA+B,CAAC;AAClD,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC;AAC1C,IAAI,CAAC,SAAS,EAAE,6BAA6B,CAAC;AAC9C,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAClC,IAAI,CAAC,YAAY,EAAE,iCAAiC,CAAC;AACrD,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC;AAC1C,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC;AACxC,IAAI,CAAC,KAAK,EAAE,kDAAkD,CAAC;AAC/D,IAAI,CAAC,KAAK,EAAE,+FAA+F,CAAC;AAC5G,IAAI,CAAC,UAAU,EAAE,sCAAsC,CAAC;AACxD,IAAI,CAAC,IAAI,EAAE,2CAA2C,CAAC;AACvD,IAAI,CAAC,IAAI,EAAE,qCAAqC,CAAC;AACjD,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;AAC1B,IAAI,CAAC,MAAM,EAAE,mCAAmC,CAAC;AACjD,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC;AACtC,IAAI,CAAC,KAAK,EAAE,wCAAwC,CAAC;AACrD,IAAI,CAAC,QAAQ,EAAE,8BAA8B,CAAC;AAC9C,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC;AACvC,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC;AAC1C,IAAI,CAAC,aAAa,EAAE,iCAAiC,CAAC;AACtD,IAAI,CAAC,aAAa,EAAE,mCAAmC,CAAC;AACxD,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC;AAClC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC;AACrC,CAAC,CAAC;AACF,IAAI,oBAAoB,GAAG;AAC3B,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC;AAC7B,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC;AAC7B,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC;AACxC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC;AAClC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC3B,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;AAC7B,IAAI,CAAC,YAAY,EAAE,mCAAmC,CAAC;AACvD,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC;AAC1C,IAAI,CAAC,cAAc,EAAE,iCAAiC,CAAC;AACvD,IAAI,CAAC,YAAY,EAAE,+BAA+B,CAAC;AACnD,IAAI,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;AAC/C,IAAI,CAAC,eAAe,EAAE,kBAAkB,CAAC;AACzC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC;AACrC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC;AACrC,IAAI,CAAC,aAAa,EAAE,kBAAkB,CAAC;AACvC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC;AACvC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC;AAChC,IAAI,CAAC,YAAY,EAAE,qDAAqD,CAAC;AACzE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;AAC3B,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;AACvB,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;AACzB,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;AAC9B,IAAI,CAAC,QAAQ,EAAE,2BAA2B,CAAC;AAC3C,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;AAClB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AACpB,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;AACrB,CAAC,CAAC;AACK,SAAS,MAAM,CAAC,SAAS,EAAE;AAIlC,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW;AACvC,QAAQ,OAAO,SAAS,KAAK,WAAW;AACxC,QAAQ,SAAS,CAAC,OAAO,KAAK,aAAa,EAAE;AAC7C,QAAQ,OAAO,IAAI,eAAe,EAAE,CAAC;AACrC,KAAK;AACL,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;AAC1C,QAAQ,OAAO,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACnD,KAAK;AACL,IAAI,OAAO,cAAc,EAAE,CAAC;AAC5B,CAAC;AACD,SAAS,cAAc,CAAC,EAAE,EAAE;AAC5B;AACA;AACA;AACA;AACA,IAAI,QAAQ,EAAE,KAAK,EAAE;AACrB,QAAQ,cAAc,CAAC,MAAM,CAAC,UAAU,OAAO,EAAE,EAAE,EAAE;AACrD,YAAY,IAAI,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,OAAO,OAAO,CAAC;AAC/B,aAAa;AACb,YAAY,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,YAAY,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACnD,SAAS,EAAE,KAAK,CAAC,EAAE;AACnB,CAAC;AAKM,SAAS,cAAc,CAAC,EAAE,EAAE;AACnC,IAAI,IAAI,WAAW,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACtD,IAAI,IAAI,IAAI,KAAK,WAAW,EAAE;AAC9B,QAAQ,OAAO,IAAI,OAAO,EAAE,CAAC;AAC7B,KAAK;AACL;AACA,IAAI,IAAI,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxF,IAAI,IAAI,YAAY,EAAE;AACtB,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,sBAAsB,EAAE;AAC1D,YAAY,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACxJ,SAAS;AACT,KAAK;AACL,SAAS;AACT,QAAQ,YAAY,GAAG,EAAE,CAAC;AAC1B,KAAK;AACL,IAAI,IAAI,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,IAAI,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC1B,IAAI,IAAI,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrD,IAAI,IAAI,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE;AAC7C,QAAQ,OAAO,IAAI,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,KAAK;AACL,IAAI,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC;AACM,SAAS,QAAQ,CAAC,EAAE,EAAE;AAC7B,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,oBAAoB,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE;AAC5E,QAAQ,IAAI,EAAE,GAAG,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,QAAQ,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACM,SAAS,cAAc,GAAG;AACjC,IAAI,IAAI,MAAM,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;AACnE,IAAI,OAAO,MAAM,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAClE,CAAC;AACD,SAAS,kBAAkB,CAAC,KAAK,EAAE;AACnC,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE;AACvC,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB;;ACrNA;;;;;;;;;;;;;;;AAeG;AAKH,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC;AAEtB,IAAIC,MAAwB,CAAC;AACpC,IAAIC,QAAqB,CAAC;AAE1B;AACA,IAAI,UAAyB,CAAC;AAC9B,IAAI,YAA2B,CAAC;AAChC,IAAI,YAA6B,CAAC;AAClC,IAAI,aAA4B,CAAC;AACjC,IAAI,eAA8B,CAAC;AACnC,IAAI,WAA+B,CAAC;AAE7B,MAAM,aAAa,GAA4B,IAAI,CAAC;AACpD,MAAM,UAAU,GAA4B,IAAI,CAAC;AACjD,IAAI,UAAU,GAA0B,EAAE,CAAC;AAElD;;;AAGG;AACa,SAAA,YAAY,CAC1B,GAAG,YAAyD,EAAA;AAE5D,IAAA,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;QAC9B,IAAI,WAAW,GAAsC,EAAE,CAAC;AAExD,QAAA,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,GAAG,KAAI;AAC5D,YAAA,WAAW,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChE,YAAA,OAAO,WAAW,CAAC;SACpB,EAAE,WAAW,CAAC,CAAC;QAEhB,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACnD,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAChE,IAAI,UAAU,aAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,UAAU,EAAE;AAC1B,gBAAA,WAAW,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;aAC/B;AACH,SAAC,CAAC,CAAC;AACH,QAAA,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACnD,KAAC,CAAC,CAAC;AACH,IAAA,OAAO,UAAU,CAAC;AACpB,CAAC;AAcD;;;;AAIG;AACa,SAAA,YAAY,CAC1B,OAA2B,EAC3B,SAAwB,EAAA;IAExBD,MAAI,GAAG,OAAO,CAAC;IACfC,QAAM,GAAG,SAAS,CAAC;IACnB,UAAU,GAAG,EAAE,CAAC;IAChB,UAAU,GAAG,IAAI,CAAC;IAClB,YAAY,GAAG,IAAI,CAAC;IACpB,YAAY,GAAG,IAAI,CAAC;IACpB,aAAa,GAAG,IAAI,CAAC;IACrB,eAAe,GAAG,CAAC,CAAC;IACpB,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED;;;;;AAKG;AACa,SAAA,UAAU,CACxB,CAAQ,EACR,SAAgD,EAAA;AAEhD,IAAA,IAAI,CAACA,QAAM,CAAC,EAAE,EAAE;AACd,QAAA,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,SAAS,EAAE;AACb,QAAA,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KACxB;AAED,IAAA,MAAM,UAAU,GAAG,iBAAiB,CAClC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,GAAGA,QAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CACvE,CAAC;AAEF,IAAA,IAAI,GAAG,GAAgB;AACrB,QAAA,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI;AAC/C,QAAA,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;AAClB,QAAA,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;QAC7B,SAAS,EAAE,QAAQ,CAAC,KAAK;QACzB,YAAY,EAAE,QAAQ,CAAC,QAAQ;QAC/B,OAAO,EAAE,aAAa,EAAE;QACxB,UAAU,EAAE,UAAU,CAAC,KAAK;QAC5B,SAAS,EAAE,UAAU,CAAC,KAAK;AAC3B,QAAA,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;QACxB,OAAO,EAAE,YAAY,EAAE;QACvB,IAAI,EAAE,CAAC,CAAC,IAAI;AACZ,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,OAAO,EAAE,OAAO;QAChB,MAAM,EAAEA,QAAM,CAAC,MAAM;QACrB,WAAW,EAAEA,QAAM,CAAC,WAAW;QAC/B,QAAQ,EAAEA,QAAM,CAAC,QAAQ;QACzB,cAAc,EAAEA,QAAM,CAAC,cAAc;QACrC,SAAS,EAAEA,QAAM,CAAC,SAAS;QAC3B,aAAa,EAAEA,QAAM,CAAC,aAAa;QACnC,gBAAgB,EAAEA,QAAM,CAAC,gBAAgB;KAC1C,CAAC;IAUF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AAC5C,QAAA,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AAC9B,YAAA,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,OAAO,KAAK,CAAC;aACd;SACF;KACF;AAED,IAAAD,MAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;AAMG;SACa,gBAAgB,CAC9B,SAA4B,EAC5B,SAAuE,EACvE,UAAmB,EAAA;AAEnB,IAAA,IAAI,CAACC,QAAM,CAAC,EAAE,EAAE;AACd,QAAA,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,GAAG,IAAI,CAAC;AACnB,IAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;;;;;;QAM1B,MAAM,eAAe,GAAG,SAAyC,CAAC;QAClE,OAAO,GAAG,eAAe,EAAE,CAAC;KAC7B;AAED,IAAA,MAAM,QAAQ,GAAG;AACf,QAAA,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;QAC7B,SAAS,EAAE,QAAQ,CAAC,KAAK;QACzB,YAAY,EAAE,QAAQ,CAAC,QAAQ;QAC/B,OAAO,EAAE,aAAa,EAAE;AACxB,QAAA,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;QACtB,OAAO,EAAE,YAAY,EAAE;AACvB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,OAAO,EAAE,OAAO;QAChB,MAAM,EAAEA,QAAM,CAAC,MAAM;QACrB,WAAW,EAAEA,QAAM,CAAC,WAAW;QAC/B,QAAQ,EAAEA,QAAM,CAAC,QAAQ;QACzB,cAAc,EAAEA,QAAM,CAAC,cAAc;QACrC,SAAS,EAAEA,QAAM,CAAC,SAAS;QAC3B,aAAa,EAAEA,QAAM,CAAC,aAAa;QACnC,gBAAgB,EAAEA,QAAM,CAAC,gBAAgB;KAC1C,CAAC;IAEF,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAU7C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AAC5C,QAAA,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AAC9B,YAAA,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,OAAO,KAAK,CAAC;aACd;SACF;KACF;AAED,IAAAD,MAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEf,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;AAKG;AACG,SAAU,iBAAiB,CAAC,SAAiB,EAAA;IACjD,OAAO;AACL,QAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC5B,QAAA,KAAK,EAAE,MAAM,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED;;;;AAIG;AACG,SAAU,kBAAkB,CAAC,CAAQ,EAAA;AACzC,IAAA,IAAI;AACF,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AACvD,QAAA,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAA,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACpB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAC1B,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,GAAGC,QAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CACvE,CAAC;;AAGF,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;YACtB,UAAU,GAAG,MAAM,CAAC;YACpB,YAAY,GAAG,IAAI,CAAC;YACpB,YAAY,GAAG,IAAI,CAAC;YACpB,aAAa,GAAG,SAAS,CAAC;YAC1B,eAAe,GAAG,CAAC,CAAC;SACrB;AAED,QAAA,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,YAAY,KAAK,IAAI,KAAK,aAAa,EAAE;;;AAIrE,YAAA,WAAW,GAAG;AACZ,gBAAA,MAAM,EAAE,UAAU;AAClB,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;gBAC7B,SAAS,EAAE,QAAQ,CAAC,KAAK;gBACzB,YAAY,EAAE,QAAQ,CAAC,QAAQ;gBAC/B,OAAO,EAAE,aAAa,EAAE;AACxB,gBAAA,KAAK,EAAE,eAAe;AACtB,gBAAA,QAAQ,EAAE,SAAS,GAAG,aAAa;AACnC,gBAAA,SAAS,EAAE,aAAa;AACxB,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,OAAO,EAAE,UAAU;gBACnB,YAAY,EAAE,UAAU,KAAK,MAAM;gBACnC,UAAU,EAAE,YAAY,KAAK,IAAI;AACjC,gBAAA,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAEA,QAAM,CAAC,MAAM;gBACrB,WAAW,EAAEA,QAAM,CAAC,WAAW;gBAC/B,QAAQ,EAAEA,QAAM,CAAC,QAAQ;gBACzB,cAAc,EAAEA,QAAM,CAAC,cAAc;gBACrC,SAAS,EAAEA,QAAM,CAAC,SAAS;gBAC3B,aAAa,EAAEA,QAAM,CAAC,aAAa;gBACnC,gBAAgB,EAAEA,QAAM,CAAC,gBAAgB;aAC1C,CAAC;YAEF,IAAI,OAAO,aAAa,KAAK,UAAU,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAEvE;AAED,YAAA,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAErC;YAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AAC5C,gBAAA,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AAC9B,oBAAA,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;oBACtC,IAAI,CAAC,WAAW,EAAE;AAChB,wBAAA,OAAO,KAAK,CAAC;qBACd;iBACF;aACF;AAED,YAAA,IAAI,WAAW;AAAE,gBAAAD,MAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;YAGxC,UAAU,GAAG,MAAM,CAAC;YACpB,YAAY,GAAG,IAAI,CAAC;YACpB,YAAY,GAAG,IAAI,CAAC;YACpB,aAAa,GAAG,SAAS,CAAC;YAC1B,eAAe,GAAG,CAAC,CAAC;SACrB;;QAGD,IAAI,UAAU,IAAI,MAAM,IAAI,YAAY,IAAI,IAAI,IAAI,eAAe,EAAE;AACnE,YAAA,eAAe,GAAG,eAAe,GAAG,CAAC,CAAC;SACvC;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAAC,IAAA,OAAA,EAAA,EAAM;AACN,QAAA,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAED;;;;;AAKG;AACG,SAAU,WAAW,CAAC,CAAQ,EAAA;AAClC,IAAA,IAAI,CAAC,YAAY,UAAU,EAAE;AAC3B,QAAA,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE;AACnB,YAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;SACnC;AAAM,aAAA,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,EAAE;YAC5B,OAAO;gBACL,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO;gBAClD,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO;aAClD,CAAC;SACH;KACF;SAAM;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;KAC7B;AACH,CAAC;AAED;;;AAGG;SACa,YAAY,GAAA;AAC1B,IAAA,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;AAClE,CAAC;AAED;;;;AAIG;AACG,SAAU,WAAW,CAAC,GAAgB,EAAA;IAC1C,IAAI,GAAG,YAAY,WAAW,IAAI,GAAG,YAAY,OAAO,EAAE;AACxD,QAAA,IAAI,GAAG,CAAC,SAAS,EAAE;YACjB,QACE,GAAG,CAAC,SAAS;AACb,iBAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;AAC5B,iBAAC,GAAG,CAAC,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,EAC1C;SACH;AAAM,aAAA,IAAI,GAAG,CAAC,QAAQ,EAAE;YACvB,QACE,GAAG,CAAC,QAAQ;AACZ,iBAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC;AAC5B,iBAAC,GAAG,CAAC,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,EAC1C;SACH;KACF;AAAM,SAAA,IAAI,GAAG,YAAY,QAAQ,EAAE;AAClC,QAAA,OAAO,WAAW,CAAC;KACpB;AAAM,SAAA,IAAI,GAAG,KAAK,UAAU,EAAE;AAC7B,QAAA,OAAO,QAAQ,CAAC;KACjB;AACD,IAAA,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;AAIG;AACG,SAAU,SAAS,CAAC,CAAQ,EAAA;AAChC,IAAA,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;AAC9B,IAAA,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;;;AAIG;AACG,SAAU,eAAe,CAAC,IAAmB,EAAA;IACjD,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,IAAA,IAAI,OAAO,CAAC;IACZ,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,QAAQ,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG;QAC1B,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AACzC,QAAA,EAAE,CAAC,CAAC;AACJ,QAAA,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACD,IAAA,OAAO,aAAa,CAAC;AACvB,CAAC;SAEe,aAAa,GAAA;IAC3B,OAAO;QACL,OAAO,EAAE,WAAW,GAAG,WAAW,CAAC,IAAI,GAAG,EAAE;QAC5C,OAAO,EAAE,WAAW,GAAG,WAAW,CAAC,OAAO,GAAG,EAAE;KAChD,CAAC;AACJ;;ACzaA;;;;;;;;;;;;;;;AAeG;AAMH;AACA,IAAI,MAAoD,CAAC;AACzD,IAAI,WAAuD,CAAC;AAC5D,IAAI,cAA6D,CAAC;AAClE,IAAI,aAA2D,CAAC;AAChE,MAAM,cAAc,GAAiC;IACnD,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;IACR,WAAW;IACX,QAAQ;CACT,CAAC;AACF,MAAM,YAAY,GAA+B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3E;;;AAGG;AACG,SAAU,mBAAmB,CAAC,CAAa,EAAA;IAC/C,OAAO;QACL,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,IAAI,EAAE,CAAC,CAAC,OAAO;QACf,GAAG,EAAE,CAAC,CAAC,MAAM;QACb,KAAK,EAAE,CAAC,CAAC,QAAQ;QACjB,IAAI,EAAE,CAAC,CAAC,OAAO;;KAEhB,CAAC;AACJ,CAAC;AAED;;AAEG;AACG,SAAU,sBAAsB,CAAC,CAAgB,EAAA;IACrD,OAAO;QACL,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,OAAO;QACf,GAAG,EAAE,CAAC,CAAC,MAAM;QACb,KAAK,EAAE,CAAC,CAAC,QAAQ;QACjB,IAAI,EAAE,CAAC,CAAC,OAAO;KAChB,CAAC;AACJ,CAAC;AAYD;;;AAGG;AACG,SAAU,oBAAoB,CAAC,CAAqB,EAAA;IACxD,OAAO;AACL,QAAA,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK;KACtB,CAAC;AACJ,CAAC;AAED;;;AAGG;AACG,SAAU,mBAAmB,CAAC,CAAa,EAAA;IAC/C,OAAO;QACL,CAAC,EAAE,CAAC,CAAC,MAAM;QACX,CAAC,EAAE,CAAC,CAAC,MAAM;QACX,CAAC,EAAE,CAAC,CAAC,MAAM;KACZ,CAAC;AACJ,CAAC;AAED;;AAEG;SACa,oBAAoB,GAAA;IAClC,OAAO;QACL,CAAC,EAAE,MAAM,CAAC,OAAO;QACjB,CAAC,EAAE,MAAM,CAAC,OAAO;KAClB,CAAC;AACJ,CAAC;AAED;;AAEG;SACa,oBAAoB,GAAA;IAClC,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,UAAU;QACxB,MAAM,EAAE,MAAM,CAAC,WAAW;KAC3B,CAAC;AACJ,CAAC;AAED;;;;AAIG;AACG,SAAU,aAAa,CAAC,MAA8B,EAAA;;;;AAI1D,IAAA,MAAM,GAAG;AACP,QAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,MAAM,CAAC,UAAU,GAAG,sBAAsB,GAAG,IAAI;QACxD,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,oBAAoB,GAAG,IAAI;AACvD,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,OAAO,EAAE,IAAI;AACb,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,MAAM,CAAC,UAAU,GAAG,sBAAsB,GAAG,IAAI;AAC1D,QAAA,SAAS,EAAE,IAAI;KAChB,CAAC;IAEF,WAAW,GAAG,EAAE,CAAC;AACjB,IAAA,cAAc,GAAG;AACf,QAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,MAAM,EAAE,oBAAoB;KAC7B,CAAC;AAEF,IAAA,aAAa,GAAG;AACd,QAAA,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC;AAuCD;;;;AAIG;AACG,SAAU,cAAc,CAAC,MAAqB,EAAA;AAClD,IAAA,IAAI;QACF,aAAa,CAAC,MAAM,CAAC,CAAC;QAErB,MAAM,CAAC,IAAI,CAAC,MAAM,CAA4B,CAAC,OAAO,CAAC,UAAU,EAAE,EAAA;AAClE,YAAA,QAAQ,CAAC,gBAAgB,CACvB,EAAE,EACF,UAAU,CAAC,EAAA;gBACT,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;aAC3B,EACD,IAAI,CACL,CAAC;AACJ,SAAC,CAAC,CAAC;AAEH,QAAA,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,EAAA;AACjC,YAAA,QAAQ,CAAC,gBAAgB,CACvB,EAAE,EACF,UAAU,CAAC,EAAA;gBACT,kBAAkB,CAAC,CAAC,CAAC,CAAC;aACvB,EACD,IAAI,CACL,CAAC;AACJ,SAAC,CAAC,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,cAAc,CAA6B,CAAC,OAAO,CAC9D,UAAU,EAAE,EAAA;AACV,YAAA,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AAEvB,YAAA,MAAM,CAAC,gBAAgB,CACrB,EAAE,EACF,UAAU,CAAC,EAAA;AACT,gBAAA,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE;AACnB,oBAAA,WAAW,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;oBACxB,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;AAClC,oBAAA,UAAU,CAAC,YAAA;AACT,wBAAA,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AACzB,qBAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;iBACvB;aACF,EACD,IAAI,CACL,CAAC;AACJ,SAAC,CACF,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,aAAa,CAA4B,CAAC,OAAO,CAC5D,UAAU,EAAE,EAAA;AACV,YAAA,QAAQ,CAAC,gBAAgB,CACvB,EAAE,EACF,UAAU,CAAC,EAAA;gBACT,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;aAC3B,EACD,IAAI,CACL,CAAC;AACJ,SAAC,CACF,CAAC;AAEF,QAAA,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,EAAA;AAC/B,YAAA,MAAM,CAAC,gBAAgB,CACrB,EAAE,EACF,UAAU,CAAC,EAAA;gBACT,UAAU,CAAC,CAAC,EAAE,YAAA;AACZ,oBAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,iBAAC,CAAC,CAAC;aACJ,EACD,IAAI,CACL,CAAC;AACJ,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,IAAI,CAAC;KACb;AAAC,IAAA,OAAA,EAAA,EAAM;AACN,QAAA,OAAO,KAAK,CAAC;KACd;AACH;;AC9QA;;;;;;;;;;;;;;;AAeG;AAMH,IAAI,cAA4D,CAAC;AAEjE;;;;AAIG;AACa,SAAA,UAAU,CAAC,IAAwB,EAAE,MAAqB,EAAA;IACxE,IAAI,cAAc,EAAE;QAClB,aAAa,CAAC,cAAc,CAAC,CAAC;KAC/B;AAED,IAAA,cAAc,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9C,IAAA,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;AAMG;AACa,SAAA,cAAc,CAC5B,IAAwB,EACxB,MAAqB,EAAA;AAErB,IAAA,OAAO,WAAW,CAAC,YAAA;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACd,OAAO;SACR;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE;AAC3C,YAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAS,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAChB;AACH,KAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC9B,CAAC;AAED;;;;AAIG;AACa,SAAA,WAAW,CACzB,IAAwB,EACxB,MAAqB,EAAA;AAErB,IAAA,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAA;AAClC,QAAA,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YACd,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,YAAA,MAAM,OAAO,GAAgB,IAAI,OAAO,EAAE,CAAC;AAC3C,YAAA,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAC;AAE9D,YAAA,IAAI,MAAM,CAAC,UAAU,EAAE;AACrB,gBAAA,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC5D;AAED,YAAA,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;AAChB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC3B,aAAA,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;AACjB,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvB,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAChB;AACH,KAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;AAMG;AAEH;SACgB,QAAQ,CACtB,IAAwB,EACxB,MAAqB,EACrB,OAAe,EAAA;AAEf,IAAA,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAElC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAI7B,IAAA,IAAI,MAAM,CAAC,UAAU,EAAE;QACrB,GAAG,CAAC,gBAAgB,CAClB,eAAe,EACf,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;AACrC,cAAE,MAAM,CAAC,UAAU,EAAE;AACrB,cAAE,MAAM,CAAC,UAAU,CACtB,CAAC;KACH;AACD,IAAA,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAC;AAKvE,IAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,QAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,KAAI;AACzD,YAAA,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACtC,SAAC,CAAC,CAAC;KACJ;IAED,GAAG,CAAC,kBAAkB,GAAG,YAAA;AACvB,QAAA,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAI/C;AACH,KAAC,CAAC;AAEF,IAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB;;ACjJA;;;;;;;;;;;;;;;AAeG;AAUH,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;AAC3C,MAAM,IAAI,GAAuB,EAAE,CAAC;AAEpC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACtC,IAAI,gBAAwB,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,YAAA;AACd,IAAA,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAChC,CAAC,CAAC;AAEK,IAAI,OAAO,GAAG,KAAK,CAAC;AAY3B,MAAM,CAAC,MAAM,CAAC;AACZ,IAAA,cAAc,EAAEE,OAAc;AAC/B,CAAA,CAAC,CAAC;AACH,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAE3B,IAAI,MAAM,CAAC,SAAS,EAAE;IACpB,KAAK,CAAC,MAAM,CAAC,CAAC;AAChB,CAAC;AAED;;;;AAIG;AACH,SAAS,KAAK,CAAC,MAAqB,EAAA;IAClC,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,UAAU,CAAC,YAAA;AACT,YAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC;YAElC,IACE,MAAM,CAAC,SAAS;iBACf,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,UAAU,CAAC,EACjD;gBACA,cAAc,CAAC,MAAM,CAAC,CAAC;AACvB,gBAAA,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzB,gBAAA,OAAO,GAAG,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;AAC3B,gBAAA,gBAAgB,CACd;AACE,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,OAAO,EAAE,EAAE,YAAY,EAAE,gBAAgB,GAAG,kBAAkB,EAAE;iBACjE,EACD,OAAO,EAAE,CAAC,EACV,KAAK,CACN,CAAC;aACH;iBAAM;gBACL,KAAK,CAAC,MAAM,CAAC,CAAC;aACf;SACF,EAAE,GAAG,CAAC,CAAC;KACT;AACH,CAAC;AAwBD;;;;;AAKG;AACG,SAAU,OAAO,CACrB,SAAsC,EAAA;IAEtC,IAAI,SAAS,EAAE;AACb,QAAA,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KAC1B;AAED,IAAA,OAAO,MAAM,CAAC;AAChB;;AC3HA;;;;;;;;;;;;;;;AAeG;AAEH;AAIA;AACO,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;AAExC,SAAU,UAAU,CAAC,GAAgB,EAAA;AACzC,IAAA,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAEC,OAAoB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;AAC1E,IAAA,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;AC7BA;;;;;;;;;;;;;;;AAeG;AAMH,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CACvB,eAAe;AACf;AACA;AACA,CAAC,GAAuC,KAAI;AAC1C,IAAAC,OAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACnC,IAAAC,YAAoB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;;IAGrC,MAAM,oBAAoB,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CACxD,sBAAsB,CACvB,CAAC;IACF,IAAI,oBAAoB,EAAE;AACxB,QAAA,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;YAC1B,IAAI,EAAEC,YAAyB;AAC/B,YAAA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;AAC1C,SAAA,CAAC,CAAC;KACJ;AACH,CAAC,CACF,CAAC;AAEF;AACA,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,OAAO,EAAA;IACrD,IAAI,OAAO,CAAC,IAAI,KAAKC,aAA0B,EAAE;AAC/C,QAAAH,OAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KAClC;AACH,CAAC,CAAC","x_google_ignoreList":[3]} \ No newline at end of file diff --git a/build/UserALEWebExtension/globals.d.ts b/build/UserALEWebExtension/globals.d.ts index c1716a17..95292827 100644 --- a/build/UserALEWebExtension/globals.d.ts +++ b/build/UserALEWebExtension/globals.d.ts @@ -20,4 +20,5 @@ /// import type { Logging } from "@/types"; export declare var browser: typeof globalThis.browser; +export declare const configKey = "useraleConfigPayload"; export declare function rerouteLog(log: Logging.Log): boolean; diff --git a/build/UserALEWebExtension/options.js b/build/UserALEWebExtension/options.js index 3836a5f4..6b603dc4 100644 --- a/build/UserALEWebExtension/options.js +++ b/build/UserALEWebExtension/options.js @@ -214,7 +214,7 @@ class Configuration { /** * Shallow merges a newConfig with the configuration class, updating it. * Retrieves/updates the userid if userFromParams is provided. - * @param {Settings.Config} newConfig Configuration object to merge into the current config. + * @param {Partial} newConfig Configuration object to merge into the current config. */ update(newConfig) { Object.keys(newConfig).forEach((option) => { @@ -232,7 +232,10 @@ class Configuration { if (willNullifyUserId && hasNewUserFromParams) { return; } - this[option] = newConfig[option]; + const newOption = newConfig[option]; + if (newOption !== undefined) { + this[option] = newOption; + } }); } /** @@ -1139,7 +1142,7 @@ function setup(config) { /** * Updates the current configuration * object with the provided values. - * @param {Settings.Config} newConfig The configuration options to use. + * @param {Partial} newConfig The configuration options to use. * @return {Settings.Config} Returns the updated configuration. */ function options(newConfig) { @@ -1168,6 +1171,7 @@ function options(newConfig) { /* eslint-disable */ // browser is defined in firefox, but chrome uses the 'chrome' global. var browser = window.browser || chrome; +const configKey = "useraleConfigPayload"; function rerouteLog(log) { browser.runtime.sendMessage({ type: ADD_LOG, payload: log }); return false; @@ -1218,18 +1222,16 @@ function setConfig() { .value, }, }; - // @ts-expect-error Typescript is not aware that firefox's broswer is overloaded - // to support chromium style MV2 callbacks - browser.storage.local.set(payload, () => { - options(config); - browser.runtime.sendMessage({ type: CONFIG_CHANGE, payload }); - }); + options(config); + browser.runtime.sendMessage({ type: CONFIG_CHANGE, payload }); } function getConfig() { // @ts-expect-error Typescript is not aware that firefox's broswer is overloaded // to support chromium style MV2 callbacks - browser.storage.local.get("useraleConfig", (res) => { - const config = res.useraleConfig; + browser.storage.local.get([configKey], (res) => { + const payload = res[configKey]; + console.log(payload); + const config = payload.useraleConfig; options(config); document.getElementById("url").value = config.url; document.getElementById("user").value = @@ -1238,15 +1240,9 @@ function getConfig() { config.toolName; document.getElementById("toolVersion").value = config.toolVersion; - }); - browser.storage.local.get("pluginConfig", - // @ts-expect-error Typescript is not aware that firefox's broswer is overloaded - // to support chromium style MV2 callbacks - (res) => { document.getElementById("filter").value = - res.pluginConfig.urlWhitelist; + payload.pluginConfig.urlWhitelist; }); } document.addEventListener("DOMContentLoaded", getConfig); document.addEventListener("submit", setConfig); -//# sourceMappingURL=options.js.map diff --git a/build/UserALEWebExtension/options.js.map b/build/UserALEWebExtension/options.js.map deleted file mode 100644 index 351a3ab7..00000000 --- a/build/UserALEWebExtension/options.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"options.js","sources":["../../src/UserALEWebExtension/messageTypes.ts","../../src/getInitialSettings.ts","../../src/configure.ts","../../node_modules/detect-browser/es/index.js","../../src/packageLogs.ts","../../src/attachHandlers.ts","../../src/sendLogs.ts","../../src/main.ts","../../src/UserALEWebExtension/globals.ts","../../src/UserALEWebExtension/options.ts"],"sourcesContent":[null,null,null,"var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['pie', /^Microsoft Pocket Internet Explorer\\/(\\d+\\.\\d+)$/],\n ['pie', /^Mozilla\\/\\d\\.\\d+\\s\\(compatible;\\s(?:MSP?IE|MSInternet Explorer) (\\d+\\.\\d+);.*Windows CE.*\\)$/],\n ['netfront', /^Mozilla\\/\\d\\.\\d+.*NetFront\\/(\\d.\\d)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FB[AS]V\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['curl', /^curl\\/([0-9\\.]+)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\n var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n",null,null,null,null,null,null],"names":["this","logs","config","userAleVersion","MessageTypes.ADD_LOG","userale.addCallbacks","userale.options","MessageTypes.CONFIG_CHANGE"],"mappings":"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","x_google_ignoreList":[3]} \ No newline at end of file diff --git a/build/UserALEWebExtension/optionsPage.html b/build/UserALEWebExtension/optionsPage.html index c87f5823..8ecd239d 100644 --- a/build/UserALEWebExtension/optionsPage.html +++ b/build/UserALEWebExtension/optionsPage.html @@ -50,7 +50,7 @@

Options


- +
diff --git a/build/configure.d.ts b/build/configure.d.ts index 8027c392..1b2de6ac 100644 --- a/build/configure.d.ts +++ b/build/configure.d.ts @@ -51,9 +51,9 @@ export declare class Configuration { /** * Shallow merges a newConfig with the configuration class, updating it. * Retrieves/updates the userid if userFromParams is provided. - * @param {Settings.Config} newConfig Configuration object to merge into the current config. + * @param {Partial} newConfig Configuration object to merge into the current config. */ - update(newConfig: Settings.DefaultConfig): void; + update(newConfig: Partial): void; /** * Attempts to extract the userid from the query parameters of the URL. * @param {string} param The name of the query parameter containing the userid. diff --git a/build/main.d.ts b/build/main.d.ts index 2d09cdaa..e45e1af0 100644 --- a/build/main.d.ts +++ b/build/main.d.ts @@ -35,10 +35,10 @@ export declare function stop(): void; /** * Updates the current configuration * object with the provided values. - * @param {Settings.Config} newConfig The configuration options to use. + * @param {Partial} newConfig The configuration options to use. * @return {Settings.Config} Returns the updated configuration. */ -export declare function options(newConfig: Settings.Config | undefined): Settings.Config; +export declare function options(newConfig: Partial | undefined): Settings.Config; /** * Appends a log to the log queue. * @param {Logging.CustomLog} customLog The log to append. diff --git a/build/userale-2.4.0.js b/build/userale-2.4.0.js index 730c5490..2702278e 100644 --- a/build/userale-2.4.0.js +++ b/build/userale-2.4.0.js @@ -218,7 +218,7 @@ /** * Shallow merges a newConfig with the configuration class, updating it. * Retrieves/updates the userid if userFromParams is provided. - * @param {Settings.Config} newConfig Configuration object to merge into the current config. + * @param {Partial} newConfig Configuration object to merge into the current config. */ update(newConfig) { Object.keys(newConfig).forEach((option) => { @@ -236,7 +236,10 @@ if (willNullifyUserId && hasNewUserFromParams) { return; } - this[option] = newConfig[option]; + const newOption = newConfig[option]; + if (newOption !== undefined) { + this[option] = newOption; + } }); } /** @@ -1276,7 +1279,7 @@ /** * Updates the current configuration * object with the provided values. - * @param {Settings.Config} newConfig The configuration options to use. + * @param {Partial} newConfig The configuration options to use. * @return {Settings.Config} Returns the updated configuration. */ function options(newConfig) { diff --git a/build/userale-2.4.0.js.map b/build/userale-2.4.0.js.map index ce06f3f6..5fb0201e 100644 --- a/build/userale-2.4.0.js.map +++ b/build/userale-2.4.0.js.map @@ -1 +1 @@ -{"version":3,"file":"userale-2.4.0.js","sources":["../src/getInitialSettings.ts","../src/configure.ts","../node_modules/detect-browser/es/index.js","../src/packageLogs.ts","../src/attachHandlers.ts","../src/utils/auth/index.ts","../src/sendLogs.ts","../src/main.ts"],"sourcesContent":[null,null,"var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['pie', /^Microsoft Pocket Internet Explorer\\/(\\d+\\.\\d+)$/],\n ['pie', /^Mozilla\\/\\d\\.\\d+\\s\\(compatible;\\s(?:MSP?IE|MSInternet Explorer) (\\d+\\.\\d+);.*Windows CE.*\\)$/],\n ['netfront', /^Mozilla\\/\\d\\.\\d+.*NetFront\\/(\\d.\\d)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FB[AS]V\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['curl', /^curl\\/([0-9\\.]+)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\n var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n",null,null,null,null,null],"names":["this","logs","config","started","userAleVersion"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;AAeG,CAAA,CAAA,CAAA,CAAA,CAAA;EAIH,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;EACpC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;AAExC,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;WACa,kBAAkB,CAAA,CAAA,CAAA,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAS,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,EAClB,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAAE,CAAA,CAAC,CAChC,CAAC;GACH,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA;GAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,GAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC1B,sBAAsB,CACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAE,CAAA,CACxB,CAAC;GACH,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACtB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;GACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC;WACpC,GAAG,CAAC;GAEP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAG,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA;YACd,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,MAAM,CAAC;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAC;EACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAQ,CAAoB,CAAA,CAAA,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAU,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAI,CAAA,CAAA,CAAA,CAAA;EACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAI,CAAA,CAAA,CAAA,CAAA;EAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAS,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAI,CAAA,CAAA,CAAA,CAAA;EACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAG,CAAI,CAAA,CAAA,CAAA,CAAA;EAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,EAAE,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,EAAE,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;EAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;GAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAS,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAQ,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAI,CAAA,CAAA,CAAA,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAW,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAI,CAAA,CAAA,CAAA,CAAA;GACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,EAAE,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAG,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,cAAc,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAI,CAAA,CAAA,CAAA,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,cAAc,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAI,CAAA,CAAA,CAAA,CAAA;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAI,CAAA,CAAA,CAAA,CAAA;OACjC,CAAC;EACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,QAAQ,CAAC;EAClB,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;AAKG,CAAA,CAAA,CAAA,CAAA,CAAA;AACa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,KAAU,CAAA,CAAA,CAAA;GACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;EACjE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC;GACd,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAI,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC;EACrE,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAQ,CAAA,CAAA,CAAA;EACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,QAA+B,CAAC;GACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAG,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA;GAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAI,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAE,CAAG,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAG,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA;EACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAC,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,IAAI,CAAC;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;GACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAC,SAAS,CAAE,CAAA,CAAA;EAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAQ,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,eAAe,CAAC;cACpD,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA;kBACrB,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;GACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;cACL,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA;EACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAC;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;GACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA;GAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,EAAE,CAAC;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;GACH,CAAA,CAAA,CAAA,CAAA;EAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,QAAQ,CAAC;EAClB,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;AAGG,CAAA,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,qBAAqB,CAAA,CAAA,CAAA,CAAA;;MAE5B,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC;GACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAG,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAG,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAC,CAAC;EACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,eAAe,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;GACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC,CAAA,CAAA,CAAG,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAE,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAC;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAC,CAAC;AACd,CAAA,CAAA,CAAA;;AC/IA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;AAeG,CAAA,CAAA,CAAA,CAAA,CAAA;AAKH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QACa,aAAa,CAAA,CAAA;;AA4BxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA;;UAtBO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAC;UAC3B,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,IAAI,CAAC;UACvC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,IAAI,CAAC;UAC5C,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,IAAI,CAAC;UACvC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,IAAI,CAAC;UACjC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,IAAI,CAAC;UACzC,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC;UAC9B,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAC;UAC5B,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,KAAK,CAAC;UACpB,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC;UACvB,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,IAAI,CAAC;GACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,MAAM,CAAI,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC;UAC/C,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,IAAI,CAAC;UACnC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,IAAI,CAAC;UACrC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC;UAC7B,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAC;UACjB,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,IAAI,CAAC;UAC/C,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,IAAI,CAAC;UACxC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,IAAI,CAAC;UAC/B,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,IAAI,CAAC;;AAKtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,IAAI,CAAE,CAAA,CAAA;cACnC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC;GACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA;;EAGM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,WAAW,CAAA,CAAA,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,IAAI,CAAE,CAAA,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAG,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,EAAE,CAAC;GAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACD,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC;GAC/B,CAAA,CAAA,CAAA,CAAA;MAEO,UAAU,CAAA,CAAA,CAAA,CAAA;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,EAAE,CAAC;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC;GACvB,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAEG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACI,KAAK,CAAA,CAAA,CAAA,CAAA;UACV,CAAI,CAAA,CAAA,CAAA,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC;GACnB,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC,CAAA,CAAA,CAAA;GAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAE,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAA4B,CAAC;GACrE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,eAAe,CAAC;wBAClD,IAAI,CAAC;GACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,MAAM,CAAE,CAAA,CAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAG,MAAM,CAAC;GACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAC;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,IAAI,CAAC;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAE,CAAA,CAAA;kBAC7C,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,GAAG,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;GACJ,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA;UAC7C,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC;UACxB,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;AAElD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAC,CAAC,CAAC,CAAE,CAAA,CAAA;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAG,CAAA,CAAA,CAAC,CAAC,CAAC;GAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;GACb,CAAA,CAAA,CAAA,CAAA;;AA9FD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACe,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAzB,CAAA,CAAA,CAAA,CAAA;;ACxBzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAACA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,IAAIA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAE,CAAA,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,IAAI,CAAE,CAAA,CAAA;AAC9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAI,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAE,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAE,CAAA,CAAA,CAAE,CAAE,CAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAE,CAAA,CAAC,EAAE,CAAE,CAAA,CAAA;EACzF,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAE,CAAA,CAAA;EAChC,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAE,CAAA,CAAA,CAAE,EAAE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAE,CAAA,CAAC,CAAC,CAAC;EACjE,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAC,GAAG,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,CAAC;EAC5B,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACT,CAAK,CAAA,CAAA,CAAA,CAAA;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAE,CAAA,CAAC,MAAM,CAAC,CAAA,CAAE,IAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;AAC7D,CAAA,CAAA,CAAC,CAAC;EACF,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,kBAAkB,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC7C,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,WAAW,CAAC,CAAA,CAAA,CAAA,CAAI,EAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,EAAE,CAAE,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,IAAI,CAAC;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,OAAO,CAAC;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAG,EAAE,CAAC;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,SAAS,CAAC;EAC9B,CAAK,CAAA,CAAA,CAAA,CAAA;EACL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,WAAW,CAAC;EACvB,CAAC,CAAA,CAAE,CAAC,CAAC;EAEL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,kBAAkB,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,OAAO,CAAC;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,MAAM,CAAC;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,MAAM,CAAC;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAC,CAAA,CAAE,GAAG,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,QAAQ,CAAC;EACnC,CAAK,CAAA,CAAA,CAAA,CAAA;EACL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,QAAQ,CAAC;EACpB,CAAC,CAAA,CAAE,CAAC,CAAC;EAEL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,kBAAkB,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACrD,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,OAAO,CAAE,CAAA,CAAA,CAAE,CAAE,CAAA,CAAA,CAAA,CAAG,CAAE,CAAA,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,IAAI,CAAC;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,OAAO,CAAC;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAG,EAAE,CAAC;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAA,CAAG,GAAG,CAAC;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,YAAY,CAAC;EACjC,CAAK,CAAA,CAAA,CAAA,CAAA;EACL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,mBAAmB,CAAC;EAC/B,CAAC,CAAA,CAAE,CAAC,CAAC;EAEL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,kBAAkB,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACzC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,OAAO,CAAG,CAAA,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,KAAK,CAAC;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAA,CAAG,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,KAAK,CAAC;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,IAAI,CAAC;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAG,IAAI,CAAC;EACvB,CAAK,CAAA,CAAA,CAAA,CAAA;EACL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,OAAO,CAAC;EACnB,CAAC,CAAA,CAAE,CAAC,CAAC;EAEL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,kBAAkB,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACjD,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,eAAe,CAAG,CAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,cAAc,CAAC;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,cAAc,CAAC;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,IAAI,CAAC;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAI,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAG,IAAI,CAAC;EACvB,CAAK,CAAA,CAAA,CAAA,CAAA;EACL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,eAAe,CAAC;EAC3B,CAAC,CAAA,CAAE,CAAC,CAAC;AAEL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8H,CAAC;EACxJ,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoF,CAAC;EAC9G,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAG,CAAA,CAAA,CAAC,CAAC;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,cAAc,CAAG,CAAA,CAAA,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAC,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAC,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAC,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA;EAC1C,CAAI,CAAA,CAAA,CAAA,CAAA;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAwD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAChE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkD,CAAC,CAAA;AAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+B,CAAC,CAAA;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAC,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,CAAC,CAAA;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC,CAAC,CAAA;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAC,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkD,CAAC,CAAA;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+F,CAAC,CAAA;AAC5G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsC,CAAC,CAAA;AACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2C,CAAC,CAAA;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqC,CAAC,CAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmC,CAAC,CAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwC,CAAC,CAAA;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAC,CAAA;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAC,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC,CAAC,CAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmC,CAAC,CAAA;AACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAC,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA;AACrC,CAAA,CAAA,CAAC,CAAC;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,oBAAoB,CAAG,CAAA,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmC,CAAC,CAAA;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC,CAAC,CAAA;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+B,CAAC,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqD,CAAC,CAAA;AACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAC,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA;AACrB,CAAA,CAAA,CAAC,CAAC;EACK,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAE,CAAA,CAAA;AAIlC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACvC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,aAAa,CAAE,CAAA,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC;EACrC,CAAK,CAAA,CAAA,CAAA,CAAA;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,WAAW,CAAE,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,OAAO,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,SAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC;EACnD,CAAK,CAAA,CAAA,CAAA,CAAA;EACL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC;EAC5B,CAAC;EACD,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAE,CAAE,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA,CAAA,CAAA;EACrB,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,UAAU,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,EAAE,CAAE,CAAA,CAAA;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAC,CAAC;EAC/C,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAE,CAAA,CAAA;EACzB,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,OAAO,CAAC;EAC/B,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACb,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAC,CAAC;EACzC,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;EACnD,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA;EACnB,CAAC;EAKM,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAE,CAAE,CAAA,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,cAAc,CAAC,CAAA,CAAE,CAAC,CAAC;EACzC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAE,CAAA,CAAA;EACtB,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;EACpB,CAAK,CAAA,CAAA,CAAA,CAAA;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC,CAAC,CAAC;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAE,CAAA,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC;EAC7B,CAAK,CAAA,CAAA,CAAA,CAAA;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,KAAK,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAA,CAAC,CAAC,CAAC;EACxF,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,YAAY,CAAE,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,sBAAsB,CAAE,CAAA,CAAA;EAC1D,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAE,CAAA,CAAA,CAAE,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAC,EAAE,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,MAAM,CAAC,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC;EACxJ,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACT,CAAK,CAAA,CAAA,CAAA,CAAA;EACL,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACT,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC;EAC1B,CAAK,CAAA,CAAA,CAAA,CAAA;EACL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAE,CAAA,CAAA,CAAA,CAAG,QAAQ,CAAC,CAAA,CAAE,CAAC,CAAC;EAC1B,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,cAAc,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAC,CAAC;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,cAAc,CAAC,CAAC,CAAC,CAAE,CAAA,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAE,EAAE,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC;EAC7E,CAAK,CAAA,CAAA,CAAA,CAAA;EACL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAI,EAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAC,CAAC;EAC9C,CAAC;EACM,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAE,CAAE,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,KAAK,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,GAAG,CAAC,CAAA,CAAE,KAAK,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAE,CAAA,CAAA,CAAA,CAAG,KAAK,CAAE,CAAA,CAAA,CAAE,EAAE,CAAE,CAAA,CAAA;EAC5E,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAC,CAAE,CAAA,CAAC,EAAE,CAAE,CAAA,CAAA,CAAA,CAAG,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,GAAG,CAAE,CAAA,CAAC,CAAC,CAAC,CAAC;EACrE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,KAAK,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAC,CAAC;EACnC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,KAAK,CAAE,CAAA,CAAA;EACnB,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAC;EACtB,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACT,CAAK,CAAA,CAAA,CAAA,CAAA;EACL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;EAChB,CAAC;AACM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,cAAc,CAAG,CAAA,CAAA,CAAA;EACjC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;AACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,IAAI,CAAC;EAClE,CAAC;EACD,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE,CAAE,CAAA,CAAA,CAAA,CAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAA,CAAE,CAAE,CAAA,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;EACzB,CAAK,CAAA,CAAA,CAAA,CAAA;EACL,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,MAAM,CAAC;AAClB,CAAA,CAAA,CAAA;;ACrNA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;AAeG,CAAA,CAAA,CAAA,CAAA,CAAA;AAKH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC;AAEtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIC,MAAwB,CAAC;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIC,QAAqB,CAAC;AAE1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,UAAyB,CAAC;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,YAA2B,CAAC;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,YAA6B,CAAC;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,aAA4B,CAAC;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,eAA8B,CAAC;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,WAA+B,CAAC;EAE7B,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;EACpD,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;EACjD,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAA0B,CAAA,CAAA,CAAA,CAAE,CAAC;AAElD,CAAA,CAAA,CAAA,CAAA,CAAA;;;AAGG,CAAA,CAAA,CAAA,CAAA,CAAA;AACa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC1B,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyD,CAAA,CAAA,CAAA;AAE5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,MAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA;UAC9B,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAsC,CAAA,CAAA,CAAA,CAAE,CAAC;AAExD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,GAAG,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAC;EAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,WAAW,CAAC;GACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;GAEhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAG,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA;GACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAG,CAAA,CAAA,CAAC,CAAC;cAChE,IAAI,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAV,UAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAV,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,UAAU,CAAE,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAW,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAG,UAAU,CAAC;GAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;EACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,UAAU,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;EACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,UAAU,CAAC;EACpB,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;AAGG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,GAAG,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA,CAAA,CAAA,CAAG,CAAC,CAAE,CAAA,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;GACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;EACL,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;AACa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC1B,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC3B,SAAwB,CAAA,CAAA,CAAA;GAExBD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC;GACfC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;GACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC;GAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;GAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;GACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;GACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;GACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAG,CAAA,CAAA,CAAC,CAAC;GACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;EACrB,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;AAKG,CAAA,CAAA,CAAA,CAAA,CAAA;AACa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACxB,CAAQ,CAAA,CACR,SAAgD,CAAA,CAAA,CAAA;AAEhD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAACA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,EAAE,CAAE,CAAA,CAAA;EACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC;GACd,CAAA,CAAA,CAAA,CAAA;MAED,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;GACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,SAAS,CAAE,CAAA,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC,CAAC,CAAC;GACxB,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAClC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAG,CAAA,CAAA,CAAC,CAAGA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAG,CAAI,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAE,CACvE,CAAC;EAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,GAAG,CAAgB,CAAA,CAAA,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,GAAG,CAAI,CAAA,CAAA,CAAA,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA;UAC7B,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;UACzB,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAE,CAAA,CAAA;UACxB,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;UAC5B,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA;GACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAE,CAAA,CAAA;UACvB,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA;EACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UAChB,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACrB,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UAC/B,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACzB,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACrC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UAC3B,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACnC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAC1C,CAAC;GAUF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAE,CAAA,CAAA;EAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,GAAG,CAAI,CAAA,CAAA,CAAA,CAAC,GAAG,CAAE,CAAA,CAAC,CAAC,CAAC;GACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAE,CAAA,CAAA;EACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC;GACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAD,MAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;EACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;EACd,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;AAMG,CAAA,CAAA,CAAA,CAAA,CAAA;WACa,gBAAgB,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,EAC5B,CAAuE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACvE,UAAmB,CAAA,CAAA,CAAA;AAEnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAACC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,EAAE,CAAE,CAAA,CAAA;EACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC;GACd,CAAA,CAAA,CAAA,CAAA;MAED,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAE,CAAA,CAAA;;;;;;UAM1B,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyC,CAAC;UAClE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC;GAC7B,CAAA,CAAA,CAAA,CAAA;EAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAQ,CAAG,CAAA,CAAA,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA;UAC7B,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;UACzB,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAE,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAC,GAAG,CAAE,CAAA,CAAA;GACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAE,CAAA,CAAA;EACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UAChB,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACrB,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UAC/B,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACzB,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACrC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UAC3B,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACnC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAC1C,CAAC;GAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAG,CAAA,CAAA,CAAA,CAAA,CAAG,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;GAU7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAE,CAAA,CAAA;EAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,GAAG,CAAI,CAAA,CAAA,CAAA,CAAC,GAAG,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC;GACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAE,CAAA,CAAA;EACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC;GACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAD,MAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;EAEf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;EACd,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;AAKG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA;MACjD,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,SAAS,CAAC,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAG,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAC,CAAC,CAAA;OAC1C,CAAC;EACJ,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAC,CAAQ,CAAA,CAAA,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAG,CAAA,CAAA,CAAC,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAG,IAAI,CAAC;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAC,IAAI,CAAC;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAC1B,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAGC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAG,CAAI,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAA,CAAE,CACvE,CAAC;;AAGF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA;GACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC;GACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;GACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;GACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;GAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAG,CAAA,CAAA,CAAC,CAAC;GACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAE,CAAA,CAAA;;;AAIrE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAW,CAAG,CAAA,CAAA,CAAA;EACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA;kBAC7B,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;kBACzB,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAE,CAAA,CAAA;EACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kBACnB,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kBACnC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAI,CAAA,CAAA,CAAA,CAAA;EACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;kBACjB,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kBACrB,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kBAC/B,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kBACzB,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kBACrC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kBAC3B,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kBACnC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;eAC1C,CAAC;cAEF,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAE,CAEvE;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAErC;GAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAE,CAAA,CAAA;EAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,GAAG,CAAI,CAAA,CAAA,CAAA,CAAC,WAAW,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC;GACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAE,CAAA,CAAA;EAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC;GACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAD,MAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAC;;GAGxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC;GACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;GACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;GACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC;GAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAG,CAAA,CAAA,CAAC,CAAC;GACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;GAGD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,YAAY,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAE,CAAA,CAAA;AACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAC;GACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;GACb,CAAA,CAAA,CAAA,CAAA;EAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAM,CAAA,CAAA;EACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC;GACd,CAAA,CAAA,CAAA,CAAA;EACH,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;AAKG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAQ,CAAA,CAAA,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAC,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAE,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAC,CAAE,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAC;GACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAE,CAAA,CAAA;cAC5B,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;eAClD,CAAC;GACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA;GAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAC,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC;GAC7B,CAAA,CAAA,CAAA,CAAA;EACH,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;AAGG,CAAA,CAAA,CAAA,CAAA,CAAA;WACa,YAAY,CAAA,CAAA,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAC;EAClE,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA;GAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,GAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,IAAI,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,OAAO,CAAE,CAAA,CAAA;AACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAE,CAAA,CAAA;GACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAG,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACb,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAE,CAAA,CAAC,CAC1C,CAAA;GACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAE,CAAA,CAAA;GACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAG,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACZ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE,CAAG,CAAA,CAAA,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAE,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAA,CAAA,CAAG,CAAG,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAE,CAAA,CAAC,CAC1C,CAAA;GACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAE,CAAA,CAAA;EAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,WAAW,CAAC;GACpB,CAAA,CAAA,CAAA,CAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA,CAAA;EAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,QAAQ,CAAC;GACjB,CAAA,CAAA,CAAA,CAAA;EACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,SAAS,CAAC;EACnB,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAQ,CAAA,CAAA,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,EAAE,CAAC;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC;EAC/B,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAC,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA;MACjD,CAAI,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC;EACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,OAAO,CAAC;MACZ,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAa,CAAA,CAAA,CAAA,CAAE,CAAC;MACnC,QAAQ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,IAAI,CAAC,CAAC,CAAC,CAAG,CAAA,CAAA,CAAA;GAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,WAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAC;EACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC,CAAC,CAAC;GACnB,CAAA,CAAA,CAAA,CAAA;EACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,aAAa,CAAC;EACvB,CAAC;WAEe,aAAa,CAAA,CAAA,CAAA,CAAA;MAC3B,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,WAAW,CAAC,CAAA,CAAA,CAAA,CAAI,GAAG,CAAE,CAAA,CAAA;GAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,WAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAE,CAAA,CAAA;OAChD,CAAC;AACJ,CAAA,CAAA,CAAA;;ACzaA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;AAeG,CAAA,CAAA,CAAA,CAAA,CAAA;AAMH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,MAAoD,CAAC;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,WAAuD,CAAC;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,cAA6D,CAAC;AAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,aAA2D,CAAC;AAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,cAAc,CAAiC,CAAA,CAAA,CAAA;MACnD,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACP,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACP,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACN,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACP,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACR,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACX,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACT,CAAC;EACF,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,GAA+B,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AAE3E,CAAA,CAAA,CAAA,CAAA,CAAA;;;AAGG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAa,CAAA,CAAA,CAAA;MAC/C,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACL,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UAChB,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACf,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACb,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACjB,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;OAEhB,CAAC;EACJ,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAEG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAC,CAAgB,CAAA,CAAA,CAAA;MACrD,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACL,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAG,CAAA,CAAA,CAAA;UACV,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA;UACZ,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACf,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACb,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACjB,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAChB,CAAC;EACJ,CAAC;AAYD,CAAA,CAAA,CAAA,CAAA,CAAA;;;AAGG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAC,CAAqB,CAAA,CAAA,CAAA;MACxD,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAE,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;OACtB,CAAC;EACJ,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;AAGG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAC,CAAa,CAAA,CAAA,CAAA;MAC/C,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACL,CAAC,CAAA,CAAE,CAAC,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACX,CAAC,CAAA,CAAE,CAAC,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACX,CAAC,CAAA,CAAE,CAAC,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OACZ,CAAC;EACJ,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;AAEG,CAAA,CAAA,CAAA,CAAA,CAAA;WACa,oBAAoB,CAAA,CAAA,CAAA,CAAA;MAClC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACL,CAAC,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACjB,CAAC,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAClB,CAAC;EACJ,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;AAEG,CAAA,CAAA,CAAA,CAAA,CAAA;WACa,oBAAoB,CAAA,CAAA,CAAA,CAAA;MAClC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACL,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACxB,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAC3B,CAAC;EACJ,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8B,CAAA,CAAA,CAAA;;;;AAI1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAG,CAAA,CAAA,CAAA;EACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;GACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,UAAU,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,GAAG,CAAI,CAAA,CAAA,CAAA,CAAA;GACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,UAAU,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,GAAG,CAAI,CAAA,CAAA,CAAA,CAAA;EACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;GACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,UAAU,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,GAAG,CAAI,CAAA,CAAA,CAAA,CAAA;EAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;OAChB,CAAC;GAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAG,CAAA,CAAA,CAAA,CAAE,CAAC;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,cAAc,CAAG,CAAA,CAAA,CAAA;EACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAC7B,CAAC;AAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAa,CAAG,CAAA,CAAA,CAAA;EACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;OACb,CAAC;EACJ,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;AAKG,CAAA,CAAA,CAAA,CAAA,CAAA;AACa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjC,CAA+B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC/B,IAA0B,CAAA,CAAA,CAAA;;;;EAK1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,SAAS,CAAiD,CAAA,CAAA,CAAA;EAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;GACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,UAAU,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,GAAG,CAAI,CAAA,CAAA,CAAA,CAAA;GACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,UAAU,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,GAAG,CAAI,CAAA,CAAA,CAAA,CAAA;EACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;GACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,UAAU,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,GAAG,CAAI,CAAA,CAAA,CAAA,CAAA;EAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,EAAE,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;OACb,CAAC;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC;EACzB,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA;UACF,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;GAErB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAA4B,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA;EAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACvB,EAAE,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA;GACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAC,CAAA,CAAE,MAAM,CAAC,CAAA,CAAE,CAAC,CAAC,CAAC;GAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACD,CAAI,CAAA,CAAA,CAAA,CACL,CAAC;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;AAEH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,cAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAA,CAAA,CAAA;EACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACvB,EAAE,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA;kBACT,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC,CAAC;GACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACD,CAAI,CAAA,CAAA,CAAA,CACL,CAAC;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;GAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAA6B,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC9D,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAW,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAG,IAAI,CAAC;EAEvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrB,EAAE,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAE,CAAC,CAAE,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAW,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAG,KAAK,CAAC;GACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAC,CAAA,CAAE,cAAc,CAAC,CAAA,CAAE,CAAC,CAAC,CAAC;EAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAW,CAAC,CAAA,CAAE,CAAC,CAAA,CAAA,CAAG,IAAI,CAAC;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAC;GACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACD,CAAI,CAAA,CAAA,CAAA,CACL,CAAC;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CACF,CAAC;GAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAA4B,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5D,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA;EACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACvB,EAAE,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA;GACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAC,CAAA,CAAE,MAAM,CAAC,CAAA,CAAE,CAAC,CAAC,CAAC;GAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACD,CAAI,CAAA,CAAA,CAAA,CACL,CAAC;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CACF,CAAC;AAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAA,CAAA,CAAA;EAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrB,EAAE,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA;kBACT,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAC;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;GACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACD,CAAI,CAAA,CAAA,CAAA,CACL,CAAC;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;EAEH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;GACb,CAAA,CAAA,CAAA,CAAA;EAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAM,CAAA,CAAA;EACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC;GACd,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA;;AC9QA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;AAeG,CAAA,CAAA,CAAA,CAAA,CAAA;EAKI,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAkC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC;AAE9D,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;AAMG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA;GACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,YAAY,CAAE,CAAA,CAAA;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,EAAE,CAAC;GACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAE,CAAA,CAAA;;;;EAIV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,oDAAoD,CAAC,CAAA,CAAE,CAAC,CAAC;GACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA;EACH,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAA,CAAA,CAAA;AACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA;UACF,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;GACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC;EACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;GACb,CAAA,CAAA,CAAA,CAAA;GAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAE,CAAA,CAAA;EACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC;GACd,CAAA,CAAA,CAAA,CAAA;EACH,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;AAKG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAA,CAAA,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,UAAU,CAAE,CAAA,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0C,CAAC,CAAC;GAC7D,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,EAAE,CAAC;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,QAAQ,CAAE,CAAA,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4C,CAAC,CAAC;GAC/D,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA;;ACvEA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;AAeG,CAAA,CAAA,CAAA,CAAA,CAAA;AAMH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,cAA4D,CAAC;AAEjE,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;AACa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAE,MAAqB,CAAA,CAAA,CAAA;GACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,cAAc,CAAE,CAAA,CAAA;UAClB,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;GAC/B,CAAA,CAAA,CAAA,CAAA;EAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,GAAG,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAW,CAAC,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC;EAC5B,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;AAMG,CAAA,CAAA,CAAA,CAAA,CAAA;AACa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5B,CAAwB,CAAA,CAAA,CAAA,CAAA,CACxB,MAAqB,CAAA,CAAA,CAAA;EAErB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,EAAE,CAAE,CAAA,CAAA;cACd,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,IAAI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,iBAAiB,CAAE,CAAA,CAAA;EAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAC;EAC9B,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;AACa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzB,CAAwB,CAAA,CAAA,CAAA,CAAA,CACxB,MAAqB,CAAA,CAAA,CAAA;AAErB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,EAAE,CAAE,CAAA,CAAA;cACd,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAI,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAE,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAC;EAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAG,CAAA,CAAA,CAAC,cAAc,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAC,CAAC;AAE9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC;GAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,GAAG,CAAE,CAAA,CAAA;EAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC,KAAK,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;AAEH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;EACL,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;AAMG,CAAA,CAAA,CAAA,CAAA,CAAA;AAEH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;WACgB,QAAQ,CACtB,CAAA,CAAA,CAAA,CAAwB,EACxB,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrB,OAAe,CAAA,CAAA,CAAA;AAEf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAG,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,EAAE,CAAC;GACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,IAAI,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC;GAElC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CAAC;;MAG7B,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA,CAAA;GACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACrC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAE,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACtB,CAAC;GACH,CAAA,CAAA,CAAA,CAAA;EACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,cAAc,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAC,CAAC;AAKvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAC,CAAC,MAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA;EACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,MAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAC;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAC;GACJ,CAAA,CAAA,CAAA,CAAA;MAED,CAAG,CAAA,CAAA,CAAC,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,EAAE,CAI/C;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAG,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAC;AACjB,CAAA,CAAA,CAAA;;ACjJA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;AAeG,CAAA,CAAA,CAAA,CAAA,CAAA;AAUH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,EAAE,CAAC;EAC3C,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAuB,CAAA,CAAA,CAAA,CAAE,CAAC;AAEpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,kBAAkB,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,EAAE,CAAC;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,gBAAwB,CAAC;EAC7B,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,gBAAgB,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAG,EAAE,CAAC;AAChC,CAAA,CAAA,CAAC,CAAC;AAESE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,GAAG,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA;EAY3B,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,MAAM,CAAC,CAAA;EACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,EAAEC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAC,CAAC;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC;EAE3B,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAE,CAAA,CAAA;MACpB,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;EAChB,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;EACH,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA;GAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAACD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAE,CAAA,CAAA;EACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,UAAU,CAAC;GAElC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,KAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CACjD,CAAA,CAAA;kBACA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAU,CAAC,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,eAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAE,CAAA,CAAA,CAAA,CAAG,IAAI,CAAC;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,gBAAgB,CACd,CAAA;EACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,EAAE,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,kBAAkB,CAAE,CAAA,CAAA;mBACjE,EACD,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CACN,CAAC;GACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;kBACL,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC;GACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAG,CAAA,CAAA,CAAC,CAAC;GACT,CAAA,CAAA,CAAA,CAAA;EACH,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAGC,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEtC,CAAA,CAAA,CAAA,CAAA,CAAA;;;AAGG,CAAA,CAAA,CAAA,CAAA,CAAA;WACa,KAAK,CAAA,CAAA,CAAA,CAAA;GACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAACD,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,eAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAE,CAAA,CAAA,CAAA,CAAG,IAAI,CAAC;GAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAE,SAAS,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAE,CAAA,CAAC,CAAC;GACpC,CAAA,CAAA,CAAA,CAAA;EACH,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;AAEG,CAAA,CAAA,CAAA,CAAA,CAAA;WACa,IAAI,CAAA,CAAA,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,eAAO,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAE,CAAA,CAAA,CAAA,CAAG,KAAK,CAAC;GAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAE,SAAS,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAC,CAAC;EACtC,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;AAKG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsC,CAAA,CAAA,CAAA;GAEtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,SAAS,CAAE,CAAA,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC;GAC1B,CAAA,CAAA,CAAA,CAAA;EAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,MAAM,CAAC;EAChB,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAIG,CAAA,CAAA,CAAA,CAAA,CAAA;EACG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwC,CAAA,CAAA,CAAA;GAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,SAAS,CAAE,CAAA,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAC;EACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAC;GACb,CAAA,CAAA,CAAA,CAAA;GAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,KAAK,CAAC;GACd,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;","x_google_ignoreList":[2]} \ No newline at end of file +{"version":3,"file":"userale-2.4.0.js","sources":["../src/getInitialSettings.ts","../src/configure.ts","../node_modules/detect-browser/es/index.js","../src/packageLogs.ts","../src/attachHandlers.ts","../src/utils/auth/index.ts","../src/sendLogs.ts","../src/main.ts"],"sourcesContent":[null,null,"var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.type = 'browser';\n }\n return BrowserInfo;\n}());\nexport { BrowserInfo };\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.type = 'node';\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexport { NodeInfo };\nvar SearchBotDeviceInfo = /** @class */ (function () {\n function SearchBotDeviceInfo(name, version, os, bot) {\n this.name = name;\n this.version = version;\n this.os = os;\n this.bot = bot;\n this.type = 'bot-device';\n }\n return SearchBotDeviceInfo;\n}());\nexport { SearchBotDeviceInfo };\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.type = 'bot';\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexport { BotInfo };\nvar ReactNativeInfo = /** @class */ (function () {\n function ReactNativeInfo() {\n this.type = 'react-native';\n this.name = 'react-native';\n this.version = null;\n this.os = null;\n }\n return ReactNativeInfo;\n}());\nexport { ReactNativeInfo };\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\\ Jeeves\\/Teoma|ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /EdgA?\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['pie', /^Microsoft Pocket Internet Explorer\\/(\\d+\\.\\d+)$/],\n ['pie', /^Mozilla\\/\\d\\.\\d+\\s\\(compatible;\\s(?:MSP?IE|MSInternet Explorer) (\\d+\\.\\d+);.*Windows CE.*\\)$/],\n ['netfront', /^Mozilla\\/\\d\\.\\d+.*NetFront\\/(\\d.\\d)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FB[AS]V\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['curl', /^curl\\/([0-9\\.]+)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Windows CE', /Windows CE|WinCE|Microsoft Pocket Internet Explorer/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n];\nexport function detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof document === 'undefined' &&\n typeof navigator !== 'undefined' &&\n navigator.product === 'ReactNative') {\n return new ReactNativeInfo();\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nfunction matchUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n return (ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false));\n}\nexport function browserName(ua) {\n var data = matchUserAgent(ua);\n return data ? data[0] : null;\n}\nexport function parseUserAgent(ua) {\n var matchedRule = matchUserAgent(ua);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n // Do not use RegExp for split operation as some browser do not support it (See: http://blog.stevenlevithan.com/archives/cross-browser-split)\n var versionParts = match[1] && match[1].split('.').join('_').split('_').slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArray(__spreadArray([], versionParts, true), createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length), true);\n }\n }\n else {\n versionParts = [];\n }\n var version = versionParts.join('.');\n var os = detectOS(ua);\n var searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);\n if (searchBotMatch && searchBotMatch[1]) {\n return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);\n }\n return new BrowserInfo(name, version, os);\n}\nexport function detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.exec(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexport function getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n",null,null,null,null,null],"names":["this","logs","config","started","userAleVersion"],"mappings":"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AA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8H,CAAC;EACxJ,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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","x_google_ignoreList":[2]} \ No newline at end of file diff --git a/build/userale-2.4.0.min.js b/build/userale-2.4.0.min.js index 2085f839..82db5ccd 100644 --- a/build/userale-2.4.0.min.js +++ b/build/userale-2.4.0.min.js @@ -15,4 +15,4 @@ * limitations under the License. * @preserved */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).userale={})}(this,(function(e){"use strict";var t="2.4.0";let n=null,o=null;function r(){null===n&&(n=i("userAlesessionId","session_"+String(Date.now()))),null===o&&(o=i("userAleHttpSessionId",function(){const e=new Uint8Array(16);return window.crypto.getRandomValues(e),Array.from(e,(e=>e.toString(16).padStart(2,"0"))).join("")}()));const e=document.currentScript||function(){const e=document.getElementsByTagName("script");return e[e.length-1]}(),t=e?e.getAttribute.bind(e):function(){return null},r=t("data-headers");return{authHeader:t("data-auth")||null,autostart:"false"!==t("data-autostart"),browserSessionId:null,custIndex:t("data-index")||null,headers:r?JSON.parse(r):null,httpSessionId:o,logCountThreshold:+(t("data-threshold")||5),logDetails:"true"===t("data-log-details"),resolution:+(t("data-resolution")||500),sessionId:t("data-session")||n,time:s(document.createEvent("CustomEvent")),toolName:t("data-tool")||null,toolVersion:t("data-version")||null,transmitInterval:+(t("data-interval")||5e3),url:t("data-url")||"http://localhost:8000",useraleVersion:t("data-userale-version")||null,userFromParams:t("data-user-from-params")||null,userId:t("data-user")||null}}function i(e,t){return null===window.sessionStorage.getItem(e)?(window.sessionStorage.setItem(e,JSON.stringify(t)),t):JSON.parse(window.sessionStorage.getItem(e)||"")}function s(e){let t;if(e.timeStamp&&e.timeStamp>0){const n=Date.now()-e.timeStamp;if(n<0)t=function(){return e.timeStamp/1e3};else if(n>e.timeStamp){const e=performance.timing.navigationStart;t=function(t){return t+e}}else t=function(e){return e}}else t=function(){return Date.now()};return t}class a{constructor(){this.autostart=!1,this.authHeader=null,this.browserSessionId=null,this.custIndex=null,this.headers=null,this.httpSessionId=null,this.logCountThreshold=0,this.logDetails=!1,this.on=!1,this.resolution=0,this.sessionId=null,this.time=()=>Date.now(),this.toolName=null,this.toolVersion=null,this.transmitInterval=0,this.url="",this.userFromParams=null,this.useraleVersion=null,this.userId=null,this.version=null,null===a.instance&&this.initialize()}static getInstance(){return null===a.instance&&(a.instance=new a),a.instance}initialize(){const e=r();this.update(e)}reset(){this.initialize()}update(e){Object.keys(e).forEach((t=>{if("userFromParams"===t){const n=e[t],o=n?a.getUserIdFromParams(n):null;o&&(this.userId=o)}const n=e.userFromParams;"userId"===t&&null===e[t]&&n||(this[t]=e[t])}))}static getUserIdFromParams(e){const t=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)"),n=window.location.href.match(t);return n&&n[2]?decodeURIComponent(n[2].replace(/\+/g," ")):null}}a.instance=null;var l=function(e,t,n){if(n||2===arguments.length)for(var o,r=0,i=t.length;r0?S.time(e.timeStamp):Date.now(),{milli:Math.floor(r),micro:Number((r%1).toFixed(3))});var r;let i={target:e.target?B(e.target):null,path:H(e),pageUrl:window.location.href,pageTitle:document.title,pageReferrer:document.referrer,browser:L(),clientTime:o.milli,microTime:o.micro,location:j(e),scrnRes:D(),type:e.type,logType:"raw",userAction:!0,details:n,userId:S.userId,toolVersion:S.toolVersion,toolName:S.toolName,useraleVersion:S.useraleVersion,sessionId:S.sessionId,httpSessionId:S.httpSessionId,browserSessionId:S.browserSessionId};for(const t of Object.values(C))if("function"==typeof t&&(i=t(i,e),!i))return!1;return y.push(i),!0}function V(e,t,n){if(!S.on)return!1;let o=null;if(0===t.length){o=t()}const r={pageUrl:window.location.href,pageTitle:document.title,pageReferrer:document.referrer,browser:L(),clientTime:Date.now(),scrnRes:D(),logType:"custom",userAction:n,details:o,userId:S.userId,toolVersion:S.toolVersion,toolName:S.toolName,useraleVersion:S.useraleVersion,sessionId:S.sessionId,httpSessionId:S.httpSessionId,browserSessionId:S.browserSessionId};let i=Object.assign(r,e);for(const e of Object.values(C))if("function"==typeof e&&(i=e(i,null),!i))return!1;return y.push(i),!0}function j(e){return e instanceof MouseEvent?null!=e.pageX?{x:e.pageX,y:e.pageY}:null!=e.clientX?{x:document.documentElement.scrollLeft+e.clientX,y:document.documentElement.scrollTop+e.clientY}:void 0:{x:null,y:null}}function D(){return{width:window.innerWidth,height:window.innerHeight}}function B(e){if(e instanceof HTMLElement||e instanceof Element){if(e.localName)return e.localName+(e.id?"#"+e.id:"")+(e.className?"."+e.className:"");if(e.nodeName)return e.nodeName+(e.id?"#"+e.id:"")+(e.className?"."+e.className:"")}else{if(e instanceof Document)return"#document";if(e===globalThis)return"Window"}return"Unknown"}function H(e){return function(e){let t,n=0;const o=[];for(;t=e[n];)o.push(B(t)),++n,t=e[n];return o}(e.composedPath())}function L(){return{browser:b?b.name:"",version:b?b.version:""}}const R=["click","focus","blur","input","change","mouseover","submit"],$=["load","blur","focus"];function K(e){return{clicks:e.detail,ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey,meta:e.metaKey}}function F(e){return{key:e.key,code:e.code,ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey,meta:e.metaKey}}function _(e){return{value:e.target.value}}function U(e){return{x:e.deltaX,y:e.deltaY,z:e.deltaZ}}function X(){return{x:window.scrollX,y:window.scrollY}}function z(){return{width:window.outerWidth,height:window.outerHeight}}function J(e){try{return function(e){N={click:K,dblclick:K,mousedown:K,mouseup:K,focus:null,blur:null,input:e.logDetails?F:null,change:e.logDetails?_:null,dragstart:null,dragend:null,drag:null,drop:null,keydown:e.logDetails?F:null,mouseover:null},x={},A={wheel:U,scroll:X,resize:z},P={submit:null}}(e),Object.keys(N).forEach((function(e){document.addEventListener(e,(function(t){M(t,N[e])}),!0)})),R.forEach((function(e){document.addEventListener(e,(function(e){!function(e){try{const t=e.target?B(e.target):null,n=H(e),o=e.type,r=Math.floor(e.timeStamp&&e.timeStamp>0?S.time(e.timeStamp):Date.now());if(null==v&&(v=t,I=o,O=n,E=r,k=0),(v!==t||I!==o)&&E){T={target:v,path:O,pageUrl:window.location.href,pageTitle:document.title,pageReferrer:document.referrer,browser:L(),count:k,duration:r-E,startTime:E,endTime:r,type:I,logType:"interval",targetChange:v!==t,typeChange:I!==o,userAction:!1,userId:S.userId,toolVersion:S.toolVersion,toolName:S.toolName,useraleVersion:S.useraleVersion,sessionId:S.sessionId,httpSessionId:S.httpSessionId,browserSessionId:S.browserSessionId},"function"==typeof W&&W(T);for(const e of Object.values(C))if("function"==typeof e&&(T=e(T,null),!T))return!1;T&&y.push(T),v=t,I=o,O=n,E=r,k=0}return v==t&&I==o&&k&&(k+=1),!0}catch(e){return!1}}(e)}),!0)})),Object.keys(A).forEach((function(t){x[t]=!0,window.addEventListener(t,(function(n){x[t]&&(x[t]=!1,M(n,A[t]),setTimeout((function(){x[t]=!0}),e.resolution))}),!0)})),Object.keys(P).forEach((function(e){document.addEventListener(e,(function(t){M(t,N[e])}),!0)})),$.forEach((function(e){window.addEventListener(e,(function(e){M(e,(function(){return{window:!0}}))}),!0)})),!0}catch(e){return!1}}let Y,q=null;function G(e,t){Y&&clearInterval(Y),Y=function(e,t){return setInterval((function(){t.on&&e.length>=t.logCountThreshold&&(!function(e,t,n){const o=new XMLHttpRequest,r=JSON.stringify(e);o.open("POST",t.url),function(e){if(q)try{e.authHeader=q()}catch(e){console.error(`Error encountered while setting the auth header: ${e}`)}}(t),t.authHeader&&o.setRequestHeader("Authorization","function"==typeof t.authHeader?t.authHeader():t.authHeader);o.setRequestHeader("Content-type","application/json;charset=UTF-8"),t.headers&&Object.entries(t.headers).forEach((([e,t])=>{o.setRequestHeader(e,t)}));o.onreadystatechange=function(){4===o.readyState&&o.status},o.send(r)}(e.slice(0),t),e.splice(0))}),t.transmitInterval)}(e,t),function(e,t){window.addEventListener("pagehide",(function(){if(t.on&&e.length>0){const n=new Headers;n.set("Content-Type","applicaiton/json;charset=UTF-8"),t.authHeader&&n.set("Authorization",t.authHeader.toString()),fetch(t.url,{keepalive:!0,method:"POST",headers:n,body:JSON.stringify(e)}).catch((e=>{console.error(e)})),e.splice(0)}}))}(e,t)}const Q=a.getInstance(),Z=[],ee=Date.now();let te;window.onload=function(){te=Date.now()},e.started=!1,Q.update({useraleVersion:t}),y=Z,S=Q,C={},v=null,I=null,O=null,E=null,k=0,T=null,Q.autostart&&function t(n){e.started||setTimeout((function(){const o=document.readyState;!n.autostart||"interactive"!==o&&"complete"!==o?t(n):(J(n),G(Z,n),e.started=n.on=!0,V({type:"load",details:{pageLoadTime:te-ee}},(()=>({})),!1))}),100)}(Q);const ne=t;e.addCallbacks=function(...e){return e.forEach((e=>{let t={};t=Object.keys(e).reduce(((t,n)=>(t[n]=Object.getOwnPropertyDescriptor(e,n),t)),t),Object.getOwnPropertySymbols(e).forEach((n=>{const o=Object.getOwnPropertyDescriptor(e,n);(null==o?void 0:o.enumerable)&&(t[n]=o)})),Object.defineProperties(C,t)})),C},e.buildPath=H,e.details=function(e,t){return{click:K,dblclick:K,mousedown:K,mouseup:K,focus:null,blur:null,load:null,input:e.logDetails?F:null,change:e.logDetails?_:null,dragstart:null,dragend:null,drag:null,drop:null,keydown:e.logDetails?F:null,mouseover:null,wheel:U,scroll:X,resize:z,submit:null}[t]},e.getSelector=B,e.log=function(e){return!!e&&(Z.push(e),!0)},e.options=function(e){return e&&Q.update(e),Q},e.packageCustomLog=V,e.packageLog=M,e.registerAuthCallback=function(e){try{return function(e){if("function"!=typeof e)throw new Error("Userale auth callback must be a function");const t=e();if("string"!=typeof t)throw new Error("Userale auth callback must return a string")}(e),q=e,!0}catch(e){return!1}},e.removeCallbacks=function(e){e.forEach((e=>{Object.prototype.hasOwnProperty.call(C,e)&&delete C[e]}))},e.start=function(){e.started&&!1!==Q.autostart||(e.started=Q.on=!0,Q.update({autostart:!0}))},e.stop=function(){e.started=Q.on=!1,Q.update({autostart:!1})},e.version=ne})); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).userale={})}(this,(function(e){"use strict";var t="2.4.0";let n=null,o=null;function r(){null===n&&(n=i("userAlesessionId","session_"+String(Date.now()))),null===o&&(o=i("userAleHttpSessionId",function(){const e=new Uint8Array(16);return window.crypto.getRandomValues(e),Array.from(e,(e=>e.toString(16).padStart(2,"0"))).join("")}()));const e=document.currentScript||function(){const e=document.getElementsByTagName("script");return e[e.length-1]}(),t=e?e.getAttribute.bind(e):function(){return null},r=t("data-headers");return{authHeader:t("data-auth")||null,autostart:"false"!==t("data-autostart"),browserSessionId:null,custIndex:t("data-index")||null,headers:r?JSON.parse(r):null,httpSessionId:o,logCountThreshold:+(t("data-threshold")||5),logDetails:"true"===t("data-log-details"),resolution:+(t("data-resolution")||500),sessionId:t("data-session")||n,time:s(document.createEvent("CustomEvent")),toolName:t("data-tool")||null,toolVersion:t("data-version")||null,transmitInterval:+(t("data-interval")||5e3),url:t("data-url")||"http://localhost:8000",useraleVersion:t("data-userale-version")||null,userFromParams:t("data-user-from-params")||null,userId:t("data-user")||null}}function i(e,t){return null===window.sessionStorage.getItem(e)?(window.sessionStorage.setItem(e,JSON.stringify(t)),t):JSON.parse(window.sessionStorage.getItem(e)||"")}function s(e){let t;if(e.timeStamp&&e.timeStamp>0){const n=Date.now()-e.timeStamp;if(n<0)t=function(){return e.timeStamp/1e3};else if(n>e.timeStamp){const e=performance.timing.navigationStart;t=function(t){return t+e}}else t=function(e){return e}}else t=function(){return Date.now()};return t}class a{constructor(){this.autostart=!1,this.authHeader=null,this.browserSessionId=null,this.custIndex=null,this.headers=null,this.httpSessionId=null,this.logCountThreshold=0,this.logDetails=!1,this.on=!1,this.resolution=0,this.sessionId=null,this.time=()=>Date.now(),this.toolName=null,this.toolVersion=null,this.transmitInterval=0,this.url="",this.userFromParams=null,this.useraleVersion=null,this.userId=null,this.version=null,null===a.instance&&this.initialize()}static getInstance(){return null===a.instance&&(a.instance=new a),a.instance}initialize(){const e=r();this.update(e)}reset(){this.initialize()}update(e){Object.keys(e).forEach((t=>{if("userFromParams"===t){const n=e[t],o=n?a.getUserIdFromParams(n):null;o&&(this.userId=o)}const n=e.userFromParams;if("userId"===t&&null===e[t]&&n)return;const o=e[t];void 0!==o&&(this[t]=o)}))}static getUserIdFromParams(e){const t=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)"),n=window.location.href.match(t);return n&&n[2]?decodeURIComponent(n[2].replace(/\+/g," ")):null}}a.instance=null;var l=function(e,t,n){if(n||2===arguments.length)for(var o,r=0,i=t.length;r0?S.time(e.timeStamp):Date.now(),{milli:Math.floor(r),micro:Number((r%1).toFixed(3))});var r;let i={target:e.target?B(e.target):null,path:H(e),pageUrl:window.location.href,pageTitle:document.title,pageReferrer:document.referrer,browser:L(),clientTime:o.milli,microTime:o.micro,location:j(e),scrnRes:D(),type:e.type,logType:"raw",userAction:!0,details:n,userId:S.userId,toolVersion:S.toolVersion,toolName:S.toolName,useraleVersion:S.useraleVersion,sessionId:S.sessionId,httpSessionId:S.httpSessionId,browserSessionId:S.browserSessionId};for(const t of Object.values(C))if("function"==typeof t&&(i=t(i,e),!i))return!1;return y.push(i),!0}function V(e,t,n){if(!S.on)return!1;let o=null;if(0===t.length){o=t()}const r={pageUrl:window.location.href,pageTitle:document.title,pageReferrer:document.referrer,browser:L(),clientTime:Date.now(),scrnRes:D(),logType:"custom",userAction:n,details:o,userId:S.userId,toolVersion:S.toolVersion,toolName:S.toolName,useraleVersion:S.useraleVersion,sessionId:S.sessionId,httpSessionId:S.httpSessionId,browserSessionId:S.browserSessionId};let i=Object.assign(r,e);for(const e of Object.values(C))if("function"==typeof e&&(i=e(i,null),!i))return!1;return y.push(i),!0}function j(e){return e instanceof MouseEvent?null!=e.pageX?{x:e.pageX,y:e.pageY}:null!=e.clientX?{x:document.documentElement.scrollLeft+e.clientX,y:document.documentElement.scrollTop+e.clientY}:void 0:{x:null,y:null}}function D(){return{width:window.innerWidth,height:window.innerHeight}}function B(e){if(e instanceof HTMLElement||e instanceof Element){if(e.localName)return e.localName+(e.id?"#"+e.id:"")+(e.className?"."+e.className:"");if(e.nodeName)return e.nodeName+(e.id?"#"+e.id:"")+(e.className?"."+e.className:"")}else{if(e instanceof Document)return"#document";if(e===globalThis)return"Window"}return"Unknown"}function H(e){return function(e){let t,n=0;const o=[];for(;t=e[n];)o.push(B(t)),++n,t=e[n];return o}(e.composedPath())}function L(){return{browser:b?b.name:"",version:b?b.version:""}}const R=["click","focus","blur","input","change","mouseover","submit"],$=["load","blur","focus"];function K(e){return{clicks:e.detail,ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey,meta:e.metaKey}}function F(e){return{key:e.key,code:e.code,ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey,meta:e.metaKey}}function _(e){return{value:e.target.value}}function U(e){return{x:e.deltaX,y:e.deltaY,z:e.deltaZ}}function X(){return{x:window.scrollX,y:window.scrollY}}function z(){return{width:window.outerWidth,height:window.outerHeight}}function J(e){try{return function(e){N={click:K,dblclick:K,mousedown:K,mouseup:K,focus:null,blur:null,input:e.logDetails?F:null,change:e.logDetails?_:null,dragstart:null,dragend:null,drag:null,drop:null,keydown:e.logDetails?F:null,mouseover:null},x={},A={wheel:U,scroll:X,resize:z},P={submit:null}}(e),Object.keys(N).forEach((function(e){document.addEventListener(e,(function(t){M(t,N[e])}),!0)})),R.forEach((function(e){document.addEventListener(e,(function(e){!function(e){try{const t=e.target?B(e.target):null,n=H(e),o=e.type,r=Math.floor(e.timeStamp&&e.timeStamp>0?S.time(e.timeStamp):Date.now());if(null==v&&(v=t,I=o,O=n,E=r,k=0),(v!==t||I!==o)&&E){T={target:v,path:O,pageUrl:window.location.href,pageTitle:document.title,pageReferrer:document.referrer,browser:L(),count:k,duration:r-E,startTime:E,endTime:r,type:I,logType:"interval",targetChange:v!==t,typeChange:I!==o,userAction:!1,userId:S.userId,toolVersion:S.toolVersion,toolName:S.toolName,useraleVersion:S.useraleVersion,sessionId:S.sessionId,httpSessionId:S.httpSessionId,browserSessionId:S.browserSessionId},"function"==typeof W&&W(T);for(const e of Object.values(C))if("function"==typeof e&&(T=e(T,null),!T))return!1;T&&y.push(T),v=t,I=o,O=n,E=r,k=0}return v==t&&I==o&&k&&(k+=1),!0}catch(e){return!1}}(e)}),!0)})),Object.keys(A).forEach((function(t){x[t]=!0,window.addEventListener(t,(function(n){x[t]&&(x[t]=!1,M(n,A[t]),setTimeout((function(){x[t]=!0}),e.resolution))}),!0)})),Object.keys(P).forEach((function(e){document.addEventListener(e,(function(t){M(t,N[e])}),!0)})),$.forEach((function(e){window.addEventListener(e,(function(e){M(e,(function(){return{window:!0}}))}),!0)})),!0}catch(e){return!1}}let Y,q=null;function G(e,t){Y&&clearInterval(Y),Y=function(e,t){return setInterval((function(){t.on&&e.length>=t.logCountThreshold&&(!function(e,t,n){const o=new XMLHttpRequest,r=JSON.stringify(e);o.open("POST",t.url),function(e){if(q)try{e.authHeader=q()}catch(e){console.error(`Error encountered while setting the auth header: ${e}`)}}(t),t.authHeader&&o.setRequestHeader("Authorization","function"==typeof t.authHeader?t.authHeader():t.authHeader);o.setRequestHeader("Content-type","application/json;charset=UTF-8"),t.headers&&Object.entries(t.headers).forEach((([e,t])=>{o.setRequestHeader(e,t)}));o.onreadystatechange=function(){4===o.readyState&&o.status},o.send(r)}(e.slice(0),t),e.splice(0))}),t.transmitInterval)}(e,t),function(e,t){window.addEventListener("pagehide",(function(){if(t.on&&e.length>0){const n=new Headers;n.set("Content-Type","applicaiton/json;charset=UTF-8"),t.authHeader&&n.set("Authorization",t.authHeader.toString()),fetch(t.url,{keepalive:!0,method:"POST",headers:n,body:JSON.stringify(e)}).catch((e=>{console.error(e)})),e.splice(0)}}))}(e,t)}const Q=a.getInstance(),Z=[],ee=Date.now();let te;window.onload=function(){te=Date.now()},e.started=!1,Q.update({useraleVersion:t}),y=Z,S=Q,C={},v=null,I=null,O=null,E=null,k=0,T=null,Q.autostart&&function t(n){e.started||setTimeout((function(){const o=document.readyState;!n.autostart||"interactive"!==o&&"complete"!==o?t(n):(J(n),G(Z,n),e.started=n.on=!0,V({type:"load",details:{pageLoadTime:te-ee}},(()=>({})),!1))}),100)}(Q);const ne=t;e.addCallbacks=function(...e){return e.forEach((e=>{let t={};t=Object.keys(e).reduce(((t,n)=>(t[n]=Object.getOwnPropertyDescriptor(e,n),t)),t),Object.getOwnPropertySymbols(e).forEach((n=>{const o=Object.getOwnPropertyDescriptor(e,n);(null==o?void 0:o.enumerable)&&(t[n]=o)})),Object.defineProperties(C,t)})),C},e.buildPath=H,e.details=function(e,t){return{click:K,dblclick:K,mousedown:K,mouseup:K,focus:null,blur:null,load:null,input:e.logDetails?F:null,change:e.logDetails?_:null,dragstart:null,dragend:null,drag:null,drop:null,keydown:e.logDetails?F:null,mouseover:null,wheel:U,scroll:X,resize:z,submit:null}[t]},e.getSelector=B,e.log=function(e){return!!e&&(Z.push(e),!0)},e.options=function(e){return e&&Q.update(e),Q},e.packageCustomLog=V,e.packageLog=M,e.registerAuthCallback=function(e){try{return function(e){if("function"!=typeof e)throw new Error("Userale auth callback must be a function");const t=e();if("string"!=typeof t)throw new Error("Userale auth callback must return a string")}(e),q=e,!0}catch(e){return!1}},e.removeCallbacks=function(e){e.forEach((e=>{Object.prototype.hasOwnProperty.call(C,e)&&delete C[e]}))},e.start=function(){e.started&&!1!==Q.autostart||(e.started=Q.on=!0,Q.update({autostart:!0}))},e.stop=function(){e.started=Q.on=!1,Q.update({autostart:!1})},e.version=ne})); diff --git a/build/userale.d.ts b/build/userale.d.ts index ea945815..68c94118 100644 --- a/build/userale.d.ts +++ b/build/userale.d.ts @@ -154,7 +154,7 @@ declare namespace Callbacks { declare namespace Extension { export type PluginConfig = { urlWhitelist: string }; export type ConfigPayload = { - useraleConfig: Settings.Config; + useraleConfig: Partial; pluginConfig: PluginConfig; }; } diff --git a/cypress.config.ts b/cypress.config.ts deleted file mode 100644 index 8fcdb140..00000000 --- a/cypress.config.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -const { defineConfig } = require('cypress') - -module.exports = defineConfig({ - video: false, - e2e: { - specPattern: 'journey/**/*.cy.{js,jsx,ts,tsx}', - supportFile: false - }, -}) \ No newline at end of file diff --git a/example/no-logging.html b/example/no-logging.html new file mode 100644 index 00000000..4f5cbb56 --- /dev/null +++ b/example/no-logging.html @@ -0,0 +1,76 @@ + + + + UserALE - Example Page + + +
+

+ This UserALE Example Page lets you explore how UserALE works, deploys with a script tag, and the data it generates.
+ By default, you'll see the raw logs UserALE generates. We kept this page simple so that its easy to see how things work. +

+

+ To see how our API can be used to shape UserALE logs to your needs, uncomment the 'index.js' script tag in index.html. +

+
+

Click the button below to generate targeted click events.

+
+ +
+
+
+

Play around with the form elements below to see a variety of UserALE log types:

+

+ Capture changes to fields (and values, when it's safe). +

+

+ With index.js injected into the page, you can use the 'Test Field' below to see the behavior of our API dynamically.
+ Type in the following UserALE function names to see their behavior. +

    +
  • "log" - ship a fully customized log, built from scratch
  • +
  • "packageLog" - hijack our own pipeline to modify and ship logs packaged exactly like standard UserALE logs
  • +
  • "packageCustomLog" - smash a number of custom fields together with UserALE standard metadata
  • +
+ +
+ +

+ +
+
+

Capture inputs and changes to different types of selections.

+ +
+
+
+ Business Analytics
+ HCI
+ Other +
+
+
+ +
+
+

Click on the Link to Test Logging with Page Navigation

+ + + \ No newline at end of file diff --git a/example/server.js b/example/server.js index 94accdb1..c3ab8906 100644 --- a/example/server.js +++ b/example/server.js @@ -57,13 +57,16 @@ app.use(bodyParser.text()) app.use('/build', express.static(path.join(__dirname, '/../build'))); app.use('/', express.static(__dirname)); app.set('view engine', 'jade'); -app.use('/', express.static(__dirname)) - +app.use('/', express.static(__dirname)); app.get('/', function (req, res) { res.sendFile('index.html', { root: __dirname }); }); +app.get('/no-logging', function (req, res) { + res.sendFile('no-logging.html', { root: __dirname }); +}); + app.post('/', function (req, res) { const body = typeof req.body === "string" ? JSON.parse(req.body) : req.body diff --git a/install-skywalking-eyes.sh b/install-skywalking-eyes.sh deleted file mode 100755 index 4c05ebad..00000000 --- a/install-skywalking-eyes.sh +++ /dev/null @@ -1,21 +0,0 @@ -#! /bin/bash -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - - -go install github.com/apache/skywalking-eyes/cmd/license-eye@latest - diff --git a/jest.config.ts b/jest.config.ts deleted file mode 100644 index 764a5f20..00000000 --- a/jest.config.ts +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * For a detailed explanation regarding each configuration property, visit: - * https://jestjs.io/docs/configuration - */ - -import type {Config} from 'jest'; - -const config: Config = { - // All imported modules in your tests should be mocked automatically - // automock: false, - - // Stop running tests after `n` failures - // bail: 0, - - // The directory where Jest should store its cached dependency information - // cacheDirectory: "/tmp/jest_rs", - - // Automatically clear mock calls, instances, contexts and results before every test - // clearMocks: false, - - // Indicates whether the coverage information should be collected while executing the test - // collectCoverage: false, - - // An array of glob patterns indicating a set of files for which coverage information should be collected - // collectCoverageFrom: undefined, - - // The directory where Jest should output its coverage files - // coverageDirectory: undefined, - - // An array of regexp pattern strings used to skip coverage collection - // coveragePathIgnorePatterns: [ - // "/node_modules/" - // ], - - // Indicates which provider should be used to instrument code for coverage - // coverageProvider: "babel", - - // A list of reporter names that Jest uses when writing coverage reports - // coverageReporters: [ - // "json", - // "text", - // "lcov", - // "clover" - // ], - - // An object that configures minimum threshold enforcement for coverage results - // coverageThreshold: undefined, - - // A path to a custom dependency extractor - // dependencyExtractor: undefined, - - // Make calling deprecated APIs throw helpful error messages - // errorOnDeprecated: false, - - // The default configuration for fake timers - // fakeTimers: { - // "enableGlobally": false - // }, - - // Force coverage collection from ignored files using an array of glob patterns - // forceCoverageMatch: [], - - // A path to a module which exports an async function that is triggered once before all test suites - // globalSetup: undefined, - - // A path to a module which exports an async function that is triggered once after all test suites - // globalTeardown: undefined, - - // A set of global variables that need to be available in all test environments - // globals: {}, - - // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. - // maxWorkers: "50%", - - // An array of directory names to be searched recursively up from the requiring module's location - // moduleDirectories: [ - // "node_modules" - // ], - - // An array of file extensions your modules use - // moduleFileExtensions: [ - // "js", - // "mjs", - // "cjs", - // "jsx", - // "ts", - // "tsx", - // "json", - // "node" - // ], - - // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module - moduleNameMapper: { - "^@/(.*)$": "/src/$1", - }, - - // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader - // modulePathIgnorePatterns: [], - - // Activates notifications for test results - // notify: false, - - // An enum that specifies notification mode. Requires { notify: true } - // notifyMode: "failure-change", - - // A preset that is used as a base for Jest's configuration - // preset: undefined, - - // Run tests from one or more projects - // projects: undefined, - - // Use this configuration option to add custom reporters to Jest - // reporters: undefined, - - // Automatically reset mock state before every test - // resetMocks: false, - - // Reset the module registry before running each individual test - // resetModules: false, - - // A path to a custom resolver - // resolver: undefined, - - // Automatically restore mock state and implementation before every test - // restoreMocks: false, - - // The root directory that Jest should scan for tests and modules within - // rootDir: undefined, - - // A list of paths to directories that Jest should use to search for files in - // roots: [ - // "" - // ], - - // Allows you to use a custom runner instead of Jest's default test runner - // runner: "jest-runner", - - // The paths to modules that run some code to configure or set up the testing environment before each test - setupFiles: ['/jest.setup.js'], - - // A list of paths to modules that run some code to configure or set up the testing framework before each test - // setupFilesAfterEnv: [], - - // The number of seconds after which a test is considered as slow and reported as such in the results. - // slowTestThreshold: 5, - - // A list of paths to snapshot serializer modules Jest should use for snapshot testing - // snapshotSerializers: [], - - // The test environment that will be used for testing - testEnvironment: "jsdom", - - // Options that will be passed to the testEnvironment - // testEnvironmentOptions: {}, - - // Adds a location field to test results - // testLocationInResults: false, - - // The glob patterns Jest uses to detect test files - // testMatch: [ - // "**/__tests__/**/*.[jt]s?(x)", - // "**/?(*.)+(spec|test).[tj]s?(x)" - // ], - - // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped - // testPathIgnorePatterns: [ - // "/node_modules/" - // ], - - // The regexp pattern or array of patterns that Jest uses to detect test files - // testRegex: [], - - // This option allows the use of a custom results processor - // testResultsProcessor: undefined, - - // This option allows use of a custom test runner - // testRunner: "jest-circus/runner", - - // A map from regular expressions to paths to transformers - // transform: undefined, - - // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation - // transformIgnorePatterns: [ - // "/node_modules/", - // "\\.pnp\\.[^\\/]+$" - // ], - - // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them - // unmockedModulePathPatterns: undefined, - - // Indicates whether each individual test should be reported during the run - // verbose: undefined, - - // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode - // watchPathIgnorePatterns: [], - - // Whether to use watchman for file crawling - // watchman: true, -}; - -export default config; diff --git a/journey/tsconfig.json b/journey/tsconfig.json deleted file mode 100644 index 2cc298e3..00000000 --- a/journey/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "lib": ["es5", "dom"], - "types": ["cypress", "node"] - }, - "include": ["../node_modules/cypress", "./**/*.ts"] - } \ No newline at end of file diff --git a/journey/userale.journey.cy.ts b/journey/userale.journey.cy.ts deleted file mode 100644 index d417abd3..00000000 --- a/journey/userale.journey.cy.ts +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import { validate } from 'jsonschema'; - -describe('Userale logging', () => { - beforeEach(() => { - cy.intercept('POST', 'http://localhost:8000/').as('backend') - }) - - it('sends a page load log', () => { - cy.visit('http://localhost:8000') - cy.wait('@backend').then(xhr => { - const body = xhr.request.body - const pageLoadLog = body[0] - expect(pageLoadLog['details']['pageLoadTime']).to.be.greaterThan(0) - expect(pageLoadLog).to.contain({ - logType: 'custom', - type: 'load' - }) - }) - }); - - it('builds the correct path in a log', () => { - cy.visit('http://localhost:8000') - cy.wait('@backend') - cy.contains(/click me/i).click() - cy.wait('@backend').then(xhr => { - const body = xhr.request.body - const buttonClickLog = body.find(log => log.target === 'button#test_button') - const actualPath = buttonClickLog.path - const expectedPath = ["button#test_button", "div.container", "body", "html", "#document", "Window"] - expect(actualPath).to.deep.equal(expectedPath) - }) - }); - - it('executes added callbacks', () => { - cy.visit('http://localhost:8000') - cy.wait('@backend') - cy.contains(/click me/i).click() - cy.wait('@backend').then(xhr => { - const body = xhr.request.body - const buttonClickLog = body.find( - log => log.target === 'button#test_button' - && log.logType === 'custom') - - expect(buttonClickLog).to.have.property('customLabel'); - - const actualValue = buttonClickLog.customLabel - const expectedValue = 'map & packageLog Example' - expect(actualValue).to.equal(expectedValue) - }) - }); - - it('produces valid logs', () => { - cy.visit('http://localhost:8000'); - cy.wait('@backend').then(xhr => { - var schema = require('../example/log.schema.json'); - for(const log of xhr.request.body) { - const result = validate(log, schema); - // result.errors - expect(result.valid).to.equal(true); - } - }) - cy.contains(/click me/i).click(); - cy.wait('@backend').then(xhr => { - var schema = require('../example/log.schema.json'); - for(const log of xhr.request.body) { - const result = validate(log, schema); - // result.errors - expect(result.valid).to.equal(true); - } - }) - }); - -}); diff --git a/package-lock.json b/package-lock.json index 8f3c5ed8..ae7a6276 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "@babel/preset-typescript": "^7.24.1", "@babel/register": "^7.22.15", "@eslint/js": "^9.2.0", + "@playwright/test": "^1.44.1", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.0.1", @@ -28,6 +29,7 @@ "@types/firefox-webext-browser": "^120.0.3", "@types/jest": "^29.5.12", "@types/jsdom": "^21.1.6", + "@types/node": "^20.14.2", "@typescript-eslint/eslint-plugin": "^7.8.0", "@typescript-eslint/parser": "^7.8.0", "@typescript/lib-dom": "npm:@types/web@^0.0.144", @@ -57,7 +59,6 @@ "rollup-plugin-esbuild": "^6.1.1", "rollup-plugin-license": "^3.2.0", "sinon": "^17.0.1", - "start-server-and-test": "^2.0.3", "ts-node": "^10.9.2", "typescript": "^5.4.5", "typescript-eslint": "^7.8.0" @@ -2478,21 +2479,6 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -3365,6 +3351,21 @@ "node": ">= 8" } }, + "node_modules/@playwright/test": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.1.tgz", + "integrity": "sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==", + "dev": true, + "dependencies": { + "playwright": "1.44.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/@rollup/plugin-babel": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.4.tgz", @@ -3739,27 +3740,6 @@ "win32" ] }, - "node_modules/@sideway/address": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -4013,9 +3993,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.12.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", - "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "version": "20.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", + "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -4465,12 +4445,6 @@ } ] }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -4576,37 +4550,6 @@ "integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==", "dev": true }, - "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/axios/node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -5982,12 +5925,6 @@ "node": ">=12" } }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true - }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -6564,21 +6501,6 @@ "node": ">= 0.6" } }, - "node_modules/event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1", - "from": "~0", - "map-stream": "~0.1.0", - "pause-stream": "0.0.11", - "split": "0.3", - "stream-combiner": "~0.0.4", - "through": "~2.3.1" - } - }, "node_modules/eventemitter2": { "version": "6.4.7", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", @@ -6938,26 +6860,6 @@ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -6999,12 +6901,6 @@ "node": ">= 0.6" } }, - "node_modules/from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", - "dev": true - }, "node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -9888,19 +9784,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/joi": { - "version": "17.13.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz", - "integrity": "sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.3.0", - "@hapi/topo": "^5.1.0", - "@sideway/address": "^4.1.5", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -10456,12 +10339,6 @@ "tmpl": "1.0.5" } }, - "node_modules/map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", - "dev": true - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -11208,15 +11085,6 @@ "node": "*" } }, - "node_modules/pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", - "dev": true, - "dependencies": { - "through": "~2.3" - } - }, "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -11338,6 +11206,50 @@ "node": ">=4" } }, + "node_modules/playwright": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz", + "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==", + "dev": true, + "dependencies": { + "playwright-core": "1.44.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==", + "dev": true, + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -11441,21 +11353,6 @@ "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", "dev": true }, - "node_modules/ps-tree": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", - "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", - "dev": true, - "dependencies": { - "event-stream": "=3.3.4" - }, - "bin": { - "ps-tree": "bin/ps-tree.js" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -12562,18 +12459,6 @@ "spdx-ranges": "^2.0.0" } }, - "node_modules/split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", - "dev": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -12626,74 +12511,6 @@ "node": ">=8" } }, - "node_modules/start-server-and-test": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-2.0.3.tgz", - "integrity": "sha512-QsVObjfjFZKJE6CS6bSKNwWZCKBG6975/jKRPPGFfFh+yOQglSeGXiNWjzgQNXdphcBI9nXbyso9tPfX4YAUhg==", - "dev": true, - "dependencies": { - "arg": "^5.0.2", - "bluebird": "3.7.2", - "check-more-types": "2.24.0", - "debug": "4.3.4", - "execa": "5.1.1", - "lazy-ass": "1.6.0", - "ps-tree": "1.2.0", - "wait-on": "7.2.0" - }, - "bin": { - "server-test": "src/bin/start.js", - "start-server-and-test": "src/bin/start.js", - "start-test": "src/bin/start.js" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/start-server-and-test/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/start-server-and-test/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/start-server-and-test/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -12703,15 +12520,6 @@ "node": ">= 0.8" } }, - "node_modules/stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", - "dev": true, - "dependencies": { - "duplexer": "~0.1.1" - } - }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -13383,25 +13191,6 @@ "node": ">=18" } }, - "node_modules/wait-on": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", - "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", - "dev": true, - "dependencies": { - "axios": "^1.6.1", - "joi": "^17.11.0", - "lodash": "^4.17.21", - "minimist": "^1.2.8", - "rxjs": "^7.8.1" - }, - "bin": { - "wait-on": "bin/wait-on" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", diff --git a/package.json b/package.json index 44edca3e..f677555a 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "2.4.0", "description": "UserALE is the UserALE client for DOM and JavaScript-based applications. It automatically attaches event handlers to log every user interaction on a web page, including rich JS single-page apps.", "main": "build/userale.js", - "types": "buidld/userale.d.ts", + "types": "build/userale.d.ts", "scripts": { "format": "prettier --ignore-path .gitignore --write src/ test/", "lint": "eslint ./src --fix --ext ts --ext js", @@ -13,15 +13,14 @@ "build": "tsc && npm run clean && rollup -c --bundleConfigAsCjs rollup.config.js", "postbuild": "npm run license:fix", "clean": "rm -rf ./build", - "test": "npm run test:unit && npm run journey:ci", - "test:unit": "jest", - "journey": "cypress run", - "journey:debug": "cypress open", - "journey:ci": "start-server-and-test example:run 8000 journey", + "test": "npm run test:unit && npm run test:e2e", + "test:unit": "jest -c ./test/unit/jest.config.ts", + "test:e2e": "playwright test -c ./test/e2e/playwright.config.ts", + "posttest:e2e": "rm -rf ./test/e2e/chromeData/*", "example:run": "node example/server.js", "example:watch": "nodemon -w ./example example/server.js", "prepare": "husky", - "postinstall": "./install-skywalking-eyes.sh" + "postinstall": "go install github.com/apache/skywalking-eyes/cmd/license-eye@latest" }, "repository": { "type": "git", @@ -38,14 +37,16 @@ ], "author": "Apache Flagon", "contributors": [ - "Clay Gimenez", - "Robert Foley", "Michelle Beard", + "Robert Foley", "Alex Ford", - "Joshua C. Poore", + "Clay Gimenez", "Gedd Johnson", - "Jason Young", - "Lewis McGibbney" + "Evan Jones", + "Lewis McGibbney", + "Joshua C. Poore", + "Ryan Thenhaus", + "Jason Young" ], "license": "Apache-2.0", "bugs": { @@ -64,6 +65,7 @@ "@babel/preset-typescript": "^7.24.1", "@babel/register": "^7.22.15", "@eslint/js": "^9.2.0", + "@playwright/test": "^1.44.1", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-json": "^6.0.1", @@ -75,6 +77,7 @@ "@types/firefox-webext-browser": "^120.0.3", "@types/jest": "^29.5.12", "@types/jsdom": "^21.1.6", + "@types/node": "^20.14.2", "@typescript-eslint/eslint-plugin": "^7.8.0", "@typescript-eslint/parser": "^7.8.0", "@typescript/lib-dom": "npm:@types/web@^0.0.144", @@ -104,7 +107,6 @@ "rollup-plugin-esbuild": "^6.1.1", "rollup-plugin-license": "^3.2.0", "sinon": "^17.0.1", - "start-server-and-test": "^2.0.3", "ts-node": "^10.9.2", "typescript": "^5.4.5", "typescript-eslint": "^7.8.0" diff --git a/rollup.config.js b/rollup.config.js index 5e6882f7..2b3229e7 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -92,7 +92,7 @@ export default [ output: { format: 'esm', file: buildWebExtensionDir + fileName + '.js', - sourcemap: true, + sourcemap: false, name: 'user-ale-ext-content', }, plugins: [ diff --git a/src/UserALEWebExtension/background.ts b/src/UserALEWebExtension/background.ts index 7144dcfc..5c27fe16 100644 --- a/src/UserALEWebExtension/background.ts +++ b/src/UserALEWebExtension/background.ts @@ -17,11 +17,11 @@ import * as MessageTypes from "@/UserALEWebExtension/messageTypes"; import * as userale from "@/main"; -import { browser } from "@/UserALEWebExtension/globals"; +import { browser, configKey } from "@/UserALEWebExtension/globals"; import { Extension, Logging } from "@/types"; // Initalize userale plugin options -const defaultConfig = { +const defaultConfig: Extension.ConfigPayload = { useraleConfig: { url: "http://localhost:8000", userId: "pluginUser", @@ -73,11 +73,14 @@ function updateTabToHttpSessionMapping( * @param {Extension.ConfigPayload} config The extension config to apply * @return {void} */ -function updateConfig(config: Extension.ConfigPayload) { - urlWhitelist = new RegExp(config.pluginConfig.urlWhitelist); - userale.options(config.useraleConfig); - // TODO: tabs need a page load to apply this config change. - dispatchTabMessage(config.useraleConfig); +function updateConfig(payload: Extension.ConfigPayload) { + urlWhitelist = new RegExp(payload.pluginConfig.urlWhitelist); + userale.options(payload.useraleConfig); + browser.storage.local.set({ [configKey]: payload }); + dispatchTabMessage({ + type: MessageTypes.CONFIG_CHANGE, + payload: payload.useraleConfig, + }); } /** @@ -114,7 +117,7 @@ function filterUrl(log: Logging.Log) { * @return {Object} The transformed log */ function injectSessions(log: Logging.Log) { - const id = (log?.details as Logging.JSONObject).id as string | undefined; + const id = (log.details as Logging.JSONObject)?.id as string | undefined; if (id && id in tabToHttpSession) { log.httpSessionId = tabToHttpSession[id]; } else { @@ -125,10 +128,15 @@ function injectSessions(log: Logging.Log) { } // @ts-expect-error Typescript is not aware that firefox's broswer is overloaded // to support chromium style MV2 callbacks -browser.storage.local.get(defaultConfig, (res) => { +browser.storage.local.get([configKey], (res) => { + if (res[configKey]) { + updateConfig(res[configKey]); + } else { + updateConfig(defaultConfig); + } + // Apply url filter to logs generated by the background page. userale.addCallbacks({ filterUrl, injectSessions }); - updateConfig(res); const userAleHttpSessionId = window.sessionStorage.getItem( "userAleHttpSessionId", ); @@ -184,7 +192,7 @@ function packageDetailedTabLog( type: string, ) { Object.assign(data, { type }); - // Two fields in the Tab interface do no match our serializable JSONObject interface + // Two fields in the Tab interface do not match our serializable JSONObject interface // remove them before create custom log const { mutedInfo, sharingState, ...restOfTab } = tab; const payload: Logging.JSONObject = { ...restOfTab }; diff --git a/src/UserALEWebExtension/content.ts b/src/UserALEWebExtension/content.ts index 3ff6a414..225d8212 100644 --- a/src/UserALEWebExtension/content.ts +++ b/src/UserALEWebExtension/content.ts @@ -16,15 +16,14 @@ */ import * as MessageTypes from "@/UserALEWebExtension/messageTypes"; import * as userale from "@/main"; -import { rerouteLog, browser } from "@/UserALEWebExtension/globals"; -import type { Settings } from "@/types"; +import { rerouteLog, browser, configKey } from "@/UserALEWebExtension/globals"; browser.storage.local.get( - "useraleConfig", + [configKey], // @ts-expect-error Typescript is not aware that firefox's broswer is overloaded // to support chromium style MV2 callbacks - (res: { useraleConfig: Settings.Config }) => { - userale.options(res.useraleConfig); + (res) => { + userale.options(res[configKey].useraleConfig); userale.addCallbacks({ rerouteLog }); // Send httpSession to background scirpt to inject into tab events. @@ -42,6 +41,7 @@ browser.storage.local.get( // TODO: Add types for message browser.runtime.onMessage.addListener(function (message) { + console.log(message); if (message.type === MessageTypes.CONFIG_CHANGE) { userale.options(message.payload); } diff --git a/src/UserALEWebExtension/globals.ts b/src/UserALEWebExtension/globals.ts index d580f5f9..eaf50613 100644 --- a/src/UserALEWebExtension/globals.ts +++ b/src/UserALEWebExtension/globals.ts @@ -21,6 +21,7 @@ import type { Logging } from "@/types"; // browser is defined in firefox, but chrome uses the 'chrome' global. export var browser = window.browser || chrome; +export const configKey = "useraleConfigPayload"; export function rerouteLog(log: Logging.Log) { browser.runtime.sendMessage({ type: MessageTypes.ADD_LOG, payload: log }); diff --git a/src/UserALEWebExtension/options.ts b/src/UserALEWebExtension/options.ts index dce81ed6..ba89b5f3 100644 --- a/src/UserALEWebExtension/options.ts +++ b/src/UserALEWebExtension/options.ts @@ -16,7 +16,7 @@ */ import * as MessageTypes from "@/UserALEWebExtension/messageTypes"; import * as userale from "@/main"; -import { rerouteLog, browser } from "@/UserALEWebExtension/globals"; +import { rerouteLog, browser, configKey } from "@/UserALEWebExtension/globals"; import { Configuration } from "@/configure"; import { Extension } from "@/types"; @@ -53,19 +53,17 @@ function setConfig() { }, }; - // @ts-expect-error Typescript is not aware that firefox's broswer is overloaded - // to support chromium style MV2 callbacks - browser.storage.local.set(payload, () => { - userale.options(config); - browser.runtime.sendMessage({ type: MessageTypes.CONFIG_CHANGE, payload }); - }); + userale.options(config); + browser.runtime.sendMessage({ type: MessageTypes.CONFIG_CHANGE, payload }); } function getConfig() { // @ts-expect-error Typescript is not aware that firefox's broswer is overloaded // to support chromium style MV2 callbacks - browser.storage.local.get("useraleConfig", (res: Extension.ConfigPayload) => { - const config = res.useraleConfig; + browser.storage.local.get([configKey], (res) => { + const payload = res[configKey]; + console.log(payload); + const config = payload.useraleConfig; userale.options(config); (document.getElementById("url") as HTMLInputElement).value = config.url; @@ -75,17 +73,9 @@ function getConfig() { config.toolName as string; (document.getElementById("toolVersion") as HTMLInputElement).value = config.toolVersion as string; + (document.getElementById("filter") as HTMLInputElement).value = + payload.pluginConfig.urlWhitelist; }); - - browser.storage.local.get( - "pluginConfig", - // @ts-expect-error Typescript is not aware that firefox's broswer is overloaded - // to support chromium style MV2 callbacks - (res: { pluginConfig: Extension.PluginConfig }) => { - (document.getElementById("filter") as HTMLInputElement).value = - res.pluginConfig.urlWhitelist; - }, - ); } document.addEventListener("DOMContentLoaded", getConfig); diff --git a/src/UserALEWebExtension/optionsPage.html b/src/UserALEWebExtension/optionsPage.html index c87f5823..8ecd239d 100644 --- a/src/UserALEWebExtension/optionsPage.html +++ b/src/UserALEWebExtension/optionsPage.html @@ -50,7 +50,7 @@

Options


- +
diff --git a/src/configure.ts b/src/configure.ts index fc4f5369..fa4e1dcd 100644 --- a/src/configure.ts +++ b/src/configure.ts @@ -77,9 +77,9 @@ export class Configuration { /** * Shallow merges a newConfig with the configuration class, updating it. * Retrieves/updates the userid if userFromParams is provided. - * @param {Settings.Config} newConfig Configuration object to merge into the current config. + * @param {Partial} newConfig Configuration object to merge into the current config. */ - public update(newConfig: Settings.DefaultConfig): void { + public update(newConfig: Partial): void { Object.keys(newConfig).forEach((option) => { if (option === "userFromParams") { const userParamString = newConfig[option] as Settings.UserFromParams; @@ -97,7 +97,10 @@ export class Configuration { return; } - this[option] = newConfig[option]; + const newOption = newConfig[option]; + if (newOption !== undefined) { + this[option] = newOption; + } }); } diff --git a/src/main.ts b/src/main.ts index 920e0cfe..58fc9595 100644 --- a/src/main.ts +++ b/src/main.ts @@ -110,11 +110,11 @@ export function stop(): void { /** * Updates the current configuration * object with the provided values. - * @param {Settings.Config} newConfig The configuration options to use. + * @param {Partial} newConfig The configuration options to use. * @return {Settings.Config} Returns the updated configuration. */ export function options( - newConfig: Settings.Config | undefined, + newConfig: Partial | undefined, ): Settings.Config { if (newConfig) { config.update(newConfig); diff --git a/src/types.d.ts b/src/types.d.ts index 5b02a68b..c907f459 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -154,7 +154,7 @@ export declare namespace Callbacks { export declare namespace Extension { export type PluginConfig = { urlWhitelist: string }; export type ConfigPayload = { - useraleConfig: Settings.Config; + useraleConfig: Partial; pluginConfig: PluginConfig; }; } diff --git a/test/e2e/playwright.config.ts b/test/e2e/playwright.config.ts new file mode 100644 index 00000000..9d3d6fd4 --- /dev/null +++ b/test/e2e/playwright.config.ts @@ -0,0 +1,75 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { defineConfig } from "@playwright/test"; + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: "spec", + + fullyParallel: false, + workers: 1, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: "html", + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: "on-first-retry", + }, + + projects: [ + { + name: "package-chromium", + testIgnore: "*extension*", + use: { + browserName: "chromium", + baseURL: "http://127.0.0.1:8000/", + }, + }, + { + name: "package-firefox", + testIgnore: "*extension*", + use: { + browserName: "firefox", + baseURL: "http://127.0.0.1:8000/", + }, + }, + { + name: "extension-chromium", + testIgnore: "*package*", + use: { + browserName: "chromium", + baseURL: "http://127.0.0.1:8000/no-logging/", + }, + }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: "npm run example:run", + url: "http://127.0.0.1:8000", + reuseExistingServer: !process.env.CI, + }, +}); diff --git a/test/e2e/spec/01-extension.spec.ts b/test/e2e/spec/01-extension.spec.ts new file mode 100644 index 00000000..8db72bc9 --- /dev/null +++ b/test/e2e/spec/01-extension.spec.ts @@ -0,0 +1,79 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { test, expect } from "./fixtures/extension.fixture"; +import { errors } from "@playwright/test"; +import { Logging } from "@/types"; + +test.describe("Userale extension", () => { + test("doesn't log by default", async ({ page, sender }) => { + try { + const requestPromise = sender.waitForRequest( + (request) => request.method() === "POST", + { timeout: 15000 }, + ); + await page.goto("./"); + for (let i = 0; i < 5; i++) { + await page.getByText("Click Me!", { exact: true }).click(); + } + await requestPromise; + throw new Error("request made"); + } catch (err) { + expect(err).toBeInstanceOf(errors.TimeoutError); + } + }); + + test("can change url filter", async ({ sender, page, extensionId }) => { + const requestPromise = sender.waitForRequest( + (request) => request.method() === "POST", + ); + await page.goto(`chrome-extension://${extensionId}/optionsPage.html`); + // Sleep so options.js can update the html with values from local storage. + await new Promise((r) => setTimeout(r, 1000)); + await page.fill("#filter", ".*"); + await page.click("#submit"); + await page.goto("./"); + for (let i = 0; i < 5; i++) { + await page.getByText("Click Me!", { exact: true }).click(); + } + // The completion of this promise means data was logged and the test passes. + await requestPromise; + }); + + test("can change loging options", async ({ sender, page, extensionId }) => { + let id = "testUser"; + + const requestPromise = sender.waitForRequest((request) => { + const postData = request.postData(); + return Boolean(postData && postData.includes("testUser")); + }); + await page.goto(`chrome-extension://${extensionId}/optionsPage.html`); + // Sleep so options.js can update the html with values from local storage. + await new Promise((r) => setTimeout(r, 1000)); + await page.fill("#user", id); + await page.click("#submit"); + await page.goto("./"); + for (let i = 0; i < 5; i++) { + await page.getByText("Click Me!", { exact: true }).click(); + } + + const request = await requestPromise; + const body = await request.postDataJSON(); + const log = body.find((log: Logging.JSONObject) => log.userId === id); + + expect(log).not.toBeNull(); + }); +}); diff --git a/test/e2e/spec/01-package.spec.ts b/test/e2e/spec/01-package.spec.ts new file mode 100644 index 00000000..0cb0076c --- /dev/null +++ b/test/e2e/spec/01-package.spec.ts @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { test, expect } from "./fixtures/extension.fixture"; + +test.beforeEach(async ({ page }) => { + const requestPromise = page.waitForRequest( + (request) => request.method() === "POST", + ); + await page.goto("./"); + await requestPromise; +}); + +test.describe("Userale custom logging", () => { + test("executes added callbacks", async ({ page }) => { + const requestPromise = page.waitForRequest( + (request) => request.method() === "POST", + ); + await page.getByText("Click Me!", { exact: true }).click(); + const request = await requestPromise; + const body = await request.postDataJSON(); + + const buttonClickLog = body.find( + (log: { target: string; logType: string }) => + log.target === "button#test_button" && log.logType === "custom", + ); + expect(buttonClickLog).toHaveProperty("customLabel"); + + const actualValue = buttonClickLog.customLabel; + const expectedValue = "map & packageLog Example"; + expect(actualValue).toBe(expectedValue); + }); +}); diff --git a/test/e2e/spec/02-shared.spec.ts b/test/e2e/spec/02-shared.spec.ts new file mode 100644 index 00000000..ebaa4d50 --- /dev/null +++ b/test/e2e/spec/02-shared.spec.ts @@ -0,0 +1,93 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { validate } from "jsonschema"; +import { test, expect } from "./fixtures/extension.fixture"; +import { Logging } from "@/types"; + +test.describe("Userale logging", () => { + test("sends a page load log", async ({ page, sender }) => { + const requestPromise = sender.waitForRequest((request) => { + const postData = request.postData(); + return Boolean(postData && postData.includes("pageLoadTime")); + }); + await page.goto("./"); + for (let i = 0; i < 6; i++) { + await page.getByText("Click Me!", { exact: true }).click(); + } + const request = await requestPromise; + + const body = await request.postDataJSON(); + + const pageLoadLog = body.find( + (log: Logging.JSONObject) => log.type === "load", + ); + expect(pageLoadLog).toEqual( + expect.objectContaining({ + logType: "custom", + type: "load", + }), + ); + expect(pageLoadLog["details"]["pageLoadTime"]).toBeGreaterThan(0); + }); + + test("builds the correct path in a log", async ({ page, sender }) => { + const requestPromise = sender.waitForRequest((request) => { + const postData = request.postData(); + console.log(postData); + return Boolean(postData && postData.includes("button#test_button")); + }); + await page.goto("./"); + for (let i = 0; i < 6; i++) { + await page.getByText("Click Me!", { exact: true }).click(); + } + const request = await requestPromise; + const body = await request.postDataJSON(); + + const buttonClickLog = body.find( + (log: Logging.JSONObject) => log.target === "button#test_button", + ); + const actualPath = buttonClickLog.path; + const expectedPath = [ + "button#test_button", + "div.container", + "body", + "html", + "#document", + "Window", + ]; + expect(actualPath).toEqual(expectedPath); + }); + + test("produces valid logs", async ({ page, sender }) => { + const requestPromise = sender.waitForRequest( + (request) => request.method() === "POST", + ); + await page.goto("./"); + for (let i = 0; i < 6; i++) { + await page.getByText("Click Me!", { exact: true }).click(); + } + const request = await requestPromise; + const body = await request.postDataJSON(); + console.log(body); + + var schema = require("../../../example/log.schema.json"); + for (const log of body) { + const result = validate(log, schema); + expect(result.valid).toBe(true); + } + }); +}); diff --git a/test/e2e/spec/fixtures/extension.fixture.ts b/test/e2e/spec/fixtures/extension.fixture.ts new file mode 100644 index 00000000..12973ea0 --- /dev/null +++ b/test/e2e/spec/fixtures/extension.fixture.ts @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { + Page, + test as base, + chromium, + type BrowserContext, +} from "@playwright/test"; +import path from "path"; + +export const test = base.extend<{ + context: BrowserContext; + sender: Page; + extensionId: string; +}>({ + context: async ({ baseURL, context }, use) => { + if (baseURL?.includes("no-logging")) { + const extPath = path.join( + __dirname, + "../../../../build/UserALEWebExtension/", + ); + const dataPath = path.join(__dirname, "../../chromeData/"); + const extContext = await chromium.launchPersistentContext(dataPath, { + headless: false, + args: [ + `--disable-extensions-except=${extPath}`, + `--load-extension=${extPath}`, + ], + }); + await use(extContext); + await extContext.close(); + } else { + await use(context); + await context.close(); + } + }, + sender: async ({ context, baseURL, page }, use) => { + let sender: Page = page; + if (baseURL?.includes("no-logging")) { + // for manifest v2: + [sender] = context.backgroundPages(); + if (baseURL?.includes("no-logging") && !sender) + sender = await context.waitForEvent("backgroundpage"); + } + + await use(sender); + }, + extensionId: async ({ baseURL, sender }, use) => { + let extensionId = ""; + if (baseURL?.includes("no-logging")) { + extensionId = sender.url().split("/")[2]; + } + use(extensionId); + }, +}); + +export const expect = test.expect; diff --git a/test/unit/jest.config.ts b/test/unit/jest.config.ts new file mode 100644 index 00000000..aefe0ae1 --- /dev/null +++ b/test/unit/jest.config.ts @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/** + * For a detailed explanation regarding each configuration property, visit: + * https://jestjs.io/docs/configuration + */ + +import type { Config } from "jest"; + +const config: Config = { + // The root directory that Jest should scan for tests and modules within + rootDir: "../../", + + // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module + moduleNameMapper: { + "^@/(.*)$": "/src/$1", + }, + + // The paths to modules that run some code to configure or set up the testing environment before each test + setupFiles: ["/test/unit/jest.setup.js"], + + // The test environment that will be used for testing + testEnvironment: "jsdom", + + // The glob patterns Jest uses to detect test files + testMatch: ["/test/unit/spec/(*.)+(spec|test).[tj]s?(x)"], +}; + +export default config; diff --git a/jest.setup.js b/test/unit/jest.setup.js similarity index 88% rename from jest.setup.js rename to test/unit/jest.setup.js index 58efad13..54df71cb 100644 --- a/jest.setup.js +++ b/test/unit/jest.setup.js @@ -17,5 +17,5 @@ * under the License. */ -global.TextEncoder = require('util').TextEncoder; -global.TextDecoder = require('util').TextDecoder; \ No newline at end of file +global.TextEncoder = require("util").TextEncoder; +global.TextDecoder = require("util").TextDecoder; diff --git a/test/attachHandlers.spec.ts b/test/unit/spec/attachHandlers.spec.ts similarity index 100% rename from test/attachHandlers.spec.ts rename to test/unit/spec/attachHandlers.spec.ts diff --git a/test/auth.spec.ts b/test/unit/spec/auth.spec.ts similarity index 100% rename from test/auth.spec.ts rename to test/unit/spec/auth.spec.ts diff --git a/test/configure.spec.ts b/test/unit/spec/configure.spec.ts similarity index 100% rename from test/configure.spec.ts rename to test/unit/spec/configure.spec.ts diff --git a/test/getInitialSettings.spec.ts b/test/unit/spec/getInitialSettings.spec.ts similarity index 100% rename from test/getInitialSettings.spec.ts rename to test/unit/spec/getInitialSettings.spec.ts diff --git a/test/getInitialSettings_fetchAll.html b/test/unit/spec/getInitialSettings_fetchAll.html similarity index 95% rename from test/getInitialSettings_fetchAll.html rename to test/unit/spec/getInitialSettings_fetchAll.html index d77a60f2..5f961aa0 100644 --- a/test/getInitialSettings_fetchAll.html +++ b/test/unit/spec/getInitialSettings_fetchAll.html @@ -26,7 +26,7 @@ data-log-details="false" data-resolution="100" data-tool="testtool" - src="../build/userale-2.4.0.min.js" + src="../../../build/userale-2.4.0.min.js" > diff --git a/test/getInitialSettings_userParam.html b/test/unit/spec/getInitialSettings_userParam.html similarity index 95% rename from test/getInitialSettings_userParam.html rename to test/unit/spec/getInitialSettings_userParam.html index e25aaace..94928d06 100644 --- a/test/getInitialSettings_userParam.html +++ b/test/unit/spec/getInitialSettings_userParam.html @@ -19,7 +19,7 @@ diff --git a/test/headers.spec.ts b/test/unit/spec/headers.spec.ts similarity index 100% rename from test/headers.spec.ts rename to test/unit/spec/headers.spec.ts diff --git a/test/main.html b/test/unit/spec/main.html similarity index 93% rename from test/main.html rename to test/unit/spec/main.html index 5a1f2aea..58072502 100644 --- a/test/main.html +++ b/test/unit/spec/main.html @@ -17,7 +17,7 @@ - + diff --git a/test/main.spec.ts b/test/unit/spec/main.spec.ts similarity index 100% rename from test/main.spec.ts rename to test/unit/spec/main.spec.ts diff --git a/test/packageLogs.spec.ts b/test/unit/spec/packageLogs.spec.ts similarity index 100% rename from test/packageLogs.spec.ts rename to test/unit/spec/packageLogs.spec.ts diff --git a/test/sendLogs.spec.ts b/test/unit/spec/sendLogs.spec.ts similarity index 100% rename from test/sendLogs.spec.ts rename to test/unit/spec/sendLogs.spec.ts diff --git a/test/testUtils.ts b/test/unit/spec/testUtils.ts similarity index 100% rename from test/testUtils.ts rename to test/unit/spec/testUtils.ts diff --git a/tsconfig.json b/tsconfig.json index 86f228b1..853b8a4a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -33,5 +33,5 @@ "typeRoots": ["node_modules/@types/"], }, "include": ["src", "test", "src/types.d.ts"], - "exclude": ["cypress.config.ts", "node_modules", "build", "logs", "journey", "example"], + "exclude": ["node_modules", "build", "logs", "example"], }