posthog-node 2.2.1 → 2.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/lib/index.cjs.js +3 -3
- package/lib/index.cjs.js.map +1 -1
- package/lib/index.esm.js +3 -3
- package/lib/index.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/posthog-node.ts +1 -1
package/lib/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../node_modules/tslib/tslib.es6.js","../../posthog-core/src/types.ts","../../posthog-core/src/utils.ts","../../posthog-core/src/lz-string.ts","../../posthog-core/src/eventemitter.ts","../../posthog-core/src/index.ts","../../posthog-core/src/storage-memory.ts","../src/fetch.ts","../src/feature-flags.ts","../src/posthog-node.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 */\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 __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 (_) 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: n === \"return\" } : 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","export type PosthogCoreOptions = {\n // PostHog API host (https://app.posthog.com by default)\n host?: string\n // The number of events to queue before sending to Posthog (flushing)\n flushAt?: number\n // The interval in milliseconds between periodic flushes\n flushInterval?: number\n // If set to false, tracking will be disabled until `optIn` is called\n enable?: boolean\n // Whether to track that `getFeatureFlag` was called (used by Expriements)\n sendFeatureFlagEvent?: boolean\n // Whether to load feature flags when initialised or not\n preloadFeatureFlags?: boolean\n // Option to bootstrap the library with given distinctId and feature flags\n bootstrap?: {\n distinctId?: string\n isIdentifiedId?: boolean\n featureFlags?: Record<string, boolean | string>\n }\n // How many times we will retry HTTP requests\n fetchRetryCount?: number\n // The delay between HTTP request retries\n fetchRetryDelay?: number\n // Timeout in milliseconds for any calls. Defaults to 10 seconds.\n requestTimeout?: number\n // For Session Analysis how long before we expire a session (defaults to 30 mins)\n sessionExpirationTimeSeconds?: number\n // Whether to post events to PostHog in JSON or compressed format\n captureMode?: 'json' | 'form'\n}\n\nexport enum PostHogPersistedProperty {\n AnonymousId = 'anonymous_id',\n DistinctId = 'distinct_id',\n Props = 'props',\n FeatureFlags = 'feature_flags',\n OverrideFeatureFlags = 'override_feature_flags',\n Queue = 'queue',\n OptedOut = 'opted_out',\n SessionId = 'session_id',\n SessionLastTimestamp = 'session_timestamp',\n PersonProperties = 'person_properties',\n GroupProperties = 'group_properties',\n}\n\nexport type PostHogFetchOptions = {\n method: 'GET' | 'POST' | 'PUT' | 'PATCH'\n mode?: 'no-cors'\n credentials?: 'omit'\n headers: { [key: string]: string }\n body?: string\n signal?: AbortSignal\n}\n\nexport type PostHogFetchResponse = {\n status: number\n text: () => Promise<string>\n json: () => Promise<any>\n}\n\nexport type PostHogQueueItem = {\n message: any\n callback?: (err: any) => void\n}\n\nexport type PostHogEventProperties = {\n [key: string]: any\n}\n\nexport type PostHogAutocaptureElement = {\n $el_text?: string\n tag_name: string\n href?: string\n nth_child?: number\n nth_of_type?: number\n order?: number\n} & {\n [key: string]: any\n} // Any key prefixed with `attr__` can be added\n\nexport type PostHogDecideResponse = {\n config: { enable_collect_everything: boolean }\n editorParams: { toolbarVersion: string; jsURL: string }\n isAuthenticated: true\n supportedCompression: string[]\n featureFlags: {\n [key: string]: string | boolean\n }\n sessionRecording: boolean\n}\n","export function assert(truthyValue: any, message: string): void {\n if (!truthyValue) {\n throw new Error(message)\n }\n}\n\nexport function removeTrailingSlash(url: string): string {\n return url?.replace(/\\/+$/, '')\n}\n\nexport interface RetriableOptions {\n retryCount?: number\n retryDelay?: number\n retryCheck?: (err: any) => true\n}\n\nexport async function retriable<T>(fn: () => Promise<T>, props: RetriableOptions = {}): Promise<T> {\n const { retryCount = 3, retryDelay = 5000, retryCheck = () => true } = props\n let lastError = null\n\n for (let i = 0; i < retryCount + 1; i++) {\n try {\n const res = await fn()\n return res\n } catch (e) {\n lastError = e\n if (!retryCheck(e)) {\n throw e\n }\n }\n\n await new Promise((r) => setTimeout(r, retryDelay))\n }\n\n throw lastError\n}\n\n// https://stackoverflow.com/a/8809472\nexport function generateUUID(globalThis?: any): string {\n // Public Domain/MIT\n let d = new Date().getTime() //Timestamp\n let d2 =\n (globalThis && globalThis.performance && globalThis.performance.now && globalThis.performance.now() * 1000) || 0 //Time in microseconds since page-load or 0 if unsupported\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n let r = Math.random() * 16 //random number between 0 and 16\n if (d > 0) {\n //Use timestamp until depleted\n r = (d + r) % 16 | 0\n d = Math.floor(d / 16)\n } else {\n //Use microseconds since page-load if supported\n r = (d2 + r) % 16 | 0\n d2 = Math.floor(d2 / 16)\n }\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16)\n })\n}\n\nexport function currentTimestamp(): number {\n return new Date().getTime()\n}\n\nexport function currentISOTime(): string {\n return new Date().toISOString()\n}\n\nexport function safeSetTimeout(fn: () => void, timeout: number): any {\n // NOTE: we use this so rarely that it is totally fine to do `safeSetTimeout(fn, 0)``\n // rather than setImmediate.\n const t = setTimeout(fn, timeout) as any\n // We unref if available to prevent Node.js hanging on exit\n t?.unref && t?.unref()\n return t\n}\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\n\n// private property\nconst f = String.fromCharCode\nconst keyStrBase64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\nconst baseReverseDic: any = {}\n\nfunction getBaseValue(alphabet: any, character: any): any {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {}\n for (let i = 0; i < alphabet.length; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i\n }\n }\n return baseReverseDic[alphabet][character]\n}\n\nexport const LZString = {\n compressToBase64: function (input: any): string {\n if (input == null) {\n return ''\n }\n const res = LZString._compress(input, 6, function (a: any) {\n return keyStrBase64.charAt(a)\n })\n switch (\n res.length % 4 // To produce valid Base64\n ) {\n default: // When could this happen ?\n case 0:\n return res\n case 1:\n return res + '==='\n case 2:\n return res + '=='\n case 3:\n return res + '='\n }\n },\n\n decompressFromBase64: function (input: any): any {\n if (input == null) {\n return ''\n }\n if (input == '') {\n return null\n }\n return LZString._decompress(input.length, 32, function (index: any) {\n return getBaseValue(keyStrBase64, input.charAt(index))\n })\n },\n\n compress: function (uncompressed: any): any {\n return LZString._compress(uncompressed, 16, function (a: any) {\n return f(a)\n })\n },\n _compress: function (uncompressed: any, bitsPerChar: any, getCharFromInt: any): any {\n if (uncompressed == null) {\n return ''\n }\n const context_dictionary: any = {},\n context_dictionaryToCreate: any = {},\n context_data = []\n\n let i,\n value,\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_val = 0,\n context_data_position = 0,\n ii\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = context_data_val << 1\n if (context_data_position == bitsPerChar - 1) {\n context_data.push(getCharFromInt(context_data_val))\n break\n } else {\n context_data_position++\n }\n }\n return context_data.join('')\n },\n\n decompress: function (compressed: any): any {\n if (compressed == null) {\n return ''\n }\n if (compressed == '') {\n return null\n }\n return LZString._decompress(compressed.length, 32768, function (index: any) {\n return compressed.charCodeAt(index)\n })\n },\n\n _decompress: function (length: any, resetValue: any, getNextValue: any): any {\n const dictionary = [],\n result = [],\n data = { val: getNextValue(0), position: resetValue, index: 1 }\n\n let next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry: any = '',\n i,\n w,\n bits,\n resb,\n maxpower,\n power,\n c\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i\n }\n\n bits = 0\n maxpower = Math.pow(2, 2)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n switch ((next = bits)) {\n case 0:\n bits = 0\n maxpower = Math.pow(2, 8)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n c = f(bits)\n break\n case 1:\n bits = 0\n maxpower = Math.pow(2, 16)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n c = f(bits)\n break\n case 2:\n return ''\n }\n dictionary[3] = c\n w = c\n result.push(c)\n while (true) {\n if (data.index > length) {\n return ''\n }\n\n bits = 0\n maxpower = Math.pow(2, numBits)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n\n switch ((c = bits)) {\n case 0:\n bits = 0\n maxpower = Math.pow(2, 8)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n\n dictionary[dictSize++] = f(bits)\n c = dictSize - 1\n enlargeIn--\n break\n case 1:\n bits = 0\n maxpower = Math.pow(2, 16)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n dictionary[dictSize++] = f(bits)\n c = dictSize - 1\n enlargeIn--\n break\n case 2:\n return result.join('')\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits)\n numBits++\n }\n\n if (dictionary[c]) {\n entry = dictionary[c]\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0)\n } else {\n return null\n }\n }\n result.push(entry)\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0)\n enlargeIn--\n\n w = entry\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits)\n numBits++\n }\n }\n },\n}\n","export class SimpleEventEmitter {\n events: { [key: string]: ((...args: any[]) => void)[] } = {}\n\n constructor() {\n this.events = {}\n }\n\n on(event: string, listener: (...args: any[]) => void): () => void {\n if (!this.events[event]) {\n this.events[event] = []\n }\n this.events[event].push(listener)\n\n return () => {\n this.events[event] = this.events[event].filter((x) => x !== listener)\n }\n }\n\n emit(event: string, payload: any): void {\n for (const listener of this.events[event] || []) {\n listener(payload)\n }\n for (const listener of this.events['*'] || []) {\n listener(event, payload)\n }\n }\n}\n","import {\n PostHogFetchOptions,\n PostHogFetchResponse,\n PostHogQueueItem,\n PostHogAutocaptureElement,\n PostHogDecideResponse,\n PosthogCoreOptions,\n PostHogEventProperties,\n PostHogPersistedProperty,\n} from './types'\nimport {\n assert,\n currentISOTime,\n currentTimestamp,\n generateUUID,\n removeTrailingSlash,\n retriable,\n RetriableOptions,\n safeSetTimeout,\n} from './utils'\nexport * as utils from './utils'\nimport { LZString } from './lz-string'\nimport { SimpleEventEmitter } from './eventemitter'\n\nexport abstract class PostHogCore {\n // options\n private apiKey: string\n host: string\n private flushAt: number\n private flushInterval: number\n private requestTimeout: number\n private captureMode: 'form' | 'json'\n private sendFeatureFlagEvent: boolean\n private flagCallReported: { [key: string]: boolean } = {}\n private removeDebugCallback?: () => void\n\n // internal\n protected _events = new SimpleEventEmitter()\n protected _flushTimer?: any\n protected _decideResponsePromise?: Promise<PostHogDecideResponse>\n protected _retryOptions: RetriableOptions\n protected _sessionExpirationTimeSeconds: number\n\n // Abstract methods to be overridden by implementations\n abstract fetch(url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse>\n abstract getLibraryId(): string\n abstract getLibraryVersion(): string\n abstract getCustomUserAgent(): string | void\n\n // This is our abstracted storage. Each implementation should handle its own\n abstract getPersistedProperty<T>(key: PostHogPersistedProperty): T | undefined\n abstract setPersistedProperty<T>(key: PostHogPersistedProperty, value: T | null): void\n\n private _optoutOverride: boolean | undefined\n\n constructor(apiKey: string, options?: PosthogCoreOptions) {\n assert(apiKey, \"You must pass your PostHog project's api key.\")\n\n this.apiKey = apiKey\n this.host = removeTrailingSlash(options?.host || 'https://app.posthog.com')\n this.flushAt = options?.flushAt ? Math.max(options?.flushAt, 1) : 20\n this.flushInterval = options?.flushInterval ?? 10000\n this.captureMode = options?.captureMode || 'form'\n this.sendFeatureFlagEvent = options?.sendFeatureFlagEvent ?? true\n // If enable is explicitly set to false we override the optout\n this._optoutOverride = options?.enable === false\n this._retryOptions = {\n retryCount: options?.fetchRetryCount ?? 3,\n retryDelay: options?.fetchRetryDelay ?? 3000,\n }\n this.requestTimeout = options?.requestTimeout ?? 10\n this._sessionExpirationTimeSeconds = options?.sessionExpirationTimeSeconds ?? 1800 // 30 minutes\n\n // NOTE: It is important we don't initiate anything in the constructor as some async IO may still be underway on the parent\n if (options?.preloadFeatureFlags !== false) {\n safeSetTimeout(() => {\n void this.reloadFeatureFlagsAsync()\n }, 1)\n }\n }\n\n protected getCommonEventProperties(): any {\n const featureFlags = this.getFeatureFlags()\n\n const featureVariantProperties: Record<string, string | boolean> = {}\n if (featureFlags) {\n for (const [feature, variant] of Object.entries(featureFlags)) {\n featureVariantProperties[`$feature/${feature}`] = variant\n }\n }\n return {\n $lib: this.getLibraryId(),\n $lib_version: this.getLibraryVersion(),\n $active_feature_flags: featureFlags ? Object.keys(featureFlags) : undefined,\n ...featureVariantProperties,\n }\n }\n\n protected setupBootstrap(options?: Partial<PosthogCoreOptions>): void {\n if (options?.bootstrap?.distinctId) {\n if (options?.bootstrap?.isIdentifiedId) {\n this.setPersistedProperty(PostHogPersistedProperty.DistinctId, options.bootstrap.distinctId)\n } else {\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, options.bootstrap.distinctId)\n }\n }\n\n if (options?.bootstrap?.featureFlags) {\n const activeFlags = Object.keys(options.bootstrap?.featureFlags || {})\n .filter((flag) => !!options.bootstrap?.featureFlags?.[flag])\n .reduce(\n (res: Record<string, string | boolean>, key) => (\n (res[key] = options.bootstrap?.featureFlags?.[key] || false), res\n ),\n {}\n )\n this.setKnownFeatureFlags(activeFlags)\n }\n }\n\n // NOTE: Props are lazy loaded from localstorage hence the complex getter setter logic\n private get props(): PostHogEventProperties {\n if (!this._props) {\n this._props = this.getPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.Props)\n }\n return this._props || {}\n }\n\n private set props(val: PostHogEventProperties | undefined) {\n this._props = val\n }\n\n private clearProps(): void {\n this.props = undefined\n }\n\n private _props: PostHogEventProperties | undefined\n\n public get optedOut(): boolean {\n return this.getPersistedProperty(PostHogPersistedProperty.OptedOut) ?? this._optoutOverride ?? false\n }\n\n optIn(): void {\n this.setPersistedProperty(PostHogPersistedProperty.OptedOut, false)\n }\n\n optOut(): void {\n this.setPersistedProperty(PostHogPersistedProperty.OptedOut, true)\n }\n\n on(event: string, cb: (...args: any[]) => void): () => void {\n return this._events.on(event, cb)\n }\n\n reset(propertiesToKeep?: PostHogPersistedProperty[]): void {\n const allPropertiesToKeep = [PostHogPersistedProperty.Queue, ...(propertiesToKeep || [])]\n\n // clean up props\n this.clearProps()\n\n for (const key of <(keyof typeof PostHogPersistedProperty)[]>Object.keys(PostHogPersistedProperty)) {\n if (!allPropertiesToKeep.includes(PostHogPersistedProperty[key])) {\n this.setPersistedProperty((PostHogPersistedProperty as any)[key], null)\n }\n }\n }\n\n debug(enabled: boolean = true): void {\n this.removeDebugCallback?.()\n\n if (enabled) {\n this.removeDebugCallback = this.on('*', (event, payload) => console.log('PostHog Debug', event, payload))\n }\n }\n\n private buildPayload(payload: { event: string; properties?: PostHogEventProperties; distinct_id?: string }): any {\n return {\n distinct_id: payload.distinct_id || this.getDistinctId(),\n event: payload.event,\n properties: {\n ...this.props, // Persisted properties first\n ...(payload.properties || {}), // Followed by user specified properties\n ...this.getCommonEventProperties(), // Followed by common PH props\n $session_id: this.getSessionId(),\n },\n }\n }\n\n getSessionId(): string | undefined {\n let sessionId = this.getPersistedProperty<string>(PostHogPersistedProperty.SessionId)\n const sessionTimestamp = this.getPersistedProperty<number>(PostHogPersistedProperty.SessionLastTimestamp) || 0\n if (!sessionId || Date.now() - sessionTimestamp > this._sessionExpirationTimeSeconds * 1000) {\n sessionId = generateUUID(globalThis)\n this.setPersistedProperty(PostHogPersistedProperty.SessionId, sessionId)\n }\n this.setPersistedProperty(PostHogPersistedProperty.SessionLastTimestamp, Date.now())\n\n return sessionId\n }\n\n resetSessionId(): void {\n this.setPersistedProperty(PostHogPersistedProperty.SessionId, null)\n }\n\n getAnonymousId(): string {\n let anonId = this.getPersistedProperty<string>(PostHogPersistedProperty.AnonymousId)\n if (!anonId) {\n anonId = generateUUID(globalThis)\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, anonId)\n }\n return anonId\n }\n\n getDistinctId(): string {\n return this.getPersistedProperty<string>(PostHogPersistedProperty.DistinctId) || this.getAnonymousId()\n }\n\n register(properties: { [key: string]: any }): void {\n this.props = {\n ...this.props,\n ...properties,\n }\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.Props, this.props)\n }\n\n unregister(property: string): void {\n delete this.props[property]\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.Props, this.props)\n }\n\n /***\n *** TRACKING\n ***/\n identify(distinctId?: string, properties?: PostHogEventProperties): this {\n const previousDistinctId = this.getDistinctId()\n distinctId = distinctId || previousDistinctId\n\n if (properties?.$groups) {\n this.groups(properties.$groups)\n }\n\n const payload = {\n ...this.buildPayload({\n distinct_id: distinctId,\n event: '$identify',\n properties: {\n ...(properties || {}),\n $anon_distinct_id: this.getAnonymousId(),\n },\n }),\n $set: properties,\n }\n\n if (distinctId !== previousDistinctId) {\n // We keep the AnonymousId to be used by decide calls and identify to link the previousId\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, previousDistinctId)\n this.setPersistedProperty(PostHogPersistedProperty.DistinctId, distinctId)\n\n if (this.getFeatureFlags()) {\n void this.reloadFeatureFlagsAsync()\n }\n }\n\n this.enqueue('identify', payload)\n return this\n }\n\n capture(event: string, properties?: { [key: string]: any }, forceSendFeatureFlags: boolean = false): this {\n if (properties?.$groups) {\n this.groups(properties.$groups)\n }\n\n if (forceSendFeatureFlags) {\n this._sendFeatureFlags(event, properties)\n } else {\n const payload = this.buildPayload({ event, properties })\n this.enqueue('capture', payload)\n }\n return this\n }\n\n alias(alias: string): this {\n const distinctId = this.getDistinctId()\n\n const payload = this.buildPayload({\n event: '$create_alias',\n properties: {\n distinct_id: distinctId,\n alias,\n },\n })\n\n this.enqueue('alias', payload)\n return this\n }\n\n autocapture(eventType: string, elements: PostHogAutocaptureElement[], properties: PostHogEventProperties = {}): this {\n const payload = this.buildPayload({\n event: '$autocapture',\n properties: {\n ...properties,\n $event_type: eventType,\n $elements: elements,\n },\n })\n\n this.enqueue('autocapture', payload)\n return this\n }\n\n /***\n *** GROUPS\n ***/\n\n groups(groups: { [type: string]: string | number }): this {\n // Get persisted groups\n const existingGroups = this.props.$groups || {}\n\n this.register({\n $groups: {\n ...existingGroups,\n ...groups,\n },\n })\n\n if (Object.keys(groups).find((type) => existingGroups[type] !== groups[type]) && this.getFeatureFlags()) {\n void this.reloadFeatureFlagsAsync()\n }\n\n return this\n }\n\n group(groupType: string, groupKey: string | number, groupProperties?: PostHogEventProperties): this {\n this.groups({\n [groupType]: groupKey,\n })\n\n if (groupProperties) {\n this.groupIdentify(groupType, groupKey, groupProperties)\n }\n\n return this\n }\n\n groupIdentify(groupType: string, groupKey: string | number, groupProperties?: PostHogEventProperties): this {\n const payload = {\n event: '$groupidentify',\n distinctId: `$${groupType}_${groupKey}`,\n properties: {\n $group_type: groupType,\n $group_key: groupKey,\n $group_set: groupProperties || {},\n ...this.getCommonEventProperties(),\n },\n }\n\n this.enqueue('capture', payload)\n return this\n }\n\n /***\n * PROPERTIES\n ***/\n personProperties(properties: { [type: string]: string }): this {\n // Get persisted person properties\n const existingProperties =\n this.getPersistedProperty<Record<string, string>>(PostHogPersistedProperty.PersonProperties) || {}\n\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.PersonProperties, {\n ...existingProperties,\n ...properties,\n })\n\n return this\n }\n\n groupProperties(properties: { [type: string]: Record<string, string> }): this {\n // Get persisted group properties\n const existingProperties =\n this.getPersistedProperty<Record<string, Record<string, string>>>(PostHogPersistedProperty.GroupProperties) || {}\n\n if (Object.keys(existingProperties).length !== 0) {\n Object.keys(existingProperties).forEach((groupType) => {\n existingProperties[groupType] = {\n ...existingProperties[groupType],\n ...properties[groupType],\n }\n delete properties[groupType]\n })\n }\n\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.GroupProperties, {\n ...existingProperties,\n ...properties,\n })\n return this\n }\n\n /***\n *** FEATURE FLAGS\n ***/\n private decideAsync(sendAnonDistinctId: boolean = true): Promise<PostHogDecideResponse> {\n if (this._decideResponsePromise) {\n return this._decideResponsePromise\n }\n return this._decideAsync(sendAnonDistinctId)\n }\n\n private async _decideAsync(sendAnonDistinctId: boolean = true): Promise<PostHogDecideResponse> {\n const url = `${this.host}/decide/?v=2`\n\n const distinctId = this.getDistinctId()\n const groups = this.props.$groups || {}\n const personProperties =\n this.getPersistedProperty<Record<string, string>>(PostHogPersistedProperty.PersonProperties) || {}\n const groupProperties =\n this.getPersistedProperty<Record<string, Record<string, string>>>(PostHogPersistedProperty.GroupProperties) || {}\n\n const fetchOptions: PostHogFetchOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n token: this.apiKey,\n distinct_id: distinctId,\n $anon_distinct_id: sendAnonDistinctId ? this.getAnonymousId() : undefined,\n groups,\n person_properties: personProperties,\n group_properties: groupProperties,\n }),\n }\n\n this._decideResponsePromise = this.fetchWithRetry(url, fetchOptions)\n .then((r) => r.json() as Promise<PostHogDecideResponse>)\n .then((res) => {\n if (res.featureFlags) {\n this.setKnownFeatureFlags(res.featureFlags)\n }\n\n return res\n })\n .finally(() => {\n this._decideResponsePromise = undefined\n })\n return this._decideResponsePromise\n }\n\n private setKnownFeatureFlags(featureFlags: PostHogDecideResponse['featureFlags']): void {\n this.setPersistedProperty<PostHogDecideResponse['featureFlags']>(\n PostHogPersistedProperty.FeatureFlags,\n featureFlags\n )\n this._events.emit('featureflags', featureFlags)\n }\n\n getFeatureFlag(key: string): boolean | string | undefined {\n const featureFlags = this.getFeatureFlags()\n\n if (!featureFlags) {\n // If we haven't loaded flags yet, or errored out, we respond with undefined\n return undefined\n }\n\n let response = featureFlags[key]\n if (response === undefined) {\n // `/decide` returns nothing for flags which are false.\n response = false\n }\n\n if (this.sendFeatureFlagEvent && !this.flagCallReported[key]) {\n this.flagCallReported[key] = true\n this.capture('$feature_flag_called', {\n $feature_flag: key,\n $feature_flag_response: response,\n })\n }\n\n // If we have flags we either return the value (true or string) or false\n return response\n }\n\n getFeatureFlags(): PostHogDecideResponse['featureFlags'] | undefined {\n let flags = this.getPersistedProperty<PostHogDecideResponse['featureFlags']>(PostHogPersistedProperty.FeatureFlags)\n const overriddenFlags = this.getPersistedProperty<PostHogDecideResponse['featureFlags']>(\n PostHogPersistedProperty.OverrideFeatureFlags\n )\n\n if (!overriddenFlags) {\n return flags\n }\n\n flags = flags || {}\n\n for (const key in overriddenFlags) {\n if (!overriddenFlags[key]) {\n delete flags[key]\n } else {\n flags[key] = overriddenFlags[key]\n }\n }\n\n return flags\n }\n\n isFeatureEnabled(key: string): boolean | undefined {\n const response = this.getFeatureFlag(key)\n if (response === undefined) {\n return undefined\n }\n return !!response\n }\n\n async reloadFeatureFlagsAsync(sendAnonDistinctId: boolean = true): Promise<PostHogDecideResponse['featureFlags']> {\n return (await this.decideAsync(sendAnonDistinctId)).featureFlags\n }\n\n onFeatureFlags(cb: (flags: PostHogDecideResponse['featureFlags']) => void): () => void {\n return this.on('featureflags', async () => {\n const flags = this.getFeatureFlags()\n if (flags) {\n cb(flags)\n }\n })\n }\n\n onFeatureFlag(key: string, cb: (value: string | boolean) => void): () => void {\n return this.on('featureflags', async () => {\n const flagResponse = this.getFeatureFlag(key)\n if (flagResponse !== undefined) {\n cb(flagResponse)\n }\n })\n }\n\n overrideFeatureFlag(flags: PostHogDecideResponse['featureFlags'] | null): void {\n if (flags === null) {\n return this.setPersistedProperty(PostHogPersistedProperty.OverrideFeatureFlags, null)\n }\n return this.setPersistedProperty(PostHogPersistedProperty.OverrideFeatureFlags, flags)\n }\n\n _sendFeatureFlags(event: string, properties?: { [key: string]: any }): void {\n this.reloadFeatureFlagsAsync(false).finally(() => {\n // Try to enqueue message irrespective of errors during feature flag fetching\n const payload = this.buildPayload({ event, properties })\n this.enqueue('capture', payload)\n })\n }\n\n /***\n *** QUEUEING AND FLUSHING\n ***/\n private enqueue(type: string, _message: any): void {\n if (this.optedOut) {\n return\n }\n const message = {\n ..._message,\n type: type,\n library: this.getLibraryId(),\n library_version: this.getLibraryVersion(),\n timestamp: _message.timestamp ? _message.timestamp : currentISOTime(),\n }\n\n if (message.distinctId) {\n message.distinct_id = message.distinctId\n delete message.distinctId\n }\n\n const queue = this.getPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue) || []\n\n queue.push({ message })\n this.setPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue, queue)\n\n this._events.emit(type, message)\n\n // Flush queued events if we meet the flushAt length\n if (queue.length >= this.flushAt) {\n this.flush()\n }\n\n if (this.flushInterval && !this._flushTimer) {\n this._flushTimer = safeSetTimeout(() => this.flush(), this.flushInterval)\n }\n }\n\n flushAsync(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.flush((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n flush(callback?: (err?: any, data?: any) => void): void {\n if (this.optedOut) {\n return callback?.()\n }\n\n if (this._flushTimer) {\n clearTimeout(this._flushTimer)\n this._flushTimer = null\n }\n\n const queue = this.getPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue) || []\n\n if (!queue.length) {\n return callback?.()\n }\n\n const items = queue.splice(0, this.flushAt)\n this.setPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue, queue)\n\n const messages = items.map((item) => item.message)\n\n const data = {\n api_key: this.apiKey,\n batch: messages,\n sent_at: currentISOTime(),\n }\n\n const done = (err?: any): void => {\n callback?.(err, messages)\n this._events.emit('flush', messages)\n }\n\n // Don't set the user agent if we're not on a browser. The latest spec allows\n // the User-Agent header (see https://fetch.spec.whatwg.org/#terminology-headers\n // and https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader),\n // but browsers such as Chrome and Safari have not caught up.\n const customUserAgent = this.getCustomUserAgent()\n const headers: { [key: string]: string } = {}\n if (customUserAgent) {\n headers['user-agent'] = customUserAgent\n }\n\n const payload = JSON.stringify(data)\n\n const url =\n this.captureMode === 'form'\n ? `${this.host}/e/?ip=1&_=${currentTimestamp()}&v=${this.getLibraryVersion()}`\n : `${this.host}/batch/`\n\n const fetchOptions: PostHogFetchOptions =\n this.captureMode === 'form'\n ? {\n method: 'POST',\n mode: 'no-cors',\n credentials: 'omit',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: `data=${encodeURIComponent(LZString.compressToBase64(payload))}&compression=lz64`,\n }\n : {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: payload,\n }\n\n this.fetchWithRetry(url, fetchOptions)\n .then(() => done())\n .catch((err) => {\n if (err.response) {\n const error = new Error(err.response.statusText)\n return done(error)\n }\n\n done(err)\n })\n }\n\n private async fetchWithRetry(\n url: string,\n options: PostHogFetchOptions,\n retryOptions?: RetriableOptions\n ): Promise<PostHogFetchResponse> {\n ;(AbortSignal as any).timeout ??= function timeout(ms: number) {\n const ctrl = new AbortController()\n setTimeout(() => ctrl.abort(), ms)\n return ctrl.signal\n }\n\n return retriable(\n () =>\n this.fetch(url, {\n signal: (AbortSignal as any).timeout(this.requestTimeout),\n ...options,\n }),\n retryOptions || this._retryOptions\n )\n }\n\n async shutdownAsync(): Promise<void> {\n clearTimeout(this._flushTimer)\n await this.flushAsync()\n }\n\n shutdown(): void {\n void this.shutdownAsync()\n }\n}\n\nexport * from './types'\nexport { LZString }\n","import { PostHogPersistedProperty } from './types'\n\nexport class PostHogMemoryStorage {\n private _memoryStorage: { [key: string]: any | undefined } = {}\n\n getProperty(key: PostHogPersistedProperty): any | undefined {\n return this._memoryStorage[key]\n }\n\n setProperty(key: PostHogPersistedProperty, value: any | null): void {\n this._memoryStorage[key] = value !== null ? value : undefined\n }\n}\n","import axios from 'axios'\nimport { PostHogFetchOptions, PostHogFetchResponse } from 'posthog-core/src'\n\n// NOTE: We use axios as a reliable, well supported request library but follow the Fetch API (roughly)\n// So that alternative implementations can be used if desired\nexport const fetch = async (url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse> => {\n const res = await axios.request({\n url,\n headers: options.headers,\n method: options.method.toLowerCase(),\n data: options.body,\n signal: options.signal,\n })\n\n return {\n status: res.status,\n text: () => res.data,\n json: () => res.data,\n }\n}\n","import { createHash } from 'crypto'\nimport { FeatureFlagCondition, PostHogFeatureFlag } from './types'\nimport { version } from '../package.json'\nimport { PostHogFetchOptions, PostHogFetchResponse } from 'posthog-core/src'\nimport { safeSetTimeout } from 'posthog-core/src/utils'\nimport { fetch } from './fetch'\n\n// eslint-disable-next-line\nconst LONG_SCALE = 0xfffffffffffffff\n\nclass ClientError extends Error {\n constructor(message: string) {\n super()\n Error.captureStackTrace(this, this.constructor)\n this.name = 'ClientError'\n this.message = message\n Object.setPrototypeOf(this, ClientError.prototype)\n }\n}\n\nclass InconclusiveMatchError extends Error {\n constructor(message: string) {\n super(message)\n this.name = this.constructor.name\n Error.captureStackTrace(this, this.constructor)\n // instanceof doesn't work in ES3 or ES5\n // https://www.dannyguo.com/blog/how-to-fix-instanceof-not-working-for-custom-errors-in-typescript/\n // this is the workaround\n Object.setPrototypeOf(this, InconclusiveMatchError.prototype)\n }\n}\n\ntype FeatureFlagsPollerOptions = {\n personalApiKey: string\n projectApiKey: string\n host: string\n pollingInterval: number\n timeout?: number\n fetch?: (url: string, options: PostHogFetchOptions) => Promise<PostHogFetchResponse>\n}\n\nclass FeatureFlagsPoller {\n pollingInterval: number\n personalApiKey: string\n projectApiKey: string\n featureFlags: Array<PostHogFeatureFlag>\n groupTypeMapping: Record<string, string>\n loadedSuccessfullyOnce: boolean\n timeout?: number\n host: FeatureFlagsPollerOptions['host']\n poller?: NodeJS.Timeout\n fetch: (url: string, options: PostHogFetchOptions) => Promise<PostHogFetchResponse>\n\n constructor({\n pollingInterval,\n personalApiKey,\n projectApiKey,\n timeout,\n host,\n ...options\n }: FeatureFlagsPollerOptions) {\n this.pollingInterval = pollingInterval\n this.personalApiKey = personalApiKey\n this.featureFlags = []\n this.groupTypeMapping = {}\n this.loadedSuccessfullyOnce = false\n this.timeout = timeout\n this.projectApiKey = projectApiKey\n this.host = host\n this.poller = undefined\n // NOTE: as any is required here as the AbortSignal typing is slightly misaligned but works just fine\n this.fetch = options.fetch || fetch\n\n void this.loadFeatureFlags()\n }\n\n async getFeatureFlag(\n key: string,\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {}\n ): Promise<string | boolean | undefined> {\n await this.loadFeatureFlags()\n\n let response = undefined\n let featureFlag = undefined\n\n if (!this.loadedSuccessfullyOnce) {\n return response\n }\n\n for (const flag of this.featureFlags) {\n if (key === flag.key) {\n featureFlag = flag\n break\n }\n }\n\n if (featureFlag !== undefined) {\n try {\n response = this.computeFlagLocally(featureFlag, distinctId, groups, personProperties, groupProperties)\n console.debug(`Successfully computed flag locally: ${key} -> ${response}`)\n } catch (e) {\n if (e instanceof InconclusiveMatchError) {\n console.debug(`Can't compute flag locally: ${key}: ${e}`)\n } else if (e instanceof Error) {\n console.error(`Error computing flag locally: ${key}: ${e}`)\n }\n }\n }\n\n return response\n }\n\n async getAllFlags(\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {}\n ): Promise<{ response: Record<string, string | boolean>; fallbackToDecide: boolean }> {\n await this.loadFeatureFlags()\n\n const response: Record<string, string | boolean> = {}\n let fallbackToDecide = this.featureFlags.length == 0\n\n this.featureFlags.map((flag) => {\n try {\n response[flag.key] = this.computeFlagLocally(flag, distinctId, groups, personProperties, groupProperties)\n } catch (e) {\n if (e instanceof InconclusiveMatchError) {\n // do nothing\n } else if (e instanceof Error) {\n console.error(`Error computing flag locally: ${flag.key}: ${e}`)\n }\n fallbackToDecide = true\n }\n })\n\n return { response, fallbackToDecide }\n }\n\n computeFlagLocally(\n flag: PostHogFeatureFlag,\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {}\n ): string | boolean {\n if (flag.ensure_experience_continuity) {\n throw new InconclusiveMatchError('Flag has experience continuity enabled')\n }\n\n if (!flag.active) {\n return false\n }\n\n const flagFilters = flag.filters || {}\n const aggregation_group_type_index = flagFilters.aggregation_group_type_index\n\n if (aggregation_group_type_index != undefined) {\n const groupName = this.groupTypeMapping[String(aggregation_group_type_index)]\n\n if (!groupName) {\n console.warn(\n `[FEATURE FLAGS] Unknown group type index ${aggregation_group_type_index} for feature flag ${flag.key}`\n )\n throw new InconclusiveMatchError('Flag has unknown group type index')\n }\n\n if (!(groupName in groups)) {\n console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${flag.key} without group names passed in`)\n return false\n }\n\n const focusedGroupProperties = groupProperties[groupName]\n return this.matchFeatureFlagProperties(flag, groups[groupName], focusedGroupProperties)\n } else {\n return this.matchFeatureFlagProperties(flag, distinctId, personProperties)\n }\n }\n\n matchFeatureFlagProperties(\n flag: PostHogFeatureFlag,\n distinctId: string,\n properties: Record<string, string>\n ): string | boolean {\n const flagFilters = flag.filters || {}\n const flagConditions = flagFilters.groups || []\n let isInconclusive = false\n let result = undefined\n\n // # Stable sort conditions with variant overrides to the top. This ensures that if overrides are present, they are\n // # evaluated first, and the variant override is applied to the first matching condition.\n const sortedFlagConditions = [...flagConditions].sort((conditionA, conditionB) => {\n const AHasVariantOverride = !!conditionA.variant\n const BHasVariantOverride = !!conditionB.variant\n\n if (AHasVariantOverride && BHasVariantOverride) {\n return 0\n } else if (AHasVariantOverride) {\n return -1\n } else if (BHasVariantOverride) {\n return 1\n } else {\n return 0\n }\n })\n\n for (const condition of sortedFlagConditions) {\n try {\n if (this.isConditionMatch(flag, distinctId, condition, properties)) {\n const variantOverride = condition.variant\n const flagVariants = flagFilters.multivariate?.variants || []\n if (variantOverride && flagVariants.some((variant) => variant.key === variantOverride)) {\n result = variantOverride\n } else {\n result = this.getMatchingVariant(flag, distinctId) || true\n }\n break\n }\n } catch (e) {\n if (e instanceof InconclusiveMatchError) {\n isInconclusive = true\n } else {\n throw e\n }\n }\n }\n\n if (result !== undefined) {\n return result\n } else if (isInconclusive) {\n throw new InconclusiveMatchError(\"Can't determine if feature flag is enabled or not with given properties\")\n }\n\n // We can only return False when all conditions are False\n return false\n }\n\n isConditionMatch(\n flag: PostHogFeatureFlag,\n distinctId: string,\n condition: FeatureFlagCondition,\n properties: Record<string, string>\n ): boolean {\n const rolloutPercentage = condition.rollout_percentage\n\n if ((condition.properties || []).length > 0) {\n const matchAll = condition.properties.every((property) => {\n return matchProperty(property, properties)\n })\n if (!matchAll) {\n return false\n } else if (rolloutPercentage == undefined) {\n // == to include `null` as a match, not just `undefined`\n return true\n }\n }\n\n if (rolloutPercentage != undefined && _hash(flag.key, distinctId) > rolloutPercentage / 100.0) {\n return false\n }\n\n return true\n }\n\n getMatchingVariant(flag: PostHogFeatureFlag, distinctId: string): string | boolean | undefined {\n const hashValue = _hash(flag.key, distinctId, 'variant')\n const matchingVariant = this.variantLookupTable(flag).find((variant) => {\n return hashValue >= variant.valueMin && hashValue < variant.valueMax\n })\n\n if (matchingVariant) {\n return matchingVariant.key\n }\n return undefined\n }\n\n variantLookupTable(flag: PostHogFeatureFlag): { valueMin: number; valueMax: number; key: string }[] {\n const lookupTable: { valueMin: number; valueMax: number; key: string }[] = []\n let valueMin = 0\n let valueMax = 0\n const flagFilters = flag.filters || {}\n const multivariates: {\n key: string\n rollout_percentage: number\n }[] = flagFilters.multivariate?.variants || []\n\n multivariates.forEach((variant) => {\n valueMax = valueMin + variant.rollout_percentage / 100.0\n lookupTable.push({ valueMin, valueMax, key: variant.key })\n valueMin = valueMax\n })\n return lookupTable\n }\n\n async loadFeatureFlags(forceReload = false): Promise<void> {\n if (!this.loadedSuccessfullyOnce || forceReload) {\n await this._loadFeatureFlags()\n }\n }\n\n async _loadFeatureFlags(): Promise<void> {\n if (this.poller) {\n clearTimeout(this.poller)\n this.poller = undefined\n }\n this.poller = setTimeout(() => this._loadFeatureFlags(), this.pollingInterval)\n\n try {\n const res = await this._requestFeatureFlagDefinitions()\n\n if (res && res.status === 401) {\n throw new ClientError(\n `Your personalApiKey is invalid. Are you sure you're not using your Project API key? More information: https://posthog.com/docs/api/overview`\n )\n }\n const responseJson = await res.json()\n if (!('flags' in responseJson)) {\n console.error(`Invalid response when getting feature flags: ${JSON.stringify(responseJson)}`)\n }\n\n this.featureFlags = responseJson.flags || []\n this.groupTypeMapping = responseJson.group_type_mapping || {}\n this.loadedSuccessfullyOnce = true\n } catch (err) {\n // if an error that is not an instance of ClientError is thrown\n // we silently ignore the error when reloading feature flags\n if (err instanceof ClientError) {\n throw err\n }\n }\n }\n\n async _requestFeatureFlagDefinitions(): Promise<PostHogFetchResponse> {\n const url = `${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}`\n\n const options: PostHogFetchOptions = {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.personalApiKey}`,\n 'user-agent': `posthog-node/${version}`,\n },\n }\n\n let abortTimeout = null\n\n if (this.timeout && typeof this.timeout === 'number') {\n const controller = new AbortController()\n abortTimeout = safeSetTimeout(() => {\n controller.abort()\n }, this.timeout)\n options.signal = controller.signal\n }\n\n try {\n return await this.fetch(url, options)\n } catch (err) {\n throw new Error(`Request failed with error: ${err}`)\n } finally {\n clearTimeout(abortTimeout)\n }\n }\n\n stopPoller(): void {\n clearTimeout(this.poller)\n }\n}\n\n// # This function takes a distinct_id and a feature flag key and returns a float between 0 and 1.\n// # Given the same distinct_id and key, it'll always return the same float. These floats are\n// # uniformly distributed between 0 and 1, so if we want to show this feature to 20% of traffic\n// # we can do _hash(key, distinct_id) < 0.2\nfunction _hash(key: string, distinctId: string, salt: string = ''): number {\n const sha1Hash = createHash('sha1')\n sha1Hash.update(`${key}.${distinctId}${salt}`)\n return parseInt(sha1Hash.digest('hex').slice(0, 15), 16) / LONG_SCALE\n}\n\nfunction matchProperty(\n property: FeatureFlagCondition['properties'][number],\n propertyValues: Record<string, any>\n): boolean {\n const key = property.key\n const value = property.value\n const operator = property.operator || 'exact'\n\n if (!(key in propertyValues)) {\n throw new InconclusiveMatchError(`Property ${key} not found in propertyValues`)\n } else if (operator === 'is_not_set') {\n throw new InconclusiveMatchError(`Operator is_not_set is not supported`)\n }\n\n const overrideValue = propertyValues[key]\n\n switch (operator) {\n case 'exact':\n return Array.isArray(value) ? value.indexOf(overrideValue) !== -1 : value === overrideValue\n case 'is_not':\n return Array.isArray(value) ? value.indexOf(overrideValue) === -1 : value !== overrideValue\n case 'is_set':\n return key in propertyValues\n case 'icontains':\n return String(overrideValue).toLowerCase().includes(String(value).toLowerCase())\n case 'not_icontains':\n return !String(overrideValue).toLowerCase().includes(String(value).toLowerCase())\n case 'regex':\n return isValidRegex(String(value)) && String(overrideValue).match(String(value)) !== null\n case 'not_regex':\n return isValidRegex(String(value)) && String(overrideValue).match(String(value)) === null\n case 'gt':\n return typeof overrideValue == typeof value && overrideValue > value\n case 'gte':\n return typeof overrideValue == typeof value && overrideValue >= value\n case 'lt':\n return typeof overrideValue == typeof value && overrideValue < value\n case 'lte':\n return typeof overrideValue == typeof value && overrideValue <= value\n case 'is_date_after':\n case 'is_date_before':\n const parsedDate = convertToDateTime(value)\n const overrideDate = convertToDateTime(overrideValue)\n if (operator === 'is_date_before') {\n return overrideDate < parsedDate\n }\n return overrideDate > parsedDate\n default:\n console.error(`Unknown operator: ${operator}`)\n return false\n }\n}\n\nfunction isValidRegex(regex: string): boolean {\n try {\n new RegExp(regex)\n return true\n } catch (err) {\n return false\n }\n}\n\nfunction convertToDateTime(value: string | number | (string | number)[] | Date): Date {\n if (value instanceof Date) {\n return value\n } else if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value)\n if (!isNaN(date.valueOf())) {\n return date\n }\n throw new InconclusiveMatchError(`${value} is in an invalid date format`)\n } else {\n throw new InconclusiveMatchError(`The date provided ${value} must be a string, number, or date object`)\n }\n}\n\nexport { FeatureFlagsPoller, matchProperty, InconclusiveMatchError, ClientError }\n","import { version } from '../package.json'\n\nimport {\n PostHogCore,\n PosthogCoreOptions,\n PostHogFetchOptions,\n PostHogFetchResponse,\n PostHogPersistedProperty,\n} from '../../posthog-core/src'\nimport { PostHogMemoryStorage } from '../../posthog-core/src/storage-memory'\nimport { EventMessageV1, GroupIdentifyMessage, IdentifyMessageV1, PostHogNodeV1 } from './types'\nimport { FeatureFlagsPoller } from './feature-flags'\nimport { fetch } from './fetch'\n\nexport type PostHogOptions = PosthogCoreOptions & {\n persistence?: 'memory'\n personalApiKey?: string\n // The interval in milliseconds between polls for refreshing feature flag definitions\n featureFlagsPollingInterval?: number\n // Timeout in milliseconds for any calls. Defaults to 10 seconds.\n requestTimeout?: number\n // Maximum size of cache that deduplicates $feature_flag_called calls per user.\n maxCacheSize?: number\n fetch?: (url: string, options: PostHogFetchOptions) => Promise<PostHogFetchResponse>\n}\n\nconst THIRTY_SECONDS = 30 * 1000\nconst MAX_CACHE_SIZE = 50 * 1000\n\nclass PostHogClient extends PostHogCore {\n private _memoryStorage = new PostHogMemoryStorage()\n\n constructor(apiKey: string, private options: PostHogOptions = {}) {\n options.captureMode = options?.captureMode || 'json'\n options.preloadFeatureFlags = false // Don't preload as this makes no sense without a distinctId\n options.sendFeatureFlagEvent = false // Let `posthog-node` handle this on its own, since we're dealing with multiple distinctIDs\n\n super(apiKey, options)\n }\n\n getPersistedProperty(key: PostHogPersistedProperty): any | undefined {\n return this._memoryStorage.getProperty(key)\n }\n\n setPersistedProperty(key: PostHogPersistedProperty, value: any | null): void {\n return this._memoryStorage.setProperty(key, value)\n }\n\n getSessionId(): string | undefined {\n // Sessions don't make sense for Node\n return undefined\n }\n\n fetch(url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse> {\n return this.options.fetch ? this.options.fetch(url, options) : fetch(url, options)\n }\n\n getLibraryId(): string {\n return 'posthog-node'\n }\n getLibraryVersion(): string {\n return version\n }\n getCustomUserAgent(): string {\n return `posthog-node/${version}`\n }\n}\n\n// The actual exported Nodejs API.\nexport class PostHog implements PostHogNodeV1 {\n private _sharedClient: PostHogClient\n private featureFlagsPoller?: FeatureFlagsPoller\n private maxCacheSize: number\n\n distinctIdHasSentFlagCalls: Record<string, string[]>\n\n constructor(apiKey: string, options: PostHogOptions = {}) {\n this._sharedClient = new PostHogClient(apiKey, options)\n if (options.personalApiKey) {\n this.featureFlagsPoller = new FeatureFlagsPoller({\n pollingInterval:\n typeof options.featureFlagsPollingInterval === 'number'\n ? options.featureFlagsPollingInterval\n : THIRTY_SECONDS,\n personalApiKey: options.personalApiKey,\n projectApiKey: apiKey,\n timeout: options.requestTimeout ?? 10,\n host: this._sharedClient.host,\n fetch: options.fetch,\n })\n }\n this.distinctIdHasSentFlagCalls = {}\n this.maxCacheSize = options.maxCacheSize || MAX_CACHE_SIZE\n }\n\n private reInit(distinctId: string): void {\n // Certain properties we want to persist. Queue is persisted always by default.\n this._sharedClient.reset([PostHogPersistedProperty.OptedOut])\n this._sharedClient.setPersistedProperty(PostHogPersistedProperty.DistinctId, distinctId)\n }\n\n enable(): void {\n return this._sharedClient.optIn()\n }\n\n disable(): void {\n return this._sharedClient.optOut()\n }\n\n capture({ distinctId, event, properties, groups, sendFeatureFlags }: EventMessageV1): void {\n this.reInit(distinctId)\n if (groups) {\n this._sharedClient.groups(groups)\n }\n this._sharedClient.capture(event, properties, sendFeatureFlags || false)\n }\n\n identify({ distinctId, properties }: IdentifyMessageV1): void {\n this.reInit(distinctId)\n this._sharedClient.identify(distinctId, properties)\n }\n\n alias(data: { distinctId: string; alias: string }): void {\n this.reInit(data.distinctId)\n this._sharedClient.alias(data.alias)\n }\n\n async getFeatureFlag(\n key: string,\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n sendFeatureFlagEvents?: boolean\n }\n ): Promise<string | boolean | undefined> {\n const { groups, personProperties, groupProperties } = options || {}\n let { onlyEvaluateLocally, sendFeatureFlagEvents } = options || {}\n\n // set defaults\n if (onlyEvaluateLocally == undefined) {\n onlyEvaluateLocally = false\n }\n if (sendFeatureFlagEvents == undefined) {\n sendFeatureFlagEvents = true\n }\n\n let response = await this.featureFlagsPoller?.getFeatureFlag(\n key,\n distinctId,\n groups,\n personProperties,\n groupProperties\n )\n\n const flagWasLocallyEvaluated = response !== undefined\n\n if (!flagWasLocallyEvaluated && !onlyEvaluateLocally) {\n this.reInit(distinctId)\n if (groups != undefined) {\n this._sharedClient.groups(groups)\n }\n\n if (personProperties) {\n this._sharedClient.personProperties(personProperties)\n }\n\n if (groupProperties) {\n this._sharedClient.groupProperties(groupProperties)\n }\n await this._sharedClient.reloadFeatureFlagsAsync(false)\n response = this._sharedClient.getFeatureFlag(key)\n }\n\n const featureFlagReportedKey = `${key}_${response}`\n\n if (\n sendFeatureFlagEvents &&\n (!(distinctId in this.distinctIdHasSentFlagCalls) ||\n !this.distinctIdHasSentFlagCalls[distinctId].includes(featureFlagReportedKey))\n ) {\n if (Object.keys(this.distinctIdHasSentFlagCalls).length >= this.maxCacheSize) {\n this.distinctIdHasSentFlagCalls = {}\n }\n if (Array.isArray(this.distinctIdHasSentFlagCalls[distinctId])) {\n this.distinctIdHasSentFlagCalls[distinctId].push(featureFlagReportedKey)\n } else {\n this.distinctIdHasSentFlagCalls[distinctId] = [featureFlagReportedKey]\n }\n this.capture({\n distinctId,\n event: '$feature_flag_called',\n properties: {\n $feature_flag: key,\n $feature_flag_response: response,\n locally_evaluated: flagWasLocallyEvaluated,\n },\n groups,\n })\n }\n return response\n }\n\n async isFeatureEnabled(\n key: string,\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n sendFeatureFlagEvents?: boolean\n }\n ): Promise<boolean | undefined> {\n const feat = await this.getFeatureFlag(key, distinctId, options)\n if (feat === undefined) {\n return undefined\n }\n return !!feat || false\n }\n\n async getAllFlags(\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n }\n ): Promise<Record<string, string | boolean>> {\n const { groups, personProperties, groupProperties } = options || {}\n let { onlyEvaluateLocally } = options || {}\n\n // set defaults\n if (onlyEvaluateLocally == undefined) {\n onlyEvaluateLocally = false\n }\n\n const localEvaluationResult = await this.featureFlagsPoller?.getAllFlags(\n distinctId,\n groups,\n personProperties,\n groupProperties\n )\n\n let response = {}\n let fallbackToDecide = true\n if (localEvaluationResult) {\n response = localEvaluationResult.response\n fallbackToDecide = localEvaluationResult.fallbackToDecide\n }\n\n if (fallbackToDecide && !onlyEvaluateLocally) {\n this.reInit(distinctId)\n if (groups) {\n this._sharedClient.groups(groups)\n }\n\n if (personProperties) {\n this._sharedClient.personProperties(personProperties)\n }\n\n if (groupProperties) {\n this._sharedClient.groupProperties(groupProperties)\n }\n await this._sharedClient.reloadFeatureFlagsAsync(false)\n const remoteEvaluationResult = this._sharedClient.getFeatureFlags()\n\n return { ...response, ...remoteEvaluationResult }\n }\n\n return response\n }\n\n groupIdentify({ groupType, groupKey, properties }: GroupIdentifyMessage): void {\n this._sharedClient.groupIdentify(groupType, groupKey, properties)\n }\n\n async reloadFeatureFlags(): Promise<void> {\n await this.featureFlagsPoller?.loadFeatureFlags(true)\n }\n\n flush(): void {\n this._sharedClient.flush()\n }\n\n shutdown(): void {\n void this.shutdownAsync()\n }\n\n async shutdownAsync(): Promise<void> {\n this.featureFlagsPoller?.stopPoller()\n return this._sharedClient.shutdownAsync()\n }\n\n debug(enabled?: boolean): void {\n return this._sharedClient.debug(enabled)\n }\n}\n"],"names":["fetch","url","options","__awaiter","axios","request","headers","method","toLowerCase","data","body","signal","res","_a","sent","status","text","json","LONG_SCALE","ClientError","_super","__extends","message","_this","Error","captureStackTrace","constructor","name","Object","setPrototypeOf","prototype","InconclusiveMatchError","call","FeatureFlagsPoller","pollingInterval","personalApiKey","projectApiKey","timeout","host","__rest","featureFlags","groupTypeMapping","loadedSuccessfullyOnce","poller","undefined","loadFeatureFlags","getFeatureFlag","key","distinctId","groups","personProperties","groupProperties","_b","response","featureFlag","_i","length","flag","computeFlagLocally","console","debug","concat","e","error","getAllFlags","fallbackToDecide","map","ensure_experience_continuity","active","flagFilters","filters","aggregation_group_type_index","groupName","String","warn","focusedGroupProperties","matchFeatureFlagProperties","properties","flagConditions","isInconclusive","result","sortedFlagConditions","__spreadArray","sort","conditionA","conditionB","AHasVariantOverride","variant","BHasVariantOverride","condition","this_1","isConditionMatch","variantOverride_1","flagVariants","multivariate","variants","some","getMatchingVariant","sortedFlagConditions_1","rolloutPercentage","rollout_percentage","matchAll","every","property","matchProperty","_hash","hashValue","matchingVariant","variantLookupTable","find","valueMin","valueMax","lookupTable","multivariates","forEach","push","forceReload","_loadFeatureFlags","clearTimeout","setTimeout","_requestFeatureFlagDefinitions","responseJson","JSON","stringify","flags","group_type_mapping","err_1","Authorization","version","abortTimeout","controller_1","AbortController","safeSetTimeout","abort","err_2","stopPoller","salt","sha1Hash","createHash","update","parseInt","digest","slice","propertyValues","value","operator","overrideValue","Array","isArray","indexOf","includes","isValidRegex","match","parsedDate","convertToDateTime","overrideDate","regex","RegExp","err","Date","date","isNaN","valueOf","THIRTY_SECONDS","MAX_CACHE_SIZE","PostHogClient","apiKey","captureMode","preloadFeatureFlags","sendFeatureFlagEvent","_memoryStorage","PostHogMemoryStorage","getPersistedProperty","getProperty","setPersistedProperty","setProperty","getSessionId","getLibraryId","getLibraryVersion","getCustomUserAgent","PostHogCore","PostHog","_sharedClient","featureFlagsPoller","featureFlagsPollingInterval","requestTimeout","distinctIdHasSentFlagCalls","maxCacheSize","reInit","reset","PostHogPersistedProperty","OptedOut","DistinctId","enable","optIn","disable","optOut","capture","event","sendFeatureFlags","identify","alias","_c","onlyEvaluateLocally","sendFeatureFlagEvents","_d","flagWasLocallyEvaluated","reloadFeatureFlagsAsync","featureFlagReportedKey","keys","$feature_flag","$feature_flag_response","locally_evaluated","isFeatureEnabled","feat","localEvaluationResult","remoteEvaluationResult","getFeatureFlags","__assign","groupIdentify","groupType","groupKey","reloadFeatureFlags","flush","shutdown","shutdownAsync","enabled"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../node_modules/tslib/tslib.es6.js","../../posthog-core/src/types.ts","../../posthog-core/src/utils.ts","../../posthog-core/src/lz-string.ts","../../posthog-core/src/eventemitter.ts","../../posthog-core/src/index.ts","../../posthog-core/src/storage-memory.ts","../src/fetch.ts","../src/feature-flags.ts","../src/posthog-node.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 */\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 __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 (_) 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: n === \"return\" } : 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","export type PosthogCoreOptions = {\n // PostHog API host (https://app.posthog.com by default)\n host?: string\n // The number of events to queue before sending to Posthog (flushing)\n flushAt?: number\n // The interval in milliseconds between periodic flushes\n flushInterval?: number\n // If set to false, tracking will be disabled until `optIn` is called\n enable?: boolean\n // Whether to track that `getFeatureFlag` was called (used by Expriements)\n sendFeatureFlagEvent?: boolean\n // Whether to load feature flags when initialised or not\n preloadFeatureFlags?: boolean\n // Option to bootstrap the library with given distinctId and feature flags\n bootstrap?: {\n distinctId?: string\n isIdentifiedId?: boolean\n featureFlags?: Record<string, boolean | string>\n }\n // How many times we will retry HTTP requests\n fetchRetryCount?: number\n // The delay between HTTP request retries\n fetchRetryDelay?: number\n // Timeout in milliseconds for any calls. Defaults to 10 seconds.\n requestTimeout?: number\n // For Session Analysis how long before we expire a session (defaults to 30 mins)\n sessionExpirationTimeSeconds?: number\n // Whether to post events to PostHog in JSON or compressed format\n captureMode?: 'json' | 'form'\n}\n\nexport enum PostHogPersistedProperty {\n AnonymousId = 'anonymous_id',\n DistinctId = 'distinct_id',\n Props = 'props',\n FeatureFlags = 'feature_flags',\n OverrideFeatureFlags = 'override_feature_flags',\n Queue = 'queue',\n OptedOut = 'opted_out',\n SessionId = 'session_id',\n SessionLastTimestamp = 'session_timestamp',\n PersonProperties = 'person_properties',\n GroupProperties = 'group_properties',\n}\n\nexport type PostHogFetchOptions = {\n method: 'GET' | 'POST' | 'PUT' | 'PATCH'\n mode?: 'no-cors'\n credentials?: 'omit'\n headers: { [key: string]: string }\n body?: string\n signal?: AbortSignal\n}\n\nexport type PostHogFetchResponse = {\n status: number\n text: () => Promise<string>\n json: () => Promise<any>\n}\n\nexport type PostHogQueueItem = {\n message: any\n callback?: (err: any) => void\n}\n\nexport type PostHogEventProperties = {\n [key: string]: any\n}\n\nexport type PostHogAutocaptureElement = {\n $el_text?: string\n tag_name: string\n href?: string\n nth_child?: number\n nth_of_type?: number\n order?: number\n} & {\n [key: string]: any\n} // Any key prefixed with `attr__` can be added\n\nexport type PostHogDecideResponse = {\n config: { enable_collect_everything: boolean }\n editorParams: { toolbarVersion: string; jsURL: string }\n isAuthenticated: true\n supportedCompression: string[]\n featureFlags: {\n [key: string]: string | boolean\n }\n sessionRecording: boolean\n}\n","export function assert(truthyValue: any, message: string): void {\n if (!truthyValue) {\n throw new Error(message)\n }\n}\n\nexport function removeTrailingSlash(url: string): string {\n return url?.replace(/\\/+$/, '')\n}\n\nexport interface RetriableOptions {\n retryCount?: number\n retryDelay?: number\n retryCheck?: (err: any) => true\n}\n\nexport async function retriable<T>(fn: () => Promise<T>, props: RetriableOptions = {}): Promise<T> {\n const { retryCount = 3, retryDelay = 5000, retryCheck = () => true } = props\n let lastError = null\n\n for (let i = 0; i < retryCount + 1; i++) {\n try {\n const res = await fn()\n return res\n } catch (e) {\n lastError = e\n if (!retryCheck(e)) {\n throw e\n }\n }\n\n await new Promise((r) => setTimeout(r, retryDelay))\n }\n\n throw lastError\n}\n\n// https://stackoverflow.com/a/8809472\nexport function generateUUID(globalThis?: any): string {\n // Public Domain/MIT\n let d = new Date().getTime() //Timestamp\n let d2 =\n (globalThis && globalThis.performance && globalThis.performance.now && globalThis.performance.now() * 1000) || 0 //Time in microseconds since page-load or 0 if unsupported\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n let r = Math.random() * 16 //random number between 0 and 16\n if (d > 0) {\n //Use timestamp until depleted\n r = (d + r) % 16 | 0\n d = Math.floor(d / 16)\n } else {\n //Use microseconds since page-load if supported\n r = (d2 + r) % 16 | 0\n d2 = Math.floor(d2 / 16)\n }\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16)\n })\n}\n\nexport function currentTimestamp(): number {\n return new Date().getTime()\n}\n\nexport function currentISOTime(): string {\n return new Date().toISOString()\n}\n\nexport function safeSetTimeout(fn: () => void, timeout: number): any {\n // NOTE: we use this so rarely that it is totally fine to do `safeSetTimeout(fn, 0)``\n // rather than setImmediate.\n const t = setTimeout(fn, timeout) as any\n // We unref if available to prevent Node.js hanging on exit\n t?.unref && t?.unref()\n return t\n}\n","// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\n\n// private property\nconst f = String.fromCharCode\nconst keyStrBase64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\nconst baseReverseDic: any = {}\n\nfunction getBaseValue(alphabet: any, character: any): any {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {}\n for (let i = 0; i < alphabet.length; i++) {\n baseReverseDic[alphabet][alphabet.charAt(i)] = i\n }\n }\n return baseReverseDic[alphabet][character]\n}\n\nexport const LZString = {\n compressToBase64: function (input: any): string {\n if (input == null) {\n return ''\n }\n const res = LZString._compress(input, 6, function (a: any) {\n return keyStrBase64.charAt(a)\n })\n switch (\n res.length % 4 // To produce valid Base64\n ) {\n default: // When could this happen ?\n case 0:\n return res\n case 1:\n return res + '==='\n case 2:\n return res + '=='\n case 3:\n return res + '='\n }\n },\n\n decompressFromBase64: function (input: any): any {\n if (input == null) {\n return ''\n }\n if (input == '') {\n return null\n }\n return LZString._decompress(input.length, 32, function (index: any) {\n return getBaseValue(keyStrBase64, input.charAt(index))\n })\n },\n\n compress: function (uncompressed: any): any {\n return LZString._compress(uncompressed, 16, function (a: any) {\n return f(a)\n })\n },\n _compress: function (uncompressed: any, bitsPerChar: any, getCharFromInt: any): any {\n if (uncompressed == null) {\n return ''\n }\n const context_dictionary: any = {},\n context_dictionaryToCreate: any = {},\n context_data = []\n\n let i,\n value,\n context_c = '',\n context_wc = '',\n context_w = '',\n context_enlargeIn = 2, // Compensate for the first entry which should not count\n context_dictSize = 3,\n context_numBits = 2,\n context_data_val = 0,\n context_data_position = 0,\n ii\n\n for (ii = 0; ii < uncompressed.length; ii += 1) {\n context_c = uncompressed.charAt(ii)\n if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n context_dictionary[context_c] = context_dictSize++\n context_dictionaryToCreate[context_c] = true\n }\n\n context_wc = context_w + context_c\n if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n context_w = context_wc\n } else {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++\n context_w = String(context_c)\n }\n }\n\n // Output the code for w.\n if (context_w !== '') {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n if (context_w.charCodeAt(0) < 256) {\n for (i = 0; i < context_numBits; i++) {\n context_data_val = context_data_val << 1\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 8; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n } else {\n value = 1\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | value\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = 0\n }\n value = context_w.charCodeAt(0)\n for (i = 0; i < 16; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n delete context_dictionaryToCreate[context_w]\n } else {\n value = context_dictionary[context_w]\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n }\n context_enlargeIn--\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits)\n context_numBits++\n }\n }\n\n // Mark the end of the stream\n value = 2\n for (i = 0; i < context_numBits; i++) {\n context_data_val = (context_data_val << 1) | (value & 1)\n if (context_data_position == bitsPerChar - 1) {\n context_data_position = 0\n context_data.push(getCharFromInt(context_data_val))\n context_data_val = 0\n } else {\n context_data_position++\n }\n value = value >> 1\n }\n\n // Flush the last char\n while (true) {\n context_data_val = context_data_val << 1\n if (context_data_position == bitsPerChar - 1) {\n context_data.push(getCharFromInt(context_data_val))\n break\n } else {\n context_data_position++\n }\n }\n return context_data.join('')\n },\n\n decompress: function (compressed: any): any {\n if (compressed == null) {\n return ''\n }\n if (compressed == '') {\n return null\n }\n return LZString._decompress(compressed.length, 32768, function (index: any) {\n return compressed.charCodeAt(index)\n })\n },\n\n _decompress: function (length: any, resetValue: any, getNextValue: any): any {\n const dictionary = [],\n result = [],\n data = { val: getNextValue(0), position: resetValue, index: 1 }\n\n let next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry: any = '',\n i,\n w,\n bits,\n resb,\n maxpower,\n power,\n c\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i\n }\n\n bits = 0\n maxpower = Math.pow(2, 2)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n switch ((next = bits)) {\n case 0:\n bits = 0\n maxpower = Math.pow(2, 8)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n c = f(bits)\n break\n case 1:\n bits = 0\n maxpower = Math.pow(2, 16)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n c = f(bits)\n break\n case 2:\n return ''\n }\n dictionary[3] = c\n w = c\n result.push(c)\n while (true) {\n if (data.index > length) {\n return ''\n }\n\n bits = 0\n maxpower = Math.pow(2, numBits)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n\n switch ((c = bits)) {\n case 0:\n bits = 0\n maxpower = Math.pow(2, 8)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n\n dictionary[dictSize++] = f(bits)\n c = dictSize - 1\n enlargeIn--\n break\n case 1:\n bits = 0\n maxpower = Math.pow(2, 16)\n power = 1\n while (power != maxpower) {\n resb = data.val & data.position\n data.position >>= 1\n if (data.position == 0) {\n data.position = resetValue\n data.val = getNextValue(data.index++)\n }\n bits |= (resb > 0 ? 1 : 0) * power\n power <<= 1\n }\n dictionary[dictSize++] = f(bits)\n c = dictSize - 1\n enlargeIn--\n break\n case 2:\n return result.join('')\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits)\n numBits++\n }\n\n if (dictionary[c]) {\n entry = dictionary[c]\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0)\n } else {\n return null\n }\n }\n result.push(entry)\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0)\n enlargeIn--\n\n w = entry\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits)\n numBits++\n }\n }\n },\n}\n","export class SimpleEventEmitter {\n events: { [key: string]: ((...args: any[]) => void)[] } = {}\n\n constructor() {\n this.events = {}\n }\n\n on(event: string, listener: (...args: any[]) => void): () => void {\n if (!this.events[event]) {\n this.events[event] = []\n }\n this.events[event].push(listener)\n\n return () => {\n this.events[event] = this.events[event].filter((x) => x !== listener)\n }\n }\n\n emit(event: string, payload: any): void {\n for (const listener of this.events[event] || []) {\n listener(payload)\n }\n for (const listener of this.events['*'] || []) {\n listener(event, payload)\n }\n }\n}\n","import {\n PostHogFetchOptions,\n PostHogFetchResponse,\n PostHogQueueItem,\n PostHogAutocaptureElement,\n PostHogDecideResponse,\n PosthogCoreOptions,\n PostHogEventProperties,\n PostHogPersistedProperty,\n} from './types'\nimport {\n assert,\n currentISOTime,\n currentTimestamp,\n generateUUID,\n removeTrailingSlash,\n retriable,\n RetriableOptions,\n safeSetTimeout,\n} from './utils'\nexport * as utils from './utils'\nimport { LZString } from './lz-string'\nimport { SimpleEventEmitter } from './eventemitter'\n\nexport abstract class PostHogCore {\n // options\n private apiKey: string\n host: string\n private flushAt: number\n private flushInterval: number\n private requestTimeout: number\n private captureMode: 'form' | 'json'\n private sendFeatureFlagEvent: boolean\n private flagCallReported: { [key: string]: boolean } = {}\n private removeDebugCallback?: () => void\n\n // internal\n protected _events = new SimpleEventEmitter()\n protected _flushTimer?: any\n protected _decideResponsePromise?: Promise<PostHogDecideResponse>\n protected _retryOptions: RetriableOptions\n protected _sessionExpirationTimeSeconds: number\n\n // Abstract methods to be overridden by implementations\n abstract fetch(url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse>\n abstract getLibraryId(): string\n abstract getLibraryVersion(): string\n abstract getCustomUserAgent(): string | void\n\n // This is our abstracted storage. Each implementation should handle its own\n abstract getPersistedProperty<T>(key: PostHogPersistedProperty): T | undefined\n abstract setPersistedProperty<T>(key: PostHogPersistedProperty, value: T | null): void\n\n private _optoutOverride: boolean | undefined\n\n constructor(apiKey: string, options?: PosthogCoreOptions) {\n assert(apiKey, \"You must pass your PostHog project's api key.\")\n\n this.apiKey = apiKey\n this.host = removeTrailingSlash(options?.host || 'https://app.posthog.com')\n this.flushAt = options?.flushAt ? Math.max(options?.flushAt, 1) : 20\n this.flushInterval = options?.flushInterval ?? 10000\n this.captureMode = options?.captureMode || 'form'\n this.sendFeatureFlagEvent = options?.sendFeatureFlagEvent ?? true\n // If enable is explicitly set to false we override the optout\n this._optoutOverride = options?.enable === false\n this._retryOptions = {\n retryCount: options?.fetchRetryCount ?? 3,\n retryDelay: options?.fetchRetryDelay ?? 3000,\n }\n this.requestTimeout = options?.requestTimeout ?? 10000 // 10 seconds\n this._sessionExpirationTimeSeconds = options?.sessionExpirationTimeSeconds ?? 1800 // 30 minutes\n\n // NOTE: It is important we don't initiate anything in the constructor as some async IO may still be underway on the parent\n if (options?.preloadFeatureFlags !== false) {\n safeSetTimeout(() => {\n void this.reloadFeatureFlagsAsync()\n }, 1)\n }\n }\n\n protected getCommonEventProperties(): any {\n const featureFlags = this.getFeatureFlags()\n\n const featureVariantProperties: Record<string, string | boolean> = {}\n if (featureFlags) {\n for (const [feature, variant] of Object.entries(featureFlags)) {\n featureVariantProperties[`$feature/${feature}`] = variant\n }\n }\n return {\n $lib: this.getLibraryId(),\n $lib_version: this.getLibraryVersion(),\n $active_feature_flags: featureFlags ? Object.keys(featureFlags) : undefined,\n ...featureVariantProperties,\n }\n }\n\n protected setupBootstrap(options?: Partial<PosthogCoreOptions>): void {\n if (options?.bootstrap?.distinctId) {\n if (options?.bootstrap?.isIdentifiedId) {\n this.setPersistedProperty(PostHogPersistedProperty.DistinctId, options.bootstrap.distinctId)\n } else {\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, options.bootstrap.distinctId)\n }\n }\n\n if (options?.bootstrap?.featureFlags) {\n const activeFlags = Object.keys(options.bootstrap?.featureFlags || {})\n .filter((flag) => !!options.bootstrap?.featureFlags?.[flag])\n .reduce(\n (res: Record<string, string | boolean>, key) => (\n (res[key] = options.bootstrap?.featureFlags?.[key] || false), res\n ),\n {}\n )\n this.setKnownFeatureFlags(activeFlags)\n }\n }\n\n // NOTE: Props are lazy loaded from localstorage hence the complex getter setter logic\n private get props(): PostHogEventProperties {\n if (!this._props) {\n this._props = this.getPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.Props)\n }\n return this._props || {}\n }\n\n private set props(val: PostHogEventProperties | undefined) {\n this._props = val\n }\n\n private clearProps(): void {\n this.props = undefined\n }\n\n private _props: PostHogEventProperties | undefined\n\n public get optedOut(): boolean {\n return this.getPersistedProperty(PostHogPersistedProperty.OptedOut) ?? this._optoutOverride ?? false\n }\n\n optIn(): void {\n this.setPersistedProperty(PostHogPersistedProperty.OptedOut, false)\n }\n\n optOut(): void {\n this.setPersistedProperty(PostHogPersistedProperty.OptedOut, true)\n }\n\n on(event: string, cb: (...args: any[]) => void): () => void {\n return this._events.on(event, cb)\n }\n\n reset(propertiesToKeep?: PostHogPersistedProperty[]): void {\n const allPropertiesToKeep = [PostHogPersistedProperty.Queue, ...(propertiesToKeep || [])]\n\n // clean up props\n this.clearProps()\n\n for (const key of <(keyof typeof PostHogPersistedProperty)[]>Object.keys(PostHogPersistedProperty)) {\n if (!allPropertiesToKeep.includes(PostHogPersistedProperty[key])) {\n this.setPersistedProperty((PostHogPersistedProperty as any)[key], null)\n }\n }\n }\n\n debug(enabled: boolean = true): void {\n this.removeDebugCallback?.()\n\n if (enabled) {\n this.removeDebugCallback = this.on('*', (event, payload) => console.log('PostHog Debug', event, payload))\n }\n }\n\n private buildPayload(payload: { event: string; properties?: PostHogEventProperties; distinct_id?: string }): any {\n return {\n distinct_id: payload.distinct_id || this.getDistinctId(),\n event: payload.event,\n properties: {\n ...this.props, // Persisted properties first\n ...(payload.properties || {}), // Followed by user specified properties\n ...this.getCommonEventProperties(), // Followed by common PH props\n $session_id: this.getSessionId(),\n },\n }\n }\n\n getSessionId(): string | undefined {\n let sessionId = this.getPersistedProperty<string>(PostHogPersistedProperty.SessionId)\n const sessionTimestamp = this.getPersistedProperty<number>(PostHogPersistedProperty.SessionLastTimestamp) || 0\n if (!sessionId || Date.now() - sessionTimestamp > this._sessionExpirationTimeSeconds * 1000) {\n sessionId = generateUUID(globalThis)\n this.setPersistedProperty(PostHogPersistedProperty.SessionId, sessionId)\n }\n this.setPersistedProperty(PostHogPersistedProperty.SessionLastTimestamp, Date.now())\n\n return sessionId\n }\n\n resetSessionId(): void {\n this.setPersistedProperty(PostHogPersistedProperty.SessionId, null)\n }\n\n getAnonymousId(): string {\n let anonId = this.getPersistedProperty<string>(PostHogPersistedProperty.AnonymousId)\n if (!anonId) {\n anonId = generateUUID(globalThis)\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, anonId)\n }\n return anonId\n }\n\n getDistinctId(): string {\n return this.getPersistedProperty<string>(PostHogPersistedProperty.DistinctId) || this.getAnonymousId()\n }\n\n register(properties: { [key: string]: any }): void {\n this.props = {\n ...this.props,\n ...properties,\n }\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.Props, this.props)\n }\n\n unregister(property: string): void {\n delete this.props[property]\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.Props, this.props)\n }\n\n /***\n *** TRACKING\n ***/\n identify(distinctId?: string, properties?: PostHogEventProperties): this {\n const previousDistinctId = this.getDistinctId()\n distinctId = distinctId || previousDistinctId\n\n if (properties?.$groups) {\n this.groups(properties.$groups)\n }\n\n const payload = {\n ...this.buildPayload({\n distinct_id: distinctId,\n event: '$identify',\n properties: {\n ...(properties || {}),\n $anon_distinct_id: this.getAnonymousId(),\n },\n }),\n $set: properties,\n }\n\n if (distinctId !== previousDistinctId) {\n // We keep the AnonymousId to be used by decide calls and identify to link the previousId\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, previousDistinctId)\n this.setPersistedProperty(PostHogPersistedProperty.DistinctId, distinctId)\n\n if (this.getFeatureFlags()) {\n void this.reloadFeatureFlagsAsync()\n }\n }\n\n this.enqueue('identify', payload)\n return this\n }\n\n capture(event: string, properties?: { [key: string]: any }, forceSendFeatureFlags: boolean = false): this {\n if (properties?.$groups) {\n this.groups(properties.$groups)\n }\n\n if (forceSendFeatureFlags) {\n this._sendFeatureFlags(event, properties)\n } else {\n const payload = this.buildPayload({ event, properties })\n this.enqueue('capture', payload)\n }\n return this\n }\n\n alias(alias: string): this {\n const distinctId = this.getDistinctId()\n\n const payload = this.buildPayload({\n event: '$create_alias',\n properties: {\n distinct_id: distinctId,\n alias,\n },\n })\n\n this.enqueue('alias', payload)\n return this\n }\n\n autocapture(eventType: string, elements: PostHogAutocaptureElement[], properties: PostHogEventProperties = {}): this {\n const payload = this.buildPayload({\n event: '$autocapture',\n properties: {\n ...properties,\n $event_type: eventType,\n $elements: elements,\n },\n })\n\n this.enqueue('autocapture', payload)\n return this\n }\n\n /***\n *** GROUPS\n ***/\n\n groups(groups: { [type: string]: string | number }): this {\n // Get persisted groups\n const existingGroups = this.props.$groups || {}\n\n this.register({\n $groups: {\n ...existingGroups,\n ...groups,\n },\n })\n\n if (Object.keys(groups).find((type) => existingGroups[type] !== groups[type]) && this.getFeatureFlags()) {\n void this.reloadFeatureFlagsAsync()\n }\n\n return this\n }\n\n group(groupType: string, groupKey: string | number, groupProperties?: PostHogEventProperties): this {\n this.groups({\n [groupType]: groupKey,\n })\n\n if (groupProperties) {\n this.groupIdentify(groupType, groupKey, groupProperties)\n }\n\n return this\n }\n\n groupIdentify(groupType: string, groupKey: string | number, groupProperties?: PostHogEventProperties): this {\n const payload = {\n event: '$groupidentify',\n distinctId: `$${groupType}_${groupKey}`,\n properties: {\n $group_type: groupType,\n $group_key: groupKey,\n $group_set: groupProperties || {},\n ...this.getCommonEventProperties(),\n },\n }\n\n this.enqueue('capture', payload)\n return this\n }\n\n /***\n * PROPERTIES\n ***/\n personProperties(properties: { [type: string]: string }): this {\n // Get persisted person properties\n const existingProperties =\n this.getPersistedProperty<Record<string, string>>(PostHogPersistedProperty.PersonProperties) || {}\n\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.PersonProperties, {\n ...existingProperties,\n ...properties,\n })\n\n return this\n }\n\n groupProperties(properties: { [type: string]: Record<string, string> }): this {\n // Get persisted group properties\n const existingProperties =\n this.getPersistedProperty<Record<string, Record<string, string>>>(PostHogPersistedProperty.GroupProperties) || {}\n\n if (Object.keys(existingProperties).length !== 0) {\n Object.keys(existingProperties).forEach((groupType) => {\n existingProperties[groupType] = {\n ...existingProperties[groupType],\n ...properties[groupType],\n }\n delete properties[groupType]\n })\n }\n\n this.setPersistedProperty<PostHogEventProperties>(PostHogPersistedProperty.GroupProperties, {\n ...existingProperties,\n ...properties,\n })\n return this\n }\n\n /***\n *** FEATURE FLAGS\n ***/\n private decideAsync(sendAnonDistinctId: boolean = true): Promise<PostHogDecideResponse> {\n if (this._decideResponsePromise) {\n return this._decideResponsePromise\n }\n return this._decideAsync(sendAnonDistinctId)\n }\n\n private async _decideAsync(sendAnonDistinctId: boolean = true): Promise<PostHogDecideResponse> {\n const url = `${this.host}/decide/?v=2`\n\n const distinctId = this.getDistinctId()\n const groups = this.props.$groups || {}\n const personProperties =\n this.getPersistedProperty<Record<string, string>>(PostHogPersistedProperty.PersonProperties) || {}\n const groupProperties =\n this.getPersistedProperty<Record<string, Record<string, string>>>(PostHogPersistedProperty.GroupProperties) || {}\n\n const fetchOptions: PostHogFetchOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n token: this.apiKey,\n distinct_id: distinctId,\n $anon_distinct_id: sendAnonDistinctId ? this.getAnonymousId() : undefined,\n groups,\n person_properties: personProperties,\n group_properties: groupProperties,\n }),\n }\n\n this._decideResponsePromise = this.fetchWithRetry(url, fetchOptions)\n .then((r) => r.json() as Promise<PostHogDecideResponse>)\n .then((res) => {\n if (res.featureFlags) {\n this.setKnownFeatureFlags(res.featureFlags)\n }\n\n return res\n })\n .finally(() => {\n this._decideResponsePromise = undefined\n })\n return this._decideResponsePromise\n }\n\n private setKnownFeatureFlags(featureFlags: PostHogDecideResponse['featureFlags']): void {\n this.setPersistedProperty<PostHogDecideResponse['featureFlags']>(\n PostHogPersistedProperty.FeatureFlags,\n featureFlags\n )\n this._events.emit('featureflags', featureFlags)\n }\n\n getFeatureFlag(key: string): boolean | string | undefined {\n const featureFlags = this.getFeatureFlags()\n\n if (!featureFlags) {\n // If we haven't loaded flags yet, or errored out, we respond with undefined\n return undefined\n }\n\n let response = featureFlags[key]\n if (response === undefined) {\n // `/decide` returns nothing for flags which are false.\n response = false\n }\n\n if (this.sendFeatureFlagEvent && !this.flagCallReported[key]) {\n this.flagCallReported[key] = true\n this.capture('$feature_flag_called', {\n $feature_flag: key,\n $feature_flag_response: response,\n })\n }\n\n // If we have flags we either return the value (true or string) or false\n return response\n }\n\n getFeatureFlags(): PostHogDecideResponse['featureFlags'] | undefined {\n let flags = this.getPersistedProperty<PostHogDecideResponse['featureFlags']>(PostHogPersistedProperty.FeatureFlags)\n const overriddenFlags = this.getPersistedProperty<PostHogDecideResponse['featureFlags']>(\n PostHogPersistedProperty.OverrideFeatureFlags\n )\n\n if (!overriddenFlags) {\n return flags\n }\n\n flags = flags || {}\n\n for (const key in overriddenFlags) {\n if (!overriddenFlags[key]) {\n delete flags[key]\n } else {\n flags[key] = overriddenFlags[key]\n }\n }\n\n return flags\n }\n\n isFeatureEnabled(key: string): boolean | undefined {\n const response = this.getFeatureFlag(key)\n if (response === undefined) {\n return undefined\n }\n return !!response\n }\n\n async reloadFeatureFlagsAsync(sendAnonDistinctId: boolean = true): Promise<PostHogDecideResponse['featureFlags']> {\n return (await this.decideAsync(sendAnonDistinctId)).featureFlags\n }\n\n onFeatureFlags(cb: (flags: PostHogDecideResponse['featureFlags']) => void): () => void {\n return this.on('featureflags', async () => {\n const flags = this.getFeatureFlags()\n if (flags) {\n cb(flags)\n }\n })\n }\n\n onFeatureFlag(key: string, cb: (value: string | boolean) => void): () => void {\n return this.on('featureflags', async () => {\n const flagResponse = this.getFeatureFlag(key)\n if (flagResponse !== undefined) {\n cb(flagResponse)\n }\n })\n }\n\n overrideFeatureFlag(flags: PostHogDecideResponse['featureFlags'] | null): void {\n if (flags === null) {\n return this.setPersistedProperty(PostHogPersistedProperty.OverrideFeatureFlags, null)\n }\n return this.setPersistedProperty(PostHogPersistedProperty.OverrideFeatureFlags, flags)\n }\n\n _sendFeatureFlags(event: string, properties?: { [key: string]: any }): void {\n this.reloadFeatureFlagsAsync(false).finally(() => {\n // Try to enqueue message irrespective of errors during feature flag fetching\n const payload = this.buildPayload({ event, properties })\n this.enqueue('capture', payload)\n })\n }\n\n /***\n *** QUEUEING AND FLUSHING\n ***/\n private enqueue(type: string, _message: any): void {\n if (this.optedOut) {\n return\n }\n const message = {\n ..._message,\n type: type,\n library: this.getLibraryId(),\n library_version: this.getLibraryVersion(),\n timestamp: _message.timestamp ? _message.timestamp : currentISOTime(),\n }\n\n if (message.distinctId) {\n message.distinct_id = message.distinctId\n delete message.distinctId\n }\n\n const queue = this.getPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue) || []\n\n queue.push({ message })\n this.setPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue, queue)\n\n this._events.emit(type, message)\n\n // Flush queued events if we meet the flushAt length\n if (queue.length >= this.flushAt) {\n this.flush()\n }\n\n if (this.flushInterval && !this._flushTimer) {\n this._flushTimer = safeSetTimeout(() => this.flush(), this.flushInterval)\n }\n }\n\n flushAsync(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.flush((err, data) => {\n return err ? reject(err) : resolve(data)\n })\n })\n }\n\n flush(callback?: (err?: any, data?: any) => void): void {\n if (this.optedOut) {\n return callback?.()\n }\n\n if (this._flushTimer) {\n clearTimeout(this._flushTimer)\n this._flushTimer = null\n }\n\n const queue = this.getPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue) || []\n\n if (!queue.length) {\n return callback?.()\n }\n\n const items = queue.splice(0, this.flushAt)\n this.setPersistedProperty<PostHogQueueItem[]>(PostHogPersistedProperty.Queue, queue)\n\n const messages = items.map((item) => item.message)\n\n const data = {\n api_key: this.apiKey,\n batch: messages,\n sent_at: currentISOTime(),\n }\n\n const done = (err?: any): void => {\n callback?.(err, messages)\n this._events.emit('flush', messages)\n }\n\n // Don't set the user agent if we're not on a browser. The latest spec allows\n // the User-Agent header (see https://fetch.spec.whatwg.org/#terminology-headers\n // and https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader),\n // but browsers such as Chrome and Safari have not caught up.\n const customUserAgent = this.getCustomUserAgent()\n const headers: { [key: string]: string } = {}\n if (customUserAgent) {\n headers['user-agent'] = customUserAgent\n }\n\n const payload = JSON.stringify(data)\n\n const url =\n this.captureMode === 'form'\n ? `${this.host}/e/?ip=1&_=${currentTimestamp()}&v=${this.getLibraryVersion()}`\n : `${this.host}/batch/`\n\n const fetchOptions: PostHogFetchOptions =\n this.captureMode === 'form'\n ? {\n method: 'POST',\n mode: 'no-cors',\n credentials: 'omit',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: `data=${encodeURIComponent(LZString.compressToBase64(payload))}&compression=lz64`,\n }\n : {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: payload,\n }\n\n this.fetchWithRetry(url, fetchOptions)\n .then(() => done())\n .catch((err) => {\n if (err.response) {\n const error = new Error(err.response.statusText)\n return done(error)\n }\n\n done(err)\n })\n }\n\n private async fetchWithRetry(\n url: string,\n options: PostHogFetchOptions,\n retryOptions?: RetriableOptions\n ): Promise<PostHogFetchResponse> {\n ;(AbortSignal as any).timeout ??= function timeout(ms: number) {\n const ctrl = new AbortController()\n setTimeout(() => ctrl.abort(), ms)\n return ctrl.signal\n }\n\n return retriable(\n () =>\n this.fetch(url, {\n signal: (AbortSignal as any).timeout(this.requestTimeout),\n ...options,\n }),\n retryOptions || this._retryOptions\n )\n }\n\n async shutdownAsync(): Promise<void> {\n clearTimeout(this._flushTimer)\n await this.flushAsync()\n }\n\n shutdown(): void {\n void this.shutdownAsync()\n }\n}\n\nexport * from './types'\nexport { LZString }\n","import { PostHogPersistedProperty } from './types'\n\nexport class PostHogMemoryStorage {\n private _memoryStorage: { [key: string]: any | undefined } = {}\n\n getProperty(key: PostHogPersistedProperty): any | undefined {\n return this._memoryStorage[key]\n }\n\n setProperty(key: PostHogPersistedProperty, value: any | null): void {\n this._memoryStorage[key] = value !== null ? value : undefined\n }\n}\n","import axios from 'axios'\nimport { PostHogFetchOptions, PostHogFetchResponse } from 'posthog-core/src'\n\n// NOTE: We use axios as a reliable, well supported request library but follow the Fetch API (roughly)\n// So that alternative implementations can be used if desired\nexport const fetch = async (url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse> => {\n const res = await axios.request({\n url,\n headers: options.headers,\n method: options.method.toLowerCase(),\n data: options.body,\n signal: options.signal,\n })\n\n return {\n status: res.status,\n text: () => res.data,\n json: () => res.data,\n }\n}\n","import { createHash } from 'crypto'\nimport { FeatureFlagCondition, PostHogFeatureFlag } from './types'\nimport { version } from '../package.json'\nimport { PostHogFetchOptions, PostHogFetchResponse } from 'posthog-core/src'\nimport { safeSetTimeout } from 'posthog-core/src/utils'\nimport { fetch } from './fetch'\n\n// eslint-disable-next-line\nconst LONG_SCALE = 0xfffffffffffffff\n\nclass ClientError extends Error {\n constructor(message: string) {\n super()\n Error.captureStackTrace(this, this.constructor)\n this.name = 'ClientError'\n this.message = message\n Object.setPrototypeOf(this, ClientError.prototype)\n }\n}\n\nclass InconclusiveMatchError extends Error {\n constructor(message: string) {\n super(message)\n this.name = this.constructor.name\n Error.captureStackTrace(this, this.constructor)\n // instanceof doesn't work in ES3 or ES5\n // https://www.dannyguo.com/blog/how-to-fix-instanceof-not-working-for-custom-errors-in-typescript/\n // this is the workaround\n Object.setPrototypeOf(this, InconclusiveMatchError.prototype)\n }\n}\n\ntype FeatureFlagsPollerOptions = {\n personalApiKey: string\n projectApiKey: string\n host: string\n pollingInterval: number\n timeout?: number\n fetch?: (url: string, options: PostHogFetchOptions) => Promise<PostHogFetchResponse>\n}\n\nclass FeatureFlagsPoller {\n pollingInterval: number\n personalApiKey: string\n projectApiKey: string\n featureFlags: Array<PostHogFeatureFlag>\n groupTypeMapping: Record<string, string>\n loadedSuccessfullyOnce: boolean\n timeout?: number\n host: FeatureFlagsPollerOptions['host']\n poller?: NodeJS.Timeout\n fetch: (url: string, options: PostHogFetchOptions) => Promise<PostHogFetchResponse>\n\n constructor({\n pollingInterval,\n personalApiKey,\n projectApiKey,\n timeout,\n host,\n ...options\n }: FeatureFlagsPollerOptions) {\n this.pollingInterval = pollingInterval\n this.personalApiKey = personalApiKey\n this.featureFlags = []\n this.groupTypeMapping = {}\n this.loadedSuccessfullyOnce = false\n this.timeout = timeout\n this.projectApiKey = projectApiKey\n this.host = host\n this.poller = undefined\n // NOTE: as any is required here as the AbortSignal typing is slightly misaligned but works just fine\n this.fetch = options.fetch || fetch\n\n void this.loadFeatureFlags()\n }\n\n async getFeatureFlag(\n key: string,\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {}\n ): Promise<string | boolean | undefined> {\n await this.loadFeatureFlags()\n\n let response = undefined\n let featureFlag = undefined\n\n if (!this.loadedSuccessfullyOnce) {\n return response\n }\n\n for (const flag of this.featureFlags) {\n if (key === flag.key) {\n featureFlag = flag\n break\n }\n }\n\n if (featureFlag !== undefined) {\n try {\n response = this.computeFlagLocally(featureFlag, distinctId, groups, personProperties, groupProperties)\n console.debug(`Successfully computed flag locally: ${key} -> ${response}`)\n } catch (e) {\n if (e instanceof InconclusiveMatchError) {\n console.debug(`Can't compute flag locally: ${key}: ${e}`)\n } else if (e instanceof Error) {\n console.error(`Error computing flag locally: ${key}: ${e}`)\n }\n }\n }\n\n return response\n }\n\n async getAllFlags(\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {}\n ): Promise<{ response: Record<string, string | boolean>; fallbackToDecide: boolean }> {\n await this.loadFeatureFlags()\n\n const response: Record<string, string | boolean> = {}\n let fallbackToDecide = this.featureFlags.length == 0\n\n this.featureFlags.map((flag) => {\n try {\n response[flag.key] = this.computeFlagLocally(flag, distinctId, groups, personProperties, groupProperties)\n } catch (e) {\n if (e instanceof InconclusiveMatchError) {\n // do nothing\n } else if (e instanceof Error) {\n console.error(`Error computing flag locally: ${flag.key}: ${e}`)\n }\n fallbackToDecide = true\n }\n })\n\n return { response, fallbackToDecide }\n }\n\n computeFlagLocally(\n flag: PostHogFeatureFlag,\n distinctId: string,\n groups: Record<string, string> = {},\n personProperties: Record<string, string> = {},\n groupProperties: Record<string, Record<string, string>> = {}\n ): string | boolean {\n if (flag.ensure_experience_continuity) {\n throw new InconclusiveMatchError('Flag has experience continuity enabled')\n }\n\n if (!flag.active) {\n return false\n }\n\n const flagFilters = flag.filters || {}\n const aggregation_group_type_index = flagFilters.aggregation_group_type_index\n\n if (aggregation_group_type_index != undefined) {\n const groupName = this.groupTypeMapping[String(aggregation_group_type_index)]\n\n if (!groupName) {\n console.warn(\n `[FEATURE FLAGS] Unknown group type index ${aggregation_group_type_index} for feature flag ${flag.key}`\n )\n throw new InconclusiveMatchError('Flag has unknown group type index')\n }\n\n if (!(groupName in groups)) {\n console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${flag.key} without group names passed in`)\n return false\n }\n\n const focusedGroupProperties = groupProperties[groupName]\n return this.matchFeatureFlagProperties(flag, groups[groupName], focusedGroupProperties)\n } else {\n return this.matchFeatureFlagProperties(flag, distinctId, personProperties)\n }\n }\n\n matchFeatureFlagProperties(\n flag: PostHogFeatureFlag,\n distinctId: string,\n properties: Record<string, string>\n ): string | boolean {\n const flagFilters = flag.filters || {}\n const flagConditions = flagFilters.groups || []\n let isInconclusive = false\n let result = undefined\n\n // # Stable sort conditions with variant overrides to the top. This ensures that if overrides are present, they are\n // # evaluated first, and the variant override is applied to the first matching condition.\n const sortedFlagConditions = [...flagConditions].sort((conditionA, conditionB) => {\n const AHasVariantOverride = !!conditionA.variant\n const BHasVariantOverride = !!conditionB.variant\n\n if (AHasVariantOverride && BHasVariantOverride) {\n return 0\n } else if (AHasVariantOverride) {\n return -1\n } else if (BHasVariantOverride) {\n return 1\n } else {\n return 0\n }\n })\n\n for (const condition of sortedFlagConditions) {\n try {\n if (this.isConditionMatch(flag, distinctId, condition, properties)) {\n const variantOverride = condition.variant\n const flagVariants = flagFilters.multivariate?.variants || []\n if (variantOverride && flagVariants.some((variant) => variant.key === variantOverride)) {\n result = variantOverride\n } else {\n result = this.getMatchingVariant(flag, distinctId) || true\n }\n break\n }\n } catch (e) {\n if (e instanceof InconclusiveMatchError) {\n isInconclusive = true\n } else {\n throw e\n }\n }\n }\n\n if (result !== undefined) {\n return result\n } else if (isInconclusive) {\n throw new InconclusiveMatchError(\"Can't determine if feature flag is enabled or not with given properties\")\n }\n\n // We can only return False when all conditions are False\n return false\n }\n\n isConditionMatch(\n flag: PostHogFeatureFlag,\n distinctId: string,\n condition: FeatureFlagCondition,\n properties: Record<string, string>\n ): boolean {\n const rolloutPercentage = condition.rollout_percentage\n\n if ((condition.properties || []).length > 0) {\n const matchAll = condition.properties.every((property) => {\n return matchProperty(property, properties)\n })\n if (!matchAll) {\n return false\n } else if (rolloutPercentage == undefined) {\n // == to include `null` as a match, not just `undefined`\n return true\n }\n }\n\n if (rolloutPercentage != undefined && _hash(flag.key, distinctId) > rolloutPercentage / 100.0) {\n return false\n }\n\n return true\n }\n\n getMatchingVariant(flag: PostHogFeatureFlag, distinctId: string): string | boolean | undefined {\n const hashValue = _hash(flag.key, distinctId, 'variant')\n const matchingVariant = this.variantLookupTable(flag).find((variant) => {\n return hashValue >= variant.valueMin && hashValue < variant.valueMax\n })\n\n if (matchingVariant) {\n return matchingVariant.key\n }\n return undefined\n }\n\n variantLookupTable(flag: PostHogFeatureFlag): { valueMin: number; valueMax: number; key: string }[] {\n const lookupTable: { valueMin: number; valueMax: number; key: string }[] = []\n let valueMin = 0\n let valueMax = 0\n const flagFilters = flag.filters || {}\n const multivariates: {\n key: string\n rollout_percentage: number\n }[] = flagFilters.multivariate?.variants || []\n\n multivariates.forEach((variant) => {\n valueMax = valueMin + variant.rollout_percentage / 100.0\n lookupTable.push({ valueMin, valueMax, key: variant.key })\n valueMin = valueMax\n })\n return lookupTable\n }\n\n async loadFeatureFlags(forceReload = false): Promise<void> {\n if (!this.loadedSuccessfullyOnce || forceReload) {\n await this._loadFeatureFlags()\n }\n }\n\n async _loadFeatureFlags(): Promise<void> {\n if (this.poller) {\n clearTimeout(this.poller)\n this.poller = undefined\n }\n this.poller = setTimeout(() => this._loadFeatureFlags(), this.pollingInterval)\n\n try {\n const res = await this._requestFeatureFlagDefinitions()\n\n if (res && res.status === 401) {\n throw new ClientError(\n `Your personalApiKey is invalid. Are you sure you're not using your Project API key? More information: https://posthog.com/docs/api/overview`\n )\n }\n const responseJson = await res.json()\n if (!('flags' in responseJson)) {\n console.error(`Invalid response when getting feature flags: ${JSON.stringify(responseJson)}`)\n }\n\n this.featureFlags = responseJson.flags || []\n this.groupTypeMapping = responseJson.group_type_mapping || {}\n this.loadedSuccessfullyOnce = true\n } catch (err) {\n // if an error that is not an instance of ClientError is thrown\n // we silently ignore the error when reloading feature flags\n if (err instanceof ClientError) {\n throw err\n }\n }\n }\n\n async _requestFeatureFlagDefinitions(): Promise<PostHogFetchResponse> {\n const url = `${this.host}/api/feature_flag/local_evaluation?token=${this.projectApiKey}`\n\n const options: PostHogFetchOptions = {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.personalApiKey}`,\n 'user-agent': `posthog-node/${version}`,\n },\n }\n\n let abortTimeout = null\n\n if (this.timeout && typeof this.timeout === 'number') {\n const controller = new AbortController()\n abortTimeout = safeSetTimeout(() => {\n controller.abort()\n }, this.timeout)\n options.signal = controller.signal\n }\n\n try {\n return await this.fetch(url, options)\n } catch (err) {\n throw new Error(`Request failed with error: ${err}`)\n } finally {\n clearTimeout(abortTimeout)\n }\n }\n\n stopPoller(): void {\n clearTimeout(this.poller)\n }\n}\n\n// # This function takes a distinct_id and a feature flag key and returns a float between 0 and 1.\n// # Given the same distinct_id and key, it'll always return the same float. These floats are\n// # uniformly distributed between 0 and 1, so if we want to show this feature to 20% of traffic\n// # we can do _hash(key, distinct_id) < 0.2\nfunction _hash(key: string, distinctId: string, salt: string = ''): number {\n const sha1Hash = createHash('sha1')\n sha1Hash.update(`${key}.${distinctId}${salt}`)\n return parseInt(sha1Hash.digest('hex').slice(0, 15), 16) / LONG_SCALE\n}\n\nfunction matchProperty(\n property: FeatureFlagCondition['properties'][number],\n propertyValues: Record<string, any>\n): boolean {\n const key = property.key\n const value = property.value\n const operator = property.operator || 'exact'\n\n if (!(key in propertyValues)) {\n throw new InconclusiveMatchError(`Property ${key} not found in propertyValues`)\n } else if (operator === 'is_not_set') {\n throw new InconclusiveMatchError(`Operator is_not_set is not supported`)\n }\n\n const overrideValue = propertyValues[key]\n\n switch (operator) {\n case 'exact':\n return Array.isArray(value) ? value.indexOf(overrideValue) !== -1 : value === overrideValue\n case 'is_not':\n return Array.isArray(value) ? value.indexOf(overrideValue) === -1 : value !== overrideValue\n case 'is_set':\n return key in propertyValues\n case 'icontains':\n return String(overrideValue).toLowerCase().includes(String(value).toLowerCase())\n case 'not_icontains':\n return !String(overrideValue).toLowerCase().includes(String(value).toLowerCase())\n case 'regex':\n return isValidRegex(String(value)) && String(overrideValue).match(String(value)) !== null\n case 'not_regex':\n return isValidRegex(String(value)) && String(overrideValue).match(String(value)) === null\n case 'gt':\n return typeof overrideValue == typeof value && overrideValue > value\n case 'gte':\n return typeof overrideValue == typeof value && overrideValue >= value\n case 'lt':\n return typeof overrideValue == typeof value && overrideValue < value\n case 'lte':\n return typeof overrideValue == typeof value && overrideValue <= value\n case 'is_date_after':\n case 'is_date_before':\n const parsedDate = convertToDateTime(value)\n const overrideDate = convertToDateTime(overrideValue)\n if (operator === 'is_date_before') {\n return overrideDate < parsedDate\n }\n return overrideDate > parsedDate\n default:\n console.error(`Unknown operator: ${operator}`)\n return false\n }\n}\n\nfunction isValidRegex(regex: string): boolean {\n try {\n new RegExp(regex)\n return true\n } catch (err) {\n return false\n }\n}\n\nfunction convertToDateTime(value: string | number | (string | number)[] | Date): Date {\n if (value instanceof Date) {\n return value\n } else if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value)\n if (!isNaN(date.valueOf())) {\n return date\n }\n throw new InconclusiveMatchError(`${value} is in an invalid date format`)\n } else {\n throw new InconclusiveMatchError(`The date provided ${value} must be a string, number, or date object`)\n }\n}\n\nexport { FeatureFlagsPoller, matchProperty, InconclusiveMatchError, ClientError }\n","import { version } from '../package.json'\n\nimport {\n PostHogCore,\n PosthogCoreOptions,\n PostHogFetchOptions,\n PostHogFetchResponse,\n PostHogPersistedProperty,\n} from '../../posthog-core/src'\nimport { PostHogMemoryStorage } from '../../posthog-core/src/storage-memory'\nimport { EventMessageV1, GroupIdentifyMessage, IdentifyMessageV1, PostHogNodeV1 } from './types'\nimport { FeatureFlagsPoller } from './feature-flags'\nimport { fetch } from './fetch'\n\nexport type PostHogOptions = PosthogCoreOptions & {\n persistence?: 'memory'\n personalApiKey?: string\n // The interval in milliseconds between polls for refreshing feature flag definitions\n featureFlagsPollingInterval?: number\n // Timeout in milliseconds for any calls. Defaults to 10 seconds.\n requestTimeout?: number\n // Maximum size of cache that deduplicates $feature_flag_called calls per user.\n maxCacheSize?: number\n fetch?: (url: string, options: PostHogFetchOptions) => Promise<PostHogFetchResponse>\n}\n\nconst THIRTY_SECONDS = 30 * 1000\nconst MAX_CACHE_SIZE = 50 * 1000\n\nclass PostHogClient extends PostHogCore {\n private _memoryStorage = new PostHogMemoryStorage()\n\n constructor(apiKey: string, private options: PostHogOptions = {}) {\n options.captureMode = options?.captureMode || 'json'\n options.preloadFeatureFlags = false // Don't preload as this makes no sense without a distinctId\n options.sendFeatureFlagEvent = false // Let `posthog-node` handle this on its own, since we're dealing with multiple distinctIDs\n\n super(apiKey, options)\n }\n\n getPersistedProperty(key: PostHogPersistedProperty): any | undefined {\n return this._memoryStorage.getProperty(key)\n }\n\n setPersistedProperty(key: PostHogPersistedProperty, value: any | null): void {\n return this._memoryStorage.setProperty(key, value)\n }\n\n getSessionId(): string | undefined {\n // Sessions don't make sense for Node\n return undefined\n }\n\n fetch(url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse> {\n return this.options.fetch ? this.options.fetch(url, options) : fetch(url, options)\n }\n\n getLibraryId(): string {\n return 'posthog-node'\n }\n getLibraryVersion(): string {\n return version\n }\n getCustomUserAgent(): string {\n return `posthog-node/${version}`\n }\n}\n\n// The actual exported Nodejs API.\nexport class PostHog implements PostHogNodeV1 {\n private _sharedClient: PostHogClient\n private featureFlagsPoller?: FeatureFlagsPoller\n private maxCacheSize: number\n\n distinctIdHasSentFlagCalls: Record<string, string[]>\n\n constructor(apiKey: string, options: PostHogOptions = {}) {\n this._sharedClient = new PostHogClient(apiKey, options)\n if (options.personalApiKey) {\n this.featureFlagsPoller = new FeatureFlagsPoller({\n pollingInterval:\n typeof options.featureFlagsPollingInterval === 'number'\n ? options.featureFlagsPollingInterval\n : THIRTY_SECONDS,\n personalApiKey: options.personalApiKey,\n projectApiKey: apiKey,\n timeout: options.requestTimeout ?? 10000, // 10 seconds\n host: this._sharedClient.host,\n fetch: options.fetch,\n })\n }\n this.distinctIdHasSentFlagCalls = {}\n this.maxCacheSize = options.maxCacheSize || MAX_CACHE_SIZE\n }\n\n private reInit(distinctId: string): void {\n // Certain properties we want to persist. Queue is persisted always by default.\n this._sharedClient.reset([PostHogPersistedProperty.OptedOut])\n this._sharedClient.setPersistedProperty(PostHogPersistedProperty.DistinctId, distinctId)\n }\n\n enable(): void {\n return this._sharedClient.optIn()\n }\n\n disable(): void {\n return this._sharedClient.optOut()\n }\n\n capture({ distinctId, event, properties, groups, sendFeatureFlags }: EventMessageV1): void {\n this.reInit(distinctId)\n if (groups) {\n this._sharedClient.groups(groups)\n }\n this._sharedClient.capture(event, properties, sendFeatureFlags || false)\n }\n\n identify({ distinctId, properties }: IdentifyMessageV1): void {\n this.reInit(distinctId)\n this._sharedClient.identify(distinctId, properties)\n }\n\n alias(data: { distinctId: string; alias: string }): void {\n this.reInit(data.distinctId)\n this._sharedClient.alias(data.alias)\n }\n\n async getFeatureFlag(\n key: string,\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n sendFeatureFlagEvents?: boolean\n }\n ): Promise<string | boolean | undefined> {\n const { groups, personProperties, groupProperties } = options || {}\n let { onlyEvaluateLocally, sendFeatureFlagEvents } = options || {}\n\n // set defaults\n if (onlyEvaluateLocally == undefined) {\n onlyEvaluateLocally = false\n }\n if (sendFeatureFlagEvents == undefined) {\n sendFeatureFlagEvents = true\n }\n\n let response = await this.featureFlagsPoller?.getFeatureFlag(\n key,\n distinctId,\n groups,\n personProperties,\n groupProperties\n )\n\n const flagWasLocallyEvaluated = response !== undefined\n\n if (!flagWasLocallyEvaluated && !onlyEvaluateLocally) {\n this.reInit(distinctId)\n if (groups != undefined) {\n this._sharedClient.groups(groups)\n }\n\n if (personProperties) {\n this._sharedClient.personProperties(personProperties)\n }\n\n if (groupProperties) {\n this._sharedClient.groupProperties(groupProperties)\n }\n await this._sharedClient.reloadFeatureFlagsAsync(false)\n response = this._sharedClient.getFeatureFlag(key)\n }\n\n const featureFlagReportedKey = `${key}_${response}`\n\n if (\n sendFeatureFlagEvents &&\n (!(distinctId in this.distinctIdHasSentFlagCalls) ||\n !this.distinctIdHasSentFlagCalls[distinctId].includes(featureFlagReportedKey))\n ) {\n if (Object.keys(this.distinctIdHasSentFlagCalls).length >= this.maxCacheSize) {\n this.distinctIdHasSentFlagCalls = {}\n }\n if (Array.isArray(this.distinctIdHasSentFlagCalls[distinctId])) {\n this.distinctIdHasSentFlagCalls[distinctId].push(featureFlagReportedKey)\n } else {\n this.distinctIdHasSentFlagCalls[distinctId] = [featureFlagReportedKey]\n }\n this.capture({\n distinctId,\n event: '$feature_flag_called',\n properties: {\n $feature_flag: key,\n $feature_flag_response: response,\n locally_evaluated: flagWasLocallyEvaluated,\n },\n groups,\n })\n }\n return response\n }\n\n async isFeatureEnabled(\n key: string,\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n sendFeatureFlagEvents?: boolean\n }\n ): Promise<boolean | undefined> {\n const feat = await this.getFeatureFlag(key, distinctId, options)\n if (feat === undefined) {\n return undefined\n }\n return !!feat || false\n }\n\n async getAllFlags(\n distinctId: string,\n options?: {\n groups?: Record<string, string>\n personProperties?: Record<string, string>\n groupProperties?: Record<string, Record<string, string>>\n onlyEvaluateLocally?: boolean\n }\n ): Promise<Record<string, string | boolean>> {\n const { groups, personProperties, groupProperties } = options || {}\n let { onlyEvaluateLocally } = options || {}\n\n // set defaults\n if (onlyEvaluateLocally == undefined) {\n onlyEvaluateLocally = false\n }\n\n const localEvaluationResult = await this.featureFlagsPoller?.getAllFlags(\n distinctId,\n groups,\n personProperties,\n groupProperties\n )\n\n let response = {}\n let fallbackToDecide = true\n if (localEvaluationResult) {\n response = localEvaluationResult.response\n fallbackToDecide = localEvaluationResult.fallbackToDecide\n }\n\n if (fallbackToDecide && !onlyEvaluateLocally) {\n this.reInit(distinctId)\n if (groups) {\n this._sharedClient.groups(groups)\n }\n\n if (personProperties) {\n this._sharedClient.personProperties(personProperties)\n }\n\n if (groupProperties) {\n this._sharedClient.groupProperties(groupProperties)\n }\n await this._sharedClient.reloadFeatureFlagsAsync(false)\n const remoteEvaluationResult = this._sharedClient.getFeatureFlags()\n\n return { ...response, ...remoteEvaluationResult }\n }\n\n return response\n }\n\n groupIdentify({ groupType, groupKey, properties }: GroupIdentifyMessage): void {\n this._sharedClient.groupIdentify(groupType, groupKey, properties)\n }\n\n async reloadFeatureFlags(): Promise<void> {\n await this.featureFlagsPoller?.loadFeatureFlags(true)\n }\n\n flush(): void {\n this._sharedClient.flush()\n }\n\n shutdown(): void {\n void this.shutdownAsync()\n }\n\n async shutdownAsync(): Promise<void> {\n this.featureFlagsPoller?.stopPoller()\n return this._sharedClient.shutdownAsync()\n }\n\n debug(enabled?: boolean): void {\n return this._sharedClient.debug(enabled)\n }\n}\n"],"names":["fetch","url","options","__awaiter","axios","request","headers","method","toLowerCase","data","body","signal","res","_a","sent","status","text","json","LONG_SCALE","ClientError","_super","__extends","message","_this","Error","captureStackTrace","constructor","name","Object","setPrototypeOf","prototype","InconclusiveMatchError","call","FeatureFlagsPoller","pollingInterval","personalApiKey","projectApiKey","timeout","host","__rest","featureFlags","groupTypeMapping","loadedSuccessfullyOnce","poller","undefined","loadFeatureFlags","getFeatureFlag","key","distinctId","groups","personProperties","groupProperties","_b","response","featureFlag","_i","length","flag","computeFlagLocally","console","debug","concat","e","error","getAllFlags","fallbackToDecide","map","ensure_experience_continuity","active","flagFilters","filters","aggregation_group_type_index","groupName","String","warn","focusedGroupProperties","matchFeatureFlagProperties","properties","flagConditions","isInconclusive","result","sortedFlagConditions","__spreadArray","sort","conditionA","conditionB","AHasVariantOverride","variant","BHasVariantOverride","condition","this_1","isConditionMatch","variantOverride_1","flagVariants","multivariate","variants","some","getMatchingVariant","sortedFlagConditions_1","rolloutPercentage","rollout_percentage","matchAll","every","property","matchProperty","_hash","hashValue","matchingVariant","variantLookupTable","find","valueMin","valueMax","lookupTable","multivariates","forEach","push","forceReload","_loadFeatureFlags","clearTimeout","setTimeout","_requestFeatureFlagDefinitions","responseJson","JSON","stringify","flags","group_type_mapping","err_1","Authorization","version","abortTimeout","controller_1","AbortController","safeSetTimeout","abort","err_2","stopPoller","salt","sha1Hash","createHash","update","parseInt","digest","slice","propertyValues","value","operator","overrideValue","Array","isArray","indexOf","includes","isValidRegex","match","parsedDate","convertToDateTime","overrideDate","regex","RegExp","err","Date","date","isNaN","valueOf","THIRTY_SECONDS","MAX_CACHE_SIZE","PostHogClient","apiKey","captureMode","preloadFeatureFlags","sendFeatureFlagEvent","_memoryStorage","PostHogMemoryStorage","getPersistedProperty","getProperty","setPersistedProperty","setProperty","getSessionId","getLibraryId","getLibraryVersion","getCustomUserAgent","PostHogCore","PostHog","_sharedClient","featureFlagsPoller","featureFlagsPollingInterval","requestTimeout","distinctIdHasSentFlagCalls","maxCacheSize","reInit","reset","PostHogPersistedProperty","OptedOut","DistinctId","enable","optIn","disable","optOut","capture","event","sendFeatureFlags","identify","alias","_c","onlyEvaluateLocally","sendFeatureFlagEvents","_d","flagWasLocallyEvaluated","reloadFeatureFlagsAsync","featureFlagReportedKey","keys","$feature_flag","$feature_flag_response","locally_evaluated","isFeatureEnabled","feat","localEvaluationResult","remoteEvaluationResult","getFeatureFlags","__assign","groupIdentify","groupType","groupKey","reloadFeatureFlags","flush","shutdown","shutdownAsync","enabled"],"mappings":";;;;;;;;;;;AAAA;;;;;;;;;;;;;AAagF;AAChF;AAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC,EAAA;IAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;SAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5E,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtG,IAAA,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEc,SAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAA;AAC1B,IAAA,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;AACrC,QAAA,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;AAC9F,IAAA,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;AACvC,IAAA,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACzF,CAAC;AAEM,IAAI,QAAQ,GAAG,YAAA;IAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAA;AAC3C,QAAA,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,YAAA,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACjB,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,SAAA;AACD,QAAA,OAAO,CAAC,CAAC;AACb,KAAC,CAAA;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC,CAAA;AAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;IACvB,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,KAAK,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,gBAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,SAAA;AACL,IAAA,OAAO,CAAC,CAAC;AACb,CAAC;AAiBK,SAAU,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAA;AACvD,IAAA,SAAS,KAAK,CAAC,KAAK,EAAA,EAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAA,EAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAC5G,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAA;AACrD,QAAA,SAAS,SAAS,CAAC,KAAK,EAAA,EAAI,IAAI;YAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAAE,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAAE,SAAA,EAAE;AAC3F,QAAA,SAAS,QAAQ,CAAC,KAAK,EAAA,EAAI,IAAI;YAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAAE,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAAE,SAAA,EAAE;AAC9F,QAAA,SAAS,IAAI,CAAC,MAAM,EAAA,EAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;AAC9G,QAAA,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1E,KAAC,CAAC,CAAC;AACP,CAAC;AAEe,SAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAA;AACrC,IAAA,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAA,EAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAAE,YAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAA,EAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACzJ,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,OAAO,UAAU,CAAC,EAAI,EAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;IAClE,SAAS,IAAI,CAAC,EAAE,EAAA;AACZ,QAAA,IAAI,CAAC;AAAE,YAAA,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;AAC9D,QAAA,OAAO,CAAC;YAAE,IAAI;AACV,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;AAAE,oBAAA,OAAO,CAAC,CAAC;AAC7J,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAAE,oBAAA,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AACxC,gBAAA,QAAQ,EAAE,CAAC,CAAC,CAAC;AACT,oBAAA,KAAK,CAAC,CAAC;AAAC,oBAAA,KAAK,CAAC;wBAAE,CAAC,GAAG,EAAE,CAAC;wBAAC,MAAM;AAC9B,oBAAA,KAAK,CAAC;wBAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AAAC,wBAAA,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACxD,oBAAA,KAAK,CAAC;wBAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AAAC,wBAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAAC,wBAAA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;wBAAC,SAAS;AACjD,oBAAA,KAAK,CAAC;AAAE,wBAAA,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAAC,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;wBAAC,SAAS;AACjD,oBAAA;AACI,wBAAA,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;4BAAE,CAAC,GAAG,CAAC,CAAC;4BAAC,SAAS;AAAE,yBAAA;AAC5G,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,MAAM;AAAE,yBAAA;AACtF,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;AAAE,yBAAA;wBACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAAC,4BAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BAAC,MAAM;AAAE,yBAAA;wBACnE,IAAI,CAAC,CAAC,CAAC,CAAC;AAAE,4BAAA,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACtB,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;wBAAC,SAAS;AAC9B,iBAAA;gBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC9B,aAAA;AAAC,YAAA,OAAO,CAAC,EAAE;AAAE,gBAAA,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,CAAC,CAAC;AAAE,aAAA;AAAS,oBAAA;AAAE,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAAE,aAAA;AAC1D,QAAA,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAAE,YAAA,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KACpF;AACL,CAAC;SA+De,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAA;AACxC,IAAA,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AACpB,gBAAA,IAAI,CAAC,EAAE;AAAE,oBAAA,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,aAAA;AACJ,SAAA;AACD,IAAA,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D;;;;ACjJA,IAAY,wBAYX,CAAA;AAZD,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAC5B,IAAA,wBAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC1B,IAAA,wBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,wBAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAC9B,IAAA,wBAAA,CAAA,sBAAA,CAAA,GAAA,wBAA+C,CAAA;AAC/C,IAAA,wBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,wBAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AACxB,IAAA,wBAAA,CAAA,sBAAA,CAAA,GAAA,mBAA0C,CAAA;AAC1C,IAAA,wBAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC,CAAA;AACtC,IAAA,wBAAA,CAAA,iBAAA,CAAA,GAAA,kBAAoC,CAAA;AACtC,CAAC,EAZW,wBAAwB,KAAxB,wBAAwB,GAYnC,EAAA,CAAA,CAAA;;AC3Ce,SAAA,MAAM,CAAC,WAAgB,EAAE,OAAe,EAAA;IACtD,IAAI,CAAC,WAAW,EAAE;AAChB,QAAA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;AACzB,KAAA;AACH,CAAC;AAEK,SAAU,mBAAmB,CAAC,GAAW,EAAA;AAC7C,IAAA,OAAO,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACjC,CAAC;AAQqB,SAAA,SAAS,CAAI,EAAoB,EAAE,KAA4B,EAAA;AAA5B,IAAA,IAAA,KAAA,KAAA,KAAA,CAAA,EAAA,EAAA,KAA4B,GAAA,EAAA,CAAA,EAAA;;;;;;AAC3E,oBAAA,EAAA,GAA+D,KAAK,CAAA,UAAtD,EAAd,UAAU,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,CAAC,GAAA,EAAA,EAAE,EAA+C,GAAA,KAAK,CAAnC,UAAA,EAAjB,UAAU,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,IAAI,GAAA,EAAA,EAAE,EAAA,GAA4B,KAAK,CAAA,UAAV,EAAvB,UAAU,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,YAAA,EAAM,OAAA,IAAI,CAAJ,EAAI,KAAA,CAAU;oBACxE,SAAS,GAAG,IAAI,CAAA;AAEX,oBAAA,CAAC,GAAG,CAAC,CAAA;;;AAAE,oBAAA,IAAA,EAAA,CAAC,GAAG,UAAU,GAAG,CAAC,CAAA,EAAA,OAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;;;;oBAElB,OAAM,CAAA,CAAA,YAAA,EAAE,EAAE,CAAA,CAAA;;AAAhB,oBAAA,GAAG,GAAG,EAAU,CAAA,IAAA,EAAA,CAAA;AACtB,oBAAA,OAAA,CAAA,CAAA,aAAO,GAAG,CAAA,CAAA;;;oBAEV,SAAS,GAAG,GAAC,CAAA;AACb,oBAAA,IAAI,CAAC,UAAU,CAAC,GAAC,CAAC,EAAE;AAClB,wBAAA,MAAM,GAAC,CAAA;AACR,qBAAA;;AAGH,gBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAzB,EAAyB,CAAC,CAAA,CAAA;;AAAnD,oBAAA,EAAA,CAAA,IAAA,EAAmD,CAAA;;;AAXjB,oBAAA,CAAC,EAAE,CAAA;;AAcvC,gBAAA,KAAA,CAAA,EAAA,MAAM,SAAS,CAAA;;;;AAChB,CAAA;AAED;AACM,SAAU,YAAY,CAAC,UAAgB,EAAA;;IAE3C,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;AAC5B,IAAA,IAAI,EAAE,GACJ,CAAC,UAAU,IAAI,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,CAAA;AAClH,IAAA,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAA;QACxE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,GAAG,CAAC,EAAE;;YAET,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACpB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;AACvB,SAAA;AAAM,aAAA;;YAEL,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACrB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;AACzB,SAAA;QACD,OAAO,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;AACvD,KAAC,CAAC,CAAA;AACJ,CAAC;SAEe,gBAAgB,GAAA;AAC9B,IAAA,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;AAC7B,CAAC;SAEe,cAAc,GAAA;AAC5B,IAAA,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;AACjC,CAAC;AAEe,SAAA,cAAc,CAAC,EAAc,EAAE,OAAe,EAAA;;;IAG5D,IAAM,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAQ,CAAA;;AAExC,IAAA,CAAA,CAAC,KAAD,IAAA,IAAA,CAAC,KAAD,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAC,CAAE,KAAK,MAAI,CAAC,KAAA,IAAA,IAAD,CAAC,KAAD,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAC,CAAE,KAAK,EAAE,CAAA,CAAA;AACtB,IAAA,OAAO,CAAC,CAAA;AACV;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,IAAM,CAAC,GAAG,MAAM,CAAC,YAAY,CAAA;AAC7B,IAAM,YAAY,GAAG,mEAAmE,CAAA;AACxF,IAAM,cAAc,GAAQ,EAAE,CAAA;AAE9B,SAAS,YAAY,CAAC,QAAa,EAAE,SAAc,EAAA;AACjD,IAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AAC7B,QAAA,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;AAC7B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,cAAc,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACjD,SAAA;AACF,KAAA;AACD,IAAA,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAA;AAC5C,CAAC;AAEM,IAAM,QAAQ,GAAG;IACtB,gBAAgB,EAAE,UAAU,KAAU,EAAA;QACpC,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;QACD,IAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,CAAM,EAAA;AACvD,YAAA,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC/B,SAAC,CAAC,CAAA;AACF,QAAA,QACE,GAAG,CAAC,MAAM,GAAG,CAAC;AACd;AACA,YAAA,QAAQ;AACR,YAAA,KAAK,CAAC;AACJ,gBAAA,OAAO,GAAG,CAAA;AACZ,YAAA,KAAK,CAAC;gBACJ,OAAO,GAAG,GAAG,KAAK,CAAA;AACpB,YAAA,KAAK,CAAC;gBACJ,OAAO,GAAG,GAAG,IAAI,CAAA;AACnB,YAAA,KAAK,CAAC;gBACJ,OAAO,GAAG,GAAG,GAAG,CAAA;AACnB,SAAA;KACF;IAED,oBAAoB,EAAE,UAAU,KAAU,EAAA;QACxC,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;QACD,IAAI,KAAK,IAAI,EAAE,EAAE;AACf,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QACD,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,UAAU,KAAU,EAAA;YAChE,OAAO,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AACxD,SAAC,CAAC,CAAA;KACH;IAED,QAAQ,EAAE,UAAU,YAAiB,EAAA;QACnC,OAAO,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,EAAE,UAAU,CAAM,EAAA;AAC1D,YAAA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACb,SAAC,CAAC,CAAA;KACH;AACD,IAAA,SAAS,EAAE,UAAU,YAAiB,EAAE,WAAgB,EAAE,cAAmB,EAAA;QAC3E,IAAI,YAAY,IAAI,IAAI,EAAE;AACxB,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;QACD,IAAM,kBAAkB,GAAQ,EAAE,EAChC,0BAA0B,GAAQ,EAAE,EACpC,YAAY,GAAG,EAAE,CAAA;QAEnB,IAAI,CAAC,EACH,KAAK,EACL,SAAS,GAAG,EAAE,EACd,UAAU,GAAG,EAAE,EACf,SAAS,GAAG,EAAE,EACd,iBAAiB,GAAG,CAAC;AACrB,QAAA,gBAAgB,GAAG,CAAC,EACpB,eAAe,GAAG,CAAC,EACnB,gBAAgB,GAAG,CAAC,EACpB,qBAAqB,GAAG,CAAC,EACzB,EAAE,CAAA;AAEJ,QAAA,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;AAC9C,YAAA,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACnC,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE;AACxE,gBAAA,kBAAkB,CAAC,SAAS,CAAC,GAAG,gBAAgB,EAAE,CAAA;AAClD,gBAAA,0BAA0B,CAAC,SAAS,CAAC,GAAG,IAAI,CAAA;AAC7C,aAAA;AAED,YAAA,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA;AAClC,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,EAAE;gBACxE,SAAS,GAAG,UAAU,CAAA;AACvB,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,0BAA0B,EAAE,SAAS,CAAC,EAAE;oBAC/E,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;wBACjC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AACpC,4BAAA,gBAAgB,GAAG,gBAAgB,IAAI,CAAC,CAAA;AACxC,4BAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;gCAC5C,qBAAqB,GAAG,CAAC,CAAA;gCACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;gCACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,6BAAA;AAAM,iCAAA;AACL,gCAAA,qBAAqB,EAAE,CAAA;AACxB,6BAAA;AACF,yBAAA;AACD,wBAAA,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;wBAC/B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACtB,4BAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,4BAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;gCAC5C,qBAAqB,GAAG,CAAC,CAAA;gCACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;gCACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,6BAAA;AAAM,iCAAA;AACL,gCAAA,qBAAqB,EAAE,CAAA;AACxB,6BAAA;AACD,4BAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,yBAAA;AACF,qBAAA;AAAM,yBAAA;wBACL,KAAK,GAAG,CAAC,CAAA;wBACT,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;4BACpC,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,KAAK,CAAA;AAClD,4BAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;gCAC5C,qBAAqB,GAAG,CAAC,CAAA;gCACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;gCACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,6BAAA;AAAM,iCAAA;AACL,gCAAA,qBAAqB,EAAE,CAAA;AACxB,6BAAA;4BACD,KAAK,GAAG,CAAC,CAAA;AACV,yBAAA;AACD,wBAAA,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;wBAC/B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACvB,4BAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,4BAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;gCAC5C,qBAAqB,GAAG,CAAC,CAAA;gCACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;gCACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,6BAAA;AAAM,iCAAA;AACL,gCAAA,qBAAqB,EAAE,CAAA;AACxB,6BAAA;AACD,4BAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,yBAAA;AACF,qBAAA;AACD,oBAAA,iBAAiB,EAAE,CAAA;oBACnB,IAAI,iBAAiB,IAAI,CAAC,EAAE;wBAC1B,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;AAChD,wBAAA,eAAe,EAAE,CAAA;AAClB,qBAAA;AACD,oBAAA,OAAO,0BAA0B,CAAC,SAAS,CAAC,CAAA;AAC7C,iBAAA;AAAM,qBAAA;AACL,oBAAA,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;oBACrC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AACpC,wBAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,wBAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;4BAC5C,qBAAqB,GAAG,CAAC,CAAA;4BACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;4BACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,yBAAA;AAAM,6BAAA;AACL,4BAAA,qBAAqB,EAAE,CAAA;AACxB,yBAAA;AACD,wBAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,qBAAA;AACF,iBAAA;AACD,gBAAA,iBAAiB,EAAE,CAAA;gBACnB,IAAI,iBAAiB,IAAI,CAAC,EAAE;oBAC1B,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;AAChD,oBAAA,eAAe,EAAE,CAAA;AAClB,iBAAA;;AAED,gBAAA,kBAAkB,CAAC,UAAU,CAAC,GAAG,gBAAgB,EAAE,CAAA;AACnD,gBAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;AAC9B,aAAA;AACF,SAAA;;QAGD,IAAI,SAAS,KAAK,EAAE,EAAE;AACpB,YAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,0BAA0B,EAAE,SAAS,CAAC,EAAE;gBAC/E,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;oBACjC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AACpC,wBAAA,gBAAgB,GAAG,gBAAgB,IAAI,CAAC,CAAA;AACxC,wBAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;4BAC5C,qBAAqB,GAAG,CAAC,CAAA;4BACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;4BACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,yBAAA;AAAM,6BAAA;AACL,4BAAA,qBAAqB,EAAE,CAAA;AACxB,yBAAA;AACF,qBAAA;AACD,oBAAA,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;oBAC/B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACtB,wBAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,wBAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;4BAC5C,qBAAqB,GAAG,CAAC,CAAA;4BACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;4BACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,yBAAA;AAAM,6BAAA;AACL,4BAAA,qBAAqB,EAAE,CAAA;AACxB,yBAAA;AACD,wBAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,qBAAA;AACF,iBAAA;AAAM,qBAAA;oBACL,KAAK,GAAG,CAAC,CAAA;oBACT,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;wBACpC,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,KAAK,CAAA;AAClD,wBAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;4BAC5C,qBAAqB,GAAG,CAAC,CAAA;4BACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;4BACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,yBAAA;AAAM,6BAAA;AACL,4BAAA,qBAAqB,EAAE,CAAA;AACxB,yBAAA;wBACD,KAAK,GAAG,CAAC,CAAA;AACV,qBAAA;AACD,oBAAA,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;oBAC/B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACvB,wBAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,wBAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;4BAC5C,qBAAqB,GAAG,CAAC,CAAA;4BACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;4BACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,yBAAA;AAAM,6BAAA;AACL,4BAAA,qBAAqB,EAAE,CAAA;AACxB,yBAAA;AACD,wBAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,qBAAA;AACF,iBAAA;AACD,gBAAA,iBAAiB,EAAE,CAAA;gBACnB,IAAI,iBAAiB,IAAI,CAAC,EAAE;oBAC1B,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;AAChD,oBAAA,eAAe,EAAE,CAAA;AAClB,iBAAA;AACD,gBAAA,OAAO,0BAA0B,CAAC,SAAS,CAAC,CAAA;AAC7C,aAAA;AAAM,iBAAA;AACL,gBAAA,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;gBACrC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AACpC,oBAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,oBAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;wBAC5C,qBAAqB,GAAG,CAAC,CAAA;wBACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;wBACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,qBAAA;AAAM,yBAAA;AACL,wBAAA,qBAAqB,EAAE,CAAA;AACxB,qBAAA;AACD,oBAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,iBAAA;AACF,aAAA;AACD,YAAA,iBAAiB,EAAE,CAAA;YACnB,IAAI,iBAAiB,IAAI,CAAC,EAAE;gBAC1B,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;AAChD,gBAAA,eAAe,EAAE,CAAA;AAClB,aAAA;AACF,SAAA;;QAGD,KAAK,GAAG,CAAC,CAAA;QACT,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;AACpC,YAAA,gBAAgB,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAA;AACxD,YAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;gBAC5C,qBAAqB,GAAG,CAAC,CAAA;gBACzB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;gBACnD,gBAAgB,GAAG,CAAC,CAAA;AACrB,aAAA;AAAM,iBAAA;AACL,gBAAA,qBAAqB,EAAE,CAAA;AACxB,aAAA;AACD,YAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAA;AACnB,SAAA;;AAGD,QAAA,OAAO,IAAI,EAAE;AACX,YAAA,gBAAgB,GAAG,gBAAgB,IAAI,CAAC,CAAA;AACxC,YAAA,IAAI,qBAAqB,IAAI,WAAW,GAAG,CAAC,EAAE;gBAC5C,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAA;gBACnD,MAAK;AACN,aAAA;AAAM,iBAAA;AACL,gBAAA,qBAAqB,EAAE,CAAA;AACxB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;KAC7B;IAED,UAAU,EAAE,UAAU,UAAe,EAAA;QACnC,IAAI,UAAU,IAAI,IAAI,EAAE;AACtB,YAAA,OAAO,EAAE,CAAA;AACV,SAAA;QACD,IAAI,UAAU,IAAI,EAAE,EAAE;AACpB,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QACD,OAAO,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,KAAU,EAAA;AACxE,YAAA,OAAO,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AACrC,SAAC,CAAC,CAAA;KACH;AAED,IAAA,WAAW,EAAE,UAAU,MAAW,EAAE,UAAe,EAAE,YAAiB,EAAA;QACpE,IAAM,UAAU,GAAG,EAAE,EACnB,MAAM,GAAG,EAAE,EACX,IAAI,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAEjE,QAAA,IACE,SAAS,GAAG,CAAC,CAAA,CACb,QAAQ,GAAG,CAAC,CAAA,CACZ,OAAO,GAAG,CAAC,CACX,CAAA,KAAK,GAAQ,EAAE,CACf,CAAA,CAAC,CACD,CAAA,CAAC,EACD,IAAI,CAAA,CACJ,IAAI,CAAA,CACJ,QAAQ,CAAA,CACR,KAAK,CAAA,CACL,EAAC;QAEH,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACzB,YAAA,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAClB,SAAA;QAED,IAAI,GAAG,CAAC,CAAA;QACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACzB,KAAK,GAAG,CAAC,CAAA;QACT,OAAO,KAAK,IAAI,QAAQ,EAAE;YACxB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC/B,YAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;AACnB,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AACtB,gBAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;gBAC1B,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AACtC,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAA;YAClC,KAAK,KAAK,CAAC,CAAA;AACZ,SAAA;;AAGD,QAAA,SAAgB,IAAI;AAClB,YAAA,KAAK,CAAC;gBACJ,IAAI,GAAG,CAAC,CAAA;gBACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBACzB,KAAK,GAAG,CAAC,CAAA;gBACT,OAAO,KAAK,IAAI,QAAQ,EAAE;oBACxB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC/B,oBAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;AACnB,oBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AACtB,wBAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;wBAC1B,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AACtC,qBAAA;AACD,oBAAA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAA;oBAClC,KAAK,KAAK,CAAC,CAAA;AACZ,iBAAA;AACD,gBAAA,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;gBACX,MAAK;AACP,YAAA,KAAK,CAAC;gBACJ,IAAI,GAAG,CAAC,CAAA;gBACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC1B,KAAK,GAAG,CAAC,CAAA;gBACT,OAAO,KAAK,IAAI,QAAQ,EAAE;oBACxB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC/B,oBAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;AACnB,oBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AACtB,wBAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;wBAC1B,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AACtC,qBAAA;AACD,oBAAA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAA;oBAClC,KAAK,KAAK,CAAC,CAAA;AACZ,iBAAA;AACD,gBAAA,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;gBACX,MAAK;AACP,YAAA,KAAK,CAAC;AACJ,gBAAA,OAAO,EAAE,CAAA;AACZ,SAAA;AACD,QAAA,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACjB,CAAC,GAAG,CAAC,CAAA;AACL,QAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACd,QAAA,OAAO,IAAI,EAAE;AACX,YAAA,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,EAAE;AACvB,gBAAA,OAAO,EAAE,CAAA;AACV,aAAA;YAED,IAAI,GAAG,CAAC,CAAA;YACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YAC/B,KAAK,GAAG,CAAC,CAAA;YACT,OAAO,KAAK,IAAI,QAAQ,EAAE;gBACxB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC/B,gBAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;AACnB,gBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AACtB,oBAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;oBAC1B,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AACtC,iBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAA;gBAClC,KAAK,KAAK,CAAC,CAAA;AACZ,aAAA;AAED,YAAA,SAAS,CAAC,GAAG,IAAI;AACf,gBAAA,KAAK,CAAC;oBACJ,IAAI,GAAG,CAAC,CAAA;oBACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBACzB,KAAK,GAAG,CAAC,CAAA;oBACT,OAAO,KAAK,IAAI,QAAQ,EAAE;wBACxB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC/B,wBAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;AACnB,wBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AACtB,4BAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;4BAC1B,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AACtC,yBAAA;AACD,wBAAA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAA;wBAClC,KAAK,KAAK,CAAC,CAAA;AACZ,qBAAA;oBAED,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;AAChC,oBAAA,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAA;AAChB,oBAAA,SAAS,EAAE,CAAA;oBACX,MAAK;AACP,gBAAA,KAAK,CAAC;oBACJ,IAAI,GAAG,CAAC,CAAA;oBACR,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;oBAC1B,KAAK,GAAG,CAAC,CAAA;oBACT,OAAO,KAAK,IAAI,QAAQ,EAAE;wBACxB,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAA;AAC/B,wBAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAA;AACnB,wBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;AACtB,4BAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;4BAC1B,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;AACtC,yBAAA;AACD,wBAAA,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAA;wBAClC,KAAK,KAAK,CAAC,CAAA;AACZ,qBAAA;oBACD,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;AAChC,oBAAA,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAA;AAChB,oBAAA,SAAS,EAAE,CAAA;oBACX,MAAK;AACP,gBAAA,KAAK,CAAC;AACJ,oBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACzB,aAAA;YAED,IAAI,SAAS,IAAI,CAAC,EAAE;gBAClB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AAChC,gBAAA,OAAO,EAAE,CAAA;AACV,aAAA;AAED,YAAA,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;AACjB,gBAAA,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;AACtB,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,KAAK,QAAQ,EAAE;oBAClB,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACxB,iBAAA;AAAM,qBAAA;AACL,oBAAA,OAAO,IAAI,CAAA;AACZ,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;AAGlB,YAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC5C,YAAA,SAAS,EAAE,CAAA;YAEX,CAAC,GAAG,KAAK,CAAA;YAET,IAAI,SAAS,IAAI,CAAC,EAAE;gBAClB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AAChC,gBAAA,OAAO,EAAE,CAAA;AACV,aAAA;AACF,SAAA;KACF;CACF;;AC5cD,IAAA,kBAAA,kBAAA,YAAA;AAGE,IAAA,SAAA,kBAAA,GAAA;QAFA,IAAM,CAAA,MAAA,GAAoD,EAAE,CAAA;AAG1D,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;KACjB;AAED,IAAA,kBAAA,CAAA,SAAA,CAAA,EAAE,GAAF,UAAG,KAAa,EAAE,QAAkC,EAAA;QAApD,IASC,KAAA,GAAA,IAAA,CAAA;AARC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;AACxB,SAAA;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEjC,OAAO,YAAA;YACL,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,KAAK,QAAQ,CAAA,EAAA,CAAC,CAAA;AACvE,SAAC,CAAA;KACF,CAAA;AAED,IAAA,kBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,KAAa,EAAE,OAAY,EAAA;AAC9B,QAAA,KAAuB,IAAwB,EAAA,GAAA,CAAA,EAAxB,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAxB,EAAwB,GAAA,EAAA,CAAA,MAAA,EAAxB,IAAwB,EAAE;AAA5C,YAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA,CAAA;YACjB,QAAQ,CAAC,OAAO,CAAC,CAAA;AAClB,SAAA;AACD,QAAA,KAAuB,IAAsB,EAAA,GAAA,CAAA,EAAtB,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAtB,EAAsB,GAAA,EAAA,CAAA,MAAA,EAAtB,IAAsB,EAAE;AAA1C,YAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA,CAAA;AACjB,YAAA,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AACzB,SAAA;KACF,CAAA;IACH,OAAC,kBAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;ACFD,IAAA,WAAA,kBAAA,YAAA;IA+BE,SAAY,WAAA,CAAA,MAAc,EAAE,OAA4B,EAAA;QAAxD,IAwBC,KAAA,GAAA,IAAA,CAAA;;QA9CO,IAAgB,CAAA,gBAAA,GAA+B,EAAE,CAAA;;AAI/C,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAA;AAmB1C,QAAA,MAAM,CAAC,MAAM,EAAE,+CAA+C,CAAC,CAAA;AAE/D,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,IAAI,KAAI,yBAAyB,CAAC,CAAA;AAC3E,QAAA,IAAI,CAAC,OAAO,GAAG,CAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,OAAO,IAAG,IAAI,CAAC,GAAG,CAAC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;AACpE,QAAA,IAAI,CAAC,aAAa,GAAG,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,CAAA;AACpD,QAAA,IAAI,CAAC,WAAW,GAAG,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,WAAW,KAAI,MAAM,CAAA;AACjD,QAAA,IAAI,CAAC,oBAAoB,GAAG,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,oBAAoB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAA;;AAEjE,QAAA,IAAI,CAAC,eAAe,GAAG,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,MAAM,MAAK,KAAK,CAAA;QAChD,IAAI,CAAC,aAAa,GAAG;YACnB,UAAU,EAAE,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,CAAC;YACzC,UAAU,EAAE,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI;SAC7C,CAAA;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,CAAA;AACtD,QAAA,IAAI,CAAC,6BAA6B,GAAG,CAAA,EAAA,GAAA,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,4BAA4B,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAA;;QAGlF,IAAI,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,mBAAmB,MAAK,KAAK,EAAE;AAC1C,YAAA,cAAc,CAAC,YAAA;AACb,gBAAA,KAAK,KAAI,CAAC,uBAAuB,EAAE,CAAA;aACpC,EAAE,CAAC,CAAC,CAAA;AACN,SAAA;KACF;AAES,IAAA,WAAA,CAAA,SAAA,CAAA,wBAAwB,GAAlC,YAAA;AACE,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QAE3C,IAAM,wBAAwB,GAAqC,EAAE,CAAA;AACrE,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,KAAiC,IAA4B,EAAA,GAAA,CAAA,EAA5B,EAAA,GAAA,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAA5B,EAA4B,GAAA,EAAA,CAAA,MAAA,EAA5B,IAA4B,EAAE;AAApD,gBAAA,IAAA,WAAkB,EAAjB,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAC1B,gBAAA,wBAAwB,CAAC,WAAY,CAAA,MAAA,CAAA,OAAO,CAAE,CAAC,GAAG,OAAO,CAAA;AAC1D,aAAA;AACF,SAAA;AACD,QAAA,OAAA,QAAA,CAAA,EACE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,EACzB,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,EACtC,qBAAqB,EAAE,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,SAAS,EAAA,EACxE,wBAAwB,CAC5B,CAAA;KACF,CAAA;IAES,WAAc,CAAA,SAAA,CAAA,cAAA,GAAxB,UAAyB,OAAqC,EAAA;;QAC5D,IAAI,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,EAAE;YAClC,IAAI,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAc,EAAE;AACtC,gBAAA,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;AAC7F,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;AAC9F,aAAA;AACF,SAAA;QAED,IAAI,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,EAAE;AACpC,YAAA,IAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,KAAI,EAAE,CAAC;iBACnE,MAAM,CAAC,UAAC,IAAI,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA,CAAK,OAAA,CAAC,EAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,0CAAE,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,IAAI,CAAC,CAAA,CAAA,EAAA,CAAC;AAC3D,iBAAA,MAAM,CACL,UAAC,GAAqC,EAAE,GAAG,EAAA;;gBAAK,QAC9C,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAC,KAAI,KAAK,GAAG,GAAG,EAClE;aAAA,EACD,EAAE,CACH,CAAA;AACH,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAA;AACvC,SAAA;KACF,CAAA;AAGD,IAAA,MAAA,CAAA,cAAA,CAAY,WAAK,CAAA,SAAA,EAAA,OAAA,EAAA;;AAAjB,QAAA,GAAA,EAAA,YAAA;AACE,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,KAAK,CAAC,CAAA;AAChG,aAAA;AACD,YAAA,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;SACzB;AAED,QAAA,GAAA,EAAA,UAAkB,GAAuC,EAAA;AACvD,YAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;SAClB;;;AAJA,KAAA,CAAA,CAAA;AAMO,IAAA,WAAA,CAAA,SAAA,CAAA,UAAU,GAAlB,YAAA;AACE,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;KACvB,CAAA;AAID,IAAA,MAAA,CAAA,cAAA,CAAW,WAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;AAAnB,QAAA,GAAA,EAAA,YAAA;;AACE,YAAA,OAAO,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,QAAQ,CAAC,mCAAI,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,CAAA;SACrG;;;AAAA,KAAA,CAAA,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;QACE,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;KACpE,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;QACE,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;KACnE,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,EAAE,GAAF,UAAG,KAAa,EAAE,EAA4B,EAAA;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;KAClC,CAAA;IAED,WAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,gBAA6C,EAAA;AACjD,QAAA,IAAM,mBAAmB,GAAA,aAAA,CAAA,CAAI,wBAAwB,CAAC,KAAK,CAAA,GAAM,gBAAgB,IAAI,EAAE,GAAC,IAAA,CAAC,CAAA;;QAGzF,IAAI,CAAC,UAAU,EAAE,CAAA;AAEjB,QAAA,KAAkB,IAAgF,EAAA,GAAA,CAAA,EAAhF,EAA2C,GAAA,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAhF,EAAgF,GAAA,EAAA,CAAA,MAAA,EAAhF,IAAgF,EAAE;AAA/F,YAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA,CAAA;YACZ,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,EAAE;gBAChE,IAAI,CAAC,oBAAoB,CAAE,wBAAgC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;AACxE,aAAA;AACF,SAAA;KACF,CAAA;IAED,WAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,OAAuB,EAAA;;AAAvB,QAAA,IAAA,OAAA,KAAA,KAAA,CAAA,EAAA,EAAA,OAAuB,GAAA,IAAA,CAAA,EAAA;AAC3B,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,mBAAmB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,IAAA,CAAI,CAAA;AAE5B,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,UAAC,KAAK,EAAE,OAAO,EAAA,EAAK,OAAA,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA,EAAA,CAAC,CAAA;AAC1G,SAAA;KACF,CAAA;IAEO,WAAY,CAAA,SAAA,CAAA,YAAA,GAApB,UAAqB,OAAqF,EAAA;QACxG,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE;YACxD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACL,IAAI,CAAC,KAAK,CAAA,GACT,OAAO,CAAC,UAAU,IAAI,EAAE,IACzB,IAAI,CAAC,wBAAwB,EAAE,CAClC,EAAA,EAAA,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,EACjC,CAAA;SACF,CAAA;KACF,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;QACE,IAAI,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAS,wBAAwB,CAAC,SAAS,CAAC,CAAA;AACrF,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAS,wBAAwB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;AAC9G,QAAA,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,GAAG,IAAI,CAAC,6BAA6B,GAAG,IAAI,EAAE;AAC3F,YAAA,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;YACpC,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AACzE,SAAA;AACD,QAAA,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;AAEpF,QAAA,OAAO,SAAS,CAAA;KACjB,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;QACE,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;KACpE,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;QACE,IAAI,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAS,wBAAwB,CAAC,WAAW,CAAC,CAAA;QACpF,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;YACjC,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;AACxE,SAAA;AACD,QAAA,OAAO,MAAM,CAAA;KACd,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;AACE,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAS,wBAAwB,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAA;KACvG,CAAA;IAED,WAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,UAAkC,EAAA;QACzC,IAAI,CAAC,KAAK,GACL,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,IAAI,CAAC,KAAK,CAAA,EACV,UAAU,CACd,CAAA;QACD,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KAC9F,CAAA;IAED,WAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,QAAgB,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC3B,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;KAC9F,CAAA;AAED;;AAEK;AACL,IAAA,WAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,UAAmB,EAAE,UAAmC,EAAA;AAC/D,QAAA,IAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;AAC/C,QAAA,UAAU,GAAG,UAAU,IAAI,kBAAkB,CAAA;AAE7C,QAAA,IAAI,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AAChC,SAAA;AAED,QAAA,IAAM,OAAO,GAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACR,IAAI,CAAC,YAAY,CAAC;AACnB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,UAAU,EACL,QAAA,CAAA,QAAA,CAAA,EAAA,GAAC,UAAU,IAAI,EAAE,EACpB,EAAA,EAAA,iBAAiB,EAAE,IAAI,CAAC,cAAc,EAAE,EACzC,CAAA;AACF,SAAA,CAAC,CACF,EAAA,EAAA,IAAI,EAAE,UAAU,GACjB,CAAA;QAED,IAAI,UAAU,KAAK,kBAAkB,EAAE;;YAErC,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;YACnF,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AAE1E,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AAC1B,gBAAA,KAAK,IAAI,CAAC,uBAAuB,EAAE,CAAA;AACpC,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;AACjC,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,KAAa,EAAE,UAAmC,EAAE,qBAAsC,EAAA;AAAtC,QAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,qBAAsC,GAAA,KAAA,CAAA,EAAA;AAChG,QAAA,IAAI,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AAChC,SAAA;AAED,QAAA,IAAI,qBAAqB,EAAE;AACzB,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;AAC1C,SAAA;AAAM,aAAA;AACL,YAAA,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAA,KAAA,EAAE,UAAU,EAAA,UAAA,EAAE,CAAC,CAAA;AACxD,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AACjC,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;IAED,WAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,KAAa,EAAA;AACjB,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;AAEvC,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;AAChC,YAAA,KAAK,EAAE,eAAe;AACtB,YAAA,UAAU,EAAE;AACV,gBAAA,WAAW,EAAE,UAAU;AACvB,gBAAA,KAAK,EAAA,KAAA;AACN,aAAA;AACF,SAAA,CAAC,CAAA;AAEF,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AAC9B,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,SAAiB,EAAE,QAAqC,EAAE,UAAuC,EAAA;AAAvC,QAAA,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAuC,GAAA,EAAA,CAAA,EAAA;AAC3G,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;AAChC,YAAA,KAAK,EAAE,cAAc;YACrB,UAAU,EAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACL,UAAU,CAAA,EAAA,EACb,WAAW,EAAE,SAAS,EACtB,SAAS,EAAE,QAAQ,EACpB,CAAA;AACF,SAAA,CAAC,CAAA;AAEF,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;AACpC,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAED;;AAEK;IAEL,WAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,MAA2C,EAAA;;QAEhD,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAA;QAE/C,IAAI,CAAC,QAAQ,CAAC;AACZ,YAAA,OAAO,EACF,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,cAAc,CACd,EAAA,MAAM,CACV;AACF,SAAA,CAAC,CAAA;AAEF,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI,EAAA,EAAK,OAAA,cAAc,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAA,EAAA,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACvG,YAAA,KAAK,IAAI,CAAC,uBAAuB,EAAE,CAAA;AACpC,SAAA;AAED,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,SAAiB,EAAE,QAAyB,EAAE,eAAwC,EAAA;;AAC1F,QAAA,IAAI,CAAC,MAAM,EAAA,EAAA,GAAA,EAAA;YACT,EAAC,CAAA,SAAS,IAAG,QAAQ;gBACrB,CAAA;AAEF,QAAA,IAAI,eAAe,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAA;AACzD,SAAA;AAED,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,SAAiB,EAAE,QAAyB,EAAE,eAAwC,EAAA;AAClG,QAAA,IAAM,OAAO,GAAG;AACd,YAAA,KAAK,EAAE,gBAAgB;AACvB,YAAA,UAAU,EAAE,GAAA,CAAA,MAAA,CAAI,SAAS,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,QAAQ,CAAE;AACvC,YAAA,UAAU,aACR,WAAW,EAAE,SAAS,EACtB,UAAU,EAAE,QAAQ,EACpB,UAAU,EAAE,eAAe,IAAI,EAAE,EAAA,EAC9B,IAAI,CAAC,wBAAwB,EAAE,CACnC;SACF,CAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAChC,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAED;;AAEK;IACL,WAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,UAAsC,EAAA;;AAErD,QAAA,IAAM,kBAAkB,GACtB,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;QAEpG,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,gBAAgB,EAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACtF,kBAAkB,CAAA,EAClB,UAAU,CAAA,CACb,CAAA;AAEF,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;IAED,WAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,UAAsD,EAAA;;AAEpE,QAAA,IAAM,kBAAkB,GACtB,IAAI,CAAC,oBAAoB,CAAyC,wBAAwB,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;QAEnH,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAChD,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,UAAC,SAAS,EAAA;AAChD,gBAAA,kBAAkB,CAAC,SAAS,CAAC,GAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACxB,kBAAkB,CAAC,SAAS,CAAC,CAAA,EAC7B,UAAU,CAAC,SAAS,CAAC,CACzB,CAAA;AACD,gBAAA,OAAO,UAAU,CAAC,SAAS,CAAC,CAAA;AAC9B,aAAC,CAAC,CAAA;AACH,SAAA;QAED,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,eAAe,EAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EACrF,kBAAkB,CAAA,EAClB,UAAU,CAAA,CACb,CAAA;AACF,QAAA,OAAO,IAAI,CAAA;KACZ,CAAA;AAED;;AAEK;IACG,WAAW,CAAA,SAAA,CAAA,WAAA,GAAnB,UAAoB,kBAAkC,EAAA;AAAlC,QAAA,IAAA,kBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,kBAAkC,GAAA,IAAA,CAAA,EAAA;QACpD,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC/B,OAAO,IAAI,CAAC,sBAAsB,CAAA;AACnC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAA;KAC7C,CAAA;IAEa,WAAY,CAAA,SAAA,CAAA,YAAA,GAA1B,UAA2B,kBAAkC,EAAA;AAAlC,QAAA,IAAA,kBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,kBAAkC,GAAA,IAAA,CAAA,EAAA;;;;;AACrD,gBAAA,GAAG,GAAG,EAAG,CAAA,MAAA,CAAA,IAAI,CAAC,IAAI,iBAAc,CAAA;AAEhC,gBAAA,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;gBACjC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAA;gBACjC,gBAAgB,GACpB,IAAI,CAAC,oBAAoB,CAAyB,wBAAwB,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;gBAC9F,eAAe,GACnB,IAAI,CAAC,oBAAoB,CAAyC,wBAAwB,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;AAE7G,gBAAA,YAAY,GAAwB;AACxC,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;AAC/C,oBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,IAAI,CAAC,MAAM;AAClB,wBAAA,WAAW,EAAE,UAAU;AACvB,wBAAA,iBAAiB,EAAE,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,SAAS;AACzE,wBAAA,MAAM,EAAA,MAAA;AACN,wBAAA,iBAAiB,EAAE,gBAAgB;AACnC,wBAAA,gBAAgB,EAAE,eAAe;qBAClC,CAAC;iBACH,CAAA;gBAED,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC;qBACjE,IAAI,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,CAAC,IAAI,EAAoC,CAA1C,EAA0C,CAAC;qBACvD,IAAI,CAAC,UAAC,GAAG,EAAA;oBACR,IAAI,GAAG,CAAC,YAAY,EAAE;AACpB,wBAAA,KAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;AAC5C,qBAAA;AAED,oBAAA,OAAO,GAAG,CAAA;AACZ,iBAAC,CAAC;AACD,qBAAA,OAAO,CAAC,YAAA;AACP,oBAAA,KAAI,CAAC,sBAAsB,GAAG,SAAS,CAAA;AACzC,iBAAC,CAAC,CAAA;gBACJ,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,sBAAsB,CAAA,CAAA;;;AACnC,KAAA,CAAA;IAEO,WAAoB,CAAA,SAAA,CAAA,oBAAA,GAA5B,UAA6B,YAAmD,EAAA;QAC9E,IAAI,CAAC,oBAAoB,CACvB,wBAAwB,CAAC,YAAY,EACrC,YAAY,CACb,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;KAChD,CAAA;IAED,WAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,GAAW,EAAA;AACxB,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QAE3C,IAAI,CAAC,YAAY,EAAE;;AAEjB,YAAA,OAAO,SAAS,CAAA;AACjB,SAAA;AAED,QAAA,IAAI,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,QAAQ,KAAK,SAAS,EAAE;;YAE1B,QAAQ,GAAG,KAAK,CAAA;AACjB,SAAA;QAED,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;AAC5D,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;AACjC,YAAA,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;AACnC,gBAAA,aAAa,EAAE,GAAG;AAClB,gBAAA,sBAAsB,EAAE,QAAQ;AACjC,aAAA,CAAC,CAAA;AACH,SAAA;;AAGD,QAAA,OAAO,QAAQ,CAAA;KAChB,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;QACE,IAAI,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAwC,wBAAwB,CAAC,YAAY,CAAC,CAAA;QACnH,IAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAC/C,wBAAwB,CAAC,oBAAoB,CAC9C,CAAA;QAED,IAAI,CAAC,eAAe,EAAE;AACpB,YAAA,OAAO,KAAK,CAAA;AACb,SAAA;AAED,QAAA,KAAK,GAAG,KAAK,IAAI,EAAE,CAAA;AAEnB,QAAA,KAAK,IAAM,GAAG,IAAI,eAAe,EAAE;AACjC,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE;AACzB,gBAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA;AAClB,aAAA;AAAM,iBAAA;gBACL,KAAK,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;AAClC,aAAA;AACF,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACb,CAAA;IAED,WAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,GAAW,EAAA;QAC1B,IAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,YAAA,OAAO,SAAS,CAAA;AACjB,SAAA;QACD,OAAO,CAAC,CAAC,QAAQ,CAAA;KAClB,CAAA;IAEK,WAAuB,CAAA,SAAA,CAAA,uBAAA,GAA7B,UAA8B,kBAAkC,EAAA;AAAlC,QAAA,IAAA,kBAAA,KAAA,KAAA,CAAA,EAAA,EAAA,kBAAkC,GAAA,IAAA,CAAA,EAAA;;;;AACtD,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAA,CAAA;AAAlD,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAO,CAAC,EAAA,CAAA,IAAA,EAA0C,EAAE,YAAY,CAAA,CAAA;;;;AACjE,KAAA,CAAA;IAED,WAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,EAA0D,EAAA;QAAzE,IAOC,KAAA,GAAA,IAAA,CAAA;AANC,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,YAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;AACvB,gBAAA,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;AACpC,gBAAA,IAAI,KAAK,EAAE;oBACT,EAAE,CAAC,KAAK,CAAC,CAAA;AACV,iBAAA;;;AACF,SAAA,CAAA,CAAA,EAAA,CAAC,CAAA;KACH,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,GAAW,EAAE,EAAqC,EAAA;QAAhE,IAOC,KAAA,GAAA,IAAA,CAAA;AANC,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,YAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;AACvB,gBAAA,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;gBAC7C,IAAI,YAAY,KAAK,SAAS,EAAE;oBAC9B,EAAE,CAAC,YAAY,CAAC,CAAA;AACjB,iBAAA;;;AACF,SAAA,CAAA,CAAA,EAAA,CAAC,CAAA;KACH,CAAA;IAED,WAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,KAAmD,EAAA;QACrE,IAAI,KAAK,KAAK,IAAI,EAAE;YAClB,OAAO,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;AACtF,SAAA;QACD,OAAO,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAA;KACvF,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,KAAa,EAAE,UAAmC,EAAA;QAApE,IAMC,KAAA,GAAA,IAAA,CAAA;AALC,QAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAA;;AAE1C,YAAA,IAAM,OAAO,GAAG,KAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAA,KAAA,EAAE,UAAU,EAAA,UAAA,EAAE,CAAC,CAAA;AACxD,YAAA,KAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAClC,SAAC,CAAC,CAAA;KACH,CAAA;AAED;;AAEK;AACG,IAAA,WAAA,CAAA,SAAA,CAAA,OAAO,GAAf,UAAgB,IAAY,EAAE,QAAa,EAAA;QAA3C,IAgCC,KAAA,GAAA,IAAA,CAAA;QA/BC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAM;AACP,SAAA;AACD,QAAA,IAAM,OAAO,GACR,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,QAAQ,CACX,EAAA,EAAA,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,EAC5B,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE,EACzC,SAAS,EAAE,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,GAAG,cAAc,EAAE,GACtE,CAAA;QAED,IAAI,OAAO,CAAC,UAAU,EAAE;AACtB,YAAA,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAA;YACxC,OAAO,OAAO,CAAC,UAAU,CAAA;AAC1B,SAAA;AAED,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAqB,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAEjG,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAA,OAAA,EAAE,CAAC,CAAA;QACvB,IAAI,CAAC,oBAAoB,CAAqB,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAEpF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;;AAGhC,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAChC,IAAI,CAAC,KAAK,EAAE,CAAA;AACb,SAAA;QAED,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC3C,YAAA,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,KAAK,EAAE,GAAA,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;AAC1E,SAAA;KACF,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;QAAA,IAMC,KAAA,GAAA,IAAA,CAAA;AALC,QAAA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM,EAAA;AACjC,YAAA,KAAI,CAAC,KAAK,CAAC,UAAC,GAAG,EAAE,IAAI,EAAA;AACnB,gBAAA,OAAO,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAC1C,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH,CAAA;IAED,WAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,QAA0C,EAAA;QAAhD,IA0EC,KAAA,GAAA,IAAA,CAAA;QAzEC,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,EAAI,CAAA;AACpB,SAAA;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;AACxB,SAAA;AAED,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAqB,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;AAEjG,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACjB,YAAA,OAAO,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,EAAI,CAAA;AACpB,SAAA;AAED,QAAA,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3C,IAAI,CAAC,oBAAoB,CAAqB,wBAAwB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAEpF,QAAA,IAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAK,EAAA,OAAA,IAAI,CAAC,OAAO,CAAZ,EAAY,CAAC,CAAA;AAElD,QAAA,IAAM,IAAI,GAAG;YACX,OAAO,EAAE,IAAI,CAAC,MAAM;AACpB,YAAA,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,cAAc,EAAE;SAC1B,CAAA;QAED,IAAM,IAAI,GAAG,UAAC,GAAS,EAAA;YACrB,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,QAAQ,CAAG,GAAG,EAAE,QAAQ,CAAC,CAAA;YACzB,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACtC,SAAC,CAAA;;;;;AAMD,QAAwB,IAAI,CAAC,kBAAkB,GAAE;QAMjD,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAEpC,QAAA,IAAM,GAAG,GACP,IAAI,CAAC,WAAW,KAAK,MAAM;AACzB,cAAE,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,IAAI,EAAA,aAAA,CAAA,CAAA,MAAA,CAAc,gBAAgB,EAAE,EAAM,KAAA,CAAA,CAAA,MAAA,CAAA,IAAI,CAAC,iBAAiB,EAAE,CAAE;AAC9E,cAAE,EAAG,CAAA,MAAA,CAAA,IAAI,CAAC,IAAI,YAAS,CAAA;AAE3B,QAAA,IAAM,YAAY,GAChB,IAAI,CAAC,WAAW,KAAK,MAAM;AACzB,cAAE;AACE,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,WAAW,EAAE,MAAM;AACnB,gBAAA,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;gBAChE,IAAI,EAAE,OAAQ,CAAA,MAAA,CAAA,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAmB,mBAAA,CAAA;AACxF,aAAA;AACH,cAAE;AACE,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;AAC/C,gBAAA,IAAI,EAAE,OAAO;aACd,CAAA;AAEP,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,YAAY,CAAC;AACnC,aAAA,IAAI,CAAC,YAAM,EAAA,OAAA,IAAI,EAAE,CAAA,EAAA,CAAC;aAClB,KAAK,CAAC,UAAC,GAAG,EAAA;YACT,IAAI,GAAG,CAAC,QAAQ,EAAE;gBAChB,IAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AAChD,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;AACnB,aAAA;YAED,IAAI,CAAC,GAAG,CAAC,CAAA;AACX,SAAC,CAAC,CAAA;KACL,CAAA;AAEa,IAAA,WAAA,CAAA,SAAA,CAAA,cAAc,GAA5B,UACE,GAAW,EACX,OAA4B,EAC5B,YAA+B,EAAA;;;;;;gBAE9B,CAAC,EAAA,GAAA,CAAA,EAAA,GAAA,WAAmB,EAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAA,EAAA,CAAP,OAAO,GAAK,SAAS,OAAO,CAAC,EAAU,EAAA;AAC3D,oBAAA,IAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAA;AAClC,oBAAA,UAAU,CAAC,YAAA,EAAM,OAAA,IAAI,CAAC,KAAK,EAAE,CAAA,EAAA,EAAE,EAAE,CAAC,CAAA;oBAClC,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,iBAAC,CAAA,CAAA;AAED,gBAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CACd,YAAA;AACE,wBAAA,OAAA,KAAI,CAAC,KAAK,CAAC,GAAG,EAAA,QAAA,CAAA,EACZ,MAAM,EAAG,WAAmB,CAAC,OAAO,CAAC,KAAI,CAAC,cAAc,CAAC,EAAA,EACtD,OAAO,CACV,CAAA,CAAA;AAHF,qBAGE,EACJ,YAAY,IAAI,IAAI,CAAC,aAAa,CACnC,CAAA,CAAA;;;AACF,KAAA,CAAA;AAEK,IAAA,WAAA,CAAA,SAAA,CAAA,aAAa,GAAnB,YAAA;;;;;AACE,wBAAA,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AAC9B,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,UAAU,EAAE,CAAA,CAAA;;AAAvB,wBAAA,EAAA,CAAA,IAAA,EAAuB,CAAA;;;;;AACxB,KAAA,CAAA;AAED,IAAA,WAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;AACE,QAAA,KAAK,IAAI,CAAC,aAAa,EAAE,CAAA;KAC1B,CAAA;IACH,OAAC,WAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;ACxrBD,IAAA,oBAAA,kBAAA,YAAA;AAAA,IAAA,SAAA,oBAAA,GAAA;QACU,IAAc,CAAA,cAAA,GAAuC,EAAE,CAAA;KAShE;IAPC,oBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,GAA6B,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;KAChC,CAAA;AAED,IAAA,oBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,GAA6B,EAAE,KAAiB,EAAA;AAC1D,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,GAAG,SAAS,CAAA;KAC9D,CAAA;IACH,OAAC,oBAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;ACRD;;AACO,IAAMA,KAAK,GAAG,UAAOC,GAAP,EAAoBC,OAApB,EAAgD;EAAA,OAAAC,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;AACvD,UAAA,OAAM,CAAA,CAAA;AAAA;YAAAC,yBAAK,CAACC,OAAN,CAAc;AAC9BJ,YAAAA,GAAG,EAAAA,GAD2B;YAE9BK,OAAO,EAAEJ,OAAO,CAACI,OAFa;AAG9BC,YAAAA,MAAM,EAAEL,OAAO,CAACK,MAAR,CAAeC,WAAf,EAHsB;YAI9BC,IAAI,EAAEP,OAAO,CAACQ,IAJgB;YAK9BC,MAAM,EAAET,OAAO,CAACS,MAAAA;AALc,WAAd,CAAA,CAAN,CAAA;;;AAANC,UAAAA,GAAG,GAAGC,EAMV,CAAAC,IANU,EAAN,CAAA;AAQN,UAAA,OAAO,CAAA,CAAA;AAAA;YAAA;YACLC,MAAM,EAAEH,GAAG,CAACG,MADP;AAELC,YAAAA,IAAI,EAAE,YAAM;cAAA,OAAAJ,GAAG,CAACH,IAAJ,CAAA;aAFP;AAGLQ,YAAAA,IAAI,EAAE,YAAM;cAAA,OAAAL,GAAG,CAACH,IAAJ,CAAA;AAAQ,aAAA;AAHf,WAAA,CAAP,CAAA;;;GATmE,CAAA,CAAA;AAcpE,CAdM;;ACGP,IAAMS,UAAU,GAAG,iBAAnB,CAAA;;AAEA,IAAAC,WAAA;AAAA;AAAA,UAAAC,MAAA,EAAA;AAA0BC,EAAAA,SAAK,CAAAF,WAAA,EAAAC,MAAA,CAAL,CAAA;;EACxB,SAAAD,WAAA,CAAYG,OAAZ,EAA2B;IAA3B,IAAAC,KAAA,GACEH,WAAA,KAAA,KAKD,IAND,CAAA;;AAEEI,IAAAA,KAAK,CAACC,iBAAN,CAAwBF,KAAxB,EAA8BA,KAAI,CAACG,WAAnC,CAAA,CAAA;IACAH,KAAI,CAACI,IAAL,GAAY,aAAZ,CAAA;IACAJ,KAAI,CAACD,OAAL,GAAeA,OAAf,CAAA;AACAM,IAAAA,MAAM,CAACC,cAAP,CAAsBN,KAAtB,EAA4BJ,WAAW,CAACW,SAAxC,CAAA,CAAA;;AACD,GAAA;;AACH,EAAA,OAACX,WAAD,CAAA;AARA,CAAA,CAA0BK,KAA1B,CAAA,CAAA;;AAUA,IAAAO,sBAAA;AAAA;AAAA,UAAAX,MAAA,EAAA;AAAqCC,EAAAA,SAAK,CAAAU,sBAAA,EAAAX,MAAA,CAAL,CAAA;;EACnC,SAAAW,sBAAA,CAAYT,OAAZ,EAA2B;IAA3B,IACEC,KAAA,GAAAH,MAAA,CAAAY,IAAA,CAAA,IAAA,EAAMV,OAAN,CAAA,IAOD,IARD,CAAA;;AAEEC,IAAAA,KAAI,CAACI,IAAL,GAAYJ,KAAI,CAACG,WAAL,CAAiBC,IAA7B,CAAA;IACAH,KAAK,CAACC,iBAAN,CAAwBF,KAAxB,EAA8BA,KAAI,CAACG,WAAnC,CAAA,CAHyB;AAKzB;AACA;;AACAE,IAAAA,MAAM,CAACC,cAAP,CAAsBN,KAAtB,EAA4BQ,sBAAsB,CAACD,SAAnD,CAAA,CAAA;;AACD,GAAA;;AACH,EAAA,OAACC,sBAAD,CAAA;AAVA,CAAA,CAAqCP,KAArC,CAAA,CAAA;;AAqBA,IAAAS,kBAAA;AAAA;AAAA,YAAA;EAYE,SAAAA,kBAAA,CAAYpB,EAAZ,EAO4B;AAN1B,IAAA,IAAAqB,eAAe,GAAArB,EAAA,CAAAqB,eAAf;AAAA,QACAC,cAAc,GAAAtB,EAAA,CAAAsB,cADd;AAAA,QAEAC,aAAa,GAAAvB,EAAA,CAAAuB,aAFb;AAAA,QAGAC,OAAO,GAAAxB,EAAA,CAAAwB,OAHP;AAAA,QAIAC,IAAI,GAAAzB,EAAA,CAAAyB,IAJJ;AAAA,QAKGpC,OAAO,GAAAqC,MAAA,CAAA1B,EAAA,EANA,kBAAA,kBAAA,iBAAA,WAAA,QAAA,CAMA,CALV,CAAA;;IAOA,IAAKqB,CAAAA,eAAL,GAAuBA,eAAvB,CAAA;IACA,IAAKC,CAAAA,cAAL,GAAsBA,cAAtB,CAAA;IACA,IAAKK,CAAAA,YAAL,GAAoB,EAApB,CAAA;IACA,IAAKC,CAAAA,gBAAL,GAAwB,EAAxB,CAAA;IACA,IAAKC,CAAAA,sBAAL,GAA8B,KAA9B,CAAA;IACA,IAAKL,CAAAA,OAAL,GAAeA,OAAf,CAAA;IACA,IAAKD,CAAAA,aAAL,GAAqBA,aAArB,CAAA;IACA,IAAKE,CAAAA,IAAL,GAAYA,IAAZ,CAAA;AACA,IAAA,IAAA,CAAKK,MAAL,GAAcC,SAAd,CAT0B;;AAW1B,IAAA,IAAA,CAAK5C,KAAL,GAAaE,OAAO,CAACF,KAAR,IAAiBA,KAA9B,CAAA;IAEA,KAAK,IAAA,CAAK6C,gBAAL,EAAL,CAAA;AACD,GAAA;;AAEKZ,EAAAA,kBAAc,CAAAH,SAAd,CAAcgB,cAAd,GAAN,UACEC,GADF,EAEEC,UAFF,EAGEC,MAHF,EAIEC,gBAJF,EAKEC,eALF,EAK8D;AAF5D,IAAA,IAAAF,MAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,MAAmC,GAAA,EAAnC,CAAA;AAAmC,KAAA;;AACnC,IAAA,IAAAC,gBAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,gBAA6C,GAAA,EAA7C,CAAA;AAA6C,KAAA;;AAC7C,IAAA,IAAAC,eAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,eAA4D,GAAA,EAA5D,CAAA;AAA4D,KAAA;;;;;;;AAE5D,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA,CAAA,CAAA;AAAA;cAAM,IAAA,CAAKN,gBAAL,EAAN,CAAA,CAAA;;;AAAAO,YAAAA,EAAA,CAAAtC,IAAA,EAAA,CAAA;;AAEIuC,YAAAA,QAAQ,GAAGT,SAAX,CAAA;AACAU,YAAAA,WAAW,GAAGV,SAAd,CAAA;;YAEJ,IAAI,CAAC,IAAKF,CAAAA,sBAAV,EAAkC;AAChC,cAAA,OAAA,CAAA,CAAA;AAAA;AAAA,gBAAOW,QAAP,CAAA,CAAA;AACD,aAAA;;AAED,YAAA,KAAoCE,EAAA,GAAA,CAAA,EAAjB1C,KAAA,IAAK2B,CAAAA,YAAxB,EAAmBe,EAAA,GAAA1C,EAAA,CAAA2C,MAAnB,EAAmBD,EAAA,EAAnB,EAAsC;AAA3BE,cAAAA,IAAI,GAAA5C,EAAA,CAAA0C,EAAA,CAAJ,CAAA;;AACT,cAAA,IAAIR,GAAG,KAAKU,IAAI,CAACV,GAAjB,EAAsB;AACpBO,gBAAAA,WAAW,GAAGG,IAAd,CAAA;AACA,gBAAA,MAAA;AACD,eAAA;AACF,aAAA;;YAED,IAAIH,WAAW,KAAKV,SAApB,EAA+B;cAC7B,IAAI;AACFS,gBAAAA,QAAQ,GAAG,IAAA,CAAKK,kBAAL,CAAwBJ,WAAxB,EAAqCN,UAArC,EAAiDC,MAAjD,EAAyDC,gBAAzD,EAA2EC,eAA3E,CAAX,CAAA;AACAQ,gBAAAA,OAAO,CAACC,KAAR,CAAc,sCAAA,CAAAC,MAAA,CAAuCd,GAAvC,EAAiD,MAAjD,CAAA,CAAiDc,MAAjD,CAAiDR,QAAjD,CAAd,CAAA,CAAA;eAFF,CAGE,OAAOS,CAAP,EAAU;gBACV,IAAIA,CAAC,YAAY/B,sBAAjB,EAAyC;AACvC4B,kBAAAA,OAAO,CAACC,KAAR,CAAc,8BAAA,CAAAC,MAAA,CAA+Bd,GAA/B,EAAuC,IAAvC,CAAA,CAAuCc,MAAvC,CAAuCC,CAAvC,CAAd,CAAA,CAAA;AACD,iBAFD,MAEO,IAAIA,CAAC,YAAYtC,KAAjB,EAAwB;AAC7BmC,kBAAAA,OAAO,CAACI,KAAR,CAAc,gCAAA,CAAAF,MAAA,CAAiCd,GAAjC,EAAyC,IAAzC,CAAA,CAAyCc,MAAzC,CAAyCC,CAAzC,CAAd,CAAA,CAAA;AACD,iBAAA;AACF,eAAA;AACF,aAAA;;AAED,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAOT,QAAP,CAAA,CAAA;;;;GApCI,CAAA;;AAuCApB,EAAAA,kBAAW,CAAAH,SAAX,CAAWkC,WAAX,GAAN,UACEhB,UADF,EAEEC,MAFF,EAGEC,gBAHF,EAIEC,eAJF,EAI8D;AAF5D,IAAA,IAAAF,MAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,MAAmC,GAAA,EAAnC,CAAA;AAAmC,KAAA;;AACnC,IAAA,IAAAC,gBAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,gBAA6C,GAAA,EAA7C,CAAA;AAA6C,KAAA;;AAC7C,IAAA,IAAAC,eAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,eAA4D,GAAA,EAA5D,CAAA;AAA4D,KAAA;;;;;;;;;AAE5D,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA,CAAA,CAAA;AAAA;cAAM,IAAA,CAAKN,gBAAL,EAAN,CAAA,CAAA;;;AAAAhC,YAAAA,EAAA,CAAAC,IAAA,EAAA,CAAA;;AAEMuC,YAAAA,QAAQ,GAAqC,EAA7C,CAAA;AACFY,YAAAA,gBAAgB,GAAG,IAAKzB,CAAAA,YAAL,CAAkBgB,MAAlB,IAA4B,CAA/C,CAAA;AAEJ,YAAA,IAAA,CAAKhB,YAAL,CAAkB0B,GAAlB,CAAsB,UAACT,IAAD,EAAK;cACzB,IAAI;AACFJ,gBAAAA,QAAQ,CAACI,IAAI,CAACV,GAAN,CAAR,GAAqBxB,KAAI,CAACmC,kBAAL,CAAwBD,IAAxB,EAA8BT,UAA9B,EAA0CC,MAA1C,EAAkDC,gBAAlD,EAAoEC,eAApE,CAArB,CAAA;eADF,CAEE,OAAOW,CAAP,EAAU;AACV,gBAAA,IAAIA,CAAC,YAAY/B,sBAAjB,EAAyC,CAAzC,MAEO,IAAI+B,CAAC,YAAYtC,KAAjB,EAAwB;AAC7BmC,kBAAAA,OAAO,CAACI,KAAR,CAAc,gCAAA,CAAiCF,MAAjC,CAAiCJ,IAAI,CAACV,GAAtC,EAA8C,IAA9C,CAAA,CAA8Cc,MAA9C,CAA8CC,CAA9C,CAAd,CAAA,CAAA;AACD,iBAAA;;AACDG,gBAAAA,gBAAgB,GAAG,IAAnB,CAAA;AACD,eAAA;aAVH,CAAA,CAAA;AAaA,YAAA,OAAA,CAAA,CAAA;AAAA;cAAO;AAAEZ,cAAAA,QAAQ,EAAAA,QAAV;AAAYY,cAAAA,gBAAgB,EAAAA,gBAAAA;AAA5B,aAAP,CAAA,CAAA;;;;GAxBI,CAAA;;AA2BNhC,EAAAA,kBAAkB,CAAAH,SAAlB,CAAkB4B,kBAAlB,GAAA,UACED,IADF,EAEET,UAFF,EAGEC,MAHF,EAIEC,gBAJF,EAKEC,eALF,EAK8D;AAF5D,IAAA,IAAAF,MAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,MAAmC,GAAA,EAAnC,CAAA;AAAmC,KAAA;;AACnC,IAAA,IAAAC,gBAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,gBAA6C,GAAA,EAA7C,CAAA;AAA6C,KAAA;;AAC7C,IAAA,IAAAC,eAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,eAA4D,GAAA,EAA5D,CAAA;AAA4D,KAAA;;IAE5D,IAAIM,IAAI,CAACU,4BAAT,EAAuC;AACrC,MAAA,MAAM,IAAIpC,sBAAJ,CAA2B,wCAA3B,CAAN,CAAA;AACD,KAAA;;AAED,IAAA,IAAI,CAAC0B,IAAI,CAACW,MAAV,EAAkB;AAChB,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAMC,WAAW,GAAGZ,IAAI,CAACa,OAAL,IAAgB,EAApC,CAAA;AACA,IAAA,IAAMC,4BAA4B,GAAGF,WAAW,CAACE,4BAAjD,CAAA;;IAEA,IAAIA,4BAA4B,IAAI3B,SAApC,EAA+C;MAC7C,IAAM4B,SAAS,GAAG,IAAK/B,CAAAA,gBAAL,CAAsBgC,MAAM,CAACF,4BAAD,CAA5B,CAAlB,CAAA;;MAEA,IAAI,CAACC,SAAL,EAAgB;AACdb,QAAAA,OAAO,CAACe,IAAR,CACE,2CAAA,CAA4Cb,MAA5C,CAA4CU,4BAA5C,EAA6F,oBAA7F,EAA6FV,MAA7F,CAA6FJ,IAAI,CAACV,GAAlG,CADF,CAAA,CAAA;AAGA,QAAA,MAAM,IAAIhB,sBAAJ,CAA2B,mCAA3B,CAAN,CAAA;AACD,OAAA;;AAED,MAAA,IAAI,EAAEyC,SAAS,IAAIvB,MAAf,CAAJ,EAA4B;QAC1BU,OAAO,CAACe,IAAR,CAAa,oDAAAb,CAAAA,MAAA,CAAqDJ,IAAI,CAACV,GAA1D,EAA6F,gCAA7F,CAAb,CAAA,CAAA;AACA,QAAA,OAAO,KAAP,CAAA;AACD,OAAA;;AAED,MAAA,IAAM4B,sBAAsB,GAAGxB,eAAe,CAACqB,SAAD,CAA9C,CAAA;MACA,OAAO,IAAA,CAAKI,0BAAL,CAAgCnB,IAAhC,EAAsCR,MAAM,CAACuB,SAAD,CAA5C,EAAyDG,sBAAzD,CAAP,CAAA;AACD,KAjBD,MAiBO;MACL,OAAO,IAAA,CAAKC,0BAAL,CAAgCnB,IAAhC,EAAsCT,UAAtC,EAAkDE,gBAAlD,CAAP,CAAA;AACD,KAAA;GArCH,CAAA;;EAwCAjB,kBAAA,CAAAH,SAAA,CAAA8C,0BAAA,GAAA,UACEnB,IADF,EAEET,UAFF,EAGE6B,UAHF,EAGoC;;;AAElC,IAAA,IAAMR,WAAW,GAAGZ,IAAI,CAACa,OAAL,IAAgB,EAApC,CAAA;AACA,IAAA,IAAMQ,cAAc,GAAGT,WAAW,CAACpB,MAAZ,IAAsB,EAA7C,CAAA;IACA,IAAI8B,cAAc,GAAG,KAArB,CAAA;AACA,IAAA,IAAIC,MAAM,GAAGpC,SAAb,CALkC;AAQlC;;AACA,IAAA,IAAMqC,oBAAoB,GAAGC,aAAA,CAAA,EAAA,EAAIJ,cAAJ,EAAkB,IAAlB,CAAA,CAAoBK,IAApB,CAAyB,UAACC,UAAD,EAAaC,UAAb,EAAuB;AAC3E,MAAA,IAAMC,mBAAmB,GAAG,CAAC,CAACF,UAAU,CAACG,OAAzC,CAAA;AACA,MAAA,IAAMC,mBAAmB,GAAG,CAAC,CAACH,UAAU,CAACE,OAAzC,CAAA;;MAEA,IAAID,mBAAmB,IAAIE,mBAA3B,EAAgD;AAC9C,QAAA,OAAO,CAAP,CAAA;OADF,MAEO,IAAIF,mBAAJ,EAAyB;AAC9B,QAAA,OAAO,CAAC,CAAR,CAAA;OADK,MAEA,IAAIE,mBAAJ,EAAyB;AAC9B,QAAA,OAAO,CAAP,CAAA;AACD,OAFM,MAEA;AACL,QAAA,OAAO,CAAP,CAAA;AACD,OAAA;AACF,KAb4B,CAA7B,CAAA;;4BAeWC,WAAS;MAClB,IAAI;AACF,QAAA,IAAIC,MAAA,CAAKC,gBAAL,CAAsBlC,IAAtB,EAA4BT,UAA5B,EAAwCyC,SAAxC,EAAmDZ,UAAnD,CAAJ,EAAoE;AAClE,UAAA,IAAMe,iBAAe,GAAGH,SAAS,CAACF,OAAlC,CAAA;UACA,IAAMM,YAAY,GAAG,CAAA,CAAAhF,EAAA,GAAAwD,WAAW,CAACyB,YAAZ,MAA0B,IAA1B,IAA0BjF,EAAA,KAAA,KAAA,CAA1B,GAA0B,KAAA,CAA1B,GAA0BA,EAAA,CAAAkF,QAA1B,KAAsC,EAA3D,CAAA;;UACA,IAAIH,iBAAe,IAAIC,YAAY,CAACG,IAAb,CAAkB,UAACT,OAAD,EAAQ;AAAK,YAAA,OAAAA,OAAO,CAACxC,GAAR,KAAgB6C,iBAAhB,CAAA;AAA+B,WAA9D,CAAvB,EAAwF;AACtFZ,YAAAA,MAAM,GAAGY,iBAAT,CAAA;AACD,WAFD,MAEO;YACLZ,MAAM,GAAGU,MAAK,CAAAO,kBAAL,CAAwBxC,IAAxB,EAA8BT,UAA9B,CAAA,IAA6C,IAAtD,CAAA;AACD,WAAA;;;AAEF,SAAA;OAVH,CAWE,OAAOc,CAAP,EAAU;QACV,IAAIA,CAAC,YAAY/B,sBAAjB,EAAyC;AACvCgD,UAAAA,cAAc,GAAG,IAAjB,CAAA;AACD,SAFD,MAEO;AACL,UAAA,MAAMjB,CAAN,CAAA;AACD,SAAA;AACF,OAAA;;;;;AAlBH,IAAA,KAAwB,UAAA,EAAAoC,sBAAA,GAAAjB,oBAAxB,EAAwB1B,EAAA,GAAA2C,sBAAA,CAAA1C,MAAxB,EAAwBD,EAAoB,EAA5C,EAA4C;AAAvC,MAAA,IAAMkC,SAAS,GAAAS,sBAAA,CAAA3C,EAAA,CAAf,CAAA;;4BAAMkC;;;AAmBV,KAAA;;IAED,IAAIT,MAAM,KAAKpC,SAAf,EAA0B;AACxB,MAAA,OAAOoC,MAAP,CAAA;KADF,MAEO,IAAID,cAAJ,EAAoB;AACzB,MAAA,MAAM,IAAIhD,sBAAJ,CAA2B,yEAA3B,CAAN,CAAA;AACD,KAjDiC;;;AAoDlC,IAAA,OAAO,KAAP,CAAA;GAvDF,CAAA;;AA0DAE,EAAAA,kBAAgB,CAAAH,SAAhB,CAAgB6D,gBAAhB,GAAA,UACElC,IADF,EAEET,UAFF,EAGEyC,SAHF,EAIEZ,UAJF,EAIoC;AAElC,IAAA,IAAMsB,iBAAiB,GAAGV,SAAS,CAACW,kBAApC,CAAA;;IAEA,IAAI,CAACX,SAAS,CAACZ,UAAV,IAAwB,EAAzB,EAA6BrB,MAA7B,GAAsC,CAA1C,EAA6C;MAC3C,IAAM6C,QAAQ,GAAGZ,SAAS,CAACZ,UAAV,CAAqByB,KAArB,CAA2B,UAACC,QAAD,EAAS;AACnD,QAAA,OAAOC,aAAa,CAACD,QAAD,EAAW1B,UAAX,CAApB,CAAA;AACD,OAFgB,CAAjB,CAAA;;MAGA,IAAI,CAACwB,QAAL,EAAe;AACb,QAAA,OAAO,KAAP,CAAA;AACD,OAFD,MAEO,IAAIF,iBAAiB,IAAIvD,SAAzB,EAAoC;AACzC;AACA,QAAA,OAAO,IAAP,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,IAAIuD,iBAAiB,IAAIvD,SAArB,IAAkC6D,KAAK,CAAChD,IAAI,CAACV,GAAN,EAAWC,UAAX,CAAL,GAA8BmD,iBAAiB,GAAG,KAAxF,EAA+F;AAC7F,MAAA,OAAO,KAAP,CAAA;AACD,KAAA;;AAED,IAAA,OAAO,IAAP,CAAA;GAxBF,CAAA;;EA2BAlE,kBAAA,CAAAH,SAAA,CAAAmE,kBAAA,GAAA,UAAmBxC,IAAnB,EAA6CT,UAA7C,EAA+D;IAC7D,IAAM0D,SAAS,GAAGD,KAAK,CAAChD,IAAI,CAACV,GAAN,EAAWC,UAAX,EAAuB,SAAvB,CAAvB,CAAA;;IACA,IAAM2D,eAAe,GAAG,IAAA,CAAKC,kBAAL,CAAwBnD,IAAxB,CAAA,CAA8BoD,IAA9B,CAAmC,UAACtB,OAAD,EAAQ;MACjE,OAAOmB,SAAS,IAAInB,OAAO,CAACuB,QAArB,IAAiCJ,SAAS,GAAGnB,OAAO,CAACwB,QAA5D,CAAA;AACD,KAFuB,CAAxB,CAAA;;AAIA,IAAA,IAAIJ,eAAJ,EAAqB;MACnB,OAAOA,eAAe,CAAC5D,GAAvB,CAAA;AACD,KAAA;;AACD,IAAA,OAAOH,SAAP,CAAA;GATF,CAAA;;AAYAX,EAAAA,kBAAkB,CAAAH,SAAlB,CAAkB8E,kBAAlB,GAAA,UAAmBnD,IAAnB,EAA2C;;;IACzC,IAAMuD,WAAW,GAA0D,EAA3E,CAAA;IACA,IAAIF,QAAQ,GAAG,CAAf,CAAA;IACA,IAAIC,QAAQ,GAAG,CAAf,CAAA;AACA,IAAA,IAAM1C,WAAW,GAAGZ,IAAI,CAACa,OAAL,IAAgB,EAApC,CAAA;IACA,IAAM2C,aAAa,GAGb,CAAA,CAAApG,EAAA,GAAAwD,WAAW,CAACyB,YAAZ,MAA0B,IAA1B,IAA0BjF,EAAA,KAAA,KAAA,CAA1B,GAA0B,KAAA,CAA1B,GAA0BA,EAAA,CAAAkF,QAA1B,KAAsC,EAH5C,CAAA;AAKAkB,IAAAA,aAAa,CAACC,OAAd,CAAsB,UAAC3B,OAAD,EAAQ;AAC5BwB,MAAAA,QAAQ,GAAGD,QAAQ,GAAGvB,OAAO,CAACa,kBAAR,GAA6B,KAAnD,CAAA;MACAY,WAAW,CAACG,IAAZ,CAAiB;AAAEL,QAAAA,QAAQ,UAAV;AAAYC,QAAAA,QAAQ,EAAAA,QAApB;QAAsBhE,GAAG,EAAEwC,OAAO,CAACxC,GAAAA;OAApD,CAAA,CAAA;AACA+D,MAAAA,QAAQ,GAAGC,QAAX,CAAA;KAHF,CAAA,CAAA;AAKA,IAAA,OAAOC,WAAP,CAAA;GAfF,CAAA;;AAkBM/E,EAAAA,kBAAgB,CAAAH,SAAhB,CAAgBe,gBAAhB,GAAN,UAAuBuE,WAAvB,EAA0C;AAAnB,IAAA,IAAAA,WAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,WAAmB,GAAA,KAAnB,CAAA;AAAmB,KAAA;;;;;;kBACpC,CAAC,IAAK1E,CAAAA,sBAAN,IAAgC0E,cAAhC,OAA2C,CAAA,CAAA;AAAA;AAAA,cAAA,CAAA,CAA3C,CAAA;AACF,YAAA,OAAA,CAAA,CAAA;AAAA;cAAM,IAAA,CAAKC,iBAAL,EAAN,CAAA,CAAA;;;AAAAxG,YAAAA,EAAA,CAAAC,IAAA,EAAA,CAAA;;;;;;;;;;;GAFE,CAAA;;AAMAmB,EAAAA,kBAAA,CAAAH,SAAA,CAAAuF,iBAAA,GAAN,YAAA;;;;;;;;;YACE,IAAI,IAAA,CAAK1E,MAAT,EAAiB;cACf2E,YAAY,CAAC,IAAK3E,CAAAA,MAAN,CAAZ,CAAA;cACA,IAAKA,CAAAA,MAAL,GAAcC,SAAd,CAAA;AACD,aAAA;;AACD,YAAA,IAAA,CAAKD,MAAL,GAAc4E,UAAU,CAAC,YAAA;cAAM,OAAAhG,KAAI,CAAC8F,iBAAL,EAAA,CAAA;aAAP,EAAiC,IAAKnF,CAAAA,eAAtC,CAAxB,CAAA;;;;;;AAGc,YAAA,OAAA,CAAA,CAAA;AAAA;cAAM,IAAA,CAAKsF,8BAAL,EAAN,CAAA,CAAA;;;AAAN5G,YAAAA,GAAG,GAAGC,EAA2C,CAAAC,IAA3C,EAAN,CAAA;;AAEN,YAAA,IAAIF,GAAG,IAAIA,GAAG,CAACG,MAAJ,KAAe,GAA1B,EAA+B;AAC7B,cAAA,MAAM,IAAII,WAAJ,CACJ,6IADI,CAAN,CAAA;AAGD,aAAA;;AACoB,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAMP,GAAG,CAACK,IAAJ,EAAN,CAAA,CAAA;;;AAAfwG,YAAAA,YAAY,GAAG5G,EAAgB,CAAAC,IAAhB,EAAf,CAAA;;AACN,YAAA,IAAI,EAAE,OAAA,IAAW2G,YAAb,CAAJ,EAAgC;AAC9B9D,cAAAA,OAAO,CAACI,KAAR,CAAc,+CAAA,CAAAF,MAAA,CAAgD6D,IAAI,CAACC,SAAL,CAAeF,YAAf,CAAhD,CAAd,CAAA,CAAA;AACD,aAAA;;AAED,YAAA,IAAA,CAAKjF,YAAL,GAAoBiF,YAAY,CAACG,KAAb,IAAsB,EAA1C,CAAA;AACA,YAAA,IAAA,CAAKnF,gBAAL,GAAwBgF,YAAY,CAACI,kBAAb,IAAmC,EAA3D,CAAA;YACA,IAAKnF,CAAAA,sBAAL,GAA8B,IAA9B,CAAA;;;;;;;AAGA;;YACA,IAAIoF,KAAG,YAAY3G,WAAnB,EAAgC;AAC9B,cAAA,MAAM2G,KAAN,CAAA;AACD,aAAA;;;;;;;;;;;;;GA5BC,CAAA;;AAgCA7F,EAAAA,kBAAA,CAAAH,SAAA,CAAA0F,8BAAA,GAAN,YAAA;;;;;;AACQvH,YAAAA,GAAG,GAAG,EAAA,CAAG4D,MAAH,CAAG,IAAKvB,CAAAA,IAAR,6CAAA,QAAA,CAAwD,IAAA,CAAKF,aAA7D,CAAN,CAAA;AAEAlC,YAAAA,OAAO,GAAwB;AACnCK,cAAAA,MAAM,EAAE,KAD2B;AAEnCD,cAAAA,OAAO,EAAE;AACP,gBAAA,cAAA,EAAgB,kBADT;AAEPyH,gBAAAA,aAAa,EAAE,SAAAlE,CAAAA,MAAA,CAAU,IAAA,CAAK1B,cAAf,CAFR;gBAGP,YAAc,EAAA,eAAA,CAAgB0B,MAAhB,CAAgBmE,OAAhB,CAAA;AAHP,eAAA;aAFL,CAAA;AASFC,YAAAA,YAAY,GAAG,IAAf,CAAA;;YAEJ,IAAI,IAAA,CAAK5F,OAAL,IAAgB,OAAO,KAAKA,OAAZ,KAAwB,QAA5C,EAAsD;cAC9C6F,YAAa,GAAA,IAAIC,eAAJ,EAAb,CAAA;cACNF,YAAY,GAAGG,cAAc,CAAC,YAAA;AAC5BF,gBAAAA,YAAU,CAACG,KAAX,EAAA,CAAA;eAD2B,EAE1B,IAAKhG,CAAAA,OAFqB,CAA7B,CAAA;AAGAnC,cAAAA,OAAO,CAACS,MAAR,GAAiBuH,YAAU,CAACvH,MAA5B,CAAA;AACD,aAAA;;;;;;;AAGQ,YAAA,OAAM,CAAA,CAAA;AAAA;AAAA,cAAA,KAAKX,KAAL,CAAWC,GAAX,EAAgBC,OAAhB,CAAA,CAAN,CAAA;;AAAP,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAOW,OAAA,EAAP,CAAA,CAAA;;;;YAEA,MAAM,IAAIW,KAAJ,CAAU,6BAAA,OAAA,CAA8B8G,KAA9B,CAAV,CAAN,CAAA;;;YAEAhB,YAAY,CAACW,YAAD,CAAZ,CAAA;;;;;;;;;;;;GA3BE,CAAA;;AA+BNhG,EAAAA,kBAAA,CAAAH,SAAA,CAAAyG,UAAA,GAAA,YAAA;IACEjB,YAAY,CAAC,IAAK3E,CAAAA,MAAN,CAAZ,CAAA;GADF,CAAA;;AAGF,EAAA,OAACV,kBAAD,CAAA;AAAC,CAxUD,EAAA;AA2UA;AACA;AACA;;;AACA,SAASwE,KAAT,CAAe1D,GAAf,EAA4BC,UAA5B,EAAgDwF,IAAhD,EAAiE;AAAjB,EAAA,IAAAA,IAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,IAAAA,IAAiB,GAAA,EAAjB,CAAA;AAAiB,GAAA;;AAC/D,EAAA,IAAMC,QAAQ,GAAGC,iBAAU,CAAC,MAAD,CAA3B,CAAA;AACAD,EAAAA,QAAQ,CAACE,MAAT,CAAgB,EAAG9E,CAAAA,MAAH,CAAGd,GAAH,EAAU,GAAV,CAAA,CAAUc,MAAV,CAAUb,UAAV,EAAuBa,MAAvB,CAAuB2E,IAAvB,CAAhB,CAAA,CAAA;AACA,EAAA,OAAOI,QAAQ,CAACH,QAAQ,CAACI,MAAT,CAAgB,KAAhB,CAAuBC,CAAAA,KAAvB,CAA6B,CAA7B,EAAgC,EAAhC,CAAD,EAAsC,EAAtC,CAAR,GAAoD5H,UAA3D,CAAA;AACD,CAAA;;AAED,SAASsF,aAAT,CACED,QADF,EAEEwC,cAFF,EAEqC;AAEnC,EAAA,IAAMhG,GAAG,GAAGwD,QAAQ,CAACxD,GAArB,CAAA;AACA,EAAA,IAAMiG,KAAK,GAAGzC,QAAQ,CAACyC,KAAvB,CAAA;AACA,EAAA,IAAMC,QAAQ,GAAG1C,QAAQ,CAAC0C,QAAT,IAAqB,OAAtC,CAAA;;AAEA,EAAA,IAAI,EAAElG,GAAG,IAAIgG,cAAT,CAAJ,EAA8B;IAC5B,MAAM,IAAIhH,sBAAJ,CAA2B,kBAAA,CAAYgB,GAAZ,EAAe,8BAAf,CAA3B,CAAN,CAAA;AACD,GAFD,MAEO,IAAIkG,QAAQ,KAAK,YAAjB,EAA+B;AACpC,IAAA,MAAM,IAAIlH,sBAAJ,CAA2B,sCAA3B,CAAN,CAAA;AACD,GAAA;;AAED,EAAA,IAAMmH,aAAa,GAAGH,cAAc,CAAChG,GAAD,CAApC,CAAA;;AAEA,EAAA,QAAQkG,QAAR;AACE,IAAA,KAAK,OAAL;AACE,MAAA,OAAOE,KAAK,CAACC,OAAN,CAAcJ,KAAd,IAAuBA,KAAK,CAACK,OAAN,CAAcH,aAAd,CAAiC,KAAA,CAAC,CAAzD,GAA6DF,KAAK,KAAKE,aAA9E,CAAA;;AACF,IAAA,KAAK,QAAL;AACE,MAAA,OAAOC,KAAK,CAACC,OAAN,CAAcJ,KAAd,IAAuBA,KAAK,CAACK,OAAN,CAAcH,aAAd,CAAiC,KAAA,CAAC,CAAzD,GAA6DF,KAAK,KAAKE,aAA9E,CAAA;;AACF,IAAA,KAAK,QAAL;MACE,OAAOnG,GAAG,IAAIgG,cAAd,CAAA;;AACF,IAAA,KAAK,WAAL;AACE,MAAA,OAAOtE,MAAM,CAACyE,aAAD,CAAN,CAAsB1I,WAAtB,EAAoC8I,CAAAA,QAApC,CAA6C7E,MAAM,CAACuE,KAAD,CAAN,CAAcxI,WAAd,EAA7C,CAAP,CAAA;;AACF,IAAA,KAAK,eAAL;AACE,MAAA,OAAO,CAACiE,MAAM,CAACyE,aAAD,CAAN,CAAsB1I,WAAtB,EAAA,CAAoC8I,QAApC,CAA6C7E,MAAM,CAACuE,KAAD,CAAN,CAAcxI,WAAd,EAA7C,CAAR,CAAA;;AACF,IAAA,KAAK,OAAL;MACE,OAAO+I,YAAY,CAAC9E,MAAM,CAACuE,KAAD,CAAP,CAAZ,IAA+BvE,MAAM,CAACyE,aAAD,CAAN,CAAsBM,KAAtB,CAA4B/E,MAAM,CAACuE,KAAD,CAAlC,MAA+C,IAArF,CAAA;;AACF,IAAA,KAAK,WAAL;MACE,OAAOO,YAAY,CAAC9E,MAAM,CAACuE,KAAD,CAAP,CAAZ,IAA+BvE,MAAM,CAACyE,aAAD,CAAN,CAAsBM,KAAtB,CAA4B/E,MAAM,CAACuE,KAAD,CAAlC,MAA+C,IAArF,CAAA;;AACF,IAAA,KAAK,IAAL;MACE,OAAO,OAAOE,aAAP,IAAwB,OAAOF,KAA/B,IAAwCE,aAAa,GAAGF,KAA/D,CAAA;;AACF,IAAA,KAAK,KAAL;MACE,OAAO,OAAOE,aAAP,IAAwB,OAAOF,KAA/B,IAAwCE,aAAa,IAAIF,KAAhE,CAAA;;AACF,IAAA,KAAK,IAAL;MACE,OAAO,OAAOE,aAAP,IAAwB,OAAOF,KAA/B,IAAwCE,aAAa,GAAGF,KAA/D,CAAA;;AACF,IAAA,KAAK,KAAL;MACE,OAAO,OAAOE,aAAP,IAAwB,OAAOF,KAA/B,IAAwCE,aAAa,IAAIF,KAAhE,CAAA;;AACF,IAAA,KAAK,eAAL,CAAA;AACA,IAAA,KAAK,gBAAL;AACE,MAAA,IAAMS,UAAU,GAAGC,iBAAiB,CAACV,KAAD,CAApC,CAAA;AACA,MAAA,IAAMW,YAAY,GAAGD,iBAAiB,CAACR,aAAD,CAAtC,CAAA;;MACA,IAAID,QAAQ,KAAK,gBAAjB,EAAmC;QACjC,OAAOU,YAAY,GAAGF,UAAtB,CAAA;AACD,OAAA;;MACD,OAAOE,YAAY,GAAGF,UAAtB,CAAA;;AACF,IAAA;AACE9F,MAAAA,OAAO,CAACI,KAAR,CAAc,2BAAA,CAAqBkF,QAArB,CAAd,CAAA,CAAA;AACA,MAAA,OAAO,KAAP,CAAA;AAjCJ,GAAA;AAmCD,CAAA;;AAED,SAASM,YAAT,CAAsBK,KAAtB,EAAmC;EACjC,IAAI;IACF,IAAIC,MAAJ,CAAWD,KAAX,CAAA,CAAA;AACA,IAAA,OAAO,IAAP,CAAA;GAFF,CAGE,OAAOE,GAAP,EAAY;AACZ,IAAA,OAAO,KAAP,CAAA;AACD,GAAA;AACF,CAAA;;AAED,SAASJ,iBAAT,CAA2BV,KAA3B,EAA8E;EAC5E,IAAIA,KAAK,YAAYe,IAArB,EAA2B;AACzB,IAAA,OAAOf,KAAP,CAAA;GADF,MAEO,IAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;AACjE,IAAA,IAAMgB,IAAI,GAAG,IAAID,IAAJ,CAASf,KAAT,CAAb,CAAA;;IACA,IAAI,CAACiB,KAAK,CAACD,IAAI,CAACE,OAAL,EAAD,CAAV,EAA4B;AAC1B,MAAA,OAAOF,IAAP,CAAA;AACD,KAAA;;IACD,MAAM,IAAIjI,sBAAJ,CAA2B,SAAA,CAAGiH,KAAH,EAAQ,+BAAR,CAA3B,CAAN,CAAA;AACD,GANM,MAMA;IACL,MAAM,IAAIjH,sBAAJ,CAA2B,2BAAA,CAAqBiH,KAArB,EAA0B,2CAA1B,CAA3B,CAAN,CAAA;AACD,GAAA;AACF;;AC7aD,IAAMmB,cAAc,GAAG,EAAA,GAAK,IAA5B,CAAA;AACA,IAAMC,cAAc,GAAG,EAAA,GAAK,IAA5B,CAAA;;AAEA,IAAAC,aAAA;AAAA;AAAA,UAAAjJ,MAAA,EAAA;AAA4BC,EAAAA,SAAW,CAAAgJ,aAAA,EAAAjJ,MAAA,CAAX,CAAA;;AAG1B,EAAA,SAAYiJ,aAAZ,CAAYC,MAAZ,EAAoCpK,OAApC,EAAgE;AAA5B,IAAA,IAAAA,OAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,OAA4B,GAAA,EAA5B,CAAA;AAA4B,KAAA;;IAAhE,IAMCqB,KAAA,GAAA,IAND,CAAA;;IACErB,OAAO,CAACqK,WAAR,GAAsB,CAAArK,OAAO,KAAA,IAAP,IAAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAAA,OAAO,CAAEqK,WAAT,KAAwB,MAA9C,CAAA;AACArK,IAAAA,OAAO,CAACsK,mBAAR,GAA8B,KAA9B,CAF8D;;AAG9DtK,IAAAA,OAAO,CAACuK,oBAAR,GAA+B,KAA/B,CAH8D;;YAK9DrJ,MAAM,CAAAY,IAAN,CAAM,IAAN,EAAMsI,MAAN,EAAcpK,OAAd,CAAA,IAAsB;IALYqB,KAAO,CAAArB,OAAP,GAAAA,OAAA,CAAA;AAF5BqB,IAAAA,KAAA,CAAAmJ,cAAA,GAAiB,IAAIC,oBAAJ,EAAjB,CAAA;;AAQP,GAAA;;AAEDN,EAAAA,aAAoB,CAAAvI,SAApB,CAAoB8I,oBAApB,GAAA,UAAqB7H,GAArB,EAAkD;AAChD,IAAA,OAAO,KAAK2H,cAAL,CAAoBG,WAApB,CAAgC9H,GAAhC,CAAP,CAAA;GADF,CAAA;;EAIAsH,aAAA,CAAAvI,SAAA,CAAAgJ,oBAAA,GAAA,UAAqB/H,GAArB,EAAoDiG,KAApD,EAAqE;IACnE,OAAO,IAAA,CAAK0B,cAAL,CAAoBK,WAApB,CAAgChI,GAAhC,EAAqCiG,KAArC,CAAP,CAAA;GADF,CAAA;;AAIAqB,EAAAA,aAAA,CAAAvI,SAAA,CAAAkJ,YAAA,GAAA,YAAA;AACE;AACA,IAAA,OAAOpI,SAAP,CAAA;GAFF,CAAA;;EAKAyH,aAAA,CAAAvI,SAAA,CAAA9B,KAAA,GAAA,UAAMC,GAAN,EAAmBC,OAAnB,EAA+C;IAC7C,OAAO,IAAA,CAAKA,OAAL,CAAaF,KAAb,GAAqB,IAAKE,CAAAA,OAAL,CAAaF,KAAb,CAAmBC,GAAnB,EAAwBC,OAAxB,CAArB,GAAwDF,KAAK,CAACC,GAAD,EAAMC,OAAN,CAApE,CAAA;GADF,CAAA;;AAIAmK,EAAAA,aAAA,CAAAvI,SAAA,CAAAmJ,YAAA,GAAA,YAAA;AACE,IAAA,OAAO,cAAP,CAAA;GADF,CAAA;;AAGAZ,EAAAA,aAAA,CAAAvI,SAAA,CAAAoJ,iBAAA,GAAA,YAAA;AACE,IAAA,OAAOlD,OAAP,CAAA;GADF,CAAA;;AAGAqC,EAAAA,aAAA,CAAAvI,SAAA,CAAAqJ,kBAAA,GAAA,YAAA;AACE,IAAA,OAAO,eAAAtH,CAAAA,MAAA,CAAgBmE,OAAhB,CAAP,CAAA;GADF,CAAA;;AAGF,EAAA,OAACqC,aAAD,CAAA;AArCA,CAAA,CAA4Be,WAA5B,CAAA;;;AAwCA,IAAAC,OAAA;AAAA;AAAA,YAAA;AAOE,EAAA,SAAYA,OAAZ,CAAYf,MAAZ,EAA4BpK,OAA5B,EAAwD;AAA5B,IAAA,IAAAA,OAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,MAAAA,OAA4B,GAAA,EAA5B,CAAA;AAA4B,KAAA;;;;IACtD,IAAKoL,CAAAA,aAAL,GAAqB,IAAIjB,aAAJ,CAAkBC,MAAlB,EAA0BpK,OAA1B,CAArB,CAAA;;IACA,IAAIA,OAAO,CAACiC,cAAZ,EAA4B;AAC1B,MAAA,IAAA,CAAKoJ,kBAAL,GAA0B,IAAItJ,kBAAJ,CAAuB;AAC/CC,QAAAA,eAAe,EACb,OAAOhC,OAAO,CAACsL,2BAAf,KAA+C,QAA/C,GACItL,OAAO,CAACsL,2BADZ,GAEIrB,cAJyC;QAK/ChI,cAAc,EAAEjC,OAAO,CAACiC,cALuB;AAM/CC,QAAAA,aAAa,EAAEkI,MANgC;AAO/CjI,QAAAA,OAAO,EAAE,CAAAxB,EAAA,GAAAX,OAAO,CAACuL,cAAR,UAAA,iBAAA,KAAA,GAA0B,KAPY;AAQ/CnJ,QAAAA,IAAI,EAAE,IAAA,CAAKgJ,aAAL,CAAmBhJ,IARsB;QAS/CtC,KAAK,EAAEE,OAAO,CAACF,KAAAA;AATgC,OAAvB,CAA1B,CAAA;AAWD,KAAA;;IACD,IAAK0L,CAAAA,0BAAL,GAAkC,EAAlC,CAAA;AACA,IAAA,IAAA,CAAKC,YAAL,GAAoBzL,OAAO,CAACyL,YAAR,IAAwBvB,cAA5C,CAAA;AACD,GAAA;;AAEOiB,EAAAA,OAAM,CAAAvJ,SAAN,CAAM8J,MAAN,GAAR,UAAe5I,UAAf,EAAiC;AAC/B;IACA,IAAKsI,CAAAA,aAAL,CAAmBO,KAAnB,CAAyB,CAACC,wBAAwB,CAACC,QAA1B,CAAzB,CAAA,CAAA;;IACA,IAAKT,CAAAA,aAAL,CAAmBR,oBAAnB,CAAwCgB,wBAAwB,CAACE,UAAjE,EAA6EhJ,UAA7E,CAAA,CAAA;GAHM,CAAA;;AAMRqI,EAAAA,OAAA,CAAAvJ,SAAA,CAAAmK,MAAA,GAAA,YAAA;AACE,IAAA,OAAO,IAAKX,CAAAA,aAAL,CAAmBY,KAAnB,EAAP,CAAA;GADF,CAAA;;AAIAb,EAAAA,OAAA,CAAAvJ,SAAA,CAAAqK,OAAA,GAAA,YAAA;AACE,IAAA,OAAO,IAAKb,CAAAA,aAAL,CAAmBc,MAAnB,EAAP,CAAA;GADF,CAAA;;AAIAf,EAAAA,OAAO,CAAAvJ,SAAP,CAAOuK,OAAP,GAAA,UAAQxL,EAAR,EAAmF;AAAzE,IAAA,IAAAmC,UAAU,GAAAnC,EAAA,CAAAmC,UAAV;AAAA,QAAYsJ,KAAK,GAAAzL,EAAA,CAAAyL,KAAjB;AAAA,QAAmBzH,UAAU,GAAAhE,EAAA,CAAAgE,UAA7B;AAAA,QAA+B5B,MAAM,GAAApC,EAAA,CAAAoC,MAArC;AAAA,QAAuCsJ,gBAAgB,GAAA1L,EAAA,CAAA0L,gBAAvD,CAAA;IACR,IAAKX,CAAAA,MAAL,CAAY5I,UAAZ,CAAA,CAAA;;AACA,IAAA,IAAIC,MAAJ,EAAY;AACV,MAAA,IAAA,CAAKqI,aAAL,CAAmBrI,MAAnB,CAA0BA,MAA1B,CAAA,CAAA;AACD,KAAA;;IACD,IAAKqI,CAAAA,aAAL,CAAmBe,OAAnB,CAA2BC,KAA3B,EAAkCzH,UAAlC,EAA8C0H,gBAAgB,IAAI,KAAlE,CAAA,CAAA;GALF,CAAA;;AAQAlB,EAAAA,OAAQ,CAAAvJ,SAAR,CAAQ0K,QAAR,GAAA,UAAS3L,EAAT,EAAsD;QAA3CmC,UAAU,GAAAnC,EAAA,CAAAmC;QAAE6B,UAAU,GAAAhE,EAAA,CAAAgE;IAC/B,IAAK+G,CAAAA,MAAL,CAAY5I,UAAZ,CAAA,CAAA;;AACA,IAAA,IAAA,CAAKsI,aAAL,CAAmBkB,QAAnB,CAA4BxJ,UAA5B,EAAwC6B,UAAxC,CAAA,CAAA;GAFF,CAAA;;AAKAwG,EAAAA,OAAK,CAAAvJ,SAAL,CAAK2K,KAAL,GAAA,UAAMhM,IAAN,EAAiD;AAC/C,IAAA,IAAA,CAAKmL,MAAL,CAAYnL,IAAI,CAACuC,UAAjB,CAAA,CAAA;;AACA,IAAA,IAAA,CAAKsI,aAAL,CAAmBmB,KAAnB,CAAyBhM,IAAI,CAACgM,KAA9B,CAAA,CAAA;GAFF,CAAA;;EAKMpB,OAAA,CAAAvJ,SAAA,CAAAgB,cAAA,GAAN,UACEC,GADF,EAEEC,UAFF,EAGE9C,OAHF,EASG;;;;;;;;;YAEKkD,EAAA,GAAgDlD,OAAO,IAAI,EAA3D,EAAE+C,MAAM,GAAAG,EAAA,CAAAH,MAAR,EAAUC,gBAAgB,GAAAE,EAAA,CAAAF,gBAA1B,EAA4BC,eAAe,GAAAC,EAAA,CAAAD,eAA3C,CAAA;AACFuJ,YAAAA,EAAiD,GAAAxM,OAAO,IAAI,EAA5D,EAAEyM,mBAAmB,GAAAD,EAAA,CAAAC,mBAArB,EAAuBC,qBAAqB,GAAAF,EAAA,CAAAE,qBAA5C;;YAGJ,IAAID,mBAAmB,IAAI/J,SAA3B,EAAsC;AACpC+J,cAAAA,mBAAmB,GAAG,KAAtB,CAAA;AACD,aAAA;;YACD,IAAIC,qBAAqB,IAAIhK,SAA7B,EAAwC;AACtCgK,cAAAA,qBAAqB,GAAG,IAAxB,CAAA;AACD,aAAA;;AAEc,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAM,CAAA/L,EAAA,GAAA,IAAA,CAAK0K,kBAAL,MAAuB,IAAvB,IAAuB1K,EAAA,KAAA,KAAA,CAAvB,GAAuB,KAAA,CAAvB,GAAuBA,EAAA,CAAEiC,cAAF,CAC1CC,GAD0C,EAE1CC,UAF0C,EAG1CC,MAH0C,EAI1CC,gBAJ0C,EAK1CC,eAL0C,CAA7B,CAAA,CAAA;;;AAAXE,YAAAA,QAAQ,GAAGwJ,EAMd,CAAA/L,IANc,EAAX,CAAA;YAQEgM,uBAAuB,GAAGzJ,QAAQ,KAAKT,SAAvC,CAAA;YAEF,IAAA,EAAA,CAACkK,uBAAD,IAA4B,CAACH,mBAA7B,CAAA,EAAA,OAAgD,CAAA,CAAA;AAAA;AAAA,cAAA,CAAA,CAAhD,CAAA;YACF,IAAKf,CAAAA,MAAL,CAAY5I,UAAZ,CAAA,CAAA;;YACA,IAAIC,MAAM,IAAIL,SAAd,EAAyB;AACvB,cAAA,IAAA,CAAK0I,aAAL,CAAmBrI,MAAnB,CAA0BA,MAA1B,CAAA,CAAA;AACD,aAAA;;AAED,YAAA,IAAIC,gBAAJ,EAAsB;AACpB,cAAA,IAAA,CAAKoI,aAAL,CAAmBpI,gBAAnB,CAAoCA,gBAApC,CAAA,CAAA;AACD,aAAA;;AAED,YAAA,IAAIC,eAAJ,EAAqB;AACnB,cAAA,IAAA,CAAKmI,aAAL,CAAmBnI,eAAnB,CAAmCA,eAAnC,CAAA,CAAA;AACD,aAAA;;AACD,YAAA,OAAM,CAAA,CAAA;AAAA;AAAA,cAAA,KAAKmI,aAAL,CAAmByB,uBAAnB,CAA2C,KAA3C,CAAA,CAAN,CAAA;;;AAAAF,YAAAA,EAAA,CAAA/L,IAAA,EAAA,CAAA;;AACAuC,YAAAA,QAAQ,GAAG,IAAKiI,CAAAA,aAAL,CAAmBxI,cAAnB,CAAkCC,GAAlC,CAAX,CAAA;;;;YAGIiK,sBAAsB,GAAG,EAAGnJ,CAAAA,MAAH,CAAGd,GAAH,EAAU,GAAV,CAAUc,CAAAA,MAAV,CAAUR,QAAV,CAAzB,CAAA;;AAEN,YAAA,IACEuJ,qBAAqB,KACpB,EAAE5J,UAAU,IAAI,IAAA,CAAK0I,0BAArB,CACC,IAAA,CAAC,KAAKA,0BAAL,CAAgC1I,UAAhC,CAA4CsG,CAAAA,QAA5C,CAAqD0D,sBAArD,CAFkB,CADvB,EAIE;cACA,IAAIpL,MAAM,CAACqL,IAAP,CAAY,IAAA,CAAKvB,0BAAjB,CAAA,CAA6ClI,MAA7C,IAAuD,IAAKmI,CAAAA,YAAhE,EAA8E;gBAC5E,IAAKD,CAAAA,0BAAL,GAAkC,EAAlC,CAAA;AACD,eAAA;;cACD,IAAIvC,KAAK,CAACC,OAAN,CAAc,IAAA,CAAKsC,0BAAL,CAAgC1I,UAAhC,CAAd,CAAJ,EAAgE;AAC9D,gBAAA,IAAA,CAAK0I,0BAAL,CAAgC1I,UAAhC,CAA4CmE,CAAAA,IAA5C,CAAiD6F,sBAAjD,CAAA,CAAA;AACD,eAFD,MAEO;AACL,gBAAA,IAAA,CAAKtB,0BAAL,CAAgC1I,UAAhC,CAA8C,GAAA,CAACgK,sBAAD,CAA9C,CAAA;AACD,eAAA;;AACD,cAAA,IAAA,CAAKX,OAAL,CAAa;AACXrJ,gBAAAA,UAAU,EAAAA,UADC;AAEXsJ,gBAAAA,KAAK,EAAE,sBAFI;AAGXzH,gBAAAA,UAAU,EAAE;AACVqI,kBAAAA,aAAa,EAAEnK,GADL;AAEVoK,kBAAAA,sBAAsB,EAAE9J,QAFd;AAGV+J,kBAAAA,iBAAiB,EAAEN,uBAAAA;iBANV;AAQX7J,gBAAAA,MAAM,EAAAA,MAAAA;eARR,CAAA,CAAA;AAUD,aAAA;;AACD,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAOI,QAAP,CAAA,CAAA;;;;GA3EI,CAAA;;EA8EAgI,OAAA,CAAAvJ,SAAA,CAAAuL,gBAAA,GAAN,UACEtK,GADF,EAEEC,UAFF,EAGE9C,OAHF,EASG;;;;;;AAEY,YAAA,OAAM,CAAA,CAAA;AAAA;cAAA,IAAA,CAAK4C,cAAL,CAAoBC,GAApB,EAAyBC,UAAzB,EAAqC9C,OAArC,CAAA,CAAN,CAAA;;;AAAPoN,YAAAA,IAAI,GAAGzM,EAAmD,CAAAC,IAAnD,EAAP,CAAA;;YACN,IAAIwM,IAAI,KAAK1K,SAAb,EAAwB;AACtB,cAAA,OAAA,CAAA,CAAA;AAAA;AAAA,gBAAOA,SAAP,CAAA,CAAA;AACD,aAAA;;AACD,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAO,CAAC,CAAC0K,IAAF,IAAU,KAAjB,CAAA,CAAA;;;;GAfI,CAAA;;EAkBAjC,OAAA,CAAAvJ,SAAA,CAAAkC,WAAA,GAAN,UACEhB,UADF,EAEE9C,OAFF,EAOG;;;;;;;;;YAEKkD,EAAA,GAAgDlD,OAAO,IAAI,EAA3D,EAAE+C,MAAM,GAAAG,EAAA,CAAAH,MAAR,EAAUC,gBAAgB,GAAAE,EAAA,CAAAF,gBAA1B,EAA4BC,eAAe,GAAAC,EAAA,CAAAD,eAA3C,CAAA;YACAwJ,mBAAmB,GAAK,CAAAzM,OAAO,IAAI,EAAX,qBAAxB;;YAGN,IAAIyM,mBAAmB,IAAI/J,SAA3B,EAAsC;AACpC+J,cAAAA,mBAAmB,GAAG,KAAtB,CAAA;AACD,aAAA;;AAE6B,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAM,CAAA9L,EAAA,GAAA,IAAA,CAAK0K,kBAAL,UAAA,iBAAA,SAAA,MAAyBvH,YAC3DhB,YACAC,QACAC,kBACAC,gBAJ4B,CAAA,CAAA;;;AAAxBoK,YAAAA,qBAAqB,GAAGb,EAK7B,CAAA5L,IAL6B,EAAxB,CAAA;AAOFuC,YAAAA,QAAQ,GAAG,EAAX,CAAA;AACAY,YAAAA,gBAAgB,GAAG,IAAnB,CAAA;;AACJ,YAAA,IAAIsJ,qBAAJ,EAA2B;cACzBlK,QAAQ,GAAGkK,qBAAqB,CAAClK,QAAjC,CAAA;cACAY,gBAAgB,GAAGsJ,qBAAqB,CAACtJ,gBAAzC,CAAA;AACD,aAAA;;YAEG,IAAA,EAAAA,gBAAgB,IAAI,CAAC0I,mBAArB,CAAA,EAAA,OAAwC,CAAA,CAAA;AAAA;AAAA,cAAA,CAAA,CAAxC,CAAA;YACF,IAAKf,CAAAA,MAAL,CAAY5I,UAAZ,CAAA,CAAA;;AACA,YAAA,IAAIC,MAAJ,EAAY;AACV,cAAA,IAAA,CAAKqI,aAAL,CAAmBrI,MAAnB,CAA0BA,MAA1B,CAAA,CAAA;AACD,aAAA;;AAED,YAAA,IAAIC,gBAAJ,EAAsB;AACpB,cAAA,IAAA,CAAKoI,aAAL,CAAmBpI,gBAAnB,CAAoCA,gBAApC,CAAA,CAAA;AACD,aAAA;;AAED,YAAA,IAAIC,eAAJ,EAAqB;AACnB,cAAA,IAAA,CAAKmI,aAAL,CAAmBnI,eAAnB,CAAmCA,eAAnC,CAAA,CAAA;AACD,aAAA;;AACD,YAAA,OAAM,CAAA,CAAA;AAAA;AAAA,cAAA,KAAKmI,aAAL,CAAmByB,uBAAnB,CAA2C,KAA3C,CAAA,CAAN,CAAA;;;AAAAL,YAAAA,EAAA,CAAA5L,IAAA,EAAA,CAAA;;AACM0M,YAAAA,sBAAsB,GAAG,IAAA,CAAKlC,aAAL,CAAmBmC,eAAnB,EAAzB,CAAA;AAEN,YAAA,OAAY,CAAA,CAAA;AAAA;cAAAC,QAAA,CAAAA,QAAA,CAAA,EAAA,EAAArK,QAAA,CAAA,EAAamK,sBAAb,CAAA,CAAZ,CAAA;;AAGF,UAAA,KAAA,CAAA;AAAA,YAAA,OAAA,CAAA,CAAA;AAAA;AAAA,cAAOnK,QAAP,CAAA,CAAA;;;;GAlDI,CAAA;;AAqDNgI,EAAAA,OAAa,CAAAvJ,SAAb,CAAa6L,aAAb,GAAA,UAAc9M,EAAd,EAAuE;AAAvD,IAAA,IAAA+M,SAAS,eAAT;AAAA,QAAWC,QAAQ,GAAAhN,EAAA,CAAAgN,QAAnB;AAAA,QAAqBhJ,UAAU,GAAAhE,EAAA,CAAAgE,UAA/B,CAAA;;IACd,IAAKyG,CAAAA,aAAL,CAAmBqC,aAAnB,CAAiCC,SAAjC,EAA4CC,QAA5C,EAAsDhJ,UAAtD,CAAA,CAAA;GADF,CAAA;;AAIMwG,EAAAA,OAAA,CAAAvJ,SAAA,CAAAgM,kBAAA,GAAN,YAAA;;;;;;;AACE,YAAA,OAAM,CAAA,CAAA;AAAA;cAAA,CAAAjN,EAAA,GAAA,IAAA,CAAK0K,kBAAL,MAAyB,IAAzB,IAAyB1K,EAAA,KAAA,KAAA,CAAzB,GAAyB,KAAA,CAAzB,GAAyBA,EAAA,CAAAgC,gBAAA,CAAiB,IAAjB,CAAzB,CAAN,CAAA;;;AAAAO,YAAAA,EAAA,CAAAtC,IAAA,EAAA,CAAA;;;;;;;;GADI,CAAA;;AAINuK,EAAAA,OAAA,CAAAvJ,SAAA,CAAAiM,KAAA,GAAA,YAAA;IACE,IAAKzC,CAAAA,aAAL,CAAmByC,KAAnB,EAAA,CAAA;GADF,CAAA;;AAIA1C,EAAAA,OAAA,CAAAvJ,SAAA,CAAAkM,QAAA,GAAA,YAAA;IACE,KAAK,IAAA,CAAKC,aAAL,EAAL,CAAA;GADF,CAAA;;AAIM5C,EAAAA,OAAA,CAAAvJ,SAAA,CAAAmM,aAAA,GAAN,YAAA;;;;;AACE,QAAA,CAAApN,EAAA,GAAA,IAAA,CAAK0K,kBAAL,MAAyB,IAAzB,IAAyB1K,EAAA,KAAA,KAAA,CAAzB,GAAyB,KAAA,CAAzB,GAAyBA,EAAA,CAAA0H,UAAA,EAAzB,CAAA;AACA,QAAA,OAAA,CAAA,CAAA;AAAA;AAAA,UAAO,IAAK+C,CAAAA,aAAL,CAAmB2C,aAAnB,EAAP,CAAA,CAAA;;;GAFI,CAAA;;AAKN5C,EAAAA,OAAK,CAAAvJ,SAAL,CAAK8B,KAAL,GAAA,UAAMsK,OAAN,EAAuB;AACrB,IAAA,OAAO,KAAK5C,aAAL,CAAmB1H,KAAnB,CAAyBsK,OAAzB,CAAP,CAAA;GADF,CAAA;;AAGF,EAAA,OAAC7C,OAAD,CAAA;AAAC,CAvOD;;;;"}
|