@posthog/rrweb 0.0.44 → 0.0.45
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/dist/image-bitmap-data-url-worker-ChEIhO0o.js.map +1 -0
- package/dist/rrweb.cjs +1 -1
- package/dist/rrweb.js +1 -1
- package/dist/rrweb.umd.cjs +1 -1
- package/dist/rrweb.umd.min.cjs +10 -5
- package/dist/rrweb.umd.min.cjs.map +1 -1
- package/package.json +5 -5
- package/dist/image-bitmap-data-url-worker-DqRH07Di.js.map +0 -1
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../rrweb-snapshot/dist/types-OLXvwyjP.js", "../../rrweb-snapshot/dist/record-B2nV9UFB.js", "../../rrweb-snapshot/dist/replay.js", "../../rrdom/dist/rrdom.js", "../../utils/dist/rrweb-utils.js", "../src/utils.ts", "../../types/dist/rrweb-types.js", "../src/record/mutation.ts", "../src/record/error-handler.ts", "../src/record/observer.ts", "../src/record/cross-origin-iframe-mirror.ts", "../src/record/iframe-manager.ts", "../src/record/shadow-dom-manager.ts", "../../../node_modules/.pnpm/base64-arraybuffer@1.0.2/node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js", "../src/record/observers/canvas/serialize-args.ts", "../src/record/observers/canvas/2d.ts", "../src/record/observers/canvas/canvas.ts", "../src/record/observers/canvas/webgl.ts", "../src/record/observers/canvas/canvas-manager.ts", "../src/record/stylesheet-manager.ts", "../src/record/processed-node-manager.ts", "../src/record/index.ts", "../../../node_modules/.pnpm/mitt@3.0.1/node_modules/mitt/dist/mitt.mjs", "../src/replay/smoothscroll.ts", "../src/replay/timer.ts", "../../../node_modules/.pnpm/@xstate+fsm@1.6.5/node_modules/@xstate/fsm/es/index.js", "../src/replay/machine.ts", "../src/replay/styles/inject-style.ts", "../src/replay/canvas/deserialize-args.ts", "../src/replay/canvas/webgl.ts", "../src/replay/canvas/2d.ts", "../src/replay/canvas/index.ts", "../src/replay/media/index.ts", "../src/replay/dialog/index.ts", "../src/replay/index.ts", "../src/index.ts"],
|
|
4
4
|
"sourcesContent": ["var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar NodeType$1 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$1 || {});\nconst testableAccessors = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nfunction angularZoneUnpatchedAlternative(key) {\n var _a, _b;\n const angularUnpatchedVersionSymbol = (_b = (_a = globalThis == null ? void 0 : globalThis.Zone) == null ? void 0 : _a.__symbol__) == null ? void 0 : _b.call(_a, key);\n if (angularUnpatchedVersionSymbol && globalThis[angularUnpatchedVersionSymbol]) {\n return globalThis[angularUnpatchedVersionSymbol];\n } else {\n return void 0;\n }\n}\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const candidate = angularZoneUnpatchedAlternative(key) || globalThis[key];\n const defaultPrototype = candidate.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a, _b;\n return Boolean(\n (_b = (_a = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods ? testableMethods[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a;\n return typeof defaultPrototype[method] === \"function\" && ((_a = defaultPrototype[method]) == null ? void 0 : _a.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods) {\n untaintedBasePrototype[key] = candidate.prototype;\n return candidate.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return candidate.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache[cacheKey])\n return untaintedAccessorCache[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedAccessor = (_a = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache[cacheKey])\n return untaintedMethodCache[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes(n) {\n return getUntaintedAccessor(\"Node\", n, \"childNodes\");\n}\nfunction parentNode(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentNode\");\n}\nfunction parentElement(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentElement\");\n}\nfunction textContent(n) {\n return getUntaintedAccessor(\"Node\", n, \"textContent\");\n}\nfunction contains(n, other) {\n return getUntaintedMethod(\"Node\", n, \"contains\")(other);\n}\nfunction getRootNode(n) {\n return getUntaintedMethod(\"Node\", n, \"getRootNode\")();\n}\nfunction host(n) {\n if (!n || !(\"host\" in n)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n, \"host\");\n}\nfunction styleSheets(n) {\n return n.styleSheets;\n}\nfunction shadowRoot(n) {\n if (!n || !(\"shadowRoot\" in n)) return null;\n return getUntaintedAccessor(\"Element\", n, \"shadowRoot\");\n}\nfunction querySelector(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nconst index = {\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor,\n patch\n};\nfunction isElement(n) {\n return n.nodeType === n.ELEMENT_NODE;\n}\nfunction isShadowRoot(n) {\n const hostEl = (\n // anchor and textarea elements also have a `host` property\n // but only shadow roots have a `mode` property\n n && \"host\" in n && \"mode\" in n && index.host(n) || null\n );\n return Boolean(\n hostEl && \"shadowRoot\" in hostEl && index.shadowRoot(hostEl) === n\n );\n}\nfunction isNativeShadowDom(shadowRoot2) {\n return Object.prototype.toString.call(shadowRoot2) === \"[object ShadowRoot]\";\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(\" background-clip: text;\") && !cssText.includes(\" -webkit-background-clip: text;\")) {\n cssText = cssText.replace(\n /\\sbackground-clip:\\s*text;/g,\n \" -webkit-background-clip: text; background-clip: text;\"\n );\n }\n return cssText;\n}\nfunction escapeImportStatement(rule) {\n const { cssText } = rule;\n if (cssText.split('\"').length < 3) return cssText;\n const statement = [\"@import\", `url(${JSON.stringify(rule.href)})`];\n if (rule.layerName === \"\") {\n statement.push(`layer`);\n } else if (rule.layerName) {\n statement.push(`layer(${rule.layerName})`);\n }\n if (rule.supportsText) {\n statement.push(`supports(${rule.supportsText})`);\n }\n if (rule.media.length) {\n statement.push(rule.media.mediaText);\n }\n return statement.join(\" \") + \";\";\n}\nfunction stringifyStylesheet(s) {\n try {\n const rules = s.rules || s.cssRules;\n if (!rules) {\n return null;\n }\n let sheetHref = s.href;\n if (!sheetHref && s.ownerNode) {\n sheetHref = s.ownerNode.baseURI;\n }\n const stringifiedRules = Array.from(\n rules,\n (rule) => stringifyRule(rule, sheetHref)\n ).join(\"\");\n return fixBrowserCompatibilityIssuesInCSS(stringifiedRules);\n } catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule, sheetHref) {\n var _a;\n if (isCSSImportRule(rule)) {\n let importStringified;\n try {\n importStringified = // for same-origin stylesheets,\n // we can access the imported stylesheet rules directly\n stringifyStylesheet(rule.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n escapeImportStatement(rule);\n } catch (error) {\n importStringified = rule.cssText;\n }\n try {\n if (importStringified && ((_a = rule.styleSheet) == null ? void 0 : _a.href)) {\n return absolutifyURLs(importStringified, rule.styleSheet.href);\n }\n } catch {\n }\n return importStringified;\n } else {\n let ruleStringified = rule.cssText;\n if (isCSSStyleRule(rule) && rule.selectorText.includes(\":\")) {\n ruleStringified = fixSafariColons(ruleStringified);\n }\n if (sheetHref) {\n return absolutifyURLs(ruleStringified, sheetHref);\n }\n return ruleStringified;\n }\n}\nfunction fixSafariColons(cssStringified) {\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, \"$1\\\\$2\");\n}\nfunction isCSSImportRule(rule) {\n return \"styleSheet\" in rule;\n}\nfunction isCSSStyleRule(rule) {\n return \"selectorText\" in rule;\n}\nclass Mirror {\n constructor() {\n __publicField(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n) {\n var _a;\n if (!n) return -1;\n const id = (_a = this.getMeta(n)) == null ? void 0 : _a.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n) {\n return this.nodeMetaMap.get(n) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n) {\n const id = this.getId(n);\n this.idNodeMap.delete(id);\n if (n.childNodes) {\n n.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n if (isElement(n)) {\n const shadowRootEl = index.shadowRoot(n);\n if (shadowRootEl) {\n this.removeNodeFromMap(shadowRootEl);\n }\n if (n.nodeName === \"IFRAME\" && n.contentDocument) {\n this.removeNodeFromMap(\n n.contentDocument\n );\n }\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node) {\n return this.nodeMetaMap.has(node);\n }\n add(n, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n);\n this.nodeMetaMap.set(n, meta);\n }\n replace(id, n) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n, meta);\n }\n this.idNodeMap.set(id, n);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction createMirror() {\n return new Mirror();\n}\nfunction maskInputValue({\n element,\n maskInputOptions,\n tagName,\n type,\n value,\n maskInputFn\n}) {\n let text = value || \"\";\n const actualType = type && toLowerCase(type);\n if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) {\n if (maskInputFn) {\n text = maskInputFn(text, element);\n } else {\n text = \"*\".repeat(text.length);\n }\n }\n return text;\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = \"__rrweb_original__\";\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return true;\n const chunkSize = 50;\n for (let x = 0; x < canvas.width; x += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n const pixelBuffer = new Uint32Array(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n originalGetImageData.call(\n ctx,\n x,\n y,\n Math.min(chunkSize, canvas.width - x),\n Math.min(chunkSize, canvas.height - y)\n ).data.buffer\n );\n if (pixelBuffer.some((pixel) => pixel !== 0)) return false;\n }\n }\n return true;\n}\nfunction isNodeMetaEqual(a, b) {\n if (!a || !b || a.type !== b.type) return false;\n if (a.type === NodeType$1.Document)\n return a.compatMode === b.compatMode;\n else if (a.type === NodeType$1.DocumentType)\n return a.name === b.name && a.publicId === b.publicId && a.systemId === b.systemId;\n else if (a.type === NodeType$1.Comment || a.type === NodeType$1.Text || a.type === NodeType$1.CDATA)\n return a.textContent === b.textContent;\n else if (a.type === NodeType$1.Element)\n return a.tagName === b.tagName && JSON.stringify(a.attributes) === JSON.stringify(b.attributes) && a.isSVG === b.isSVG && a.needBlock === b.needBlock;\n return false;\n}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute(\"data-rr-is-password\") ? \"password\" : type ? (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n toLowerCase(type)\n ) : null;\n}\nfunction extractFileExtension(path, baseURL) {\n let url;\n try {\n url = new URL(path, baseURL ?? window.location.href);\n } catch (err) {\n return null;\n }\n const regex = /\\.([0-9a-z]+)(?:$)/i;\n const match = url.pathname.match(regex);\n return (match == null ? void 0 : match[1]) ?? null;\n}\nfunction extractOrigin(url) {\n let origin = \"\";\n if (url.indexOf(\"//\") > -1) {\n origin = url.split(\"/\").slice(0, 3).join(\"/\");\n } else {\n origin = url.split(\"/\")[0];\n }\n origin = origin.split(\"?\")[0];\n return origin;\n}\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absolutifyURLs(cssText, href) {\n return (cssText || \"\").replace(\n URL_IN_CSS_REF,\n (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || \"\";\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === \"/\") {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split(\"/\");\n const parts = filePath.split(\"/\");\n stack.pop();\n for (const part of parts) {\n if (part === \".\") {\n continue;\n } else if (part === \"..\") {\n stack.pop();\n } else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join(\"/\")}${maybeQuote})`;\n }\n );\n}\nconst STRIPED_PLACEHOLDER_SVG = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxkZWZzPgogICAgPHBhdHRlcm4gaWQ9InN0cmlwZXMiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+CiAgICAgIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iYmxhY2siLz4KICAgICAgPHBhdGggZD0iTTggMEgxNkwwIDE2VjhMOCAwWiIgZmlsbD0iIzJEMkQyRCIvPgogICAgICA8cGF0aCBkPSJNMTYgOFYxNkg4TDE2IDhaIiBmaWxsPSIjMkQyRDJEIi8+CiAgICA8L3BhdHRlcm4+CiAgPC9kZWZzPgogIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjc3RyaXBlcykiLz4KPC9zdmc+Cg==\";\nconst MAX_IMAGE_DIMENSION_FOR_RECOMPRESSION = 4096;\nfunction recompressBase64Image(img, dataURL, type, quality) {\n if (!img.complete || img.naturalWidth === 0) {\n return dataURL;\n }\n if (img.naturalWidth > MAX_IMAGE_DIMENSION_FOR_RECOMPRESSION || img.naturalHeight > MAX_IMAGE_DIMENSION_FOR_RECOMPRESSION) {\n return dataURL;\n }\n try {\n const canvas = document.createElement(\"canvas\");\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n return dataURL;\n }\n ctx.drawImage(img, 0, 0);\n const recompressed = canvas.toDataURL(type || \"image/webp\", quality ?? 0.4);\n return recompressed;\n } catch (err) {\n return dataURL;\n }\n}\nfunction checkDataURLSize(dataURL, maxLength) {\n if (!maxLength || dataURL.length <= maxLength) {\n return dataURL;\n }\n return STRIPED_PLACEHOLDER_SVG;\n}\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType || {});\nexport {\n Mirror as M,\n NodeType as N,\n isShadowRoot as a,\n isNativeShadowDom as b,\n stringifyRule as c,\n isCSSImportRule as d,\n escapeImportStatement as e,\n fixSafariColons as f,\n isCSSStyleRule as g,\n createMirror as h,\n isElement as i,\n is2DCanvasBlank as j,\n isNodeMetaEqual as k,\n getInputType as l,\n maskInputValue as m,\n extractFileExtension as n,\n absolutifyURLs as o,\n checkDataURLSize as p,\n NodeType$1 as q,\n recompressBase64Image as r,\n stringifyStylesheet as s,\n toLowerCase as t,\n index as u\n};\n//# sourceMappingURL=types-OLXvwyjP.js.map\n", "import { M as Mirror, q as NodeType, u as index, b as isNativeShadowDom, i as isElement, a as isShadowRoot, n as extractFileExtension, r as recompressBase64Image, p as checkDataURLSize, o as absolutifyURLs, s as stringifyStylesheet, t as toLowerCase, m as maskInputValue, l as getInputType, j as is2DCanvasBlank } from \"./types-OLXvwyjP.js\";\nlet _id = 1;\nconst tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return \"form\";\n }\n const processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return \"div\";\n }\n return processedTagName;\n}\nlet canvasService;\nlet canvasCtx;\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === \"\") {\n return attributeValue;\n }\n let pos = 0;\n function collectCharacters(regEx) {\n let chars;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars = match[0];\n pos += chars.length;\n return chars;\n }\n return \"\";\n }\n const output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === \",\") {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n } else {\n let descriptorsStr = \"\";\n url = absoluteToDoc(doc, url);\n let inParens = false;\n while (true) {\n const c = attributeValue.charAt(pos);\n if (c === \"\") {\n output.push((url + descriptorsStr).trim());\n break;\n } else if (!inParens) {\n if (c === \",\") {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n } else if (c === \"(\") {\n inParens = true;\n }\n } else {\n if (c === \")\") {\n inParens = false;\n }\n }\n descriptorsStr += c;\n pos += 1;\n }\n }\n }\n return output.join(\", \");\n}\nconst cachedDocument = /* @__PURE__ */ new WeakMap();\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === \"\") {\n return attributeValue;\n }\n return getHref(doc, attributeValue);\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === \"svg\" || el.ownerSVGElement);\n}\nfunction getHref(doc, customHref) {\n let a = cachedDocument.get(doc);\n if (!a) {\n a = doc.createElement(\"a\");\n cachedDocument.set(doc, a);\n }\n if (!customHref) {\n customHref = \"\";\n } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n return customHref;\n }\n a.setAttribute(\"href\", customHref);\n return a.href;\n}\nfunction transformAttribute(doc, tagName, name, value, element, dataURLOptions) {\n if (!value) {\n return value;\n }\n if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n const transformedValue = absoluteToDoc(doc, value);\n if (tagName === \"img\" && transformedValue.startsWith(\"data:\") && element) {\n const img = element;\n let processedDataURL = transformedValue;\n if ((dataURLOptions == null ? void 0 : dataURLOptions.type) || (dataURLOptions == null ? void 0 : dataURLOptions.quality) !== void 0) {\n processedDataURL = recompressBase64Image(\n img,\n transformedValue,\n dataURLOptions.type,\n dataURLOptions.quality\n );\n }\n if (dataURLOptions == null ? void 0 : dataURLOptions.maxBase64ImageLength) {\n processedDataURL = checkDataURLSize(\n processedDataURL,\n dataURLOptions.maxBase64ImageLength\n );\n }\n return processedDataURL;\n }\n return transformedValue;\n } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n return absoluteToDoc(doc, value);\n } else if (name === \"background\" && (tagName === \"table\" || tagName === \"td\" || tagName === \"th\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return absolutifyURLs(value, getHref(doc));\n } else if (tagName === \"object\" && name === \"data\") {\n return absoluteToDoc(doc, value);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return (tagName === \"video\" || tagName === \"audio\") && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n try {\n if (typeof blockClass === \"string\") {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for (let eIndex = element.classList.length; eIndex--; ) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n } catch (e) {\n }\n return false;\n}\nfunction classMatchesRegex(node, regex, checkAncestors) {\n if (!node) return false;\n if (node.nodeType !== node.ELEMENT_NODE) {\n if (!checkAncestors) return false;\n return classMatchesRegex(index.parentNode(node), regex, checkAncestors);\n }\n for (let eIndex = node.classList.length; eIndex--; ) {\n const className = node.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n if (!checkAncestors) return false;\n return classMatchesRegex(index.parentNode(node), regex, checkAncestors);\n}\nfunction needMaskingText(node, maskTextClass, maskTextSelector, checkAncestors) {\n let el;\n if (isElement(node)) {\n el = node;\n if (!index.childNodes(el).length) {\n return false;\n }\n } else if (index.parentElement(node) === null) {\n return false;\n } else {\n el = index.parentElement(node);\n }\n try {\n if (typeof maskTextClass === \"string\") {\n if (checkAncestors) {\n if (el.closest(`.${maskTextClass}`)) return true;\n } else {\n if (el.classList.contains(maskTextClass)) return true;\n }\n } else {\n if (classMatchesRegex(el, maskTextClass, checkAncestors)) return true;\n }\n if (maskTextSelector) {\n if (checkAncestors) {\n if (el.closest(maskTextSelector)) return true;\n } else {\n if (el.matches(maskTextSelector)) return true;\n }\n }\n } catch (e) {\n }\n return false;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n let fired = false;\n let readyState;\n try {\n readyState = win.document.readyState;\n } catch (error) {\n return;\n }\n if (readyState !== \"complete\") {\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n return;\n }\n const blankUrl = \"about:blank\";\n if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === \"\") {\n setTimeout(listener, 0);\n return iframeEl.addEventListener(\"load\", listener);\n }\n iframeEl.addEventListener(\"load\", listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n let fired = false;\n let styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n } catch (error) {\n return;\n }\n if (styleSheetLoaded) return;\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n, options) {\n const {\n doc,\n mirror,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false\n } = options;\n const rootId = getRootId(doc, mirror);\n switch (n.nodeType) {\n case n.DOCUMENT_NODE:\n if (n.compatMode !== \"CSS1Compat\") {\n return {\n type: NodeType.Document,\n childNodes: [],\n compatMode: n.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType.Document,\n childNodes: []\n };\n }\n case n.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType.DocumentType,\n name: n.name,\n publicId: n.publicId,\n systemId: n.systemId,\n rootId\n };\n case n.ELEMENT_NODE:\n return serializeElementNode(n, {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n rootId\n });\n case n.TEXT_NODE:\n return serializeTextNode(n, {\n doc,\n needsMask,\n maskTextFn,\n rootId\n });\n case n.CDATA_SECTION_NODE:\n return {\n type: NodeType.CDATA,\n textContent: \"\",\n rootId\n };\n case n.COMMENT_NODE:\n return {\n type: NodeType.Comment,\n textContent: index.textContent(n) || \"\",\n rootId\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror) {\n if (!mirror.hasNode(doc)) return void 0;\n const docId = mirror.getId(doc);\n return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n, options) {\n var _a;\n const { needsMask, maskTextFn, rootId } = options;\n const parent = index.parentNode(n);\n const parentTagName = parent && parent.tagName;\n let text = index.textContent(n);\n const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isStyle && text) {\n try {\n if (n.nextSibling || n.previousSibling) {\n } else if ((_a = parent.sheet) == null ? void 0 : _a.cssRules) {\n text = stringifyStylesheet(parent.sheet);\n }\n } catch (err) {\n console.warn(\n `Cannot get CSS styles from text's parentNode. Error: ${err}`,\n n\n );\n }\n text = absolutifyURLs(text, getHref(options.doc));\n }\n if (isScript) {\n text = \"SCRIPT_PLACEHOLDER\";\n }\n if (!isStyle && !isScript && text && needsMask) {\n text = maskTextFn ? maskTextFn(text, index.parentElement(n)) : text.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType.Text,\n textContent: text || \"\",\n isStyle,\n rootId\n };\n}\nfunction findStylesheet(doc, href) {\n return Array.from(doc.styleSheets).find((s) => s.href === href);\n}\nfunction hrefFrom(n) {\n return n.href;\n}\nfunction serializeElementNode(n, options) {\n var _a, _b;\n const {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions = {},\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n rootId\n } = options;\n const needBlock = _isBlockedElement(n, blockClass, blockSelector);\n const tagName = getValidTagName(n);\n let attributes = {};\n const len = n.attributes.length;\n for (let i = 0; i < len; i++) {\n const attr = n.attributes[i];\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\n attributes[attr.name] = transformAttribute(\n doc,\n tagName,\n toLowerCase(attr.name),\n attr.value,\n n,\n dataURLOptions\n );\n }\n }\n if (tagName === \"link\" && inlineStylesheet) {\n const href = hrefFrom(n);\n if (href) {\n let stylesheet = findStylesheet(doc, href);\n if (!stylesheet && href.includes(\".css\")) {\n const rootDomain = window.location.origin;\n const stylesheetPath = href.replace(window.location.href, \"\");\n const potentialStylesheetHref = rootDomain + \"/\" + stylesheetPath;\n stylesheet = findStylesheet(doc, potentialStylesheetHref);\n }\n let cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = cssText;\n }\n }\n }\n if (tagName === \"style\" && n.sheet && // TODO: Currently we only try to get dynamic stylesheet when it is an empty style element\n !(n.innerText || index.textContent(n) || \"\").trim().length) {\n const cssText = stringifyStylesheet(\n n.sheet\n );\n if (cssText) {\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\n const value = n.value;\n const checked = n.checked;\n if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n attributes.value = maskInputValue({\n element: n,\n type: getInputType(n),\n tagName,\n value,\n maskInputOptions,\n maskInputFn\n });\n } else if (checked) {\n attributes.checked = checked;\n }\n }\n if (tagName === \"option\") {\n if (n.selected && !maskInputOptions[\"select\"]) {\n attributes.selected = true;\n } else {\n delete attributes.selected;\n }\n }\n if (tagName === \"dialog\" && n.open) {\n try {\n attributes.rr_open_mode = n.matches(\"dialog:modal\") ? \"modal\" : \"non-modal\";\n } catch {\n attributes.rr_open_mode = \"modal\";\n attributes.ph_rr_could_not_detect_modal = true;\n }\n }\n if (tagName === \"canvas\" && recordCanvas) {\n if (n.__context === \"2d\") {\n if (!is2DCanvasBlank(n)) {\n attributes.rr_dataURL = n.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n }\n } else if (!(\"__context\" in n)) {\n const canvasDataURL = n.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n const blankCanvas = doc.createElement(\"canvas\");\n blankCanvas.width = n.width;\n blankCanvas.height = n.height;\n const blankCanvasDataURL = blankCanvas.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === \"img\" && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement(\"canvas\");\n canvasCtx = canvasService.getContext(\"2d\");\n }\n const image = n;\n const imageSrc = image.currentSrc || image.getAttribute(\"src\") || \"<unknown-src>\";\n const priorCrossOrigin = image.crossOrigin;\n const recordInlineImage = () => {\n image.removeEventListener(\"load\", recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n } catch (err) {\n if (image.crossOrigin !== \"anonymous\") {\n image.crossOrigin = \"anonymous\";\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n return;\n } else {\n console.warn(\n `Cannot inline img src=${imageSrc}! Error: ${err}`\n );\n }\n }\n if (image.crossOrigin === \"anonymous\") {\n priorCrossOrigin ? attributes.crossOrigin = priorCrossOrigin : image.removeAttribute(\"crossorigin\");\n }\n };\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n }\n if (tagName === \"audio\" || tagName === \"video\") {\n const mediaAttributes = attributes;\n mediaAttributes.rr_mediaState = n.paused ? \"paused\" : \"played\";\n mediaAttributes.rr_mediaCurrentTime = n.currentTime;\n mediaAttributes.rr_mediaPlaybackRate = n.playbackRate;\n mediaAttributes.rr_mediaMuted = n.muted;\n mediaAttributes.rr_mediaLoop = n.loop;\n mediaAttributes.rr_mediaVolume = n.volume;\n }\n if (!newlyAddedElement) {\n if (n.scrollLeft) {\n attributes.rr_scrollLeft = n.scrollLeft;\n }\n if (n.scrollTop) {\n attributes.rr_scrollTop = n.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height, left, top } = n.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`,\n rr_left: `${Math.floor(left + (((_a = doc.defaultView) == null ? void 0 : _a.scrollX) || 0))}px`,\n rr_top: `${Math.floor(top + (((_b = doc.defaultView) == null ? void 0 : _b.scrollY) || 0))}px`\n };\n }\n if (tagName === \"iframe\" && !keepIframeSrcFn(attributes.src)) {\n if (!n.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n let isCustomElement;\n try {\n if (customElements.get(tagName)) isCustomElement = true;\n } catch (e) {\n }\n return {\n type: NodeType.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n) || void 0,\n needBlock,\n rootId,\n isCustom: isCustomElement\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === void 0 || maybeAttr === null) {\n return \"\";\n } else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType.Comment) {\n return true;\n } else if (sn.type === NodeType.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" && sn.attributes.as === \"script\" || sn.attributes.rel === \"modulepreload\") || // prefetch link\n sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(\n /^msapplication-tile(image|color)$/\n ) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n return true;\n } else if (sn.tagName === \"meta\") {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n return true;\n }\n }\n }\n return false;\n}\nconst DEFAULT_MAX_DEPTH = 50;\nlet _maxDepthWarned = false;\nlet _maxDepthReached = false;\nfunction wasMaxDepthReached() {\n return _maxDepthReached;\n}\nfunction resetMaxDepthState() {\n _maxDepthReached = false;\n _maxDepthWarned = false;\n}\nfunction serializeNodeWithId(n, options) {\n const {\n doc,\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild = false,\n inlineStylesheet = true,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions = {},\n inlineImages = false,\n recordCanvas = false,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout = 5e3,\n onStylesheetLoad,\n stylesheetLoadTimeout = 5e3,\n keepIframeSrcFn = () => false,\n newlyAddedElement = false,\n depth = 0,\n maxDepth = DEFAULT_MAX_DEPTH\n } = options;\n let { needsMask } = options;\n let { preserveWhiteSpace = true } = options;\n if (depth >= maxDepth) {\n _maxDepthReached = true;\n if (!_maxDepthWarned) {\n _maxDepthWarned = true;\n console.warn(\n `[rrweb-snapshot] DOM tree depth exceeded max depth of ${maxDepth}. Children beyond this depth will not be recorded. This may indicate deeply nested DOM structures.`\n );\n }\n return null;\n }\n if (!needsMask) {\n const checkAncestors = needsMask === void 0;\n needsMask = needMaskingText(\n n,\n maskTextClass,\n maskTextSelector,\n checkAncestors\n );\n }\n const _serializedNode = serializeNode(n, {\n doc,\n mirror,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement\n });\n if (!_serializedNode) {\n console.warn(n, \"not serialized\");\n return null;\n }\n let id;\n if (mirror.hasNode(n)) {\n id = mirror.getId(n);\n } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType.Text && !_serializedNode.isStyle && !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, \"\").length) {\n id = IGNORED_NODE;\n } else {\n id = genId();\n }\n const serializedNode = Object.assign(_serializedNode, { id });\n mirror.add(n, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRootEl = index.shadowRoot(n);\n if (shadowRootEl && isNativeShadowDom(shadowRootEl))\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType.Document || serializedNode.type === NodeType.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType.Element && serializedNode.tagName === \"head\") {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n depth: depth + 1,\n maxDepth\n };\n if (serializedNode.type === NodeType.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\n for (const childN of Array.from(index.childNodes(n))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n let shadowRootEl = null;\n if (isElement(n) && (shadowRootEl = index.shadowRoot(n))) {\n for (const childN of Array.from(index.childNodes(shadowRootEl))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(shadowRootEl) && (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n const parent = index.parentNode(n);\n if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType.Element && serializedNode.tagName === \"iframe\") {\n onceIframeLoaded(\n n,\n () => {\n const iframeDoc = n.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n depth: depth + 1,\n maxDepth\n });\n if (serializedIframeNode) {\n onIframeLoad(\n n,\n serializedIframeNode\n );\n }\n }\n },\n iframeLoadTimeout\n );\n }\n if (serializedNode.type === NodeType.Element && serializedNode.tagName === \"link\" && typeof serializedNode.attributes.rel === \"string\" && (serializedNode.attributes.rel === \"stylesheet\" || serializedNode.attributes.rel === \"preload\" && typeof serializedNode.attributes.href === \"string\" && extractFileExtension(serializedNode.attributes.href) === \"css\")) {\n onceStylesheetLoaded(\n n,\n () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n, {\n doc,\n mirror,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n depth,\n maxDepth\n });\n if (serializedLinkNode) {\n onStylesheetLoad(\n n,\n serializedLinkNode\n );\n }\n }\n },\n stylesheetLoadTimeout\n );\n }\n return serializedNode;\n}\nfunction snapshot(n, options) {\n const {\n mirror = new Mirror(),\n blockClass = \"rr-block\",\n blockSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n inlineImages = false,\n recordCanvas = false,\n maskAllInputs = false,\n maskTextFn,\n maskInputFn,\n slimDOM = false,\n dataURLOptions,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn = () => false,\n maxDepth\n } = options || {};\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n const slimDOMOptions = slimDOM === true || slimDOM === \"all\" ? (\n // if true: set of sensible options that should not throw away any information\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === \"all\",\n // destructive\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true\n }\n ) : slimDOM === false ? {} : slimDOM;\n return serializeNodeWithId(n, {\n doc: n,\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false,\n maxDepth\n });\n}\nfunction visitSnapshot(node, onVisit) {\n function walk(current) {\n onVisit(current);\n if (current.type === NodeType.Document || current.type === NodeType.Element) {\n current.childNodes.forEach(walk);\n }\n }\n walk(node);\n}\nfunction cleanupSnapshot() {\n _id = 1;\n}\nexport {\n DEFAULT_MAX_DEPTH as D,\n IGNORED_NODE as I,\n serializeNodeWithId as a,\n classMatchesRegex as b,\n cleanupSnapshot as c,\n genId as g,\n ignoreAttribute as i,\n needMaskingText as n,\n resetMaxDepthState as r,\n snapshot as s,\n transformAttribute as t,\n visitSnapshot as v,\n wasMaxDepthReached as w\n};\n//# sourceMappingURL=record-B2nV9UFB.js.map\n", "import { M as Mirror, k as isNodeMetaEqual, q as NodeType, i as isElement, n as extractFileExtension } from \"./types-OLXvwyjP.js\";\nimport { N, o, p, h, e, f, l, j, d, g, b, a, m, r, c, s, t } from \"./types-OLXvwyjP.js\";\nconst MEDIA_SELECTOR = /(max|min)-device-(width|height)/;\nconst MEDIA_SELECTOR_GLOBAL = new RegExp(MEDIA_SELECTOR.source, \"g\");\nconst mediaSelectorPlugin = {\n postcssPlugin: \"postcss-custom-selectors\",\n prepare() {\n return {\n postcssPlugin: \"postcss-custom-selectors\",\n AtRule: function(atrule) {\n if (atrule.params.match(MEDIA_SELECTOR_GLOBAL)) {\n atrule.params = atrule.params.replace(MEDIA_SELECTOR_GLOBAL, \"$1-$2\");\n }\n }\n };\n }\n};\nconst pseudoClassPlugin = {\n postcssPlugin: \"postcss-hover-classes\",\n prepare: function() {\n const fixed = [];\n return {\n Rule: function(rule2) {\n if (fixed.indexOf(rule2) !== -1) {\n return;\n }\n fixed.push(rule2);\n rule2.selectors.forEach(function(selector) {\n if (selector.includes(\":hover\")) {\n rule2.selector += \",\\n\" + selector.replace(/:hover/g, \".\\\\:hover\");\n }\n });\n }\n };\n }\n};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nfunction getAugmentedNamespace(n) {\n if (Object.prototype.hasOwnProperty.call(n, \"__esModule\")) return n;\n var f2 = n.default;\n if (typeof f2 == \"function\") {\n var a2 = function a3() {\n if (this instanceof a3) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n).forEach(function(k) {\n var d2 = Object.getOwnPropertyDescriptor(n, k);\n Object.defineProperty(a2, k, d2.get ? d2 : {\n enumerable: true,\n get: function() {\n return n[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser = { exports: {} };\nvar hasRequiredPicocolors_browser;\nfunction requirePicocolors_browser() {\n if (hasRequiredPicocolors_browser) return picocolors_browser.exports;\n hasRequiredPicocolors_browser = 1;\n var x = String;\n var create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x, blackBright: x, redBright: x, greenBright: x, yellowBright: x, blueBright: x, magentaBright: x, cyanBright: x, whiteBright: x, bgBlackBright: x, bgRedBright: x, bgGreenBright: x, bgYellowBright: x, bgBlueBright: x, bgMagentaBright: x, bgCyanBright: x, bgWhiteBright: x };\n };\n picocolors_browser.exports = create();\n picocolors_browser.exports.createColors = create;\n return picocolors_browser.exports;\n}\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nvar cssSyntaxError;\nvar hasRequiredCssSyntaxError;\nfunction requireCssSyntaxError() {\n if (hasRequiredCssSyntaxError) return cssSyntaxError;\n hasRequiredCssSyntaxError = 1;\n let pico = /* @__PURE__ */ requirePicocolors_browser();\n let terminalHighlight = require$$2;\n class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin) {\n this.plugin = plugin;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n let aside = (text) => text;\n let mark = (text) => text;\n let highlight = (text) => text;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n if (terminalHighlight) {\n highlight = (text) => terminalHighlight(text);\n }\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n return lines.slice(start, end).map((line, index) => {\n let number = start + 1 + index;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n if (line.length > 160) {\n let padding = 20;\n let subLineStart = Math.max(0, this.column - padding);\n let subLineEnd = Math.max(\n this.column + padding,\n this.endColumn + padding\n );\n let subLine = line.slice(subLineStart, subLineEnd);\n let spacing2 = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, Math.min(this.column - 1, padding - 1)).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + highlight(subLine) + \"\\n \" + spacing2 + mark(\"^\");\n }\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + highlight(line) + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + highlight(line);\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n }\n cssSyntaxError = CssSyntaxError;\n CssSyntaxError.default = CssSyntaxError;\n return cssSyntaxError;\n}\nvar stringifier;\nvar hasRequiredStringifier;\nfunction requireStringifier() {\n if (hasRequiredStringifier) return stringifier;\n hasRequiredStringifier = 1;\n const DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n };\n function capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n }\n class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i = 0; i < node2.nodes.length; i++) {\n let child = node2.nodes[i];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i) => {\n value = i.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== \"undefined\") {\n value = i.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i) => {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i) => {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i) => {\n if (i.type !== \"decl\") {\n value = i.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && (i.parent !== root2 || root2.first !== i)) {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i) => {\n if (typeof i.raws.between !== \"undefined\") {\n value = i.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i) => {\n let p2 = i.parent;\n if (p2 && p2 !== root2 && p2.parent && p2.parent === root2) {\n if (typeof i.raws.before !== \"undefined\") {\n let parts = i.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length && i.last.type === \"decl\") {\n value = i.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n }\n stringifier = Stringifier;\n Stringifier.default = Stringifier;\n return stringifier;\n}\nvar stringify_1;\nvar hasRequiredStringify;\nfunction requireStringify() {\n if (hasRequiredStringify) return stringify_1;\n hasRequiredStringify = 1;\n let Stringifier = requireStringifier();\n function stringify(node2, builder) {\n let str = new Stringifier(builder);\n str.stringify(node2);\n }\n stringify_1 = stringify;\n stringify.default = stringify;\n return stringify_1;\n}\nvar symbols = {};\nvar hasRequiredSymbols;\nfunction requireSymbols() {\n if (hasRequiredSymbols) return symbols;\n hasRequiredSymbols = 1;\n symbols.isClean = Symbol(\"isClean\");\n symbols.my = Symbol(\"my\");\n return symbols;\n}\nvar node;\nvar hasRequiredNode;\nfunction requireNode() {\n if (hasRequiredNode) return node;\n hasRequiredNode = 1;\n let CssSyntaxError = requireCssSyntaxError();\n let Stringifier = requireStringifier();\n let stringify = requireStringify();\n let { isClean, my } = requireSymbols();\n function cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n continue;\n }\n if (i === \"proxyCache\") continue;\n let value = obj[i];\n let type = typeof value;\n if (i === \"parent\" && type === \"object\") {\n if (parent) cloned[i] = parent;\n } else if (i === \"source\") {\n cloned[i] = value;\n } else if (Array.isArray(value)) {\n cloned[i] = value.map((j2) => cloneNode(j2, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i] = value;\n }\n }\n return cloned;\n }\n function sourceOffset(inputCSS, position) {\n if (position && typeof position.offset !== \"undefined\") {\n return position.offset;\n }\n let column = 1;\n let line = 1;\n let offset = 0;\n for (let i = 0; i < inputCSS.length; i++) {\n if (line === position.line && column === position.column) {\n offset = i;\n break;\n }\n if (inputCSS[i] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return offset;\n }\n class Node {\n get proxyOf() {\n return this;\n }\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean] = false;\n this[my] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n /* c8 ignore next 3 */\n markClean() {\n this[isClean] = true;\n }\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index = this.parent.index(this);\n return this.parent.nodes[index + 1];\n }\n positionBy(opts = {}) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index);\n } else if (opts.word) {\n let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n let stringRepresentation = inputString.slice(\n sourceOffset(inputString, this.source.start),\n sourceOffset(inputString, this.source.end)\n );\n let index = stringRepresentation.indexOf(opts.word);\n if (index !== -1) pos = this.positionInside(index);\n }\n return pos;\n }\n positionInside(index) {\n let column = this.source.start.column;\n let line = this.source.start.line;\n let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n let offset = sourceOffset(inputString, this.source.start);\n let end = offset + index;\n for (let i = offset; i < end; i++) {\n if (inputString[i] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line, offset: end };\n }\n prev() {\n if (!this.parent) return void 0;\n let index = this.parent.index(this);\n return this.parent.nodes[index - 1];\n }\n rangeBy(opts = {}) {\n let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n let start = {\n column: this.source.start.column,\n line: this.source.start.line,\n offset: sourceOffset(inputString, this.source.start)\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line,\n offset: typeof this.source.end.offset === \"number\" ? (\n // `source.end.offset` is exclusive, so we don't need to add 1\n this.source.end.offset\n ) : (\n // Since line/column in this.source.end is inclusive,\n // the `sourceOffset(... , this.source.end)` returns an inclusive offset.\n // So, we add 1 to convert it to exclusive.\n sourceOffset(inputString, this.source.end) + 1\n )\n } : {\n column: start.column + 1,\n line: start.line,\n offset: start.offset + 1\n };\n if (opts.word) {\n let stringRepresentation = inputString.slice(\n sourceOffset(inputString, this.source.start),\n sourceOffset(inputString, this.source.end)\n );\n let index = stringRepresentation.indexOf(opts.word);\n if (index !== -1) {\n start = this.positionInside(index);\n end = this.positionInside(index + opts.word.length);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line,\n offset: sourceOffset(inputString, opts.start)\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line,\n offset: sourceOffset(inputString, opts.end)\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = {\n column: start.column + 1,\n line: start.line,\n offset: start.offset + 1\n };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i) => {\n if (typeof i === \"object\" && i.toJSON) {\n return i.toJSON(null, inputs);\n } else {\n return i;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n if (value == null) continue;\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i) => {\n result2 += i;\n });\n return result2;\n }\n warn(result2, text, opts = {}) {\n let data = { node: this };\n for (let i in opts) data[i] = opts[i];\n return result2.warn(text, data);\n }\n }\n node = Node;\n Node.default = Node;\n return node;\n}\nvar comment;\nvar hasRequiredComment;\nfunction requireComment() {\n if (hasRequiredComment) return comment;\n hasRequiredComment = 1;\n let Node = requireNode();\n class Comment extends Node {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n }\n comment = Comment;\n Comment.default = Comment;\n return comment;\n}\nvar declaration;\nvar hasRequiredDeclaration;\nfunction requireDeclaration() {\n if (hasRequiredDeclaration) return declaration;\n hasRequiredDeclaration = 1;\n let Node = requireNode();\n class Declaration extends Node {\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n }\n declaration = Declaration;\n Declaration.default = Declaration;\n return declaration;\n}\nvar container;\nvar hasRequiredContainer;\nfunction requireContainer() {\n if (hasRequiredContainer) return container;\n hasRequiredContainer = 1;\n let Comment = requireComment();\n let Declaration = requireDeclaration();\n let Node = requireNode();\n let { isClean, my } = requireSymbols();\n let AtRule, parse, Root, Rule;\n function cleanSource(nodes) {\n return nodes.map((i) => {\n if (i.nodes) i.nodes = cleanSource(i.nodes);\n delete i.source;\n return i;\n });\n }\n function markTreeDirty(node2) {\n node2[isClean] = false;\n if (node2.proxyOf.nodes) {\n for (let i of node2.proxyOf.nodes) {\n markTreeDirty(i);\n }\n }\n }\n class Container extends Node {\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index], index);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i) => {\n if (typeof i === \"function\") {\n return (child, index) => i(child.toProxy(), index);\n } else {\n return i;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i) => i.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index;\n for (let id in this.indexes) {\n index = this.indexes[id];\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(\n add,\n this.proxyOf.nodes[existIndex],\n type\n ).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index;\n for (let id in this.indexes) {\n index = this.indexes[id];\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration(nodes)];\n } else if (nodes.selector || nodes.selectors) {\n nodes = [new Rule(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i) => {\n if (!i[my]) Container.rebuild(i);\n i = i.proxyOf;\n if (i.parent) i.parent.removeChild(i);\n if (i[isClean]) markTreeDirty(i);\n if (!i.raws) i.raws = {};\n if (typeof i.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i.parent = this.proxyOf;\n return i;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index;\n for (let id in this.indexes) {\n index = this.indexes[id];\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i) => {\n let result2;\n try {\n result2 = callback(child, i);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i) => {\n if (child.type === \"atrule\") {\n return callback(child, i);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === \"comment\") {\n return callback(child, i);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i) => {\n if (child.type === \"decl\") {\n return callback(child, i);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i) => {\n if (child.type === \"rule\") {\n return callback(child, i);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i);\n }\n });\n }\n }\n Container.registerParse = (dependant) => {\n parse = dependant;\n };\n Container.registerRule = (dependant) => {\n Rule = dependant;\n };\n Container.registerAtRule = (dependant) => {\n AtRule = dependant;\n };\n Container.registerRoot = (dependant) => {\n Root = dependant;\n };\n container = Container;\n Container.default = Container;\n Container.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root.prototype);\n }\n node2[my] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container.rebuild(child);\n });\n }\n };\n return container;\n}\nvar atRule;\nvar hasRequiredAtRule;\nfunction requireAtRule() {\n if (hasRequiredAtRule) return atRule;\n hasRequiredAtRule = 1;\n let Container = requireContainer();\n class AtRule extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n }\n atRule = AtRule;\n AtRule.default = AtRule;\n Container.registerAtRule(AtRule);\n return atRule;\n}\nvar document;\nvar hasRequiredDocument;\nfunction requireDocument() {\n if (hasRequiredDocument) return document;\n hasRequiredDocument = 1;\n let Container = requireContainer();\n let LazyResult, Processor;\n class Document extends Container {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n }\n }\n Document.registerLazyResult = (dependant) => {\n LazyResult = dependant;\n };\n Document.registerProcessor = (dependant) => {\n Processor = dependant;\n };\n document = Document;\n Document.default = Document;\n return document;\n}\nvar nonSecure;\nvar hasRequiredNonSecure;\nfunction requireNonSecure() {\n if (hasRequiredNonSecure) return nonSecure;\n hasRequiredNonSecure = 1;\n let urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\n let customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i = size | 0;\n while (i--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n };\n let nanoid = (size = 21) => {\n let id = \"\";\n let i = size | 0;\n while (i--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n };\n nonSecure = { nanoid, customAlphabet };\n return nonSecure;\n}\nvar previousMap;\nvar hasRequiredPreviousMap;\nfunction requirePreviousMap() {\n if (hasRequiredPreviousMap) return previousMap;\n hasRequiredPreviousMap = 1;\n let { existsSync, readFileSync } = require$$2;\n let { dirname, join } = require$$2;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n function fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n }\n class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n let uriMatch = text.match(charsetUri) || text.match(uri);\n if (uriMatch) {\n return decodeURIComponent(text.substr(uriMatch[0].length));\n }\n let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri);\n if (baseUriMatch) {\n return fromBase64(text.substr(baseUriMatch[0].length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/g);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n }\n previousMap = PreviousMap;\n PreviousMap.default = PreviousMap;\n return previousMap;\n}\nvar input;\nvar hasRequiredInput;\nfunction requireInput() {\n if (hasRequiredInput) return input;\n hasRequiredInput = 1;\n let { nanoid } = /* @__PURE__ */ requireNonSecure();\n let { isAbsolute, resolve } = require$$2;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n let { fileURLToPath, pathToFileURL } = require$$2;\n let CssSyntaxError = requireCssSyntaxError();\n let PreviousMap = requirePreviousMap();\n let terminalHighlight = require$$2;\n let lineToIndexCache = Symbol(\"lineToIndexCache\");\n let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n let pathAvailable = Boolean(resolve && isAbsolute);\n function getLineToIndex(input2) {\n if (input2[lineToIndexCache]) return input2[lineToIndexCache];\n let lines = input2.css.split(\"\\n\");\n let lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i = 0, l2 = lines.length; i < l2; i++) {\n lineToIndex[i] = prevIndex;\n prevIndex += lines[i].length + 1;\n }\n input2[lineToIndexCache] = lineToIndex;\n return lineToIndex;\n }\n class Input {\n get from() {\n return this.file || this.id;\n }\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n this.document = this.css;\n if (opts.document) this.document = opts.document.toString();\n if (opts.from) {\n if (!pathAvailable || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve(opts.from);\n }\n }\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let endColumn, endLine, endOffset, offset, result2;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n offset = start.offset;\n let pos = this.fromOffset(offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n offset = this.fromLineAndColumn(line, column);\n }\n if (typeof end.offset === \"number\") {\n endOffset = end.offset;\n let pos = this.fromOffset(endOffset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n endOffset = this.fromLineAndColumn(end.line, end.column);\n }\n } else if (!column) {\n offset = line;\n let pos = this.fromOffset(offset);\n line = pos.line;\n column = pos.col;\n } else {\n offset = this.fromLineAndColumn(line, column);\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css };\n if (this.file) {\n if (pathToFileURL) {\n result2.input.url = pathToFileURL(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromLineAndColumn(line, column) {\n let lineToIndex = getLineToIndex(this);\n let index = lineToIndex[line - 1];\n return index + column - 1;\n }\n fromOffset(offset) {\n let lineToIndex = getLineToIndex(this);\n let lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n }\n input = Input;\n Input.default = Input;\n if (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input);\n }\n return input;\n}\nvar root;\nvar hasRequiredRoot;\nfunction requireRoot() {\n if (hasRequiredRoot) return root;\n hasRequiredRoot = 1;\n let Container = requireContainer();\n let LazyResult, Processor;\n class Root extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index = this.index(child);\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n }\n }\n Root.registerLazyResult = (dependant) => {\n LazyResult = dependant;\n };\n Root.registerProcessor = (dependant) => {\n Processor = dependant;\n };\n root = Root;\n Root.default = Root;\n Container.registerRoot(Root);\n return root;\n}\nvar list_1;\nvar hasRequiredList;\nfunction requireList() {\n if (hasRequiredList) return list_1;\n hasRequiredList = 1;\n let list = {\n comma(string) {\n return list.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n };\n list_1 = list;\n list.default = list;\n return list_1;\n}\nvar rule;\nvar hasRequiredRule;\nfunction requireRule() {\n if (hasRequiredRule) return rule;\n hasRequiredRule = 1;\n let Container = requireContainer();\n let list = requireList();\n class Rule extends Container {\n get selectors() {\n return list.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep);\n }\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n }\n rule = Rule;\n Rule.default = Rule;\n Container.registerRule(Rule);\n return rule;\n}\nvar fromJSON_1;\nvar hasRequiredFromJSON;\nfunction requireFromJSON() {\n if (hasRequiredFromJSON) return fromJSON_1;\n hasRequiredFromJSON = 1;\n let AtRule = requireAtRule();\n let Comment = requireComment();\n let Declaration = requireDeclaration();\n let Input = requireInput();\n let PreviousMap = requirePreviousMap();\n let Root = requireRoot();\n let Rule = requireRule();\n function fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map((n) => fromJSON(n));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n) => fromJSON(n, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n }\n fromJSON_1 = fromJSON;\n fromJSON.default = fromJSON;\n return fromJSON_1;\n}\nvar mapGenerator;\nvar hasRequiredMapGenerator;\nfunction requireMapGenerator() {\n if (hasRequiredMapGenerator) return mapGenerator;\n hasRequiredMapGenerator = 1;\n let { dirname, relative, resolve, sep } = require$$2;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n let { pathToFileURL } = require$$2;\n let Input = requireInput();\n let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n let pathAvailable = Boolean(dirname && resolve && relative && sep);\n class MapGenerator {\n constructor(stringify, root2, opts, cssString) {\n this.stringify = stringify;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node2 = this.root.nodes[i];\n if (node2.type !== \"comment\") continue;\n if (node2.text.startsWith(\"# sourceMappingURL=\")) {\n this.root.removeChild(i);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i) => {\n result2 += i;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let last, lines;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p2 = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p2.last || p2.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i) => i.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i) => i.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i) => i.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n }\n mapGenerator = MapGenerator;\n return mapGenerator;\n}\nvar tokenize;\nvar hasRequiredTokenize;\nfunction requireTokenize() {\n if (hasRequiredTokenize) return tokenize;\n hasRequiredTokenize = 1;\n const SINGLE_QUOTE = \"'\".charCodeAt(0);\n const DOUBLE_QUOTE = '\"'.charCodeAt(0);\n const BACKSLASH = \"\\\\\".charCodeAt(0);\n const SLASH = \"/\".charCodeAt(0);\n const NEWLINE = \"\\n\".charCodeAt(0);\n const SPACE = \" \".charCodeAt(0);\n const FEED = \"\\f\".charCodeAt(0);\n const TAB = \"\t\".charCodeAt(0);\n const CR = \"\\r\".charCodeAt(0);\n const OPEN_SQUARE = \"[\".charCodeAt(0);\n const CLOSE_SQUARE = \"]\".charCodeAt(0);\n const OPEN_PARENTHESES = \"(\".charCodeAt(0);\n const CLOSE_PARENTHESES = \")\".charCodeAt(0);\n const OPEN_CURLY = \"{\".charCodeAt(0);\n const CLOSE_CURLY = \"}\".charCodeAt(0);\n const SEMICOLON = \";\".charCodeAt(0);\n const ASTERISK = \"*\".charCodeAt(0);\n const COLON = \":\".charCodeAt(0);\n const AT = \"@\".charCodeAt(0);\n const RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\n const RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\n const RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\n const RE_HEX_ESCAPE = /[\\da-f]/i;\n tokenize = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, content, escape, next, quote;\n let currentToken, escaped, escapePos, n, prev;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n };\n return tokenize;\n}\nvar parser;\nvar hasRequiredParser;\nfunction requireParser() {\n if (hasRequiredParser) return parser;\n hasRequiredParser = 1;\n let AtRule = requireAtRule();\n let Comment = requireComment();\n let Declaration = requireDeclaration();\n let Root = requireRoot();\n let Rule = requireRule();\n let tokenizer = requireTokenize();\n const SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n };\n function findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n }\n class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j2 = colon - 1; j2 >= 0; j2--) {\n token = tokens[j2];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let prev, token, type;\n for (let [i, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j2 = i; j2 > 0; j2--) {\n let type = cache[j2][0];\n if (str.trim().startsWith(\"!\") && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().startsWith(\"!\")) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i) => i[0] !== \"space\" && i[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i) => i[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n prev.source.end = this.getPosition(token[2]);\n prev.source.end.offset += prev.raws.ownSemicolon.length;\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i = 0; i < length; i += 1) {\n token = tokens[i];\n type = token[0];\n if (type === \"space\" && i === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i - 1] ? tokens[i - 1][0] : \"empty\";\n next = tokens[i + 1] ? tokens[i + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i = from; i < tokens.length; i++) {\n result2 += tokens[i][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word \" + tokens[0][1],\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n }\n parser = Parser;\n return parser;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n let Container = requireContainer();\n let Input = requireInput();\n let Parser = requireParser();\n function parse(css, opts) {\n let input2 = new Input(css, opts);\n let parser2 = new Parser(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n }\n parse_1 = parse;\n parse.default = parse;\n Container.registerParse(parse);\n return parse_1;\n}\nvar warning;\nvar hasRequiredWarning;\nfunction requireWarning() {\n if (hasRequiredWarning) return warning;\n hasRequiredWarning = 1;\n class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n }\n warning = Warning;\n Warning.default = Warning;\n return warning;\n}\nvar result;\nvar hasRequiredResult;\nfunction requireResult() {\n if (hasRequiredResult) return result;\n hasRequiredResult = 1;\n let Warning = requireWarning();\n class Result {\n get content() {\n return this.css;\n }\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = \"\";\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i) => i.type === \"warning\");\n }\n }\n result = Result;\n Result.default = Result;\n return result;\n}\nvar warnOnce;\nvar hasRequiredWarnOnce;\nfunction requireWarnOnce() {\n if (hasRequiredWarnOnce) return warnOnce;\n hasRequiredWarnOnce = 1;\n let printed = {};\n warnOnce = function warnOnce2(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n };\n return warnOnce;\n}\nvar lazyResult;\nvar hasRequiredLazyResult;\nfunction requireLazyResult() {\n if (hasRequiredLazyResult) return lazyResult;\n hasRequiredLazyResult = 1;\n let Container = requireContainer();\n let Document = requireDocument();\n let MapGenerator = requireMapGenerator();\n let parse = requireParse();\n let Result = requireResult();\n let Root = requireRoot();\n let stringify = requireStringify();\n let { isClean, my } = requireSymbols();\n let warnOnce2 = requireWarnOnce();\n const TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n };\n const PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n };\n const NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n };\n const CHILDREN = 0;\n function isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n }\n function getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n }\n function toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n }\n function cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i) => cleanMarks(i));\n return node2;\n }\n let postcss2 = {};\n class LazyResult {\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult || css instanceof Result) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container.rebuild(root2);\n }\n }\n this.result = new Result(processor2, root2, opts);\n this.helpers = { ...postcss2, postcss: postcss2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin) => {\n if (typeof plugin === \"object\" && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) };\n } else {\n return plugin;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin.postcssPlugin;\n error.setMessage();\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin.postcssPlugin;\n let pluginVer = plugin.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b2 = runtimeVer.split(\".\");\n if (a2[0] !== b2[0] || parseInt(a2[1]) > parseInt(b2[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin, cb]);\n };\n for (let plugin of this.plugins) {\n if (typeof plugin === \"object\") {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === \"object\") {\n for (let filter in plugin[event]) {\n if (filter === \"*\") {\n add(plugin, event, plugin[event][filter]);\n } else {\n add(\n plugin,\n event + \"-\" + filter.toLowerCase(),\n plugin[event][filter]\n );\n }\n }\n } else if (typeof plugin[event] === \"function\") {\n add(plugin, event, plugin[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i];\n let promise = this.runOnRoot(plugin);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin;\n try {\n if (typeof plugin === \"object\" && plugin.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin.Once(this.result.root, this.helpers);\n } else if (typeof plugin === \"function\") {\n return plugin(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n }\n LazyResult.registerPostcss = (dependant) => {\n postcss2 = dependant;\n };\n lazyResult = LazyResult;\n LazyResult.default = LazyResult;\n Root.registerLazyResult(LazyResult);\n Document.registerLazyResult(LazyResult);\n return lazyResult;\n}\nvar noWorkResult;\nvar hasRequiredNoWorkResult;\nfunction requireNoWorkResult() {\n if (hasRequiredNoWorkResult) return noWorkResult;\n hasRequiredNoWorkResult = 1;\n let MapGenerator = requireMapGenerator();\n let parse = requireParse();\n const Result = requireResult();\n let stringify = requireStringify();\n let warnOnce2 = requireWarnOnce();\n class NoWorkResult {\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify;\n this.result = new Result(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n }\n noWorkResult = NoWorkResult;\n NoWorkResult.default = NoWorkResult;\n return noWorkResult;\n}\nvar processor;\nvar hasRequiredProcessor;\nfunction requireProcessor() {\n if (hasRequiredProcessor) return processor;\n hasRequiredProcessor = 1;\n let Document = requireDocument();\n let LazyResult = requireLazyResult();\n let NoWorkResult = requireNoWorkResult();\n let Root = requireRoot();\n class Processor {\n constructor(plugins = []) {\n this.version = \"8.5.6\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i();\n } else if (i.postcss) {\n i = i.postcss;\n }\n if (typeof i === \"object\" && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins);\n } else if (typeof i === \"object\" && i.postcssPlugin) {\n normalized.push(i);\n } else if (typeof i === \"function\") {\n normalized.push(i);\n } else if (typeof i === \"object\" && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult(this, css, opts);\n } else {\n return new LazyResult(this, css, opts);\n }\n }\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]));\n return this;\n }\n }\n processor = Processor;\n Processor.default = Processor;\n Root.registerProcessor(Processor);\n Document.registerProcessor(Processor);\n return processor;\n}\nvar postcss_1;\nvar hasRequiredPostcss;\nfunction requirePostcss() {\n if (hasRequiredPostcss) return postcss_1;\n hasRequiredPostcss = 1;\n let AtRule = requireAtRule();\n let Comment = requireComment();\n let Container = requireContainer();\n let CssSyntaxError = requireCssSyntaxError();\n let Declaration = requireDeclaration();\n let Document = requireDocument();\n let fromJSON = requireFromJSON();\n let Input = requireInput();\n let LazyResult = requireLazyResult();\n let list = requireList();\n let Node = requireNode();\n let parse = requireParse();\n let Processor = requireProcessor();\n let Result = requireResult();\n let Root = requireRoot();\n let Rule = requireRule();\n let stringify = requireStringify();\n let Warning = requireWarning();\n function postcss2(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor(plugins);\n }\n postcss2.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss2([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n };\n postcss2.stringify = stringify;\n postcss2.parse = parse;\n postcss2.fromJSON = fromJSON;\n postcss2.list = list;\n postcss2.comment = (defaults) => new Comment(defaults);\n postcss2.atRule = (defaults) => new AtRule(defaults);\n postcss2.decl = (defaults) => new Declaration(defaults);\n postcss2.rule = (defaults) => new Rule(defaults);\n postcss2.root = (defaults) => new Root(defaults);\n postcss2.document = (defaults) => new Document(defaults);\n postcss2.CssSyntaxError = CssSyntaxError;\n postcss2.Declaration = Declaration;\n postcss2.Container = Container;\n postcss2.Processor = Processor;\n postcss2.Document = Document;\n postcss2.Comment = Comment;\n postcss2.Warning = Warning;\n postcss2.AtRule = AtRule;\n postcss2.Result = Result;\n postcss2.Input = Input;\n postcss2.Rule = Rule;\n postcss2.Root = Root;\n postcss2.Node = Node;\n LazyResult.registerPostcss(postcss2);\n postcss_1 = postcss2;\n postcss2.default = postcss2;\n return postcss_1;\n}\nvar safeParser$1;\nvar hasRequiredSafeParser;\nfunction requireSafeParser() {\n if (hasRequiredSafeParser) return safeParser$1;\n hasRequiredSafeParser = 1;\n let Comment = requireComment();\n let Parser = requireParser();\n let tokenizer = requireTokenize();\n class SafeParser extends Parser {\n checkMissedSemicolon() {\n }\n comment(token) {\n let node2 = new Comment();\n this.init(node2, token[2]);\n let pos = this.input.fromOffset(token[3]) || this.input.fromOffset(this.input.css.length - 1);\n node2.source.end = {\n column: pos.col,\n line: pos.line,\n offset: token[3] + 1\n };\n let text = token[1].slice(2);\n if (text.slice(-2) === \"*/\") text = text.slice(0, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer(this.input, { ignoreErrors: true });\n }\n decl(tokens) {\n if (tokens.length > 1 && tokens.some((i) => i[0] === \"word\")) {\n super.decl(tokens);\n }\n }\n doubleColon() {\n }\n endFile() {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n while (this.current.parent) {\n this.current = this.current.parent;\n this.current.raws.after = \"\";\n }\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n precheckMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let nextStart, prevEnd;\n for (nextStart = colon - 1; nextStart >= 0; nextStart--) {\n if (tokens[nextStart][0] === \"word\") break;\n }\n if (nextStart === 0 || nextStart < 0) return;\n for (prevEnd = nextStart - 1; prevEnd >= 0; prevEnd--) {\n if (tokens[prevEnd][0] !== \"space\") {\n prevEnd += 1;\n break;\n }\n }\n let other = tokens.slice(nextStart);\n let spaces = tokens.slice(prevEnd, nextStart);\n tokens.splice(prevEnd, tokens.length - prevEnd);\n this.spaces = spaces.map((i) => i[1]).join(\"\");\n this.decl(other);\n }\n unclosedBracket() {\n }\n unexpectedClose() {\n this.current.raws.after += \"}\";\n }\n unknownWord(tokens) {\n this.spaces += tokens.map((i) => i[1]).join(\"\");\n }\n unnamedAtrule(node2) {\n node2.name = \"\";\n }\n }\n safeParser$1 = SafeParser;\n return safeParser$1;\n}\nvar safeParse;\nvar hasRequiredSafeParse;\nfunction requireSafeParse() {\n if (hasRequiredSafeParse) return safeParse;\n hasRequiredSafeParse = 1;\n let { Input } = requirePostcss();\n let SafeParser = requireSafeParser();\n safeParse = function safeParse2(css, opts) {\n let input2 = new Input(css, opts);\n let parser2 = new SafeParser(input2);\n parser2.parse();\n return parser2.root;\n };\n return safeParse;\n}\nvar safeParseExports = requireSafeParse();\nconst safeParser = /* @__PURE__ */ getDefaultExportFromCjs(safeParseExports);\nvar postcssExports = requirePostcss();\nconst postcss = /* @__PURE__ */ getDefaultExportFromCjs(postcssExports);\npostcss.stringify;\npostcss.fromJSON;\npostcss.plugin;\npostcss.parse;\npostcss.list;\npostcss.document;\npostcss.comment;\npostcss.atRule;\npostcss.rule;\npostcss.decl;\npostcss.root;\npostcss.CssSyntaxError;\npostcss.Declaration;\npostcss.Container;\npostcss.Processor;\npostcss.Document;\npostcss.Comment;\npostcss.Warning;\npostcss.AtRule;\npostcss.Result;\npostcss.Input;\npostcss.Rule;\npostcss.Root;\npostcss.Node;\nconst tagMap = {\n script: \"noscript\",\n // camel case svg element tag names\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nfunction getTagName(n) {\n let tagName = tagMap[n.tagName] ? tagMap[n.tagName] : n.tagName;\n if (tagName === \"link\" && n.attributes._cssText) {\n tagName = \"style\";\n }\n return tagName;\n}\nfunction adaptCssForReplay(cssText, cache) {\n const cachedStyle = cache == null ? void 0 : cache.stylesWithHoverClass.get(cssText);\n if (cachedStyle) return cachedStyle;\n let result2 = cssText;\n try {\n const ast = postcss([\n mediaSelectorPlugin,\n pseudoClassPlugin\n ]).process(cssText, { parser: safeParser });\n result2 = ast.css;\n } catch (error) {\n console.warn(\"Failed to adapt css for replay\", error);\n }\n cache == null ? void 0 : cache.stylesWithHoverClass.set(cssText, result2);\n return result2;\n}\nfunction createCache() {\n const stylesWithHoverClass = /* @__PURE__ */ new Map();\n return {\n stylesWithHoverClass\n };\n}\nfunction safeDocNode(n, options) {\n let stringContent = n.textContent;\n if (n.isStyle && options.hackCss) {\n try {\n stringContent = adaptCssForReplay(n.textContent, options.cache);\n } catch {\n }\n }\n return options.doc.createTextNode(stringContent);\n}\nfunction buildNode(n, options) {\n var _a;\n const { doc, hackCss, cache } = options;\n switch (n.type) {\n case NodeType.Document:\n return doc.implementation.createDocument(null, \"\", null);\n case NodeType.DocumentType:\n return doc.implementation.createDocumentType(\n n.name || \"html\",\n n.publicId,\n n.systemId\n );\n case NodeType.Element: {\n const tagName = getTagName(n);\n let node2;\n if (n.isSVG) {\n node2 = doc.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\n } else {\n if (\n // If the tag name is a custom element name\n n.isCustom && // If the browser supports custom elements\n ((_a = doc.defaultView) == null ? void 0 : _a.customElements) && // If the custom element hasn't been defined yet\n !doc.defaultView.customElements.get(n.tagName)\n )\n doc.defaultView.customElements.define(\n n.tagName,\n class extends doc.defaultView.HTMLElement {\n }\n );\n node2 = doc.createElement(tagName);\n }\n const specialAttributes = {};\n for (const name in n.attributes) {\n if (!Object.prototype.hasOwnProperty.call(n.attributes, name)) {\n continue;\n }\n let value = n.attributes[name];\n if (tagName === \"option\" && name === \"selected\" && value === false) {\n continue;\n }\n if (value === null) {\n continue;\n }\n if (value === true) value = \"\";\n if (name.startsWith(\"rr_\")) {\n specialAttributes[name] = value;\n continue;\n }\n const isTextarea = tagName === \"textarea\" && name === \"value\";\n const isRemoteOrDynamicCss = tagName === \"style\" && name === \"_cssText\";\n if (isRemoteOrDynamicCss && hackCss && typeof value === \"string\") {\n value = adaptCssForReplay(value, cache);\n }\n if ((isTextarea || isRemoteOrDynamicCss) && typeof value === \"string\") {\n node2.appendChild(doc.createTextNode(value));\n n.childNodes = [];\n continue;\n }\n try {\n if (n.isSVG && name === \"xlink:href\") {\n node2.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n name,\n value.toString()\n );\n } else if (name === \"onload\" || name === \"onclick\" || name.substring(0, 7) === \"onmouse\") {\n node2.setAttribute(\"_\" + name, value.toString());\n } else if (tagName === \"meta\" && n.attributes[\"http-equiv\"] === \"Content-Security-Policy\" && name === \"content\") {\n node2.setAttribute(\"csp-content\", value.toString());\n continue;\n } else if (tagName === \"link\" && (n.attributes.rel === \"preload\" && n.attributes.as === \"script\" || n.attributes.rel === \"modulepreload\")) {\n } else if (tagName === \"link\" && n.attributes.rel === \"prefetch\" && typeof n.attributes.href === \"string\" && extractFileExtension(n.attributes.href) === \"js\") {\n } else if (tagName === \"img\" && n.attributes.srcset && n.attributes.rr_dataURL) {\n node2.setAttribute(\n \"rrweb-original-srcset\",\n n.attributes.srcset\n );\n } else {\n node2.setAttribute(name, value.toString());\n }\n } catch (error) {\n }\n }\n for (const name in specialAttributes) {\n const value = specialAttributes[name];\n if (tagName === \"canvas\" && name === \"rr_dataURL\") {\n const image = doc.createElement(\"img\");\n image.onload = () => {\n const ctx = node2.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = value.toString();\n if (node2.RRNodeType)\n node2.rr_dataURL = value.toString();\n } else if (tagName === \"img\" && name === \"rr_dataURL\") {\n const image = node2;\n if (!image.currentSrc.startsWith(\"data:\")) {\n image.setAttribute(\n \"rrweb-original-src\",\n n.attributes.src\n );\n image.src = value.toString();\n }\n }\n if (name === \"rr_width\") {\n node2.style.setProperty(\"width\", value.toString());\n } else if (name === \"rr_height\") {\n node2.style.setProperty(\"height\", value.toString());\n } else if (name === \"rr_left\") {\n node2.style.setProperty(\"left\", value.toString());\n node2.style.setProperty(\"position\", \"absolute\");\n } else if (name === \"rr_top\") {\n node2.style.setProperty(\"top\", value.toString());\n node2.style.setProperty(\"position\", \"absolute\");\n } else if (name === \"rr_mediaCurrentTime\" && typeof value === \"number\") {\n node2.currentTime = value;\n } else if (name === \"rr_mediaState\") {\n switch (value) {\n case \"played\":\n node2.play().catch((e2) => console.warn(\"media playback error\", e2));\n break;\n case \"paused\":\n node2.pause();\n break;\n }\n } else if (name === \"rr_mediaPlaybackRate\" && typeof value === \"number\") {\n node2.playbackRate = value;\n } else if (name === \"rr_mediaMuted\" && typeof value === \"boolean\") {\n node2.muted = value;\n } else if (name === \"rr_mediaLoop\" && typeof value === \"boolean\") {\n node2.loop = value;\n } else if (name === \"rr_mediaVolume\" && typeof value === \"number\") {\n node2.volume = value;\n } else if (name === \"rr_open_mode\") {\n node2.setAttribute(\n \"rr_open_mode\",\n value\n );\n }\n }\n if (n.isShadowHost) {\n if (!node2.shadowRoot) {\n node2.attachShadow({ mode: \"open\" });\n } else {\n while (node2.shadowRoot.firstChild) {\n node2.shadowRoot.removeChild(node2.shadowRoot.firstChild);\n }\n }\n }\n return node2;\n }\n case NodeType.Text:\n return safeDocNode(n, {\n cache,\n doc,\n hackCss\n });\n case NodeType.CDATA:\n if (n.textContent.trim() === \"\") {\n return null;\n }\n return doc.createCDATASection(n.textContent);\n case NodeType.Comment:\n return doc.createComment(n.textContent);\n default:\n return null;\n }\n}\nfunction buildNodeWithSN(n, options) {\n const {\n doc,\n mirror,\n skipChild = false,\n hackCss = true,\n afterAppend,\n cache\n } = options;\n if (mirror.has(n.id)) {\n const nodeInMirror = mirror.getNode(n.id);\n const meta = mirror.getMeta(nodeInMirror);\n if (isNodeMetaEqual(meta, n)) return mirror.getNode(n.id);\n }\n let node2 = buildNode(n, { doc, hackCss, cache });\n if (!node2) {\n return null;\n }\n if (n.rootId && mirror.getNode(n.rootId) !== doc) {\n mirror.replace(n.rootId, doc);\n }\n if (n.type === NodeType.Document) {\n doc.close();\n doc.open();\n if (n.compatMode === \"BackCompat\" && n.childNodes && n.childNodes[0].type !== NodeType.DocumentType) {\n if (n.childNodes[0].type === NodeType.Element && \"xmlns\" in n.childNodes[0].attributes && n.childNodes[0].attributes.xmlns === \"http://www.w3.org/1999/xhtml\") {\n doc.write(\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">'\n );\n } else {\n doc.write(\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">'\n );\n }\n }\n node2 = doc;\n }\n mirror.add(node2, n);\n if ((n.type === NodeType.Document || n.type === NodeType.Element) && !skipChild) {\n for (const childN of n.childNodes) {\n const childNode = buildNodeWithSN(childN, {\n doc,\n mirror,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n if (!childNode) {\n console.warn(\"Failed to rebuild\", childN);\n continue;\n }\n if (childN.isShadow && isElement(node2) && node2.shadowRoot) {\n node2.shadowRoot.appendChild(childNode);\n } else if (n.type === NodeType.Document && childN.type == NodeType.Element) {\n const htmlElement = childNode;\n let body = null;\n htmlElement.childNodes.forEach((child) => {\n if (child.nodeName === \"BODY\") body = child;\n });\n if (body) {\n htmlElement.removeChild(body);\n node2.appendChild(childNode);\n htmlElement.appendChild(body);\n } else {\n node2.appendChild(childNode);\n }\n } else if (n.type === NodeType.Document && childN.type === NodeType.DocumentType) {\n if (node2.firstChild && node2.firstChild.nodeType === 1) {\n node2.insertBefore(childNode, node2.firstChild);\n } else {\n node2.appendChild(childNode);\n }\n } else {\n node2.appendChild(childNode);\n }\n if (afterAppend) {\n afterAppend(childNode, childN.id);\n }\n }\n }\n return node2;\n}\nfunction visit(mirror, onVisit) {\n function walk(node2) {\n onVisit(node2);\n }\n for (const id of mirror.getIds()) {\n if (mirror.has(id)) {\n walk(mirror.getNode(id));\n }\n }\n}\nfunction handleScroll(node2, mirror) {\n const n = mirror.getMeta(node2);\n if ((n == null ? void 0 : n.type) !== NodeType.Element) {\n return;\n }\n const el = node2;\n for (const name in n.attributes) {\n if (!(Object.prototype.hasOwnProperty.call(n.attributes, name) && name.startsWith(\"rr_\"))) {\n continue;\n }\n const value = n.attributes[name];\n if (name === \"rr_scrollLeft\") {\n el.scrollLeft = value;\n }\n if (name === \"rr_scrollTop\") {\n el.scrollTop = value;\n }\n }\n}\nfunction rebuild(n, options) {\n const {\n doc,\n onVisit,\n hackCss = true,\n afterAppend,\n cache,\n mirror = new Mirror()\n } = options;\n const node2 = buildNodeWithSN(n, {\n doc,\n mirror,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n visit(mirror, (visitedNode) => {\n if (onVisit) {\n onVisit(visitedNode);\n }\n handleScroll(visitedNode, mirror);\n });\n return node2;\n}\nexport {\n Mirror,\n N as NodeType,\n o as absolutifyURLs,\n adaptCssForReplay,\n buildNodeWithSN,\n p as checkDataURLSize,\n createCache,\n h as createMirror,\n e as escapeImportStatement,\n extractFileExtension,\n f as fixSafariColons,\n l as getInputType,\n j as is2DCanvasBlank,\n d as isCSSImportRule,\n g as isCSSStyleRule,\n isElement,\n b as isNativeShadowDom,\n isNodeMetaEqual,\n a as isShadowRoot,\n m as maskInputValue,\n rebuild,\n r as recompressBase64Image,\n c as stringifyRule,\n s as stringifyStylesheet,\n t as toLowerCase\n};\n//# sourceMappingURL=replay.js.map\n", "var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nconst testableAccessors = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nfunction angularZoneUnpatchedAlternative(key) {\n var _a, _b;\n const angularUnpatchedVersionSymbol = (_b = (_a = globalThis == null ? void 0 : globalThis.Zone) == null ? void 0 : _a.__symbol__) == null ? void 0 : _b.call(_a, key);\n if (angularUnpatchedVersionSymbol && globalThis[angularUnpatchedVersionSymbol]) {\n return globalThis[angularUnpatchedVersionSymbol];\n } else {\n return void 0;\n }\n}\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const candidate = angularZoneUnpatchedAlternative(key) || globalThis[key];\n const defaultPrototype = candidate.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a, _b;\n return Boolean(\n (_b = (_a = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods ? testableMethods[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a;\n return typeof defaultPrototype[method] === \"function\" && ((_a = defaultPrototype[method]) == null ? void 0 : _a.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods) {\n untaintedBasePrototype[key] = candidate.prototype;\n return candidate.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return candidate.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache[cacheKey])\n return untaintedAccessorCache[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedAccessor = (_a = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache[cacheKey])\n return untaintedMethodCache[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes(n) {\n return getUntaintedAccessor(\"Node\", n, \"childNodes\");\n}\nfunction parentNode(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentNode\");\n}\nfunction parentElement(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentElement\");\n}\nfunction textContent(n) {\n return getUntaintedAccessor(\"Node\", n, \"textContent\");\n}\nfunction contains(n, other) {\n return getUntaintedMethod(\"Node\", n, \"contains\")(other);\n}\nfunction getRootNode(n) {\n return getUntaintedMethod(\"Node\", n, \"getRootNode\")();\n}\nfunction host(n) {\n if (!n || !(\"host\" in n)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n, \"host\");\n}\nfunction styleSheets(n) {\n return n.styleSheets;\n}\nfunction shadowRoot(n) {\n if (!n || !(\"shadowRoot\" in n)) return null;\n return getUntaintedAccessor(\"Element\", n, \"shadowRoot\");\n}\nfunction querySelector(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nconst index = {\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor,\n patch\n};\nfunction isElement(n) {\n return n.nodeType === n.ELEMENT_NODE;\n}\nlet Mirror$1 = class Mirror {\n constructor() {\n __publicField2(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField2(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n) {\n var _a;\n if (!n) return -1;\n const id = (_a = this.getMeta(n)) == null ? void 0 : _a.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n) {\n return this.nodeMetaMap.get(n) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n) {\n const id = this.getId(n);\n this.idNodeMap.delete(id);\n if (n.childNodes) {\n n.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n if (isElement(n)) {\n const shadowRootEl = index.shadowRoot(n);\n if (shadowRootEl) {\n this.removeNodeFromMap(shadowRootEl);\n }\n if (n.nodeName === \"IFRAME\" && n.contentDocument) {\n this.removeNodeFromMap(\n n.contentDocument\n );\n }\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n);\n this.nodeMetaMap.set(n, meta);\n }\n replace(id, n) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n, meta);\n }\n this.idNodeMap.set(id, n);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n};\nfunction createMirror$1() {\n return new Mirror$1();\n}\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nfunction getAugmentedNamespace(n) {\n if (Object.prototype.hasOwnProperty.call(n, \"__esModule\")) return n;\n var f2 = n.default;\n if (typeof f2 == \"function\") {\n var a2 = function a3() {\n if (this instanceof a3) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n).forEach(function(k) {\n var d2 = Object.getOwnPropertyDescriptor(n, k);\n Object.defineProperty(a2, k, d2.get ? d2 : {\n enumerable: true,\n get: function() {\n return n[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser = { exports: {} };\nvar hasRequiredPicocolors_browser;\nfunction requirePicocolors_browser() {\n if (hasRequiredPicocolors_browser) return picocolors_browser.exports;\n hasRequiredPicocolors_browser = 1;\n var x = String;\n var create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x, blackBright: x, redBright: x, greenBright: x, yellowBright: x, blueBright: x, magentaBright: x, cyanBright: x, whiteBright: x, bgBlackBright: x, bgRedBright: x, bgGreenBright: x, bgYellowBright: x, bgBlueBright: x, bgMagentaBright: x, bgCyanBright: x, bgWhiteBright: x };\n };\n picocolors_browser.exports = create();\n picocolors_browser.exports.createColors = create;\n return picocolors_browser.exports;\n}\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nvar cssSyntaxError;\nvar hasRequiredCssSyntaxError;\nfunction requireCssSyntaxError() {\n if (hasRequiredCssSyntaxError) return cssSyntaxError;\n hasRequiredCssSyntaxError = 1;\n let pico = /* @__PURE__ */ requirePicocolors_browser();\n let terminalHighlight = require$$2;\n class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin) {\n this.plugin = plugin;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"<css input>\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n let aside = (text) => text;\n let mark = (text) => text;\n let highlight = (text) => text;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n if (terminalHighlight) {\n highlight = (text) => terminalHighlight(text);\n }\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n if (line.length > 160) {\n let padding = 20;\n let subLineStart = Math.max(0, this.column - padding);\n let subLineEnd = Math.max(\n this.column + padding,\n this.endColumn + padding\n );\n let subLine = line.slice(subLineStart, subLineEnd);\n let spacing2 = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, Math.min(this.column - 1, padding - 1)).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + highlight(subLine) + \"\\n \" + spacing2 + mark(\"^\");\n }\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + highlight(line) + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + highlight(line);\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n }\n cssSyntaxError = CssSyntaxError;\n CssSyntaxError.default = CssSyntaxError;\n return cssSyntaxError;\n}\nvar stringifier;\nvar hasRequiredStringifier;\nfunction requireStringifier() {\n if (hasRequiredStringifier) return stringifier;\n hasRequiredStringifier = 1;\n const DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n };\n function capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n }\n class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i = 0; i < node2.nodes.length; i++) {\n let child = node2.nodes[i];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i) => {\n value = i.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== \"undefined\") {\n value = i.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i) => {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i) => {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i) => {\n if (i.type !== \"decl\") {\n value = i.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && (i.parent !== root2 || root2.first !== i)) {\n if (typeof i.raws.before !== \"undefined\") {\n value = i.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i) => {\n if (typeof i.raws.between !== \"undefined\") {\n value = i.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i) => {\n let p2 = i.parent;\n if (p2 && p2 !== root2 && p2.parent && p2.parent === root2) {\n if (typeof i.raws.before !== \"undefined\") {\n let parts = i.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i) => {\n if (i.nodes && i.nodes.length && i.last.type === \"decl\") {\n value = i.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n }\n stringifier = Stringifier;\n Stringifier.default = Stringifier;\n return stringifier;\n}\nvar stringify_1;\nvar hasRequiredStringify;\nfunction requireStringify() {\n if (hasRequiredStringify) return stringify_1;\n hasRequiredStringify = 1;\n let Stringifier = requireStringifier();\n function stringify(node2, builder) {\n let str = new Stringifier(builder);\n str.stringify(node2);\n }\n stringify_1 = stringify;\n stringify.default = stringify;\n return stringify_1;\n}\nvar symbols = {};\nvar hasRequiredSymbols;\nfunction requireSymbols() {\n if (hasRequiredSymbols) return symbols;\n hasRequiredSymbols = 1;\n symbols.isClean = Symbol(\"isClean\");\n symbols.my = Symbol(\"my\");\n return symbols;\n}\nvar node;\nvar hasRequiredNode;\nfunction requireNode() {\n if (hasRequiredNode) return node;\n hasRequiredNode = 1;\n let CssSyntaxError = requireCssSyntaxError();\n let Stringifier = requireStringifier();\n let stringify = requireStringify();\n let { isClean, my } = requireSymbols();\n function cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n continue;\n }\n if (i === \"proxyCache\") continue;\n let value = obj[i];\n let type = typeof value;\n if (i === \"parent\" && type === \"object\") {\n if (parent) cloned[i] = parent;\n } else if (i === \"source\") {\n cloned[i] = value;\n } else if (Array.isArray(value)) {\n cloned[i] = value.map((j2) => cloneNode(j2, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i] = value;\n }\n }\n return cloned;\n }\n function sourceOffset(inputCSS, position) {\n if (position && typeof position.offset !== \"undefined\") {\n return position.offset;\n }\n let column = 1;\n let line = 1;\n let offset = 0;\n for (let i = 0; i < inputCSS.length; i++) {\n if (line === position.line && column === position.column) {\n offset = i;\n break;\n }\n if (inputCSS[i] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return offset;\n }\n class Node {\n get proxyOf() {\n return this;\n }\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean] = false;\n this[my] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n /* c8 ignore next 3 */\n markClean() {\n this[isClean] = true;\n }\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts = {}) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index);\n } else if (opts.word) {\n let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n let stringRepresentation = inputString.slice(\n sourceOffset(inputString, this.source.start),\n sourceOffset(inputString, this.source.end)\n );\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2);\n }\n return pos;\n }\n positionInside(index2) {\n let column = this.source.start.column;\n let line = this.source.start.line;\n let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n let offset = sourceOffset(inputString, this.source.start);\n let end = offset + index2;\n for (let i = offset; i < end; i++) {\n if (inputString[i] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line, offset: end };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts = {}) {\n let inputString = \"document\" in this.source.input ? this.source.input.document : this.source.input.css;\n let start = {\n column: this.source.start.column,\n line: this.source.start.line,\n offset: sourceOffset(inputString, this.source.start)\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line,\n offset: typeof this.source.end.offset === \"number\" ? (\n // `source.end.offset` is exclusive, so we don't need to add 1\n this.source.end.offset\n ) : (\n // Since line/column in this.source.end is inclusive,\n // the `sourceOffset(... , this.source.end)` returns an inclusive offset.\n // So, we add 1 to convert it to exclusive.\n sourceOffset(inputString, this.source.end) + 1\n )\n } : {\n column: start.column + 1,\n line: start.line,\n offset: start.offset + 1\n };\n if (opts.word) {\n let stringRepresentation = inputString.slice(\n sourceOffset(inputString, this.source.start),\n sourceOffset(inputString, this.source.end)\n );\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2);\n end = this.positionInside(index2 + opts.word.length);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line,\n offset: sourceOffset(inputString, opts.start)\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line,\n offset: sourceOffset(inputString, opts.end)\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = {\n column: start.column + 1,\n line: start.line,\n offset: start.offset + 1\n };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i) => {\n if (typeof i === \"object\" && i.toJSON) {\n return i.toJSON(null, inputs);\n } else {\n return i;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n if (value == null) continue;\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i) => {\n result2 += i;\n });\n return result2;\n }\n warn(result2, text, opts = {}) {\n let data = { node: this };\n for (let i in opts) data[i] = opts[i];\n return result2.warn(text, data);\n }\n }\n node = Node;\n Node.default = Node;\n return node;\n}\nvar comment;\nvar hasRequiredComment;\nfunction requireComment() {\n if (hasRequiredComment) return comment;\n hasRequiredComment = 1;\n let Node = requireNode();\n class Comment extends Node {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n }\n comment = Comment;\n Comment.default = Comment;\n return comment;\n}\nvar declaration;\nvar hasRequiredDeclaration;\nfunction requireDeclaration() {\n if (hasRequiredDeclaration) return declaration;\n hasRequiredDeclaration = 1;\n let Node = requireNode();\n class Declaration extends Node {\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n }\n declaration = Declaration;\n Declaration.default = Declaration;\n return declaration;\n}\nvar container;\nvar hasRequiredContainer;\nfunction requireContainer() {\n if (hasRequiredContainer) return container;\n hasRequiredContainer = 1;\n let Comment = requireComment();\n let Declaration = requireDeclaration();\n let Node = requireNode();\n let { isClean, my } = requireSymbols();\n let AtRule, parse, Root, Rule;\n function cleanSource(nodes) {\n return nodes.map((i) => {\n if (i.nodes) i.nodes = cleanSource(i.nodes);\n delete i.source;\n return i;\n });\n }\n function markTreeDirty(node2) {\n node2[isClean] = false;\n if (node2.proxyOf.nodes) {\n for (let i of node2.proxyOf.nodes) {\n markTreeDirty(i);\n }\n }\n }\n class Container extends Node {\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i) => {\n if (typeof i === \"function\") {\n return (child, index2) => i(child.toProxy(), index2);\n } else {\n return i;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i) => i.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(\n add,\n this.proxyOf.nodes[existIndex],\n type\n ).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration(nodes)];\n } else if (nodes.selector || nodes.selectors) {\n nodes = [new Rule(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i) => {\n if (!i[my]) Container.rebuild(i);\n i = i.proxyOf;\n if (i.parent) i.parent.removeChild(i);\n if (i[isClean]) markTreeDirty(i);\n if (!i.raws) i.raws = {};\n if (typeof i.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i.parent = this.proxyOf;\n return i;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i) => {\n let result2;\n try {\n result2 = callback(child, i);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i) => {\n if (child.type === \"atrule\") {\n return callback(child, i);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === \"comment\") {\n return callback(child, i);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i) => {\n if (child.type === \"decl\") {\n return callback(child, i);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i) => {\n if (child.type === \"rule\") {\n return callback(child, i);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i);\n }\n });\n }\n return this.walk((child, i) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i);\n }\n });\n }\n }\n Container.registerParse = (dependant) => {\n parse = dependant;\n };\n Container.registerRule = (dependant) => {\n Rule = dependant;\n };\n Container.registerAtRule = (dependant) => {\n AtRule = dependant;\n };\n Container.registerRoot = (dependant) => {\n Root = dependant;\n };\n container = Container;\n Container.default = Container;\n Container.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root.prototype);\n }\n node2[my] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container.rebuild(child);\n });\n }\n };\n return container;\n}\nvar atRule;\nvar hasRequiredAtRule;\nfunction requireAtRule() {\n if (hasRequiredAtRule) return atRule;\n hasRequiredAtRule = 1;\n let Container = requireContainer();\n class AtRule extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n }\n atRule = AtRule;\n AtRule.default = AtRule;\n Container.registerAtRule(AtRule);\n return atRule;\n}\nvar document$1;\nvar hasRequiredDocument;\nfunction requireDocument() {\n if (hasRequiredDocument) return document$1;\n hasRequiredDocument = 1;\n let Container = requireContainer();\n let LazyResult, Processor;\n class Document2 extends Container {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n }\n }\n Document2.registerLazyResult = (dependant) => {\n LazyResult = dependant;\n };\n Document2.registerProcessor = (dependant) => {\n Processor = dependant;\n };\n document$1 = Document2;\n Document2.default = Document2;\n return document$1;\n}\nvar nonSecure;\nvar hasRequiredNonSecure;\nfunction requireNonSecure() {\n if (hasRequiredNonSecure) return nonSecure;\n hasRequiredNonSecure = 1;\n let urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\n let customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i = size | 0;\n while (i--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n };\n let nanoid = (size = 21) => {\n let id = \"\";\n let i = size | 0;\n while (i--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n };\n nonSecure = { nanoid, customAlphabet };\n return nonSecure;\n}\nvar previousMap;\nvar hasRequiredPreviousMap;\nfunction requirePreviousMap() {\n if (hasRequiredPreviousMap) return previousMap;\n hasRequiredPreviousMap = 1;\n let { existsSync, readFileSync } = require$$2;\n let { dirname, join } = require$$2;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n function fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n }\n class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n let uriMatch = text.match(charsetUri) || text.match(uri);\n if (uriMatch) {\n return decodeURIComponent(text.substr(uriMatch[0].length));\n }\n let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri);\n if (baseUriMatch) {\n return fromBase64(text.substr(baseUriMatch[0].length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/g);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n }\n previousMap = PreviousMap;\n PreviousMap.default = PreviousMap;\n return previousMap;\n}\nvar input;\nvar hasRequiredInput;\nfunction requireInput() {\n if (hasRequiredInput) return input;\n hasRequiredInput = 1;\n let { nanoid } = /* @__PURE__ */ requireNonSecure();\n let { isAbsolute, resolve } = require$$2;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n let { fileURLToPath, pathToFileURL } = require$$2;\n let CssSyntaxError = requireCssSyntaxError();\n let PreviousMap = requirePreviousMap();\n let terminalHighlight = require$$2;\n let lineToIndexCache = Symbol(\"lineToIndexCache\");\n let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n let pathAvailable = Boolean(resolve && isAbsolute);\n function getLineToIndex(input2) {\n if (input2[lineToIndexCache]) return input2[lineToIndexCache];\n let lines = input2.css.split(\"\\n\");\n let lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i = 0, l2 = lines.length; i < l2; i++) {\n lineToIndex[i] = prevIndex;\n prevIndex += lines[i].length + 1;\n }\n input2[lineToIndexCache] = lineToIndex;\n return lineToIndex;\n }\n class Input {\n get from() {\n return this.file || this.id;\n }\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n this.document = this.css;\n if (opts.document) this.document = opts.document.toString();\n if (opts.from) {\n if (!pathAvailable || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve(opts.from);\n }\n }\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"<input css \" + nanoid(6) + \">\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let endColumn, endLine, endOffset, offset, result2;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n offset = start.offset;\n let pos = this.fromOffset(offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n offset = this.fromLineAndColumn(line, column);\n }\n if (typeof end.offset === \"number\") {\n endOffset = end.offset;\n let pos = this.fromOffset(endOffset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n endOffset = this.fromLineAndColumn(end.line, end.column);\n }\n } else if (!column) {\n offset = line;\n let pos = this.fromOffset(offset);\n line = pos.line;\n column = pos.col;\n } else {\n offset = this.fromLineAndColumn(line, column);\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css };\n if (this.file) {\n if (pathToFileURL) {\n result2.input.url = pathToFileURL(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromLineAndColumn(line, column) {\n let lineToIndex = getLineToIndex(this);\n let index2 = lineToIndex[line - 1];\n return index2 + column - 1;\n }\n fromOffset(offset) {\n let lineToIndex = getLineToIndex(this);\n let lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n }\n input = Input;\n Input.default = Input;\n if (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input);\n }\n return input;\n}\nvar root;\nvar hasRequiredRoot;\nfunction requireRoot() {\n if (hasRequiredRoot) return root;\n hasRequiredRoot = 1;\n let Container = requireContainer();\n let LazyResult, Processor;\n class Root extends Container {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts);\n return lazy.stringify();\n }\n }\n Root.registerLazyResult = (dependant) => {\n LazyResult = dependant;\n };\n Root.registerProcessor = (dependant) => {\n Processor = dependant;\n };\n root = Root;\n Root.default = Root;\n Container.registerRoot(Root);\n return root;\n}\nvar list_1;\nvar hasRequiredList;\nfunction requireList() {\n if (hasRequiredList) return list_1;\n hasRequiredList = 1;\n let list = {\n comma(string) {\n return list.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n };\n list_1 = list;\n list.default = list;\n return list_1;\n}\nvar rule;\nvar hasRequiredRule;\nfunction requireRule() {\n if (hasRequiredRule) return rule;\n hasRequiredRule = 1;\n let Container = requireContainer();\n let list = requireList();\n class Rule extends Container {\n get selectors() {\n return list.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep);\n }\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n }\n rule = Rule;\n Rule.default = Rule;\n Container.registerRule(Rule);\n return rule;\n}\nvar fromJSON_1;\nvar hasRequiredFromJSON;\nfunction requireFromJSON() {\n if (hasRequiredFromJSON) return fromJSON_1;\n hasRequiredFromJSON = 1;\n let AtRule = requireAtRule();\n let Comment = requireComment();\n let Declaration = requireDeclaration();\n let Input = requireInput();\n let PreviousMap = requirePreviousMap();\n let Root = requireRoot();\n let Rule = requireRule();\n function fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map((n) => fromJSON(n));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n) => fromJSON(n, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n }\n fromJSON_1 = fromJSON;\n fromJSON.default = fromJSON;\n return fromJSON_1;\n}\nvar mapGenerator;\nvar hasRequiredMapGenerator;\nfunction requireMapGenerator() {\n if (hasRequiredMapGenerator) return mapGenerator;\n hasRequiredMapGenerator = 1;\n let { dirname, relative, resolve, sep } = require$$2;\n let { SourceMapConsumer, SourceMapGenerator } = require$$2;\n let { pathToFileURL } = require$$2;\n let Input = requireInput();\n let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\n let pathAvailable = Boolean(dirname && resolve && relative && sep);\n class MapGenerator {\n constructor(stringify, root2, opts, cssString) {\n this.stringify = stringify;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node2 = this.root.nodes[i];\n if (node2.type !== \"comment\") continue;\n if (node2.text.startsWith(\"# sourceMappingURL=\")) {\n this.root.removeChild(i);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i) => {\n result2 += i;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"<no source>\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let last, lines;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p2 = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p2.last || p2.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i) => i.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i) => i.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i) => i.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"<no source>\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n }\n mapGenerator = MapGenerator;\n return mapGenerator;\n}\nvar tokenize;\nvar hasRequiredTokenize;\nfunction requireTokenize() {\n if (hasRequiredTokenize) return tokenize;\n hasRequiredTokenize = 1;\n const SINGLE_QUOTE = \"'\".charCodeAt(0);\n const DOUBLE_QUOTE = '\"'.charCodeAt(0);\n const BACKSLASH = \"\\\\\".charCodeAt(0);\n const SLASH = \"/\".charCodeAt(0);\n const NEWLINE = \"\\n\".charCodeAt(0);\n const SPACE = \" \".charCodeAt(0);\n const FEED = \"\\f\".charCodeAt(0);\n const TAB = \"\t\".charCodeAt(0);\n const CR = \"\\r\".charCodeAt(0);\n const OPEN_SQUARE = \"[\".charCodeAt(0);\n const CLOSE_SQUARE = \"]\".charCodeAt(0);\n const OPEN_PARENTHESES = \"(\".charCodeAt(0);\n const CLOSE_PARENTHESES = \")\".charCodeAt(0);\n const OPEN_CURLY = \"{\".charCodeAt(0);\n const CLOSE_CURLY = \"}\".charCodeAt(0);\n const SEMICOLON = \";\".charCodeAt(0);\n const ASTERISK = \"*\".charCodeAt(0);\n const COLON = \":\".charCodeAt(0);\n const AT = \"@\".charCodeAt(0);\n const RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\n const RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\n const RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\n const RE_HEX_ESCAPE = /[\\da-f]/i;\n tokenize = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, content, escape, next, quote;\n let currentToken, escaped, escapePos, n, prev;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n };\n return tokenize;\n}\nvar parser;\nvar hasRequiredParser;\nfunction requireParser() {\n if (hasRequiredParser) return parser;\n hasRequiredParser = 1;\n let AtRule = requireAtRule();\n let Comment = requireComment();\n let Declaration = requireDeclaration();\n let Root = requireRoot();\n let Rule = requireRule();\n let tokenizer = requireTokenize();\n const SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n };\n function findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n }\n class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j2 = colon - 1; j2 >= 0; j2--) {\n token = tokens[j2];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let prev, token, type;\n for (let [i, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j2 = i; j2 > 0; j2--) {\n let type = cache[j2][0];\n if (str.trim().startsWith(\"!\") && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().startsWith(\"!\")) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i) => i[0] !== \"space\" && i[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i) => i[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n prev.source.end = this.getPosition(token[2]);\n prev.source.end.offset += prev.raws.ownSemicolon.length;\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i = 0; i < length; i += 1) {\n token = tokens[i];\n type = token[0];\n if (type === \"space\" && i === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i - 1] ? tokens[i - 1][0] : \"empty\";\n next = tokens[i + 1] ? tokens[i + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i = from; i < tokens.length; i++) {\n result2 += tokens[i][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word \" + tokens[0][1],\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n }\n parser = Parser;\n return parser;\n}\nvar parse_1;\nvar hasRequiredParse;\nfunction requireParse() {\n if (hasRequiredParse) return parse_1;\n hasRequiredParse = 1;\n let Container = requireContainer();\n let Input = requireInput();\n let Parser = requireParser();\n function parse(css, opts) {\n let input2 = new Input(css, opts);\n let parser2 = new Parser(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n }\n parse_1 = parse;\n parse.default = parse;\n Container.registerParse(parse);\n return parse_1;\n}\nvar warning;\nvar hasRequiredWarning;\nfunction requireWarning() {\n if (hasRequiredWarning) return warning;\n hasRequiredWarning = 1;\n class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n }\n warning = Warning;\n Warning.default = Warning;\n return warning;\n}\nvar result;\nvar hasRequiredResult;\nfunction requireResult() {\n if (hasRequiredResult) return result;\n hasRequiredResult = 1;\n let Warning = requireWarning();\n class Result {\n get content() {\n return this.css;\n }\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = \"\";\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i) => i.type === \"warning\");\n }\n }\n result = Result;\n Result.default = Result;\n return result;\n}\nvar warnOnce;\nvar hasRequiredWarnOnce;\nfunction requireWarnOnce() {\n if (hasRequiredWarnOnce) return warnOnce;\n hasRequiredWarnOnce = 1;\n let printed = {};\n warnOnce = function warnOnce2(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n };\n return warnOnce;\n}\nvar lazyResult;\nvar hasRequiredLazyResult;\nfunction requireLazyResult() {\n if (hasRequiredLazyResult) return lazyResult;\n hasRequiredLazyResult = 1;\n let Container = requireContainer();\n let Document2 = requireDocument();\n let MapGenerator = requireMapGenerator();\n let parse = requireParse();\n let Result = requireResult();\n let Root = requireRoot();\n let stringify = requireStringify();\n let { isClean, my } = requireSymbols();\n let warnOnce2 = requireWarnOnce();\n const TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n };\n const PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n };\n const NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n };\n const CHILDREN = 0;\n function isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n }\n function getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n }\n function toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n }\n function cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i) => cleanMarks(i));\n return node2;\n }\n let postcss2 = {};\n class LazyResult {\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult || css instanceof Result) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container.rebuild(root2);\n }\n }\n this.result = new Result(processor2, root2, opts);\n this.helpers = { ...postcss2, postcss: postcss2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin) => {\n if (typeof plugin === \"object\" && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) };\n } else {\n return plugin;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin.postcssPlugin;\n error.setMessage();\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin.postcssPlugin;\n let pluginVer = plugin.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b2 = runtimeVer.split(\".\");\n if (a2[0] !== b2[0] || parseInt(a2[1]) > parseInt(b2[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin, cb]);\n };\n for (let plugin of this.plugins) {\n if (typeof plugin === \"object\") {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === \"object\") {\n for (let filter in plugin[event]) {\n if (filter === \"*\") {\n add(plugin, event, plugin[event][filter]);\n } else {\n add(\n plugin,\n event + \"-\" + filter.toLowerCase(),\n plugin[event][filter]\n );\n }\n }\n } else if (typeof plugin[event] === \"function\") {\n add(plugin, event, plugin[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i];\n let promise = this.runOnRoot(plugin);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin;\n try {\n if (typeof plugin === \"object\" && plugin.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin.Once(this.result.root, this.helpers);\n } else if (typeof plugin === \"function\") {\n return plugin(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n }\n LazyResult.registerPostcss = (dependant) => {\n postcss2 = dependant;\n };\n lazyResult = LazyResult;\n LazyResult.default = LazyResult;\n Root.registerLazyResult(LazyResult);\n Document2.registerLazyResult(LazyResult);\n return lazyResult;\n}\nvar noWorkResult;\nvar hasRequiredNoWorkResult;\nfunction requireNoWorkResult() {\n if (hasRequiredNoWorkResult) return noWorkResult;\n hasRequiredNoWorkResult = 1;\n let MapGenerator = requireMapGenerator();\n let parse = requireParse();\n const Result = requireResult();\n let stringify = requireStringify();\n let warnOnce2 = requireWarnOnce();\n class NoWorkResult {\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify;\n this.result = new Result(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n }\n noWorkResult = NoWorkResult;\n NoWorkResult.default = NoWorkResult;\n return noWorkResult;\n}\nvar processor;\nvar hasRequiredProcessor;\nfunction requireProcessor() {\n if (hasRequiredProcessor) return processor;\n hasRequiredProcessor = 1;\n let Document2 = requireDocument();\n let LazyResult = requireLazyResult();\n let NoWorkResult = requireNoWorkResult();\n let Root = requireRoot();\n class Processor {\n constructor(plugins = []) {\n this.version = \"8.5.6\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i();\n } else if (i.postcss) {\n i = i.postcss;\n }\n if (typeof i === \"object\" && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins);\n } else if (typeof i === \"object\" && i.postcssPlugin) {\n normalized.push(i);\n } else if (typeof i === \"function\") {\n normalized.push(i);\n } else if (typeof i === \"object\" && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult(this, css, opts);\n } else {\n return new LazyResult(this, css, opts);\n }\n }\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]));\n return this;\n }\n }\n processor = Processor;\n Processor.default = Processor;\n Root.registerProcessor(Processor);\n Document2.registerProcessor(Processor);\n return processor;\n}\nvar postcss_1;\nvar hasRequiredPostcss;\nfunction requirePostcss() {\n if (hasRequiredPostcss) return postcss_1;\n hasRequiredPostcss = 1;\n let AtRule = requireAtRule();\n let Comment = requireComment();\n let Container = requireContainer();\n let CssSyntaxError = requireCssSyntaxError();\n let Declaration = requireDeclaration();\n let Document2 = requireDocument();\n let fromJSON = requireFromJSON();\n let Input = requireInput();\n let LazyResult = requireLazyResult();\n let list = requireList();\n let Node = requireNode();\n let parse = requireParse();\n let Processor = requireProcessor();\n let Result = requireResult();\n let Root = requireRoot();\n let Rule = requireRule();\n let stringify = requireStringify();\n let Warning = requireWarning();\n function postcss2(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor(plugins);\n }\n postcss2.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss2([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n };\n postcss2.stringify = stringify;\n postcss2.parse = parse;\n postcss2.fromJSON = fromJSON;\n postcss2.list = list;\n postcss2.comment = (defaults) => new Comment(defaults);\n postcss2.atRule = (defaults) => new AtRule(defaults);\n postcss2.decl = (defaults) => new Declaration(defaults);\n postcss2.rule = (defaults) => new Rule(defaults);\n postcss2.root = (defaults) => new Root(defaults);\n postcss2.document = (defaults) => new Document2(defaults);\n postcss2.CssSyntaxError = CssSyntaxError;\n postcss2.Declaration = Declaration;\n postcss2.Container = Container;\n postcss2.Processor = Processor;\n postcss2.Document = Document2;\n postcss2.Comment = Comment;\n postcss2.Warning = Warning;\n postcss2.AtRule = AtRule;\n postcss2.Result = Result;\n postcss2.Input = Input;\n postcss2.Rule = Rule;\n postcss2.Root = Root;\n postcss2.Node = Node;\n LazyResult.registerPostcss(postcss2);\n postcss_1 = postcss2;\n postcss2.default = postcss2;\n return postcss_1;\n}\nvar safeParser$1;\nvar hasRequiredSafeParser;\nfunction requireSafeParser() {\n if (hasRequiredSafeParser) return safeParser$1;\n hasRequiredSafeParser = 1;\n let Comment = requireComment();\n let Parser = requireParser();\n let tokenizer = requireTokenize();\n class SafeParser extends Parser {\n checkMissedSemicolon() {\n }\n comment(token) {\n let node2 = new Comment();\n this.init(node2, token[2]);\n let pos = this.input.fromOffset(token[3]) || this.input.fromOffset(this.input.css.length - 1);\n node2.source.end = {\n column: pos.col,\n line: pos.line,\n offset: token[3] + 1\n };\n let text = token[1].slice(2);\n if (text.slice(-2) === \"*/\") text = text.slice(0, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer(this.input, { ignoreErrors: true });\n }\n decl(tokens) {\n if (tokens.length > 1 && tokens.some((i) => i[0] === \"word\")) {\n super.decl(tokens);\n }\n }\n doubleColon() {\n }\n endFile() {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n while (this.current.parent) {\n this.current = this.current.parent;\n this.current.raws.after = \"\";\n }\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n precheckMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let nextStart, prevEnd;\n for (nextStart = colon - 1; nextStart >= 0; nextStart--) {\n if (tokens[nextStart][0] === \"word\") break;\n }\n if (nextStart === 0 || nextStart < 0) return;\n for (prevEnd = nextStart - 1; prevEnd >= 0; prevEnd--) {\n if (tokens[prevEnd][0] !== \"space\") {\n prevEnd += 1;\n break;\n }\n }\n let other = tokens.slice(nextStart);\n let spaces = tokens.slice(prevEnd, nextStart);\n tokens.splice(prevEnd, tokens.length - prevEnd);\n this.spaces = spaces.map((i) => i[1]).join(\"\");\n this.decl(other);\n }\n unclosedBracket() {\n }\n unexpectedClose() {\n this.current.raws.after += \"}\";\n }\n unknownWord(tokens) {\n this.spaces += tokens.map((i) => i[1]).join(\"\");\n }\n unnamedAtrule(node2) {\n node2.name = \"\";\n }\n }\n safeParser$1 = SafeParser;\n return safeParser$1;\n}\nvar safeParse;\nvar hasRequiredSafeParse;\nfunction requireSafeParse() {\n if (hasRequiredSafeParse) return safeParse;\n hasRequiredSafeParse = 1;\n let { Input } = requirePostcss();\n let SafeParser = requireSafeParser();\n safeParse = function safeParse2(css, opts) {\n let input2 = new Input(css, opts);\n let parser2 = new SafeParser(input2);\n parser2.parse();\n return parser2.root;\n };\n return safeParse;\n}\nrequireSafeParse();\nvar postcssExports = requirePostcss();\nconst postcss = /* @__PURE__ */ getDefaultExportFromCjs(postcssExports);\npostcss.stringify;\npostcss.fromJSON;\npostcss.plugin;\npostcss.parse;\npostcss.list;\npostcss.document;\npostcss.comment;\npostcss.atRule;\npostcss.rule;\npostcss.decl;\npostcss.root;\npostcss.CssSyntaxError;\npostcss.Declaration;\npostcss.Container;\npostcss.Processor;\npostcss.Document;\npostcss.Comment;\npostcss.Warning;\npostcss.AtRule;\npostcss.Result;\npostcss.Input;\npostcss.Rule;\npostcss.Root;\npostcss.Node;\nvar NodeType$1 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$1 || {});\nfunction parseCSSText(cssText) {\n const res = {};\n const listDelimiter = /;(?![^(]*\\))/g;\n const propertyDelimiter = /:(.+)/;\n const comment2 = /\\/\\*.*?\\*\\//g;\n cssText.replace(comment2, \"\").split(listDelimiter).forEach(function(item) {\n if (item) {\n const tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[camelize(tmp[0].trim())] = tmp[1].trim());\n }\n });\n return res;\n}\nfunction toCSSText(style) {\n const properties = [];\n for (const name in style) {\n const value = style[name];\n if (typeof value !== \"string\") continue;\n const normalizedName = hyphenate(name);\n properties.push(`${normalizedName}: ${value};`);\n }\n return properties.join(\" \");\n}\nconst camelizeRE = /-([a-z])/g;\nconst CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nconst camelize = (str) => {\n if (CUSTOM_PROPERTY_REGEX.test(str)) return str;\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n};\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = (str) => {\n return str.replace(hyphenateRE, \"-$1\").toLowerCase();\n};\nclass BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n constructor(..._args) {\n __publicField(this, \"parentElement\", null);\n __publicField(this, \"parentNode\", null);\n __publicField(this, \"ownerDocument\");\n __publicField(this, \"firstChild\", null);\n __publicField(this, \"lastChild\", null);\n __publicField(this, \"previousSibling\", null);\n __publicField(this, \"nextSibling\", null);\n __publicField(this, \"ELEMENT_NODE\", 1);\n __publicField(this, \"TEXT_NODE\", 3);\n // corresponding nodeType value of standard HTML Node\n __publicField(this, \"nodeType\");\n __publicField(this, \"nodeName\");\n __publicField(this, \"RRNodeType\");\n }\n get childNodes() {\n const childNodes2 = [];\n let childIterator = this.firstChild;\n while (childIterator) {\n childNodes2.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes2;\n }\n contains(node2) {\n if (!(node2 instanceof BaseRRNode)) return false;\n else if (node2.ownerDocument !== this.ownerDocument) return false;\n else if (node2 === this) return true;\n while (node2.parentNode) {\n if (node2.parentNode === this) return true;\n node2 = node2.parentNode;\n }\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendChild(_newChild) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(_newChild, _refChild) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeChild(_node) {\n throw new Error(\n `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n toString() {\n return \"RRNode\";\n }\n}\nclass BaseRRDocument extends BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(...args) {\n super(args);\n __publicField(this, \"nodeType\", 9);\n __publicField(this, \"nodeName\", \"#document\");\n __publicField(this, \"compatMode\", \"CSS1Compat\");\n __publicField(this, \"RRNodeType\", NodeType$1.Document);\n __publicField(this, \"textContent\", null);\n this.ownerDocument = this;\n }\n get documentElement() {\n return this.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HTML\"\n ) || null;\n }\n get body() {\n var _a;\n return ((_a = this.documentElement) == null ? void 0 : _a.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"BODY\"\n )) || null;\n }\n get head() {\n var _a;\n return ((_a = this.documentElement) == null ? void 0 : _a.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HEAD\"\n )) || null;\n }\n get implementation() {\n return this;\n }\n get firstElementChild() {\n return this.documentElement;\n }\n appendChild(newChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = appendChild(this, newChild);\n child.parentElement = null;\n return child;\n }\n insertBefore(newChild, refChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s) => s.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = insertBefore(this, newChild, refChild);\n child.parentElement = null;\n return child;\n }\n removeChild(node2) {\n return removeChild(this, node2);\n }\n open() {\n this.firstChild = null;\n this.lastChild = null;\n }\n close() {\n }\n /**\n * Adhoc implementation for setting xhtml namespace in rebuilt.ts (rrweb-snapshot).\n * There are two lines used this function:\n * 1. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\"\\>')\n * 2. doc.write('\\<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\"\\>')\n */\n write(content) {\n let publicId;\n if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"\">')\n publicId = \"-//W3C//DTD XHTML 1.0 Transitional//EN\";\n else if (content === '<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"\">')\n publicId = \"-//W3C//DTD HTML 4.0 Transitional//EN\";\n if (publicId) {\n const doctype = this.createDocumentType(\"html\", publicId, \"\");\n this.open();\n this.appendChild(doctype);\n }\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new BaseRRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const doctype = new BaseRRDocumentType(qualifiedName, publicId, systemId);\n doctype.ownerDocument = this;\n return doctype;\n }\n createElement(tagName) {\n const element = new BaseRRElement(tagName);\n element.ownerDocument = this;\n return element;\n }\n createElementNS(_namespaceURI, qualifiedName) {\n return this.createElement(qualifiedName);\n }\n createTextNode(data) {\n const text = new BaseRRText(data);\n text.ownerDocument = this;\n return text;\n }\n createComment(data) {\n const comment2 = new BaseRRComment(data);\n comment2.ownerDocument = this;\n return comment2;\n }\n createCDATASection(data) {\n const CDATASection = new BaseRRCDATASection(data);\n CDATASection.ownerDocument = this;\n return CDATASection;\n }\n toString() {\n return \"RRDocument\";\n }\n}\nclass BaseRRDocumentType extends BaseRRNode {\n constructor(qualifiedName, publicId, systemId) {\n super();\n __publicField(this, \"nodeType\", 10);\n __publicField(this, \"RRNodeType\", NodeType$1.DocumentType);\n __publicField(this, \"name\");\n __publicField(this, \"publicId\");\n __publicField(this, \"systemId\");\n __publicField(this, \"textContent\", null);\n this.name = qualifiedName;\n this.publicId = publicId;\n this.systemId = systemId;\n this.nodeName = qualifiedName;\n }\n toString() {\n return \"RRDocumentType\";\n }\n}\nclass BaseRRElement extends BaseRRNode {\n constructor(tagName) {\n super();\n __publicField(this, \"nodeType\", 1);\n __publicField(this, \"RRNodeType\", NodeType$1.Element);\n __publicField(this, \"tagName\");\n __publicField(this, \"attributes\", {});\n __publicField(this, \"shadowRoot\", null);\n __publicField(this, \"scrollLeft\");\n __publicField(this, \"scrollTop\");\n this.tagName = tagName.toUpperCase();\n this.nodeName = tagName.toUpperCase();\n }\n get textContent() {\n let result2 = \"\";\n this.childNodes.forEach((node2) => result2 += node2.textContent);\n return result2;\n }\n set textContent(textContent2) {\n this.firstChild = null;\n this.lastChild = null;\n this.appendChild(this.ownerDocument.createTextNode(textContent2));\n }\n get classList() {\n return new ClassList(\n this.attributes.class,\n (newClassName) => {\n this.attributes.class = newClassName;\n }\n );\n }\n get id() {\n return this.attributes.id || \"\";\n }\n get className() {\n return this.attributes.class || \"\";\n }\n get style() {\n const style = this.attributes.style ? parseCSSText(this.attributes.style) : {};\n const hyphenateRE2 = /\\B([A-Z])/g;\n style.setProperty = (name, value, priority) => {\n if (hyphenateRE2.test(name)) return;\n const normalizedName = camelize(name);\n if (!value) delete style[normalizedName];\n else style[normalizedName] = value;\n if (priority === \"important\") style[normalizedName] += \" !important\";\n this.attributes.style = toCSSText(style);\n };\n style.removeProperty = (name) => {\n if (hyphenateRE2.test(name)) return \"\";\n const normalizedName = camelize(name);\n const value = style[normalizedName] || \"\";\n delete style[normalizedName];\n this.attributes.style = toCSSText(style);\n return value;\n };\n return style;\n }\n getAttribute(name) {\n if (this.attributes[name] === void 0) return null;\n return this.attributes[name];\n }\n setAttribute(name, attribute) {\n this.attributes[name] = attribute;\n }\n setAttributeNS(_namespace, qualifiedName, value) {\n this.setAttribute(qualifiedName, value);\n }\n removeAttribute(name) {\n delete this.attributes[name];\n }\n appendChild(newChild) {\n return appendChild(this, newChild);\n }\n insertBefore(newChild, refChild) {\n return insertBefore(this, newChild, refChild);\n }\n removeChild(node2) {\n return removeChild(this, node2);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n const shadowRoot2 = this.ownerDocument.createElement(\"SHADOWROOT\");\n this.shadowRoot = shadowRoot2;\n return shadowRoot2;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dispatchEvent(_event) {\n return true;\n }\n toString() {\n let attributeString = \"\";\n for (const attribute in this.attributes) {\n attributeString += `${attribute}=\"${this.attributes[attribute]}\" `;\n }\n return `${this.tagName} ${attributeString}`;\n }\n}\nclass BaseRRMediaElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"currentTime\");\n __publicField(this, \"volume\");\n __publicField(this, \"paused\");\n __publicField(this, \"muted\");\n __publicField(this, \"playbackRate\");\n __publicField(this, \"loop\");\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n throw new Error(\n `RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow`\n );\n }\n play() {\n this.paused = false;\n }\n pause() {\n this.paused = true;\n }\n}\nclass BaseRRDialogElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"tagName\", \"DIALOG\");\n __publicField(this, \"nodeName\", \"DIALOG\");\n }\n get isModal() {\n return this.getAttribute(\"rr_open_mode\") === \"modal\";\n }\n get open() {\n return this.getAttribute(\"open\") !== null;\n }\n close() {\n this.removeAttribute(\"open\");\n this.removeAttribute(\"rr_open_mode\");\n }\n show() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"non-modal\");\n }\n showModal() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"modal\");\n }\n}\nclass BaseRRText extends BaseRRNode {\n constructor(data) {\n super();\n __publicField(this, \"nodeType\", 3);\n __publicField(this, \"nodeName\", \"#text\");\n __publicField(this, \"RRNodeType\", NodeType$1.Text);\n __publicField(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent2) {\n this.data = textContent2;\n }\n toString() {\n return `RRText text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRComment extends BaseRRNode {\n constructor(data) {\n super();\n __publicField(this, \"nodeType\", 8);\n __publicField(this, \"nodeName\", \"#comment\");\n __publicField(this, \"RRNodeType\", NodeType$1.Comment);\n __publicField(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent2) {\n this.data = textContent2;\n }\n toString() {\n return `RRComment text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRCDATASection extends BaseRRNode {\n constructor(data) {\n super();\n __publicField(this, \"nodeName\", \"#cdata-section\");\n __publicField(this, \"nodeType\", 4);\n __publicField(this, \"RRNodeType\", NodeType$1.CDATA);\n __publicField(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent2) {\n this.data = textContent2;\n }\n toString() {\n return `RRCDATASection data=${JSON.stringify(this.data)}`;\n }\n}\nclass ClassList {\n constructor(classText, onChange) {\n __publicField(this, \"onChange\");\n __publicField(this, \"classes\", []);\n __publicField(this, \"add\", (...classNames) => {\n for (const item of classNames) {\n const className = String(item);\n if (this.classes.indexOf(className) >= 0) continue;\n this.classes.push(className);\n }\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n __publicField(this, \"remove\", (...classNames) => {\n this.classes = this.classes.filter(\n (item) => classNames.indexOf(item) === -1\n );\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n if (classText) {\n const classes = classText.trim().split(/\\s+/);\n this.classes.push(...classes);\n }\n this.onChange = onChange;\n }\n}\nfunction appendChild(parent, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n if (parent.lastChild) {\n parent.lastChild.nextSibling = newChild;\n newChild.previousSibling = parent.lastChild;\n } else {\n parent.firstChild = newChild;\n newChild.previousSibling = null;\n }\n parent.lastChild = newChild;\n newChild.nextSibling = null;\n newChild.parentNode = parent;\n newChild.parentElement = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction insertBefore(parent, newChild, refChild) {\n if (!refChild) return appendChild(parent, newChild);\n if (refChild.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\"\n );\n if (newChild === refChild) return newChild;\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.previousSibling = refChild.previousSibling;\n refChild.previousSibling = newChild;\n newChild.nextSibling = refChild;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parent.firstChild = newChild;\n newChild.parentElement = parent;\n newChild.parentNode = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction removeChild(parent, child) {\n if (child.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'removeChild' on 'RRNode': The RRNode to be removed is not a child of this RRNode.\"\n );\n if (child.previousSibling)\n child.previousSibling.nextSibling = child.nextSibling;\n else parent.firstChild = child.nextSibling;\n if (child.nextSibling)\n child.nextSibling.previousSibling = child.previousSibling;\n else parent.lastChild = child.previousSibling;\n child.previousSibling = null;\n child.nextSibling = null;\n child.parentElement = null;\n child.parentNode = null;\n return child;\n}\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"PLACEHOLDER\"] = 0] = \"PLACEHOLDER\";\n NodeType2[NodeType2[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType2[NodeType2[\"ATTRIBUTE_NODE\"] = 2] = \"ATTRIBUTE_NODE\";\n NodeType2[NodeType2[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType2[NodeType2[\"CDATA_SECTION_NODE\"] = 4] = \"CDATA_SECTION_NODE\";\n NodeType2[NodeType2[\"ENTITY_REFERENCE_NODE\"] = 5] = \"ENTITY_REFERENCE_NODE\";\n NodeType2[NodeType2[\"ENTITY_NODE\"] = 6] = \"ENTITY_NODE\";\n NodeType2[NodeType2[\"PROCESSING_INSTRUCTION_NODE\"] = 7] = \"PROCESSING_INSTRUCTION_NODE\";\n NodeType2[NodeType2[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_TYPE_NODE\"] = 10] = \"DOCUMENT_TYPE_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\n return NodeType2;\n})(NodeType || {});\nconst NAMESPACES = {\n svg: \"http://www.w3.org/2000/svg\",\n \"xlink:href\": \"http://www.w3.org/1999/xlink\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nconst SVGTagMap = {\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nlet createdNodeSet = null;\nfunction diff(oldTree, newTree, replayer, rrnodeMirror = newTree.mirror || newTree.ownerDocument.mirror) {\n oldTree = diffBeforeUpdatingChildren(\n oldTree,\n newTree,\n replayer,\n rrnodeMirror\n );\n diffChildren(oldTree, newTree, replayer, rrnodeMirror);\n diffAfterUpdatingChildren(oldTree, newTree, replayer);\n}\nfunction diffBeforeUpdatingChildren(oldTree, newTree, replayer, rrnodeMirror) {\n var _a;\n if (replayer.afterAppend && !createdNodeSet) {\n createdNodeSet = /* @__PURE__ */ new WeakSet();\n setTimeout(() => {\n createdNodeSet = null;\n }, 0);\n }\n if (!sameNodeType(oldTree, newTree)) {\n const calibratedOldTree = createOrGetNode(\n newTree,\n replayer.mirror,\n rrnodeMirror\n );\n (_a = oldTree.parentNode) == null ? void 0 : _a.replaceChild(calibratedOldTree, oldTree);\n oldTree = calibratedOldTree;\n }\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n if (!nodeMatching(oldTree, newTree, replayer.mirror, rrnodeMirror)) {\n const newMeta = rrnodeMirror.getMeta(newTree);\n if (newMeta) {\n replayer.mirror.removeNodeFromMap(oldTree);\n oldTree.close();\n oldTree.open();\n replayer.mirror.add(oldTree, newMeta);\n createdNodeSet == null ? void 0 : createdNodeSet.add(oldTree);\n }\n }\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n switch (newRRElement.tagName) {\n case \"IFRAME\": {\n const oldContentDocument = oldTree.contentDocument;\n if (!oldContentDocument) break;\n diff(\n oldContentDocument,\n newTree.contentDocument,\n replayer,\n rrnodeMirror\n );\n break;\n }\n }\n if (newRRElement.shadowRoot) {\n if (!oldElement.shadowRoot) oldElement.attachShadow({ mode: \"open\" });\n diffChildren(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n oldElement.shadowRoot,\n newRRElement.shadowRoot,\n replayer,\n rrnodeMirror\n );\n }\n diffProps(oldElement, newRRElement, rrnodeMirror);\n break;\n }\n }\n return oldTree;\n}\nfunction diffAfterUpdatingChildren(oldTree, newTree, replayer) {\n var _a;\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n const scrollData = newTree.scrollData;\n scrollData && replayer.applyScroll(scrollData, true);\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n newRRElement.scrollData && replayer.applyScroll(newRRElement.scrollData, true);\n newRRElement.inputData && replayer.applyInput(newRRElement.inputData);\n switch (newRRElement.tagName) {\n case \"AUDIO\":\n case \"VIDEO\": {\n const oldMediaElement = oldTree;\n const newMediaRRElement = newRRElement;\n if (newMediaRRElement.paused !== void 0)\n newMediaRRElement.paused ? void oldMediaElement.pause() : void oldMediaElement.play();\n if (newMediaRRElement.muted !== void 0)\n oldMediaElement.muted = newMediaRRElement.muted;\n if (newMediaRRElement.volume !== void 0)\n oldMediaElement.volume = newMediaRRElement.volume;\n if (newMediaRRElement.currentTime !== void 0)\n oldMediaElement.currentTime = newMediaRRElement.currentTime;\n if (newMediaRRElement.playbackRate !== void 0)\n oldMediaElement.playbackRate = newMediaRRElement.playbackRate;\n if (newMediaRRElement.loop !== void 0)\n oldMediaElement.loop = newMediaRRElement.loop;\n break;\n }\n case \"CANVAS\": {\n const rrCanvasElement = newTree;\n if (rrCanvasElement.rr_dataURL !== null) {\n const image = document.createElement(\"img\");\n image.onload = () => {\n const ctx = oldElement.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = rrCanvasElement.rr_dataURL;\n }\n rrCanvasElement.canvasMutations.forEach(\n (canvasMutation) => replayer.applyCanvas(\n canvasMutation.event,\n canvasMutation.mutation,\n oldTree\n )\n );\n break;\n }\n // Props of style elements have to be updated after all children are updated. Otherwise the props can be overwritten by textContent.\n case \"STYLE\": {\n const styleSheet = oldElement.sheet;\n styleSheet && newTree.rules.forEach(\n (data) => replayer.applyStyleSheetMutation(data, styleSheet)\n );\n break;\n }\n case \"DIALOG\": {\n const dialog = oldElement;\n const rrDialog = newRRElement;\n const wasOpen = dialog.open;\n const wasModal = dialog.matches(\"dialog:modal\");\n const shouldBeOpen = rrDialog.open;\n const shouldBeModal = rrDialog.isModal;\n const modalChanged = wasModal !== shouldBeModal;\n const openChanged = wasOpen !== shouldBeOpen;\n if (modalChanged || wasOpen && openChanged) dialog.close();\n if (shouldBeOpen && (openChanged || modalChanged)) {\n try {\n if (shouldBeModal) dialog.showModal();\n else dialog.show();\n } catch (e) {\n console.warn(e);\n }\n }\n break;\n }\n }\n break;\n }\n case NodeType$1.Text:\n case NodeType$1.Comment:\n case NodeType$1.CDATA: {\n if (oldTree.textContent !== newTree.data)\n oldTree.textContent = newTree.data;\n break;\n }\n }\n if (createdNodeSet == null ? void 0 : createdNodeSet.has(oldTree)) {\n createdNodeSet.delete(oldTree);\n (_a = replayer.afterAppend) == null ? void 0 : _a.call(replayer, oldTree, replayer.mirror.getId(oldTree));\n }\n}\nfunction diffProps(oldTree, newTree, rrnodeMirror) {\n const oldAttributes = oldTree.attributes;\n const newAttributes = newTree.attributes;\n for (const name in newAttributes) {\n const newValue = newAttributes[name];\n const sn = rrnodeMirror.getMeta(newTree);\n if ((sn == null ? void 0 : sn.isSVG) && NAMESPACES[name])\n oldTree.setAttributeNS(NAMESPACES[name], name, newValue);\n else if (newTree.tagName === \"CANVAS\" && name === \"rr_dataURL\") {\n const image = document.createElement(\"img\");\n image.src = newValue;\n image.onload = () => {\n const ctx = oldTree.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n } else if (newTree.tagName === \"IFRAME\" && name === \"srcdoc\") continue;\n else {\n try {\n oldTree.setAttribute(name, newValue);\n } catch (err) {\n console.warn(err);\n }\n }\n }\n for (const { name } of Array.from(oldAttributes))\n if (!(name in newAttributes)) oldTree.removeAttribute(name);\n newTree.scrollLeft && (oldTree.scrollLeft = newTree.scrollLeft);\n newTree.scrollTop && (oldTree.scrollTop = newTree.scrollTop);\n}\nfunction diffChildren(oldTree, newTree, replayer, rrnodeMirror) {\n const oldChildren = Array.from(oldTree.childNodes);\n const newChildren = newTree.childNodes;\n if (oldChildren.length === 0 && newChildren.length === 0) return;\n let oldStartIndex = 0, oldEndIndex = oldChildren.length - 1, newStartIndex = 0, newEndIndex = newChildren.length - 1;\n let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];\n let oldIdToIndex = void 0, indexInOld = void 0;\n while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\n if (oldStartNode === void 0) {\n oldStartNode = oldChildren[++oldStartIndex];\n } else if (oldEndNode === void 0) {\n oldEndNode = oldChildren[--oldEndIndex];\n } else if (\n // same first node?\n nodeMatching(oldStartNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n oldStartNode = oldChildren[++oldStartIndex];\n newStartNode = newChildren[++newStartIndex];\n } else if (\n // same last node?\n nodeMatching(oldEndNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n oldEndNode = oldChildren[--oldEndIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the first old node the same as the last new node?\n nodeMatching(oldStartNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldStartNode, oldEndNode.nextSibling);\n } catch (e) {\n console.warn(e);\n }\n oldStartNode = oldChildren[++oldStartIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the last old node the same as the first new node?\n nodeMatching(oldEndNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldEndNode, oldStartNode);\n } catch (e) {\n console.warn(e);\n }\n oldEndNode = oldChildren[--oldEndIndex];\n newStartNode = newChildren[++newStartIndex];\n } else {\n if (!oldIdToIndex) {\n oldIdToIndex = {};\n for (let i = oldStartIndex; i <= oldEndIndex; i++) {\n const oldChild2 = oldChildren[i];\n if (oldChild2 && replayer.mirror.hasNode(oldChild2))\n oldIdToIndex[replayer.mirror.getId(oldChild2)] = i;\n }\n }\n indexInOld = oldIdToIndex[rrnodeMirror.getId(newStartNode)];\n const nodeToMove = oldChildren[indexInOld];\n if (indexInOld !== void 0 && nodeToMove && nodeMatching(nodeToMove, newStartNode, replayer.mirror, rrnodeMirror)) {\n try {\n oldTree.insertBefore(nodeToMove, oldStartNode);\n } catch (e) {\n console.warn(e);\n }\n oldChildren[indexInOld] = void 0;\n } else {\n const newNode = createOrGetNode(\n newStartNode,\n replayer.mirror,\n rrnodeMirror\n );\n if (oldTree.nodeName === \"#document\" && oldStartNode && /**\n * Special case 1: one document isn't allowed to have two doctype nodes at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A parent document in the old tree already has a doctype node with an id e.g. #1. A new full snapshot rebuilds the replayer with a new doctype node with another id #2. According to the algorithm, the new doctype node will be inserted before the old one, which is not allowed by the Document standard.\n */\n (newNode.nodeType === newNode.DOCUMENT_TYPE_NODE && oldStartNode.nodeType === oldStartNode.DOCUMENT_TYPE_NODE || /**\n * Special case 2: one document isn't allowed to have two HTMLElements at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A mounted iframe element has an automatically created HTML element. We should delete it before inserting a serialized one. Otherwise, an error 'Only one element on document allowed' will be thrown.\n */\n newNode.nodeType === newNode.ELEMENT_NODE && oldStartNode.nodeType === oldStartNode.ELEMENT_NODE)) {\n oldTree.removeChild(oldStartNode);\n replayer.mirror.removeNodeFromMap(oldStartNode);\n oldStartNode = oldChildren[++oldStartIndex];\n }\n try {\n oldTree.insertBefore(newNode, oldStartNode || null);\n } catch (e) {\n console.warn(e);\n }\n }\n newStartNode = newChildren[++newStartIndex];\n }\n }\n if (oldStartIndex > oldEndIndex) {\n const referenceRRNode = newChildren[newEndIndex + 1];\n let referenceNode = null;\n if (referenceRRNode)\n referenceNode = replayer.mirror.getNode(\n rrnodeMirror.getId(referenceRRNode)\n );\n for (; newStartIndex <= newEndIndex; ++newStartIndex) {\n const newNode = createOrGetNode(\n newChildren[newStartIndex],\n replayer.mirror,\n rrnodeMirror\n );\n try {\n oldTree.insertBefore(newNode, referenceNode);\n } catch (e) {\n console.warn(e);\n }\n }\n } else if (newStartIndex > newEndIndex) {\n for (; oldStartIndex <= oldEndIndex; oldStartIndex++) {\n const node2 = oldChildren[oldStartIndex];\n if (!node2 || node2.parentNode !== oldTree) continue;\n try {\n oldTree.removeChild(node2);\n replayer.mirror.removeNodeFromMap(node2);\n } catch (e) {\n console.warn(e);\n }\n }\n }\n let oldChild = oldTree.firstChild;\n let newChild = newTree.firstChild;\n while (oldChild !== null && newChild !== null) {\n diff(oldChild, newChild, replayer, rrnodeMirror);\n oldChild = oldChild.nextSibling;\n newChild = newChild.nextSibling;\n }\n}\nfunction createOrGetNode(rrNode, domMirror, rrnodeMirror) {\n const nodeId = rrnodeMirror.getId(rrNode);\n const sn = rrnodeMirror.getMeta(rrNode);\n let node2 = null;\n if (nodeId > -1) node2 = domMirror.getNode(nodeId);\n if (node2 !== null && sameNodeType(node2, rrNode)) return node2;\n switch (rrNode.RRNodeType) {\n case NodeType$1.Document:\n node2 = new Document();\n break;\n case NodeType$1.DocumentType:\n node2 = document.implementation.createDocumentType(\n rrNode.name,\n rrNode.publicId,\n rrNode.systemId\n );\n break;\n case NodeType$1.Element: {\n let tagName = rrNode.tagName.toLowerCase();\n tagName = SVGTagMap[tagName] || tagName;\n if (sn && \"isSVG\" in sn && (sn == null ? void 0 : sn.isSVG)) {\n node2 = document.createElementNS(NAMESPACES[\"svg\"], tagName);\n } else node2 = document.createElement(rrNode.tagName);\n break;\n }\n case NodeType$1.Text:\n node2 = document.createTextNode(rrNode.data);\n break;\n case NodeType$1.Comment:\n node2 = document.createComment(rrNode.data);\n break;\n case NodeType$1.CDATA:\n node2 = document.createCDATASection(rrNode.data);\n break;\n }\n if (sn) domMirror.add(node2, { ...sn });\n try {\n createdNodeSet == null ? void 0 : createdNodeSet.add(node2);\n } catch (e) {\n }\n return node2;\n}\nfunction sameNodeType(node1, node2) {\n if (node1.nodeType !== node2.nodeType) return false;\n return node1.nodeType !== node1.ELEMENT_NODE || node1.tagName.toUpperCase() === node2.tagName;\n}\nfunction nodeMatching(node1, node2, domMirror, rrdomMirror) {\n const node1Id = domMirror.getId(node1);\n const node2Id = rrdomMirror.getId(node2);\n if (node1Id === -1 || node1Id !== node2Id) return false;\n return sameNodeType(node1, node2);\n}\nclass RRDocument extends BaseRRDocument {\n constructor(mirror) {\n super();\n __publicField(this, \"UNSERIALIZED_STARTING_ID\", -2);\n // In the rrweb replayer, there are some unserialized nodes like the element that stores the injected style rules.\n // These unserialized nodes may interfere the execution of the diff algorithm.\n // The id of serialized node is larger than 0. So this value less than 0 is used as id for these unserialized nodes.\n __publicField(this, \"_unserializedId\", this.UNSERIALIZED_STARTING_ID);\n __publicField(this, \"mirror\", createMirror());\n __publicField(this, \"scrollData\", null);\n if (mirror) {\n this.mirror = mirror;\n }\n }\n /**\n * Every time the id is used, it will minus 1 automatically to avoid collisions.\n */\n get unserializedId() {\n return this._unserializedId--;\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new RRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const documentTypeNode = new RRDocumentType(\n qualifiedName,\n publicId,\n systemId\n );\n documentTypeNode.ownerDocument = this;\n return documentTypeNode;\n }\n createElement(tagName) {\n const upperTagName = tagName.toUpperCase();\n let element;\n switch (upperTagName) {\n case \"AUDIO\":\n case \"VIDEO\":\n element = new RRMediaElement(upperTagName);\n break;\n case \"IFRAME\":\n element = new RRIFrameElement(upperTagName, this.mirror);\n break;\n case \"CANVAS\":\n element = new RRCanvasElement(upperTagName);\n break;\n case \"STYLE\":\n element = new RRStyleElement(upperTagName);\n break;\n case \"DIALOG\":\n element = new RRDialogElement(upperTagName);\n break;\n default:\n element = new RRElement(upperTagName);\n break;\n }\n element.ownerDocument = this;\n return element;\n }\n createComment(data) {\n const commentNode = new RRComment(data);\n commentNode.ownerDocument = this;\n return commentNode;\n }\n createCDATASection(data) {\n const sectionNode = new RRCDATASection(data);\n sectionNode.ownerDocument = this;\n return sectionNode;\n }\n createTextNode(data) {\n const textNode = new RRText(data);\n textNode.ownerDocument = this;\n return textNode;\n }\n destroyTree() {\n this.firstChild = null;\n this.lastChild = null;\n this.mirror.reset();\n }\n open() {\n super.open();\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\n }\n}\nconst RRDocumentType = BaseRRDocumentType;\nclass RRElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"inputData\", null);\n __publicField(this, \"scrollData\", null);\n }\n}\nclass RRMediaElement extends BaseRRMediaElement {\n}\nclass RRDialogElement extends BaseRRDialogElement {\n}\nclass RRCanvasElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"rr_dataURL\", null);\n __publicField(this, \"canvasMutations\", []);\n }\n /**\n * This is a dummy implementation to distinguish RRCanvasElement from real HTMLCanvasElement.\n */\n getContext() {\n return null;\n }\n}\nclass RRStyleElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField(this, \"rules\", []);\n }\n}\nclass RRIFrameElement extends RRElement {\n constructor(upperTagName, mirror) {\n super(upperTagName);\n __publicField(this, \"contentDocument\", new RRDocument());\n this.contentDocument.mirror = mirror;\n }\n}\nconst RRText = BaseRRText;\nconst RRComment = BaseRRComment;\nconst RRCDATASection = BaseRRCDATASection;\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return \"FORM\";\n }\n return element.tagName.toUpperCase();\n}\nfunction buildFromNode(node2, rrdom, domMirror, parentRRNode) {\n let rrNode;\n switch (node2.nodeType) {\n case NodeType.DOCUMENT_NODE:\n if (parentRRNode && parentRRNode.nodeName === \"IFRAME\")\n rrNode = parentRRNode.contentDocument;\n else {\n rrNode = rrdom;\n rrNode.compatMode = node2.compatMode;\n }\n break;\n case NodeType.DOCUMENT_TYPE_NODE: {\n const documentType = node2;\n rrNode = rrdom.createDocumentType(\n documentType.name,\n documentType.publicId,\n documentType.systemId\n );\n break;\n }\n case NodeType.ELEMENT_NODE: {\n const elementNode = node2;\n const tagName = getValidTagName(elementNode);\n rrNode = rrdom.createElement(tagName);\n const rrElement = rrNode;\n for (const { name, value } of Array.from(elementNode.attributes)) {\n rrElement.attributes[name] = value;\n }\n elementNode.scrollLeft && (rrElement.scrollLeft = elementNode.scrollLeft);\n elementNode.scrollTop && (rrElement.scrollTop = elementNode.scrollTop);\n break;\n }\n case NodeType.TEXT_NODE:\n rrNode = rrdom.createTextNode(node2.textContent || \"\");\n break;\n case NodeType.CDATA_SECTION_NODE:\n rrNode = rrdom.createCDATASection(node2.data);\n break;\n case NodeType.COMMENT_NODE:\n rrNode = rrdom.createComment(node2.textContent || \"\");\n break;\n // if node is a shadow root\n case NodeType.DOCUMENT_FRAGMENT_NODE:\n rrNode = parentRRNode.attachShadow({ mode: \"open\" });\n break;\n default:\n return null;\n }\n let sn = domMirror.getMeta(node2);\n if (rrdom instanceof RRDocument) {\n if (!sn) {\n sn = getDefaultSN(rrNode, rrdom.unserializedId);\n domMirror.add(node2, sn);\n }\n rrdom.mirror.add(rrNode, { ...sn });\n }\n return rrNode;\n}\nfunction buildFromDom(dom, domMirror = createMirror$1(), rrdom = new RRDocument()) {\n function walk2(node2, parentRRNode) {\n const rrNode = buildFromNode(node2, rrdom, domMirror, parentRRNode);\n if (rrNode === null) return;\n if (\n // if the parentRRNode isn't a RRIFrameElement\n (parentRRNode == null ? void 0 : parentRRNode.nodeName) !== \"IFRAME\" && // if node isn't a shadow root\n node2.nodeType !== NodeType.DOCUMENT_FRAGMENT_NODE\n ) {\n parentRRNode == null ? void 0 : parentRRNode.appendChild(rrNode);\n rrNode.parentNode = parentRRNode;\n rrNode.parentElement = parentRRNode;\n }\n if (node2.nodeName === \"IFRAME\") {\n const iframeDoc = node2.contentDocument;\n iframeDoc && walk2(iframeDoc, rrNode);\n } else if (node2.nodeType === NodeType.DOCUMENT_NODE || node2.nodeType === NodeType.ELEMENT_NODE || node2.nodeType === NodeType.DOCUMENT_FRAGMENT_NODE) {\n if (node2.nodeType === NodeType.ELEMENT_NODE && node2.shadowRoot)\n walk2(node2.shadowRoot, rrNode);\n node2.childNodes.forEach((childNode) => walk2(childNode, rrNode));\n }\n }\n walk2(dom, null);\n return rrdom;\n}\nfunction createMirror() {\n return new Mirror2();\n}\nclass Mirror2 {\n constructor() {\n __publicField(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n) {\n var _a;\n if (!n) return -1;\n const id = (_a = this.getMeta(n)) == null ? void 0 : _a.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n) {\n return this.nodeMetaMap.get(n) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n) {\n const id = this.getId(n);\n this.idNodeMap.delete(id);\n if (n.childNodes) {\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n);\n this.nodeMetaMap.set(n, meta);\n }\n replace(id, n) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n, meta);\n }\n this.idNodeMap.set(id, n);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction getDefaultSN(node2, id) {\n switch (node2.RRNodeType) {\n case NodeType$1.Document:\n return {\n id,\n type: node2.RRNodeType,\n childNodes: []\n };\n case NodeType$1.DocumentType: {\n const doctype = node2;\n return {\n id,\n type: node2.RRNodeType,\n name: doctype.name,\n publicId: doctype.publicId,\n systemId: doctype.systemId\n };\n }\n case NodeType$1.Element:\n return {\n id,\n type: node2.RRNodeType,\n tagName: node2.tagName.toLowerCase(),\n // In rrweb data, all tagNames are lowercase.\n attributes: {},\n childNodes: []\n };\n case NodeType$1.Text:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.Comment:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.CDATA:\n return {\n id,\n type: node2.RRNodeType,\n textContent: \"\"\n };\n }\n}\nfunction printRRDom(rootNode, mirror) {\n return walk(rootNode, mirror, \"\");\n}\nfunction walk(node2, mirror, blankSpace) {\n let printText = `${blankSpace}${mirror.getId(node2)} ${node2.toString()}\n`;\n if (node2.RRNodeType === NodeType$1.Element) {\n const element = node2;\n if (element.shadowRoot)\n printText += walk(element.shadowRoot, mirror, blankSpace + \" \");\n }\n for (const child of node2.childNodes)\n printText += walk(child, mirror, blankSpace + \" \");\n if (node2.nodeName === \"IFRAME\")\n printText += walk(\n node2.contentDocument,\n mirror,\n blankSpace + \" \"\n );\n return printText;\n}\nexport {\n BaseRRCDATASection,\n BaseRRComment,\n BaseRRDialogElement,\n BaseRRDocument,\n BaseRRDocumentType,\n BaseRRElement,\n BaseRRMediaElement,\n BaseRRNode,\n BaseRRText,\n ClassList,\n Mirror2 as Mirror,\n NodeType,\n RRCDATASection,\n RRCanvasElement,\n RRComment,\n RRDialogElement,\n RRDocument,\n RRDocumentType,\n RRElement,\n RRIFrameElement,\n RRMediaElement,\n BaseRRNode as RRNode,\n RRStyleElement,\n RRText,\n buildFromDom,\n buildFromNode,\n createMirror,\n createOrGetNode,\n diff,\n getDefaultSN,\n printRRDom\n};\n//# sourceMappingURL=rrdom.js.map\n", "const testableAccessors = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nfunction angularZoneUnpatchedAlternative(key) {\n var _a, _b;\n const angularUnpatchedVersionSymbol = (_b = (_a = globalThis == null ? void 0 : globalThis.Zone) == null ? void 0 : _a.__symbol__) == null ? void 0 : _b.call(_a, key);\n if (angularUnpatchedVersionSymbol && globalThis[angularUnpatchedVersionSymbol]) {\n return globalThis[angularUnpatchedVersionSymbol];\n } else {\n return void 0;\n }\n}\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const candidate = angularZoneUnpatchedAlternative(key) || globalThis[key];\n const defaultPrototype = candidate.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a, _b;\n return Boolean(\n (_b = (_a = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods ? testableMethods[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a;\n return typeof defaultPrototype[method] === \"function\" && ((_a = defaultPrototype[method]) == null ? void 0 : _a.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods) {\n untaintedBasePrototype[key] = candidate.prototype;\n return candidate.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return candidate.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache[cacheKey])\n return untaintedAccessorCache[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedAccessor = (_a = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache[cacheKey])\n return untaintedMethodCache[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes(n) {\n return getUntaintedAccessor(\"Node\", n, \"childNodes\");\n}\nfunction parentNode(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentNode\");\n}\nfunction parentElement(n) {\n return getUntaintedAccessor(\"Node\", n, \"parentElement\");\n}\nfunction textContent(n) {\n return getUntaintedAccessor(\"Node\", n, \"textContent\");\n}\nfunction contains(n, other) {\n return getUntaintedMethod(\"Node\", n, \"contains\")(other);\n}\nfunction getRootNode(n) {\n return getUntaintedMethod(\"Node\", n, \"getRootNode\")();\n}\nfunction host(n) {\n if (!n || !(\"host\" in n)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n, \"host\");\n}\nfunction styleSheets(n) {\n return n.styleSheets;\n}\nfunction shadowRoot(n) {\n if (!n || !(\"shadowRoot\" in n)) return null;\n return getUntaintedAccessor(\"Element\", n, \"shadowRoot\");\n}\nfunction querySelector(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n, selectors) {\n return getUntaintedAccessor(\"Element\", n, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nconst index = {\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor,\n patch\n};\nexport {\n childNodes,\n contains,\n index as default,\n getRootNode,\n getUntaintedAccessor,\n getUntaintedMethod,\n getUntaintedPrototype,\n host,\n mutationObserverCtor,\n parentElement,\n parentNode,\n patch,\n querySelector,\n querySelectorAll,\n shadowRoot,\n styleSheets,\n textContent\n};\n//# sourceMappingURL=rrweb-utils.js.map\n", "import type {\n throttleOptions,\n listenerHandler,\n hookResetter,\n blockClass,\n addedNodeMutation,\n DocumentDimension,\n IWindow,\n DeprecatedMirror,\n textMutation,\n IMirror,\n} from '@posthog/rrweb-types';\nimport type { Mirror, SlimDOMOptions } from '@posthog/rrweb-snapshot';\nimport {\n isShadowRoot,\n IGNORED_NODE,\n classMatchesRegex,\n} from '@posthog/rrweb-snapshot';\nimport { RRNode, RRIFrameElement, BaseRRNode } from '@posthog/rrdom';\nimport dom from '@posthog/rrweb-utils';\n\nexport function on(\n type: string,\n fn: EventListenerOrEventListenerObject,\n target: Document | IWindow = document,\n): listenerHandler {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\n\n// https://github.com/rrweb-io/rrweb/pull/407\nconst DEPARTED_MIRROR_ACCESS_WARNING =\n 'Please stop import mirror directly. Instead of that,' +\n '\\r\\n' +\n 'now you can use replayer.getMirror() to access the mirror instance of a replayer,' +\n '\\r\\n' +\n 'or you can use record.mirror to access the mirror instance during recording.';\n/** @deprecated */\nexport let _mirror: DeprecatedMirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n};\nif (typeof window !== 'undefined' && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === 'map') {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return Reflect.get(target, prop, receiver);\n },\n });\n}\n\n// copy from underscore and modified\nexport function throttle<T>(\n func: (arg: T) => void,\n wait: number,\n options: throttleOptions = {},\n) {\n let timeout: ReturnType<typeof setTimeout> | null = null;\n let previous = 0;\n return function (...args: T[]) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-this-alias\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\n\nexport function hookSetter<T>(\n target: T,\n key: string | number | symbol,\n d: PropertyDescriptor,\n isRevoked?: boolean,\n win = window,\n): hookResetter {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(\n target,\n key,\n isRevoked\n ? d\n : {\n set(value) {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(() => {\n d.set!.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n },\n },\n );\n return () => hookSetter(target, key, original || {}, true);\n}\n\n// guard against old third party libraries which redefine Date.now\nlet nowTimestamp = Date.now;\n\nif (!(/*@__PURE__*/ /[1-9][0-9]{12}/.test(Date.now().toString()))) {\n // they have already redefined it! use a fallback\n nowTimestamp = () => new Date().getTime();\n}\nexport { nowTimestamp };\n\nexport function getWindowScroll(win: Window) {\n const doc = win.document;\n return {\n left: doc.scrollingElement\n ? doc.scrollingElement.scrollLeft\n : win.pageXOffset !== undefined\n ? win.pageXOffset\n : doc.documentElement.scrollLeft ||\n (doc?.body && dom.parentElement(doc.body)?.scrollLeft) ||\n doc?.body?.scrollLeft ||\n 0,\n top: doc.scrollingElement\n ? doc.scrollingElement.scrollTop\n : win.pageYOffset !== undefined\n ? win.pageYOffset\n : doc?.documentElement.scrollTop ||\n (doc?.body && dom.parentElement(doc.body)?.scrollTop) ||\n doc?.body?.scrollTop ||\n 0,\n };\n}\n\nexport function getWindowHeight(): number {\n return (\n window.innerHeight ||\n (document.documentElement && document.documentElement.clientHeight) ||\n (document.body && document.body.clientHeight)\n );\n}\n\nexport function getWindowWidth(): number {\n return (\n window.innerWidth ||\n (document.documentElement && document.documentElement.clientWidth) ||\n (document.body && document.body.clientWidth)\n );\n}\n\n/**\n * Returns the given node as an HTMLElement if it is one, otherwise the parent node as an HTMLElement\n * @param node - node to check\n * @returns HTMLElement or null\n */\n\nexport function closestElementOfNode(node: Node | null): HTMLElement | null {\n if (!node) {\n return null;\n }\n const el: HTMLElement | null =\n node.nodeType === node.ELEMENT_NODE\n ? (node as HTMLElement)\n : dom.parentElement(node);\n return el;\n}\n\n/**\n * Checks if the given element set to be blocked by rrweb\n * @param node - node to check\n * @param blockClass - class name to check\n * @param blockSelector - css selectors to check\n * @param checkAncestors - whether to search through parent nodes for the block class\n * @returns true/false if the node was blocked or not\n */\nexport function isBlocked(\n node: Node | null,\n blockClass: blockClass,\n blockSelector: string | null,\n checkAncestors: boolean,\n): boolean {\n if (!node) {\n return false;\n }\n const el = closestElementOfNode(node);\n\n if (!el) {\n return false;\n }\n\n try {\n if (typeof blockClass === 'string') {\n if (el.classList.contains(blockClass)) return true;\n if (checkAncestors && el.closest('.' + blockClass) !== null) return true;\n } else {\n if (classMatchesRegex(el, blockClass, checkAncestors)) return true;\n }\n } catch (e) {\n // e\n }\n if (blockSelector) {\n if (el.matches(blockSelector)) return true;\n if (checkAncestors && el.closest(blockSelector) !== null) return true;\n }\n return false;\n}\n\nexport function isSerialized(n: Node, mirror: Mirror): boolean {\n return mirror.getId(n) !== -1;\n}\n\nexport function isIgnored(\n n: Node,\n mirror: Mirror,\n slimDOMOptions: SlimDOMOptions,\n): boolean {\n if ((n as Element).tagName === 'TITLE' && slimDOMOptions.headTitleMutations) {\n // we do this check here but not in rrweb-snapshot\n // to block mutations/animations on the title.\n // the headTitleMutations option isn't intended to block recording of the initial value\n return true;\n }\n // The main part of the slimDOM check happens in\n // rrweb-snapshot::serializeNodeWithId\n return mirror.getId(n) === IGNORED_NODE;\n}\n\nexport function isAncestorRemoved(target: Node, mirror: Mirror): boolean {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror.getId(target);\n if (!mirror.has(id)) {\n return true;\n }\n const parent = dom.parentNode(target);\n if (parent && parent.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n // if the root is not document, it means the node is not in the DOM tree anymore\n if (!parent) {\n return true;\n }\n return isAncestorRemoved(parent, mirror);\n}\n\nexport function legacy_isTouchEvent(\n event: MouseEvent | TouchEvent | PointerEvent,\n): event is TouchEvent {\n return Boolean((event as TouchEvent).changedTouches);\n}\n\nexport function polyfill(win = window) {\n if ('NodeList' in win && !win.NodeList.prototype.forEach) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n win.NodeList.prototype.forEach = Array.prototype\n .forEach as unknown as NodeList['forEach'];\n }\n\n if ('DOMTokenList' in win && !win.DOMTokenList.prototype.forEach) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n win.DOMTokenList.prototype.forEach = Array.prototype\n .forEach as unknown as DOMTokenList['forEach'];\n }\n}\n\ntype ResolveTree = {\n value: addedNodeMutation;\n children: ResolveTree[];\n parent: ResolveTree | null;\n};\n\nexport function queueToResolveTrees(queue: addedNodeMutation[]): ResolveTree[] {\n const queueNodeMap: Record<number, ResolveTree> = {};\n const putIntoMap = (\n m: addedNodeMutation,\n parent: ResolveTree | null,\n ): ResolveTree => {\n const nodeInTree: ResolveTree = {\n value: m,\n parent,\n children: [],\n };\n queueNodeMap[m.node.id] = nodeInTree;\n return nodeInTree;\n };\n\n const queueNodeTrees: ResolveTree[] = [];\n for (const mutation of queue) {\n const { nextId, parentId } = mutation;\n if (nextId && nextId in queueNodeMap) {\n const nextInTree = queueNodeMap[nextId];\n if (nextInTree.parent) {\n const idx = nextInTree.parent.children.indexOf(nextInTree);\n nextInTree.parent.children.splice(\n idx,\n 0,\n putIntoMap(mutation, nextInTree.parent),\n );\n } else {\n const idx = queueNodeTrees.indexOf(nextInTree);\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\n }\n continue;\n }\n if (parentId in queueNodeMap) {\n const parentInTree = queueNodeMap[parentId];\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\n continue;\n }\n queueNodeTrees.push(putIntoMap(mutation, null));\n }\n\n return queueNodeTrees;\n}\n\nexport function iterateResolveTree(\n tree: ResolveTree,\n cb: (mutation: addedNodeMutation) => unknown,\n) {\n cb(tree.value);\n /**\n * The resolve tree was designed to reflect the DOM layout,\n * but we need append next sibling first, so we do a reverse\n * loop here.\n */\n for (let i = tree.children.length - 1; i >= 0; i--) {\n iterateResolveTree(tree.children[i], cb);\n }\n}\n\nexport type AppendedIframe = {\n mutationInQueue: addedNodeMutation;\n builtNode: HTMLIFrameElement | RRIFrameElement;\n};\n\nexport function isSerializedIframe<TNode extends Node | RRNode>(\n n: TNode,\n mirror: IMirror<TNode>,\n): boolean {\n return Boolean(n.nodeName === 'IFRAME' && mirror.getMeta(n));\n}\n\nexport function isSerializedStylesheet<TNode extends Node | RRNode>(\n n: TNode,\n mirror: IMirror<TNode>,\n): boolean {\n return Boolean(\n n.nodeName === 'LINK' &&\n n.nodeType === n.ELEMENT_NODE &&\n (n as HTMLElement).getAttribute &&\n (n as HTMLElement).getAttribute('rel') === 'stylesheet' &&\n mirror.getMeta(n),\n );\n}\n\nexport function getBaseDimension(\n node: Node,\n rootIframe: Node,\n): DocumentDimension {\n const frameElement = node.ownerDocument?.defaultView?.frameElement;\n if (!frameElement || frameElement === rootIframe) {\n return {\n x: 0,\n y: 0,\n relativeScale: 1,\n absoluteScale: 1,\n };\n }\n\n const frameDimension = frameElement.getBoundingClientRect();\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\n // the iframe element may have a scale transform\n const relativeScale = frameDimension.height / frameElement.clientHeight;\n return {\n x:\n frameDimension.x * frameBaseDimension.relativeScale +\n frameBaseDimension.x,\n y:\n frameDimension.y * frameBaseDimension.relativeScale +\n frameBaseDimension.y,\n relativeScale,\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale,\n };\n}\n\nexport function hasShadowRoot<T extends Node | RRNode>(\n n: T,\n): n is T & { shadowRoot: ShadowRoot } {\n if (!n) return false;\n if (n instanceof BaseRRNode && 'shadowRoot' in n) {\n return Boolean(n.shadowRoot);\n }\n return Boolean(dom.shadowRoot(n as unknown as Element));\n}\n\nexport function getNestedRule(\n rules: CSSRuleList,\n position: number[],\n): CSSGroupingRule {\n const rule = rules[position[0]] as CSSGroupingRule;\n if (position.length === 1) {\n return rule;\n } else {\n return getNestedRule(\n (rule.cssRules[position[1]] as CSSGroupingRule).cssRules,\n position.slice(2),\n );\n }\n}\n\nexport function getPositionsAndIndex(nestedIndex: number[]) {\n const positions = [...nestedIndex];\n const index = positions.pop();\n return { positions, index };\n}\n\n/**\n * Returns the latest mutation in the queue for each node.\n * @param mutations - mutations The text mutations to filter.\n * @returns The filtered text mutations.\n */\nexport function uniqueTextMutations(mutations: textMutation[]): textMutation[] {\n const idSet = new Set<number>();\n const uniqueMutations: textMutation[] = [];\n\n for (let i = mutations.length; i--; ) {\n const mutation = mutations[i];\n if (!idSet.has(mutation.id)) {\n uniqueMutations.push(mutation);\n idSet.add(mutation.id);\n }\n }\n\n return uniqueMutations;\n}\n\nexport class StyleSheetMirror {\n private id = 1;\n private styleIDMap = new WeakMap<CSSStyleSheet, number>();\n private idStyleMap = new Map<number, CSSStyleSheet>();\n\n getId(stylesheet: CSSStyleSheet): number {\n return this.styleIDMap.get(stylesheet) ?? -1;\n }\n\n has(stylesheet: CSSStyleSheet): boolean {\n return this.styleIDMap.has(stylesheet);\n }\n\n /**\n * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n */\n add(stylesheet: CSSStyleSheet, id?: number): number {\n if (this.has(stylesheet)) return this.getId(stylesheet);\n let newId: number;\n if (id === undefined) {\n newId = this.id++;\n } else newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n\n getStyle(id: number): CSSStyleSheet | null {\n return this.idStyleMap.get(id) || null;\n }\n\n reset(): void {\n this.styleIDMap = new WeakMap();\n this.idStyleMap = new Map();\n this.id = 1;\n }\n\n generateId(): number {\n return this.id++;\n }\n}\n\n/**\n * Get the direct shadow host of a node in shadow dom. Returns null if it is not in a shadow dom.\n */\nexport function getShadowHost(n: Node): Element | null {\n let shadowHost: Element | null = null;\n if (\n 'getRootNode' in n &&\n dom.getRootNode(n)?.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&\n dom.host(dom.getRootNode(n) as ShadowRoot)\n )\n shadowHost = dom.host(dom.getRootNode(n) as ShadowRoot);\n return shadowHost;\n}\n\n/**\n * Get the root shadow host of a node in nested shadow doms. Returns the node itself if it is not in a shadow dom.\n */\nexport function getRootShadowHost(n: Node): Node {\n let rootShadowHost: Node = n;\n\n let shadowHost: Element | null;\n // If n is in a nested shadow dom.\n while ((shadowHost = getShadowHost(rootShadowHost)))\n rootShadowHost = shadowHost;\n\n return rootShadowHost;\n}\n\nexport function shadowHostInDom(n: Node): boolean {\n const doc = n.ownerDocument;\n if (!doc) return false;\n const shadowHost = getRootShadowHost(n);\n return dom.contains(doc, shadowHost);\n}\n\nexport function inDom(n: Node): boolean {\n const doc = n.ownerDocument;\n if (!doc) return false;\n return dom.contains(doc, n) || shadowHostInDom(n);\n}\n", "var EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n return MediaInteractions2;\n})(MediaInteractions || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType || {});\nexport {\n CanvasContext,\n EventType,\n IncrementalSource,\n MediaInteractions,\n MouseInteractions,\n NodeType,\n PointerTypes,\n ReplayerEvents\n};\n//# sourceMappingURL=rrweb-types.js.map\n", "import {\n serializeNodeWithId,\n transformAttribute,\n IGNORED_NODE,\n ignoreAttribute,\n isShadowRoot,\n needMaskingText,\n maskInputValue,\n Mirror,\n isNativeShadowDom,\n getInputType,\n toLowerCase,\n} from '@posthog/rrweb-snapshot';\nimport type { observerParam, MutationBufferParam } from '../types';\nimport type {\n mutationRecord,\n textCursor,\n attributeCursor,\n removedNodeMutation,\n addedNodeMutation,\n Optional,\n} from '@posthog/rrweb-types';\nimport {\n isBlocked,\n isAncestorRemoved,\n isIgnored,\n isSerialized,\n hasShadowRoot,\n isSerializedIframe,\n isSerializedStylesheet,\n inDom,\n getShadowHost,\n closestElementOfNode,\n} from '../utils';\nimport dom from '@posthog/rrweb-utils';\n\ntype DoubleLinkedListNode = {\n previous: DoubleLinkedListNode | null;\n next: DoubleLinkedListNode | null;\n value: NodeInLinkedList;\n};\ntype NodeInLinkedList = Node & {\n __ln: DoubleLinkedListNode;\n};\n\nfunction isNodeInLinkedList(n: Node | NodeInLinkedList): n is NodeInLinkedList {\n return '__ln' in n;\n}\n\nclass DoubleLinkedList {\n public length = 0;\n public head: DoubleLinkedListNode | null = null;\n public tail: DoubleLinkedListNode | null = null;\n\n public get(position: number) {\n if (position >= this.length) {\n throw new Error('Position outside of list range');\n }\n\n let current = this.head;\n for (let index = 0; index < position; index++) {\n current = current?.next || null;\n }\n return current;\n }\n\n public addNode(n: Node) {\n const node: DoubleLinkedListNode = {\n value: n as NodeInLinkedList,\n previous: null,\n next: null,\n };\n (n as NodeInLinkedList).__ln = node;\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\n const current = n.previousSibling.__ln.next;\n node.next = current;\n node.previous = n.previousSibling.__ln;\n n.previousSibling.__ln.next = node;\n if (current) {\n current.previous = node;\n }\n } else if (\n n.nextSibling &&\n isNodeInLinkedList(n.nextSibling) &&\n n.nextSibling.__ln.previous\n ) {\n const current = n.nextSibling.__ln.previous;\n node.previous = current;\n node.next = n.nextSibling.__ln;\n n.nextSibling.__ln.previous = node;\n if (current) {\n current.next = node;\n }\n } else {\n if (this.head) {\n this.head.previous = node;\n }\n node.next = this.head;\n this.head = node;\n }\n if (node.next === null) {\n this.tail = node;\n }\n this.length++;\n }\n\n public removeNode(n: NodeInLinkedList) {\n const current = n.__ln;\n if (!this.head) {\n return;\n }\n\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n } else {\n this.tail = null;\n }\n } else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n } else {\n this.tail = current.previous;\n }\n }\n if (n.__ln) {\n delete (n as Optional<NodeInLinkedList, '__ln'>).__ln;\n }\n this.length--;\n }\n}\n\nconst moveKey = (id: number, parentId: number) => `${id}@${parentId}`;\n\n/**\n * controls behaviour of a MutationObserver\n */\nexport default class MutationBuffer {\n private frozen = false;\n private locked = false;\n\n private texts: textCursor[] = [];\n private attributes: attributeCursor[] = [];\n private attributeMap = new WeakMap<Node, attributeCursor>();\n private removes: removedNodeMutation[] = [];\n private mapRemoves: Node[] = [];\n\n private movedMap: Record<string, true> = {};\n\n /**\n * the browser MutationObserver emits multiple mutations after\n * a delay for performance reasons, making tracing added nodes hard\n * in our `processMutations` callback function.\n * For example, if we append an element el_1 into body, and then append\n * another element el_2 into el_1, these two mutations may be passed to the\n * callback function together when the two operations were done.\n * Generally we need to trace child nodes of newly added nodes, but in this\n * case if we count el_2 as el_1's child node in the first mutation record,\n * then we will count el_2 again in the second mutation record which was\n * duplicated.\n * To avoid of duplicate counting added nodes, we use a Set to store\n * added nodes and its child nodes during iterate mutation records. Then\n * collect added nodes from the Set which have no duplicate copy. But\n * this also causes newly added nodes will not be serialized with id ASAP,\n * which means all the id related calculation should be lazy too.\n */\n private addedSet = new Set<Node>();\n private movedSet = new Set<Node>();\n private droppedSet = new Set<Node>();\n private removesSubTreeCache = new Set<Node>();\n\n private mutationCb: observerParam['mutationCb'];\n private blockClass: observerParam['blockClass'];\n private blockSelector: observerParam['blockSelector'];\n private maskTextClass: observerParam['maskTextClass'];\n private maskTextSelector: observerParam['maskTextSelector'];\n private inlineStylesheet: observerParam['inlineStylesheet'];\n private maskInputOptions: observerParam['maskInputOptions'];\n private maskTextFn: observerParam['maskTextFn'];\n private maskInputFn: observerParam['maskInputFn'];\n private keepIframeSrcFn: observerParam['keepIframeSrcFn'];\n private recordCanvas: observerParam['recordCanvas'];\n private inlineImages: observerParam['inlineImages'];\n private slimDOMOptions: observerParam['slimDOMOptions'];\n private dataURLOptions: observerParam['dataURLOptions'];\n private doc: observerParam['doc'];\n private mirror: observerParam['mirror'];\n private iframeManager: observerParam['iframeManager'];\n private stylesheetManager: observerParam['stylesheetManager'];\n private shadowDomManager: observerParam['shadowDomManager'];\n private canvasManager: observerParam['canvasManager'];\n private processedNodeManager: observerParam['processedNodeManager'];\n private unattachedDoc: HTMLDocument;\n\n public init(options: MutationBufferParam) {\n (\n [\n 'mutationCb',\n 'blockClass',\n 'blockSelector',\n 'maskTextClass',\n 'maskTextSelector',\n 'inlineStylesheet',\n 'maskInputOptions',\n 'maskTextFn',\n 'maskInputFn',\n 'keepIframeSrcFn',\n 'recordCanvas',\n 'inlineImages',\n 'slimDOMOptions',\n 'dataURLOptions',\n 'doc',\n 'mirror',\n 'iframeManager',\n 'stylesheetManager',\n 'shadowDomManager',\n 'canvasManager',\n 'processedNodeManager',\n ] as const\n ).forEach((key) => {\n // just a type trick, the runtime result is correct\n this[key] = options[key] as never;\n });\n }\n\n public freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n\n public unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n\n public isFrozen() {\n return this.frozen;\n }\n\n public lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n\n public unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n\n public reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n\n public destroy() {\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift()!);\n }\n }\n\n public processMutations = (mutations: mutationRecord[]) => {\n mutations.forEach(this.processMutation); // adds mutations to the buffer\n this.emit(); // clears buffer if not locked/frozen\n };\n\n public emit = () => {\n if (this.frozen || this.locked) {\n return;\n }\n\n // delay any modification of the mirror until this function\n // so that the mirror for takeFullSnapshot doesn't get mutated while it's event is being processed\n\n const adds: addedNodeMutation[] = [];\n const addedIds = new Set<number>();\n\n /**\n * Sometimes child node may be pushed before its newly added\n * parent, so we init a queue to store these nodes.\n */\n const addList = new DoubleLinkedList();\n const getNextId = (n: Node): number | null => {\n let ns: Node | null = n;\n let nextId: number | null = IGNORED_NODE; // slimDOM: ignored\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && this.mirror.getId(ns);\n }\n return nextId;\n };\n const pushAdd = (n: Node) => {\n const parent = dom.parentNode(n);\n if (!parent || !inDom(n) || (parent as Element).tagName === 'TEXTAREA') {\n return;\n }\n const parentId = isShadowRoot(parent)\n ? this.mirror.getId(getShadowHost(n))\n : this.mirror.getId(parent);\n const nextId = getNextId(n);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n);\n }\n const sn = serializeNodeWithId(n, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskTextClass: this.maskTextClass,\n maskTextSelector: this.maskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (currentN) => {\n if (isSerializedIframe(currentN, this.mirror)) {\n this.iframeManager.addIframe(currentN as HTMLIFrameElement);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(\n currentN as HTMLLinkElement,\n );\n }\n if (hasShadowRoot(n)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.shadowDomManager.addShadowRoot(dom.shadowRoot(n)!, this.doc);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n this.iframeManager.attachIframe(iframe, childSn);\n this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (link, childSn) => {\n this.stylesheetManager.attachLinkElement(link, childSn);\n },\n });\n if (sn) {\n adds.push({\n parentId,\n nextId,\n node: sn,\n });\n addedIds.add(sn.id);\n }\n };\n\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift()!);\n }\n\n for (const n of this.movedSet) {\n if (\n isParentRemoved(this.removesSubTreeCache, n, this.mirror) &&\n !this.movedSet.has(dom.parentNode(n)!)\n ) {\n continue;\n }\n pushAdd(n);\n }\n\n for (const n of this.addedSet) {\n if (\n !isAncestorInSet(this.droppedSet, n) &&\n !isParentRemoved(this.removesSubTreeCache, n, this.mirror)\n ) {\n pushAdd(n);\n } else if (isAncestorInSet(this.movedSet, n)) {\n pushAdd(n);\n } else {\n this.droppedSet.add(n);\n }\n }\n\n let candidate: DoubleLinkedListNode | null = null;\n while (addList.length) {\n let node: DoubleLinkedListNode | null = null;\n if (candidate) {\n const parentId = this.mirror.getId(dom.parentNode(candidate.value));\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node = candidate;\n }\n }\n if (!node) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n // ensure _node is defined before attempting to find value\n if (_node) {\n const parentId = this.mirror.getId(dom.parentNode(_node.value));\n const nextId = getNextId(_node.value);\n\n if (nextId === -1) continue;\n // nextId !== -1 && parentId !== -1\n else if (parentId !== -1) {\n node = _node;\n break;\n }\n // nextId !== -1 && parentId === -1 This branch can happen if the node is the child of shadow root\n else {\n const unhandledNode = _node.value;\n const parent = dom.parentNode(unhandledNode);\n // If the node is the direct child of a shadow root, we treat the shadow host as its parent node.\n if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = dom.host(parent as ShadowRoot);\n const parentId = this.mirror.getId(shadowHost);\n if (parentId !== -1) {\n node = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node) {\n /**\n * If all nodes in queue could not find a serialized parent,\n * it may be a bug or corner case. We need to escape the\n * dead while loop at once.\n */\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node.previous;\n addList.removeNode(node.value);\n pushAdd(node.value);\n }\n\n const payload = {\n texts: this.texts\n .map((text) => {\n const n = text.node;\n const parent = dom.parentNode(n);\n if (parent && (parent as Element).tagName === 'TEXTAREA') {\n // the node is being ignored as it isn't in the mirror, so shift mutation to attributes on parent textarea\n this.genTextAreaValueMutation(parent as HTMLTextAreaElement);\n }\n return {\n id: this.mirror.getId(n),\n value: text.value,\n };\n })\n // no need to include them on added elements, as they have just been serialized with up to date attribubtes\n .filter((text) => !addedIds.has(text.id))\n // text mutation's id was not in the mirror map means the target node has been removed\n .filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes\n .map((attribute) => {\n const { attributes } = attribute;\n if (typeof attributes.style === 'string') {\n const diffAsStr = JSON.stringify(attribute.styleDiff);\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n // check if the style diff is actually shorter than the regular string based mutation\n // (which was the whole point of #464 'compact style mutation').\n if (diffAsStr.length < attributes.style.length) {\n // also: CSSOM fails badly when var() is present on shorthand properties, so only proceed with\n // the compact style mutation if these have all been accounted for\n if (\n (diffAsStr + unchangedAsStr).split('var(').length ===\n attributes.style.split('var(').length\n ) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes: attributes,\n };\n })\n // no need to include them on added elements, as they have just been serialized with up to date attribubtes\n .filter((attribute) => !addedIds.has(attribute.id))\n // attribute mutation's id was not in the mirror map means the target node has been removed\n .filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds,\n };\n // payload may be empty if the mutations happened in some blocked elements\n if (\n !payload.texts.length &&\n !payload.attributes.length &&\n !payload.removes.length &&\n !payload.adds.length\n ) {\n return;\n }\n\n // reset\n this.texts = [];\n this.attributes = [];\n this.attributeMap = new WeakMap<Node, attributeCursor>();\n this.removes = [];\n this.addedSet = new Set<Node>();\n this.movedSet = new Set<Node>();\n this.droppedSet = new Set<Node>();\n this.removesSubTreeCache = new Set<Node>();\n this.movedMap = {};\n\n this.mutationCb(payload);\n };\n\n private genTextAreaValueMutation = (textarea: HTMLTextAreaElement) => {\n let item = this.attributeMap.get(textarea);\n if (!item) {\n item = {\n node: textarea,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {},\n };\n this.attributes.push(item);\n this.attributeMap.set(textarea, item);\n }\n item.attributes.value = Array.from(\n dom.childNodes(textarea),\n (cn) => dom.textContent(cn) || '',\n ).join('');\n };\n\n private processMutation = (m: mutationRecord) => {\n if (isIgnored(m.target, this.mirror, this.slimDOMOptions)) {\n return;\n }\n switch (m.type) {\n case 'characterData': {\n const value = dom.textContent(m.target);\n\n if (\n !isBlocked(m.target, this.blockClass, this.blockSelector, false) &&\n value !== m.oldValue\n ) {\n this.texts.push({\n value:\n needMaskingText(\n m.target,\n this.maskTextClass,\n this.maskTextSelector,\n true, // checkAncestors\n ) && value\n ? this.maskTextFn\n ? this.maskTextFn(value, closestElementOfNode(m.target))\n : value.replace(/[\\S]/g, '*')\n : value,\n node: m.target,\n });\n }\n break;\n }\n case 'attributes': {\n const target = m.target as HTMLElement;\n let attributeName = m.attributeName as string;\n let value = (m.target as HTMLElement).getAttribute(attributeName);\n\n if (attributeName === 'value') {\n const type = getInputType(target);\n\n value = maskInputValue({\n element: target,\n maskInputOptions: this.maskInputOptions,\n tagName: target.tagName,\n type,\n value,\n maskInputFn: this.maskInputFn,\n });\n }\n if (\n isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\n value === m.oldValue\n ) {\n return;\n }\n\n let item = this.attributeMap.get(m.target);\n if (\n target.tagName === 'IFRAME' &&\n attributeName === 'src' &&\n !this.keepIframeSrcFn(value as string)\n ) {\n if (!(target as HTMLIFrameElement).contentDocument) {\n // we can't record it directly as we can't see into it\n // preserve the src attribute so a decision can be taken at replay time\n attributeName = 'rr_src';\n } else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {},\n };\n this.attributes.push(item);\n this.attributeMap.set(m.target, item);\n }\n\n // Keep this property on inputs that used to be password inputs\n // This is used to ensure we do not unmask value when using e.g. a \"Show password\" type button\n if (\n attributeName === 'type' &&\n target.tagName === 'INPUT' &&\n (m.oldValue || '').toLowerCase() === 'password'\n ) {\n target.setAttribute('data-rr-is-password', 'true');\n }\n\n if (!ignoreAttribute(target.tagName, attributeName, value)) {\n // overwrite attribute if the mutations was triggered in same time\n item.attributes[attributeName] = transformAttribute(\n this.doc,\n toLowerCase(target.tagName),\n toLowerCase(attributeName),\n value,\n target,\n this.dataURLOptions,\n );\n if (attributeName === 'style') {\n if (!this.unattachedDoc) {\n try {\n // avoid upsetting original document from a Content Security point of view\n this.unattachedDoc =\n document.implementation.createHTMLDocument();\n } catch (e) {\n // fallback to more direct method\n this.unattachedDoc = this.doc;\n }\n }\n const old = this.unattachedDoc.createElement('span');\n if (m.oldValue) {\n old.setAttribute('style', m.oldValue);\n }\n for (const pname of Array.from(target.style)) {\n const newValue = target.style.getPropertyValue(pname);\n const newPriority = target.style.getPropertyPriority(pname);\n if (\n newValue !== old.style.getPropertyValue(pname) ||\n newPriority !== old.style.getPropertyPriority(pname)\n ) {\n if (newPriority === '') {\n item.styleDiff[pname] = newValue;\n } else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n } else {\n // for checking\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === '') {\n // \"if not set, returns the empty string\"\n item.styleDiff[pname] = false; // delete\n }\n }\n } else if (attributeName === 'open' && target.tagName === 'DIALOG') {\n if (target.matches('dialog:modal')) {\n item.attributes['rr_open_mode'] = 'modal';\n } else {\n item.attributes['rr_open_mode'] = 'non-modal';\n }\n }\n }\n break;\n }\n case 'childList': {\n /**\n * Parent is blocked, ignore all child mutations\n */\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\n return;\n\n if ((m.target as Element).tagName === 'TEXTAREA') {\n // children would be ignored in genAdds as they aren't in the mirror\n this.genTextAreaValueMutation(m.target as HTMLTextAreaElement);\n return; // any removedNodes won't have been in mirror either\n }\n\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\n m.removedNodes.forEach((n) => {\n const nodeId = this.mirror.getId(n);\n const parentId = isShadowRoot(m.target)\n ? this.mirror.getId(dom.host(m.target))\n : this.mirror.getId(m.target);\n if (\n isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\n isIgnored(n, this.mirror, this.slimDOMOptions) ||\n !isSerialized(n, this.mirror)\n ) {\n return;\n }\n // removed node has not been serialized yet, just remove it from the Set\n if (this.addedSet.has(n)) {\n deepDelete(this.addedSet, n);\n this.droppedSet.add(n);\n } else if (this.addedSet.has(m.target) && nodeId === -1) {\n /**\n * If target was newly added and removed child node was\n * not serialized, it means the child node has been removed\n * before callback fired, so we can ignore it because\n * newly added node will be serialized without child nodes.\n * TODO: verify this\n */\n } else if (isAncestorRemoved(m.target, this.mirror)) {\n /**\n * If parent id was not in the mirror map any more, it\n * means the parent node has already been removed. So\n * the node is also removed which we do not need to track\n * and replay.\n */\n } else if (\n this.movedSet.has(n) &&\n this.movedMap[moveKey(nodeId, parentId)]\n ) {\n deepDelete(this.movedSet, n);\n } else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow:\n isShadowRoot(m.target) && isNativeShadowDom(m.target)\n ? true\n : undefined,\n });\n processRemoves(n, this.removesSubTreeCache);\n }\n this.mapRemoves.push(n);\n });\n break;\n }\n default:\n break;\n }\n };\n\n /**\n * Make sure you check if `n`'s parent is blocked before calling this function\n * */\n private genAdds = (n: Node, target?: Node) => {\n // this node was already recorded in other buffer, ignore it\n if (this.processedNodeManager.inOtherBuffer(n, this)) return;\n\n // if n is added to set, there is no need to travel it and its' children again\n if (this.addedSet.has(n) || this.movedSet.has(n)) return;\n\n if (this.mirror.hasNode(n)) {\n if (isIgnored(n, this.mirror, this.slimDOMOptions)) {\n return;\n }\n this.movedSet.add(n);\n let targetId: number | null = null;\n if (target && this.mirror.hasNode(target)) {\n targetId = this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\n }\n } else {\n this.addedSet.add(n);\n this.droppedSet.delete(n);\n }\n\n // if this node is blocked `serializeNode` will turn it into a placeholder element\n // but we have to remove it's children otherwise they will be added as placeholders too\n if (!isBlocked(n, this.blockClass, this.blockSelector, false)) {\n dom.childNodes(n).forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n dom.childNodes(dom.shadowRoot(n)!).forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n);\n });\n }\n }\n };\n}\n\n/**\n * Some utils to handle the mutation observer DOM records.\n * It should be more clear to extend the native data structure\n * like Set and Map, but currently Typescript does not support\n * that.\n */\nfunction deepDelete(addsSet: Set<Node>, n: Node) {\n addsSet.delete(n);\n dom.childNodes(n).forEach((childN) => deepDelete(addsSet, childN));\n}\n\nfunction processRemoves(n: Node, cache: Set<Node>) {\n const queue = [n];\n\n while (queue.length) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const next = queue.pop()!;\n if (cache.has(next)) continue;\n cache.add(next);\n dom.childNodes(next).forEach((n) => queue.push(n));\n }\n\n return;\n}\n\nfunction isParentRemoved(removes: Set<Node>, n: Node, mirror: Mirror): boolean {\n if (removes.size === 0) return false;\n return _isParentRemoved(removes, n, mirror);\n}\n\nfunction _isParentRemoved(\n removes: Set<Node>,\n n: Node,\n _mirror: Mirror,\n): boolean {\n const node: ParentNode | null = dom.parentNode(n);\n if (!node) return false;\n return removes.has(node);\n}\n\nfunction isAncestorInSet(set: Set<Node>, n: Node): boolean {\n if (set.size === 0) return false;\n return _isAncestorInSet(set, n);\n}\n\nfunction _isAncestorInSet(set: Set<Node>, n: Node): boolean {\n const parent = dom.parentNode(n);\n if (!parent) {\n return false;\n }\n if (set.has(parent)) {\n return true;\n }\n return _isAncestorInSet(set, parent);\n}\n", "import type { ErrorHandler } from '../types';\n\ntype Callback = (...args: unknown[]) => unknown;\n\nlet errorHandler: ErrorHandler | undefined;\n\nexport function registerErrorHandler(handler: ErrorHandler | undefined) {\n errorHandler = handler;\n}\n\nexport function unregisterErrorHandler() {\n errorHandler = undefined;\n}\n\n/**\n * Wrap callbacks in a wrapper that allows to pass errors to a configured `errorHandler` method.\n */\nexport const callbackWrapper = <T extends Callback>(cb: T): T => {\n if (!errorHandler) {\n return cb;\n }\n\n const rrwebWrapped = ((...rest: unknown[]) => {\n try {\n return cb(...rest);\n } catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return;\n }\n\n throw error;\n }\n }) as unknown as T;\n\n return rrwebWrapped;\n};\n", "import {\n type MaskInputOptions,\n maskInputValue,\n Mirror,\n getInputType,\n toLowerCase,\n} from '@posthog/rrweb-snapshot';\nimport type { FontFaceSet } from 'css-font-loading-module';\nimport {\n throttle,\n on,\n hookSetter,\n getWindowScroll,\n getWindowHeight,\n getWindowWidth,\n isBlocked,\n legacy_isTouchEvent,\n StyleSheetMirror,\n nowTimestamp,\n} from '../utils';\nimport { patch } from '@posthog/rrweb-utils';\nimport type { observerParam, MutationBufferParam } from '../types';\nimport {\n IncrementalSource,\n MouseInteractions,\n PointerTypes,\n MediaInteractions,\n} from '@posthog/rrweb-types';\nimport type {\n mutationCallBack,\n mousemoveCallBack,\n mousePosition,\n mouseInteractionCallBack,\n listenerHandler,\n scrollCallback,\n styleSheetRuleCallback,\n viewportResizeCallback,\n inputValue,\n inputCallback,\n hookResetter,\n hooksParam,\n Arguments,\n mediaInteractionCallback,\n canvasMutationCallback,\n fontCallback,\n fontParam,\n styleDeclarationCallback,\n IWindow,\n SelectionRange,\n selectionCallback,\n customElementCallback,\n} from '@posthog/rrweb-types';\nimport MutationBuffer from './mutation';\nimport { callbackWrapper } from './error-handler';\nimport dom, { mutationObserverCtor } from '@posthog/rrweb-utils';\n\nexport const mutationBuffers: MutationBuffer[] = [];\n\n// Event.path is non-standard and used in some older browsers\ntype NonStandardEvent = Omit<Event, 'composedPath'> & {\n path: EventTarget[];\n};\n\nfunction getEventTarget(event: Event | NonStandardEvent): EventTarget | null {\n try {\n if ('composedPath' in event) {\n const path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n } else if ('path' in event && event.path.length) {\n return event.path[0];\n }\n } catch {\n // fallback to `event.target` below\n }\n\n return event && event.target;\n}\n\nexport function initMutationObserver(\n options: MutationBufferParam,\n rootEl: Node,\n): MutationObserver {\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n // see mutation.ts for details\n mutationBuffer.init(options);\n const observer = new (mutationObserverCtor() as new (\n callback: MutationCallback,\n ) => MutationObserver)(\n callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer)),\n );\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n });\n return observer;\n}\n\nfunction initMoveObserver({\n mousemoveCb,\n sampling,\n doc,\n mirror,\n}: observerParam): listenerHandler {\n if (sampling.mousemove === false) {\n return () => {\n //\n };\n }\n\n const threshold =\n typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\n const callbackThreshold =\n typeof sampling.mousemoveCallback === 'number'\n ? sampling.mousemoveCallback\n : 500;\n\n let positions: mousePosition[] = [];\n let timeBaseline: number | null;\n const wrappedCb = throttle(\n callbackWrapper(\n (\n source:\n | IncrementalSource.MouseMove\n | IncrementalSource.TouchMove\n | IncrementalSource.Drag,\n ) => {\n const totalOffset = Date.now() - timeBaseline!;\n mousemoveCb(\n positions.map((p) => {\n p.timeOffset -= totalOffset;\n return p;\n }),\n source,\n );\n positions = [];\n timeBaseline = null;\n },\n ),\n callbackThreshold,\n );\n const updatePosition = callbackWrapper(\n throttle<MouseEvent | TouchEvent | DragEvent>(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n // 'legacy' here as we could switch to https://developer.mozilla.org/en-US/docs/Web/API/Element/pointermove_event\n const { clientX, clientY } = legacy_isTouchEvent(evt)\n ? evt.changedTouches[0]\n : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror.getId(target as Node),\n timeOffset: nowTimestamp() - timeBaseline,\n });\n // it is possible DragEvent is undefined even on devices\n // that support event 'drag'\n wrappedCb(\n typeof DragEvent !== 'undefined' && evt instanceof DragEvent\n ? IncrementalSource.Drag\n : evt instanceof MouseEvent\n ? IncrementalSource.MouseMove\n : IncrementalSource.TouchMove,\n );\n }),\n threshold,\n {\n trailing: false,\n },\n ),\n );\n const handlers = [\n on('mousemove', updatePosition, doc),\n on('touchmove', updatePosition, doc),\n on('drag', updatePosition, doc),\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\n\nfunction initMouseInteractionObserver({\n mouseInteractionCb,\n doc,\n mirror,\n blockClass,\n blockSelector,\n sampling,\n}: observerParam): listenerHandler {\n if (sampling.mouseInteraction === false) {\n return () => {\n //\n };\n }\n const disableMap: Record<string, boolean | undefined> =\n sampling.mouseInteraction === true ||\n sampling.mouseInteraction === undefined\n ? {}\n : sampling.mouseInteraction;\n\n const handlers: listenerHandler[] = [];\n let currentPointerType: PointerTypes | null = null;\n const getHandler = (eventKey: keyof typeof MouseInteractions) => {\n return (event: MouseEvent | TouchEvent | PointerEvent) => {\n const target = getEventTarget(event) as Node;\n if (isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n let pointerType: PointerTypes | null = null;\n let thisEventKey = eventKey;\n if ('pointerType' in event) {\n switch (event.pointerType) {\n case 'mouse':\n pointerType = PointerTypes.Mouse;\n break;\n case 'touch':\n pointerType = PointerTypes.Touch;\n break;\n case 'pen':\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n // we are actually listening on 'pointerdown'\n thisEventKey = 'TouchStart';\n } else if (\n MouseInteractions[eventKey] === MouseInteractions.MouseUp\n ) {\n // we are actually listening on 'pointerup'\n thisEventKey = 'TouchEnd';\n }\n } else if (pointerType === PointerTypes.Pen) {\n // TODO: these will get incorrectly emitted as MouseDown/MouseUp\n }\n } else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if (\n (thisEventKey.startsWith('Touch') &&\n pointerType === PointerTypes.Touch) ||\n (thisEventKey.startsWith('Mouse') &&\n pointerType === PointerTypes.Mouse)\n ) {\n // don't output redundant info\n pointerType = null;\n }\n } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null; // cleanup as we've used it\n }\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e) {\n return;\n }\n const id = mirror.getId(target);\n const { clientX, clientY } = e;\n callbackWrapper(mouseInteractionCb)({\n type: MouseInteractions[thisEventKey],\n id,\n x: clientX,\n y: clientY,\n ...(pointerType !== null && { pointerType }),\n });\n };\n };\n Object.keys(MouseInteractions)\n .filter(\n (key) =>\n Number.isNaN(Number(key)) &&\n !key.endsWith('_Departed') &&\n disableMap[key] !== false,\n )\n .forEach((eventKey: keyof typeof MouseInteractions) => {\n let eventName = toLowerCase(eventKey);\n const handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch (MouseInteractions[eventKey]) {\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace(\n 'mouse',\n 'pointer',\n ) as unknown as typeof eventName;\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n // these are handled by pointerdown/pointerup\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\n\nexport function initScrollObserver({\n scrollCb,\n doc,\n mirror,\n blockClass,\n blockSelector,\n sampling,\n}: Pick<\n observerParam,\n 'scrollCb' | 'doc' | 'mirror' | 'blockClass' | 'blockSelector' | 'sampling'\n>): listenerHandler {\n const updatePosition = callbackWrapper(\n throttle<UIEvent>(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (\n !target ||\n isBlocked(target as Node, blockClass, blockSelector, true)\n ) {\n return;\n }\n const id = mirror.getId(target as Node);\n if (target === doc && doc.defaultView) {\n const scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top,\n });\n } else {\n scrollCb({\n id,\n x: (target as HTMLElement).scrollLeft,\n y: (target as HTMLElement).scrollTop,\n });\n }\n }),\n sampling.scroll || 100,\n ),\n );\n return on('scroll', updatePosition, doc);\n}\n\nfunction initViewportResizeObserver(\n { viewportResizeCb }: observerParam,\n { win }: { win: IWindow },\n): listenerHandler {\n let lastH = -1;\n let lastW = -1;\n const updateDimension = callbackWrapper(\n throttle(\n callbackWrapper(() => {\n const height = getWindowHeight();\n const width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height),\n });\n lastH = height;\n lastW = width;\n }\n }),\n 200,\n ),\n );\n return on('resize', updateDimension, win);\n}\n\nexport const INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\nconst lastInputValueMap: WeakMap<EventTarget, inputValue> = new WeakMap();\nfunction initInputObserver({\n inputCb,\n doc,\n mirror,\n blockClass,\n blockSelector,\n ignoreClass,\n ignoreSelector,\n maskInputOptions,\n maskInputFn,\n sampling,\n userTriggeredOnInput,\n}: observerParam): listenerHandler {\n function eventHandler(event: Event) {\n let target = getEventTarget(event) as HTMLElement | null;\n const userTriggered = event.isTrusted;\n const tagName = target && target.tagName;\n\n /**\n * If a site changes the value 'selected' of an option element, the value of its parent element, usually a select element, will be changed as well.\n * We can treat this change as a value change of the select element the current target belongs to.\n */\n if (target && tagName === 'OPTION') {\n target = dom.parentElement(target);\n }\n if (\n !target ||\n !tagName ||\n INPUT_TAGS.indexOf(tagName) < 0 ||\n isBlocked(target as Node, blockClass, blockSelector, true)\n ) {\n return;\n }\n\n if (\n target.classList.contains(ignoreClass) ||\n (ignoreSelector && target.matches(ignoreSelector))\n ) {\n return;\n }\n let text = (target as HTMLInputElement).value;\n let isChecked = false;\n const type: Lowercase<string> = getInputType(target) || '';\n\n if (type === 'radio' || type === 'checkbox') {\n isChecked = (target as HTMLInputElement).checked;\n } else if (\n maskInputOptions[tagName.toLowerCase() as keyof MaskInputOptions] ||\n maskInputOptions[type as keyof MaskInputOptions]\n ) {\n text = maskInputValue({\n element: target,\n maskInputOptions,\n tagName,\n type,\n value: text,\n maskInputFn,\n });\n }\n cbWithDedup(\n target,\n userTriggeredOnInput\n ? { text, isChecked, userTriggered }\n : { text, isChecked },\n );\n // if a radio was checked\n // the other radios with the same name attribute will be unchecked.\n const name: string | undefined = (target as HTMLInputElement).name;\n if (type === 'radio' && name && isChecked) {\n doc\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\n .forEach((el) => {\n if (el !== target) {\n const text = (el as HTMLInputElement).value;\n cbWithDedup(\n el,\n userTriggeredOnInput\n ? { text, isChecked: !isChecked, userTriggered: false }\n : { text, isChecked: !isChecked },\n );\n }\n });\n }\n }\n function cbWithDedup(target: EventTarget, v: inputValue) {\n const lastInputValue = lastInputValueMap.get(target);\n if (\n !lastInputValue ||\n lastInputValue.text !== v.text ||\n lastInputValue.isChecked !== v.isChecked\n ) {\n lastInputValueMap.set(target, v);\n const id = mirror.getId(target as Node);\n callbackWrapper(inputCb)({\n ...v,\n id,\n });\n }\n }\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\n const handlers: Array<listenerHandler | hookResetter> = events.map(\n (eventName) => on(eventName, callbackWrapper(eventHandler), doc),\n );\n const currentWindow = doc.defaultView;\n if (!currentWindow) {\n return () => {\n handlers.forEach((h) => h());\n };\n }\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(\n currentWindow.HTMLInputElement.prototype,\n 'value',\n );\n const hookProperties: Array<[HTMLElement, string]> = [\n [currentWindow.HTMLInputElement.prototype, 'value'],\n [currentWindow.HTMLInputElement.prototype, 'checked'],\n [currentWindow.HTMLSelectElement.prototype, 'value'],\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\n // Some UI library use selectedIndex to set select value\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push(\n ...hookProperties.map((p) =>\n hookSetter<HTMLElement>(\n p[0],\n p[1],\n {\n set() {\n // mock to a normal event\n callbackWrapper(eventHandler)({\n target: this as EventTarget,\n isTrusted: false, // userTriggered to false as this could well be programmatic\n } as Event);\n },\n },\n false,\n currentWindow,\n ),\n ),\n );\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\n\ntype GroupingCSSRule =\n | CSSGroupingRule\n | CSSMediaRule\n | CSSSupportsRule\n | CSSConditionRule;\ntype GroupingCSSRuleTypes =\n | typeof CSSGroupingRule\n | typeof CSSMediaRule\n | typeof CSSSupportsRule\n | typeof CSSConditionRule;\n\nfunction getNestedCSSRulePositions(rule: CSSRule): number[] {\n const positions: number[] = [];\n function recurse(childRule: CSSRule, pos: number[]) {\n if (\n (hasNestedCSSRule('CSSGroupingRule') &&\n childRule.parentRule instanceof CSSGroupingRule) ||\n (hasNestedCSSRule('CSSMediaRule') &&\n childRule.parentRule instanceof CSSMediaRule) ||\n (hasNestedCSSRule('CSSSupportsRule') &&\n childRule.parentRule instanceof CSSSupportsRule) ||\n (hasNestedCSSRule('CSSConditionRule') &&\n childRule.parentRule instanceof CSSConditionRule)\n ) {\n const rules = Array.from(\n (childRule.parentRule as GroupingCSSRule).cssRules,\n );\n const index = rules.indexOf(childRule);\n pos.unshift(index);\n } else if (childRule.parentStyleSheet) {\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\n const index = rules.indexOf(childRule);\n pos.unshift(index);\n }\n return pos;\n }\n return recurse(rule, positions);\n}\n\n/**\n * For StyleSheets in Element, this function retrieves id of its host element.\n * For adopted StyleSheets, this function retrieves its styleId from a styleMirror.\n */\nfunction getIdAndStyleId(\n sheet: CSSStyleSheet | undefined | null,\n mirror: Mirror,\n styleMirror: StyleSheetMirror,\n): {\n styleId?: number;\n id?: number;\n} {\n let id, styleId;\n if (!sheet) return {};\n if (sheet.ownerNode) id = mirror.getId(sheet.ownerNode as Node);\n else styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id,\n };\n}\n\nfunction initStyleSheetObserver(\n { styleSheetRuleCb, mirror, stylesheetManager }: observerParam,\n { win }: { win: IWindow },\n): listenerHandler {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n // If, for whatever reason, CSSStyleSheet is not available, we skip the observation of stylesheets.\n return () => {\n // Do nothing\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper(\n (\n target: typeof insertRule,\n thisArg: CSSStyleSheet,\n argumentsList: [string, number | undefined],\n ) => {\n const [rule, index] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule, index }],\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n\n // Support for deprecated addRule method\n win.CSSStyleSheet.prototype.addRule = function (\n this: CSSStyleSheet,\n selector: string,\n styleBlock: string,\n index: number = this.cssRules.length,\n ) {\n const rule = `${selector} { ${styleBlock} }`;\n return win.CSSStyleSheet.prototype.insertRule.apply(this, [rule, index]);\n };\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper(\n (\n target: typeof deleteRule,\n thisArg: CSSStyleSheet,\n argumentsList: [number],\n ) => {\n const [index] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index }],\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n\n // Support for deprecated removeRule method\n win.CSSStyleSheet.prototype.removeRule = function (\n this: CSSStyleSheet,\n index: number,\n ) {\n return win.CSSStyleSheet.prototype.deleteRule.apply(this, [index]);\n };\n\n let replace: (text: string) => Promise<CSSStyleSheet>;\n\n if (win.CSSStyleSheet.prototype.replace) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper(\n (\n target: typeof replace,\n thisArg: CSSStyleSheet,\n argumentsList: [string],\n ) => {\n const [text] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n replace: text,\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n }\n\n let replaceSync: (text: string) => void;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper(\n (\n target: typeof replaceSync,\n thisArg: CSSStyleSheet,\n argumentsList: [string],\n ) => {\n const [text] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n replaceSync: text,\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n }\n\n const supportedNestedCSSRuleTypes: {\n [key: string]: GroupingCSSRuleTypes;\n } = {};\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n } else {\n // Some browsers (Safari) don't support CSSGroupingRule\n // https://caniuse.com/?search=cssgroupingrule\n // fall back to monkey patching classes that would have inherited from CSSGroupingRule\n\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n\n const unmodifiedFunctions: {\n [key: string]: {\n insertRule: (rule: string, index?: number) => number;\n deleteRule: (index: number) => void;\n };\n } = {};\n\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n unmodifiedFunctions[typeKey] = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n insertRule: type.prototype.insertRule,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n deleteRule: type.prototype.deleteRule,\n };\n\n type.prototype.insertRule = new Proxy(\n unmodifiedFunctions[typeKey].insertRule,\n {\n apply: callbackWrapper(\n (\n target: typeof insertRule,\n thisArg: CSSRule,\n argumentsList: [string, number | undefined],\n ) => {\n const [rule, index] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index || 0, // defaults to 0\n ],\n },\n ],\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n },\n );\n\n type.prototype.deleteRule = new Proxy(\n unmodifiedFunctions[typeKey].deleteRule,\n {\n apply: callbackWrapper(\n (\n target: typeof deleteRule,\n thisArg: CSSRule,\n argumentsList: [number],\n ) => {\n const [index] = argumentsList;\n\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror,\n stylesheetManager.styleMirror,\n );\n\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index] },\n ],\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n },\n );\n });\n\n return callbackWrapper(() => {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\n\nexport function initAdoptedStyleSheetObserver(\n {\n mirror,\n stylesheetManager,\n }: Pick<observerParam, 'mirror' | 'stylesheetManager'>,\n host: Document | ShadowRoot,\n): listenerHandler {\n let hostId: number | null = null;\n // host of adoptedStyleSheets is outermost document or IFrame's document\n if (host.nodeName === '#document') hostId = mirror.getId(host);\n // The host is a ShadowRoot.\n else hostId = mirror.getId(dom.host(host as ShadowRoot));\n\n const patchTarget =\n host.nodeName === '#document'\n ? (host as Document).defaultView?.Document\n : host.ownerDocument?.defaultView?.ShadowRoot;\n const originalPropertyDescriptor = patchTarget?.prototype\n ? Object.getOwnPropertyDescriptor(\n patchTarget?.prototype,\n 'adoptedStyleSheets',\n )\n : undefined;\n if (\n hostId === null ||\n hostId === -1 ||\n !patchTarget ||\n !originalPropertyDescriptor\n )\n return () => {\n //\n };\n\n // Patch adoptedStyleSheets by overriding the original one.\n Object.defineProperty(host, 'adoptedStyleSheets', {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get(): CSSStyleSheet[] {\n return originalPropertyDescriptor.get?.call(this) as CSSStyleSheet[];\n },\n set(sheets: CSSStyleSheet[]) {\n const result = originalPropertyDescriptor.set?.call(this, sheets);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n } catch (e) {\n // for safety\n }\n }\n return result;\n },\n });\n\n return callbackWrapper(() => {\n Object.defineProperty(host, 'adoptedStyleSheets', {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n get: originalPropertyDescriptor.get,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n set: originalPropertyDescriptor.set,\n });\n });\n}\n\nfunction initStyleDeclarationObserver(\n {\n styleDeclarationCb,\n mirror,\n ignoreCSSAttributes,\n stylesheetManager,\n }: observerParam,\n { win }: { win: IWindow },\n): listenerHandler {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper(\n (\n target: typeof setProperty,\n thisArg: CSSStyleDeclaration,\n argumentsList: [string, string, string],\n ) => {\n const [property, value, priority] = argumentsList;\n\n // ignore this mutation if we do not care about this css attribute\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentRule?.parentStyleSheet,\n mirror,\n stylesheetManager.styleMirror,\n );\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleDeclarationCb({\n id,\n styleId,\n set: {\n property,\n value,\n priority,\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule!),\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper(\n (\n target: typeof removeProperty,\n thisArg: CSSStyleDeclaration,\n argumentsList: [string],\n ) => {\n const [property] = argumentsList;\n\n // ignore this mutation if we do not care about this css attribute\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentRule?.parentStyleSheet,\n mirror,\n stylesheetManager.styleMirror,\n );\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\n styleDeclarationCb({\n id,\n styleId,\n remove: {\n property,\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule!),\n });\n }\n return target.apply(thisArg, argumentsList);\n },\n ),\n });\n\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\n\nfunction initMediaInteractionObserver({\n mediaInteractionCb,\n blockClass,\n blockSelector,\n mirror,\n sampling,\n doc,\n}: observerParam): listenerHandler {\n const handler = callbackWrapper((type: MediaInteractions) =>\n throttle(\n callbackWrapper((event: Event) => {\n const target = getEventTarget(event);\n if (\n !target ||\n isBlocked(target as Node, blockClass, blockSelector, true)\n ) {\n return;\n }\n const { currentTime, volume, muted, playbackRate, loop } =\n target as HTMLMediaElement;\n mediaInteractionCb({\n type,\n id: mirror.getId(target as Node),\n currentTime,\n volume,\n muted,\n playbackRate,\n loop,\n });\n }),\n sampling.media || 500,\n ),\n );\n const handlers = [\n on('play', handler(MediaInteractions.Play), doc),\n on('pause', handler(MediaInteractions.Pause), doc),\n on('seeked', handler(MediaInteractions.Seeked), doc),\n on('volumechange', handler(MediaInteractions.VolumeChange), doc),\n on('ratechange', handler(MediaInteractions.RateChange), doc),\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\n\nfunction initFontObserver({ fontCb, doc }: observerParam): listenerHandler {\n const win = doc.defaultView as IWindow;\n if (!win) {\n return () => {\n //\n };\n }\n\n const handlers: listenerHandler[] = [];\n\n const fontMap = new WeakMap<FontFace, fontParam>();\n\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace(\n family: string,\n source: string | ArrayBufferLike,\n descriptors?: FontFaceDescriptors,\n ) {\n const fontFace = new originalFontFace(\n family,\n source as string | BufferSource,\n descriptors,\n );\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== 'string',\n descriptors,\n fontSource:\n typeof source === 'string'\n ? source\n : JSON.stringify(Array.from(new Uint8Array(source))),\n });\n return fontFace;\n } as unknown as typeof FontFace;\n\n const restoreHandler = patch(\n doc.fonts,\n 'add',\n function (original: (font: FontFace) => void) {\n return function (this: FontFaceSet, fontFace: FontFace) {\n setTimeout(\n callbackWrapper(() => {\n const p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }),\n 0,\n );\n return original.apply(this, [fontFace]);\n };\n },\n );\n\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\n\nfunction initSelectionObserver(param: observerParam): listenerHandler {\n const { doc, mirror, blockClass, blockSelector, selectionCb } = param;\n let collapsed = true;\n\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n\n if (!selection || (collapsed && selection?.isCollapsed)) return;\n\n collapsed = selection.isCollapsed || false;\n\n const ranges: SelectionRange[] = [];\n const count = selection.rangeCount || 0;\n\n for (let i = 0; i < count; i++) {\n const range = selection.getRangeAt(i);\n\n const { startContainer, startOffset, endContainer, endOffset } = range;\n\n const blocked =\n isBlocked(startContainer, blockClass, blockSelector, true) ||\n isBlocked(endContainer, blockClass, blockSelector, true);\n\n if (blocked) continue;\n\n ranges.push({\n start: mirror.getId(startContainer),\n startOffset,\n end: mirror.getId(endContainer),\n endOffset,\n });\n }\n\n selectionCb({ ranges });\n });\n\n updateSelection();\n\n return on('selectionchange', updateSelection);\n}\n\nfunction initCustomElementObserver({\n doc,\n customElementCb,\n}: observerParam): listenerHandler {\n const win = doc.defaultView as IWindow;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (!win || !win.customElements) return () => {};\n const restoreHandler = patch(\n win.customElements,\n 'define',\n function (\n original: (\n name: string,\n constructor: CustomElementConstructor,\n options?: ElementDefinitionOptions,\n ) => void,\n ) {\n return function (\n name: string,\n constructor: CustomElementConstructor,\n options?: ElementDefinitionOptions,\n ) {\n try {\n customElementCb({\n define: {\n name,\n },\n });\n } catch (e) {\n console.warn(`Custom element callback failed for ${name}`);\n }\n return original.apply(this, [name, constructor, options]);\n };\n },\n );\n return restoreHandler;\n}\n\nfunction mergeHooks(o: observerParam, hooks: hooksParam) {\n const {\n mutationCb,\n mousemoveCb,\n mouseInteractionCb,\n scrollCb,\n viewportResizeCb,\n inputCb,\n mediaInteractionCb,\n styleSheetRuleCb,\n styleDeclarationCb,\n canvasMutationCb,\n fontCb,\n selectionCb,\n customElementCb,\n } = o;\n o.mutationCb = (...p: Arguments<mutationCallBack>) => {\n if (hooks.mutation) {\n hooks.mutation(...p);\n }\n mutationCb(...p);\n };\n o.mousemoveCb = (...p: Arguments<mousemoveCallBack>) => {\n if (hooks.mousemove) {\n hooks.mousemove(...p);\n }\n mousemoveCb(...p);\n };\n o.mouseInteractionCb = (...p: Arguments<mouseInteractionCallBack>) => {\n if (hooks.mouseInteraction) {\n hooks.mouseInteraction(...p);\n }\n mouseInteractionCb(...p);\n };\n o.scrollCb = (...p: Arguments<scrollCallback>) => {\n if (hooks.scroll) {\n hooks.scroll(...p);\n }\n scrollCb(...p);\n };\n o.viewportResizeCb = (...p: Arguments<viewportResizeCallback>) => {\n if (hooks.viewportResize) {\n hooks.viewportResize(...p);\n }\n viewportResizeCb(...p);\n };\n o.inputCb = (...p: Arguments<inputCallback>) => {\n if (hooks.input) {\n hooks.input(...p);\n }\n inputCb(...p);\n };\n o.mediaInteractionCb = (...p: Arguments<mediaInteractionCallback>) => {\n if (hooks.mediaInteaction) {\n hooks.mediaInteaction(...p);\n }\n mediaInteractionCb(...p);\n };\n o.styleSheetRuleCb = (...p: Arguments<styleSheetRuleCallback>) => {\n if (hooks.styleSheetRule) {\n hooks.styleSheetRule(...p);\n }\n styleSheetRuleCb(...p);\n };\n o.styleDeclarationCb = (...p: Arguments<styleDeclarationCallback>) => {\n if (hooks.styleDeclaration) {\n hooks.styleDeclaration(...p);\n }\n styleDeclarationCb(...p);\n };\n o.canvasMutationCb = (...p: Arguments<canvasMutationCallback>) => {\n if (hooks.canvasMutation) {\n hooks.canvasMutation(...p);\n }\n canvasMutationCb(...p);\n };\n o.fontCb = (...p: Arguments<fontCallback>) => {\n if (hooks.font) {\n hooks.font(...p);\n }\n fontCb(...p);\n };\n o.selectionCb = (...p: Arguments<selectionCallback>) => {\n if (hooks.selection) {\n hooks.selection(...p);\n }\n selectionCb(...p);\n };\n o.customElementCb = (...c: Arguments<customElementCallback>) => {\n if (hooks.customElement) {\n hooks.customElement(...c);\n }\n customElementCb(...c);\n };\n}\n\nexport function initObservers(\n o: observerParam,\n hooks: hooksParam = {},\n): listenerHandler {\n const currentWindow = o.doc.defaultView; // basically document.window\n if (!currentWindow) {\n return () => {\n //\n };\n }\n\n mergeHooks(o, hooks);\n let mutationObserver: MutationObserver | undefined;\n if (o.recordDOM) {\n mutationObserver = initMutationObserver(o, o.doc);\n }\n const mousemoveHandler = initMoveObserver(o);\n const mouseInteractionHandler = initMouseInteractionObserver(o);\n const scrollHandler = initScrollObserver(o);\n const viewportResizeHandler = initViewportResizeObserver(o, {\n win: currentWindow,\n });\n const inputHandler = initInputObserver(o);\n const mediaInteractionHandler = initMediaInteractionObserver(o);\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let styleSheetObserver = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let adoptedStyleSheetObserver = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let styleDeclarationObserver = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n let fontObserver = () => {};\n if (o.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o, {\n win: currentWindow,\n });\n if (o.collectFonts) {\n fontObserver = initFontObserver(o);\n }\n }\n const selectionObserver = initSelectionObserver(o);\n const customElementObserver = initCustomElementObserver(o);\n\n // plugins\n const pluginHandlers: listenerHandler[] = [];\n for (const plugin of o.plugins) {\n pluginHandlers.push(\n plugin.observer(plugin.callback, currentWindow, plugin.options),\n );\n }\n\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.destroy());\n mutationBuffers.forEach((b) => b.reset());\n mutationObserver?.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach((h) => h());\n\n // Clear the mutation buffers array to prevent memory leaks across recording sessions\n mutationBuffers.length = 0;\n });\n}\n\ntype CSSGroupingProp =\n | 'CSSGroupingRule'\n | 'CSSMediaRule'\n | 'CSSSupportsRule'\n | 'CSSConditionRule';\n\nfunction hasNestedCSSRule(prop: CSSGroupingProp): boolean {\n return typeof window[prop] !== 'undefined';\n}\n\nfunction canMonkeyPatchNestedCSSRule(prop: CSSGroupingProp): boolean {\n return Boolean(\n typeof window[prop] !== 'undefined' &&\n // Note: Generally, this check _shouldn't_ be necessary\n // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here\n window[prop].prototype &&\n 'insertRule' in window[prop].prototype &&\n 'deleteRule' in window[prop].prototype,\n );\n}\n", "import type { ICrossOriginIframeMirror } from '@posthog/rrweb-types';\nexport default class CrossOriginIframeMirror\n implements ICrossOriginIframeMirror\n{\n private iframeIdToRemoteIdMap: WeakMap<\n HTMLIFrameElement,\n Map<number, number>\n > = new WeakMap();\n private iframeRemoteIdToIdMap: WeakMap<\n HTMLIFrameElement,\n Map<number, number>\n > = new WeakMap();\n\n constructor(private generateIdFn: () => number) {}\n\n getId(\n iframe: HTMLIFrameElement,\n remoteId: number,\n idToRemoteMap?: Map<number, number>,\n remoteToIdMap?: Map<number, number>,\n ): number {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n\n let id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n }\n\n getIds(iframe: HTMLIFrameElement, remoteId: number[]): number[] {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map((id) =>\n this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap),\n );\n }\n\n getRemoteId(\n iframe: HTMLIFrameElement,\n id: number,\n map?: Map<number, number>,\n ): number {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n\n if (typeof id !== 'number') return id;\n\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId) return -1;\n return remoteId;\n }\n\n getRemoteIds(iframe: HTMLIFrameElement, ids: number[]): number[] {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n\n reset(iframe?: HTMLIFrameElement) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = new WeakMap();\n this.iframeRemoteIdToIdMap = new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n\n private getIdToRemoteIdMap(iframe: HTMLIFrameElement) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n\n private getRemoteIdToIdMap(iframe: HTMLIFrameElement) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\n", "import type { Mirror } from '@posthog/rrweb-snapshot';\nimport { genId } from '@posthog/rrweb-snapshot';\nimport type { CrossOriginIframeMessageEvent } from '../types';\nimport CrossOriginIframeMirror from './cross-origin-iframe-mirror';\nimport { EventType, NodeType, IncrementalSource } from '@posthog/rrweb-types';\nimport type {\n eventWithTime,\n eventWithoutTime,\n serializedNodeWithId,\n mutationCallBack,\n} from '@posthog/rrweb-types';\nimport type { StylesheetManager } from './stylesheet-manager';\n\nexport class IframeManager {\n private iframes: WeakMap<HTMLIFrameElement, true> = new WeakMap();\n private crossOriginIframeMap: WeakMap<MessageEventSource, HTMLIFrameElement> =\n new WeakMap();\n public crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\n public crossOriginIframeStyleMirror: CrossOriginIframeMirror;\n public crossOriginIframeRootIdMap: WeakMap<HTMLIFrameElement, number> =\n new WeakMap();\n private mirror: Mirror;\n private mutationCb: mutationCallBack;\n private wrappedEmit: (e: eventWithoutTime, isCheckout?: boolean) => void;\n private loadListener?: (iframeEl: HTMLIFrameElement) => unknown;\n private stylesheetManager: StylesheetManager;\n private recordCrossOriginIframes: boolean;\n private messageHandler: (message: MessageEvent) => void;\n // Map window to handler for cleanup - windows are browser-owned and won't prevent GC\n private nestedIframeListeners: Map<Window, (message: MessageEvent) => void> =\n new Map();\n private attachedIframes: Map<\n number,\n { element: HTMLIFrameElement; content: serializedNodeWithId }\n > = new Map();\n\n constructor(options: {\n mirror: Mirror;\n mutationCb: mutationCallBack;\n stylesheetManager: StylesheetManager;\n recordCrossOriginIframes: boolean;\n wrappedEmit: (e: eventWithoutTime, isCheckout?: boolean) => void;\n }) {\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(\n this.stylesheetManager.styleMirror.generateId.bind(\n this.stylesheetManager.styleMirror,\n ),\n );\n this.mirror = options.mirror;\n this.messageHandler = this.handleMessage.bind(this);\n if (this.recordCrossOriginIframes) {\n window.addEventListener('message', this.messageHandler);\n }\n }\n\n public addIframe(iframeEl: HTMLIFrameElement) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n\n public addLoadListener(cb: (iframeEl: HTMLIFrameElement) => unknown) {\n this.loadListener = cb;\n }\n\n public removeLoadListener() {\n this.loadListener = undefined;\n }\n\n private trackIframeContent(\n iframeEl: HTMLIFrameElement,\n content: serializedNodeWithId,\n ): number {\n const iframeId = this.mirror.getId(iframeEl);\n this.attachedIframes.set(iframeId, { element: iframeEl, content });\n return iframeId;\n }\n\n public attachIframe(\n iframeEl: HTMLIFrameElement,\n childSn: serializedNodeWithId,\n ) {\n const iframeId = this.trackIframeContent(iframeEl, childSn);\n this.mutationCb({\n adds: [\n {\n parentId: iframeId,\n nextId: null,\n node: childSn,\n },\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true,\n });\n\n // Receive messages (events) coming from cross-origin iframes that are nested in this same-origin iframe.\n const win = iframeEl.contentWindow;\n if (\n this.recordCrossOriginIframes &&\n win &&\n !this.nestedIframeListeners.has(win)\n ) {\n const nestedHandler = this.handleMessage.bind(this);\n this.nestedIframeListeners.set(win, nestedHandler);\n win.addEventListener('message', nestedHandler);\n }\n\n this.loadListener?.(iframeEl);\n\n if (\n iframeEl.contentDocument &&\n iframeEl.contentDocument.adoptedStyleSheets &&\n iframeEl.contentDocument.adoptedStyleSheets.length > 0\n )\n this.stylesheetManager.adoptStyleSheets(\n iframeEl.contentDocument.adoptedStyleSheets,\n this.mirror.getId(iframeEl.contentDocument),\n );\n }\n private handleMessage(message: MessageEvent | CrossOriginIframeMessageEvent) {\n const crossOriginMessageEvent = message as CrossOriginIframeMessageEvent;\n if (\n crossOriginMessageEvent.data.type !== 'rrweb' ||\n // To filter out the rrweb messages which are forwarded by some sites.\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin\n )\n return;\n\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow) return;\n\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl) return;\n\n const transformedEvent = this.transformCrossOriginEvent(\n iframeEl,\n crossOriginMessageEvent.data.event,\n );\n\n if (transformedEvent)\n this.wrappedEmit(\n transformedEvent,\n crossOriginMessageEvent.data.isCheckout,\n );\n }\n\n private transformCrossOriginEvent(\n iframeEl: HTMLIFrameElement,\n e: eventWithTime,\n ): eventWithTime | false {\n switch (e.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n /**\n * Replaces the original id of the iframe with a new set of unique ids\n */\n this.replaceIdOnNode(e.data.node, iframeEl);\n const rootId = e.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e.data.node, rootId);\n this.trackIframeContent(iframeEl, e.data.node);\n return {\n timestamp: e.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e.data.node,\n },\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true,\n },\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded: {\n return false;\n }\n case EventType.Plugin: {\n return e;\n }\n case EventType.Custom: {\n this.replaceIds(\n e.data.payload as {\n id?: unknown;\n parentId?: unknown;\n previousId?: unknown;\n nextId?: unknown;\n },\n iframeEl,\n ['id', 'parentId', 'previousId', 'nextId'],\n );\n return e;\n }\n case EventType.IncrementalSnapshot: {\n switch (e.data.source) {\n case IncrementalSource.Mutation: {\n e.data.adds.forEach((n) => {\n this.replaceIds(n, iframeEl, [\n 'parentId',\n 'nextId',\n 'previousId',\n ]);\n this.replaceIdOnNode(n.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n.node, rootId);\n });\n e.data.removes.forEach((n) => {\n this.replaceIds(n, iframeEl, ['parentId', 'id']);\n });\n e.data.attributes.forEach((n) => {\n this.replaceIds(n, iframeEl, ['id']);\n });\n e.data.texts.forEach((n) => {\n this.replaceIds(n, iframeEl, ['id']);\n });\n return e;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, ['id']);\n });\n return e;\n }\n case IncrementalSource.ViewportResize: {\n // can safely ignore these events\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input: {\n this.replaceIds(e.data, iframeEl, ['id']);\n return e;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e.data, iframeEl, ['id']);\n this.replaceStyleIds(e.data, iframeEl, ['styleId']);\n return e;\n }\n case IncrementalSource.Font: {\n // fine as-is no modification needed\n return e;\n }\n case IncrementalSource.Selection: {\n e.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, ['start', 'end']);\n });\n return e;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e.data, iframeEl, ['id']);\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\n e.data.styles?.forEach((style) => {\n this.replaceStyleIds(style, iframeEl, ['styleId']);\n });\n return e;\n }\n }\n }\n }\n return false;\n }\n\n private replace<T extends Record<string, unknown>>(\n iframeMirror: CrossOriginIframeMirror,\n obj: T,\n iframeEl: HTMLIFrameElement,\n keys: Array<keyof T>,\n ): T {\n for (const key of keys) {\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number') continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(\n iframeEl,\n obj[key] as number[],\n ) as T[keyof T];\n } else {\n (obj[key] as number) = iframeMirror.getId(iframeEl, obj[key] as number);\n }\n }\n\n return obj;\n }\n\n private replaceIds<T extends Record<string, unknown>>(\n obj: T,\n iframeEl: HTMLIFrameElement,\n keys: Array<keyof T>,\n ): T {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n\n private replaceStyleIds<T extends Record<string, unknown>>(\n obj: T,\n iframeEl: HTMLIFrameElement,\n keys: Array<keyof T>,\n ): T {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n\n private replaceIdOnNode(\n node: serializedNodeWithId,\n iframeEl: HTMLIFrameElement,\n ) {\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\n if ('childNodes' in node) {\n node.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n\n private patchRootIdOnNode(node: serializedNodeWithId, rootId: number) {\n if (node.type !== NodeType.Document && !node.rootId) node.rootId = rootId;\n if ('childNodes' in node) {\n node.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n\n public removeIframeById(iframeId: number) {\n const entry = this.attachedIframes.get(iframeId);\n const iframe =\n entry?.element ||\n (this.mirror.getNode(iframeId) as HTMLIFrameElement | null);\n\n if (iframe) {\n const win = iframe.contentWindow;\n\n // Clean up nested iframe listeners if they exist\n if (win && this.nestedIframeListeners.has(win)) {\n const handler = this.nestedIframeListeners.get(win)!;\n win.removeEventListener('message', handler);\n this.nestedIframeListeners.delete(win);\n }\n\n // Clean up WeakMaps to allow GC of the iframe element\n if (win) {\n this.crossOriginIframeMap.delete(win);\n }\n this.iframes.delete(iframe);\n }\n\n // Always clean up attachedIframes if entry exists\n if (entry) {\n this.attachedIframes.delete(iframeId);\n }\n }\n\n public reattachIframes() {\n this.attachedIframes.forEach(({ content }, iframeId) => {\n // Verify the iframe ID is still in the mirror (still being tracked by rrweb)\n // If removed, the mirror would have been cleaned up via removeNodeFromMap()\n if (!this.mirror.has(iframeId)) {\n this.attachedIframes.delete(iframeId);\n return;\n }\n\n this.mutationCb({\n adds: [\n {\n parentId: iframeId,\n nextId: null,\n node: content,\n },\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true,\n });\n });\n }\n\n public destroy() {\n if (this.recordCrossOriginIframes) {\n window.removeEventListener('message', this.messageHandler);\n }\n\n // Clean up nested iframe listeners\n this.nestedIframeListeners.forEach((handler, contentWindow) => {\n contentWindow.removeEventListener('message', handler);\n });\n this.nestedIframeListeners.clear();\n\n this.crossOriginIframeMirror.reset();\n this.crossOriginIframeStyleMirror.reset();\n this.attachedIframes.clear();\n\n this.crossOriginIframeMap = new WeakMap();\n this.iframes = new WeakMap();\n this.crossOriginIframeRootIdMap = new WeakMap();\n }\n}\n", "import type { MutationBufferParam } from '../types';\nimport type {\n mutationCallBack,\n scrollCallback,\n SamplingStrategy,\n} from '@posthog/rrweb-types';\nimport {\n initMutationObserver,\n initScrollObserver,\n initAdoptedStyleSheetObserver,\n} from './observer';\nimport { inDom } from '../utils';\nimport type { Mirror } from '@posthog/rrweb-snapshot';\nimport { isNativeShadowDom } from '@posthog/rrweb-snapshot';\nimport dom, { patch } from '@posthog/rrweb-utils';\n\ntype BypassOptions = Omit<\n MutationBufferParam,\n 'doc' | 'mutationCb' | 'mirror' | 'shadowDomManager'\n> & {\n sampling: SamplingStrategy;\n};\n\nexport class ShadowDomManager {\n private shadowDoms = new WeakSet<ShadowRoot>();\n private mutationCb: mutationCallBack;\n private scrollCb: scrollCallback;\n private bypassOptions: BypassOptions;\n private mirror: Mirror;\n private restoreHandlers: (() => void)[] = [];\n\n constructor(options: {\n mutationCb: mutationCallBack;\n scrollCb: scrollCallback;\n bypassOptions: BypassOptions;\n mirror: Mirror;\n }) {\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n\n this.init();\n }\n\n public init() {\n this.reset();\n // Patch 'attachShadow' to observe newly added shadow doms.\n this.patchAttachShadow(Element, document);\n }\n\n public addShadowRoot(shadowRoot: ShadowRoot, doc: Document) {\n if (!isNativeShadowDom(shadowRoot)) return;\n if (this.shadowDoms.has(shadowRoot)) return;\n this.shadowDoms.add(shadowRoot);\n const observer = initMutationObserver(\n {\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this,\n },\n shadowRoot,\n );\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(\n initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n doc: shadowRoot as unknown as Document,\n mirror: this.mirror,\n }),\n );\n // Defer this to avoid adoptedStyleSheet events being created before the full snapshot is created or attachShadow action is recorded.\n setTimeout(() => {\n if (\n shadowRoot.adoptedStyleSheets &&\n shadowRoot.adoptedStyleSheets.length > 0\n )\n this.bypassOptions.stylesheetManager.adoptStyleSheets(\n shadowRoot.adoptedStyleSheets,\n this.mirror.getId(dom.host(shadowRoot)),\n );\n this.restoreHandlers.push(\n initAdoptedStyleSheetObserver(\n {\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager,\n },\n shadowRoot,\n ),\n );\n }, 0);\n }\n\n /**\n * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n */\n public observeAttachShadow(iframeElement: HTMLIFrameElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument) return;\n\n this.patchAttachShadow(\n (\n iframeElement.contentWindow as Window & {\n Element: { prototype: Element };\n }\n ).Element,\n iframeElement.contentDocument,\n );\n }\n\n /**\n * Patch 'attachShadow' to observe newly added shadow doms.\n */\n private patchAttachShadow(\n element: {\n prototype: Element;\n },\n doc: Document,\n ) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const manager = this;\n this.restoreHandlers.push(\n patch(\n element.prototype,\n 'attachShadow',\n function (original: (init: ShadowRootInit) => ShadowRoot) {\n return function (this: Element, option: ShadowRootInit) {\n const sRoot = original.call(this, option);\n // For the shadow dom elements in the document, monitor their dom mutations.\n // For shadow dom elements that aren't in the document yet,\n // we start monitoring them once their shadow dom host is appended to the document.\n const shadowRootEl = dom.shadowRoot(this);\n if (shadowRootEl && inDom(this))\n manager.addShadowRoot(shadowRootEl, doc);\n return sRoot;\n };\n },\n ),\n );\n }\n\n public reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n } catch (e) {\n //\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = new WeakSet();\n }\n}\n", "/*\n * base64-arraybuffer 1.0.2 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n", "import { encode } from 'base64-arraybuffer';\nimport type { IWindow, CanvasArg, DataURLOptions } from '@posthog/rrweb-types';\n\n// TODO: unify with `replay/webgl.ts`\ntype CanvasVarMap = Map<string, unknown[]>;\nconst canvasVarMap: Map<RenderingContext, CanvasVarMap> = new Map();\nexport function variableListFor(ctx: RenderingContext, ctor: string) {\n let contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor) as unknown[];\n}\n\nexport const saveWebGLVar = (\n value: unknown,\n win: IWindow,\n ctx: RenderingContext,\n): number | void => {\n if (\n !value ||\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object')\n )\n return;\n\n const name = value.constructor.name;\n const list = variableListFor(ctx, name);\n let index = list.indexOf(value);\n\n if (index === -1) {\n index = list.length;\n list.push(value);\n }\n return index;\n};\n\n// from webgl-recorder: https://github.com/evanw/webgl-recorder/blob/bef0e65596e981ee382126587e2dcbe0fc7748e2/webgl-recorder.js#L50-L77\nexport function serializeArg(\n value: unknown,\n win: IWindow,\n ctx: RenderingContext,\n dataURLOptions: DataURLOptions,\n): CanvasArg {\n if (value instanceof Array) {\n return value.map((arg) => serializeArg(arg, win, ctx, dataURLOptions));\n } else if (value === null) {\n return value;\n } else if (\n value instanceof Float32Array ||\n value instanceof Float64Array ||\n value instanceof Int32Array ||\n value instanceof Uint32Array ||\n value instanceof Uint8Array ||\n value instanceof Uint16Array ||\n value instanceof Int16Array ||\n value instanceof Int8Array ||\n value instanceof Uint8ClampedArray\n ) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [Object.values(value)],\n };\n } else if (\n // SharedArrayBuffer disabled on most browsers due to spectre.\n // More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer\n // value instanceof SharedArrayBuffer ||\n value instanceof ArrayBuffer\n ) {\n const name = value.constructor.name as 'ArrayBuffer';\n const base64 = encode(value);\n\n return {\n rr_type: name,\n base64,\n };\n } else if (value instanceof DataView) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n serializeArg(value.buffer, win, ctx, dataURLOptions),\n value.byteOffset,\n value.byteLength,\n ],\n };\n } else if (value instanceof HTMLImageElement) {\n const name = value.constructor.name;\n const { src } = value;\n return {\n rr_type: name,\n src,\n };\n } else if (value instanceof HTMLCanvasElement) {\n const name = 'HTMLImageElement';\n // TODO: move `toDataURL` to web worker if possible\n const src = value.toDataURL(dataURLOptions.type, dataURLOptions.quality);\n return {\n rr_type: name,\n src,\n };\n } else if (value instanceof ImageData) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n serializeArg(value.data, win, ctx, dataURLOptions),\n value.width,\n value.height,\n ],\n };\n // } else if (value instanceof Blob) {\n // const name = value.constructor.name;\n // return {\n // rr_type: name,\n // data: [serializeArg(await value.arrayBuffer(), win, ctx, dataURLOptions)],\n // type: value.type,\n // };\n } else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\n const name = value.constructor.name;\n const index = saveWebGLVar(value, win, ctx) as number;\n\n return {\n rr_type: name,\n index: index,\n };\n }\n\n return value as unknown as CanvasArg;\n}\n\nexport const serializeArgs = (\n args: Array<unknown>,\n win: IWindow,\n ctx: RenderingContext,\n dataURLOptions: DataURLOptions,\n) => {\n return args.map((arg) => serializeArg(arg, win, ctx, dataURLOptions));\n};\n\nexport const isInstanceOfWebGLObject = (\n value: unknown,\n win: IWindow,\n): value is\n | WebGLActiveInfo\n | WebGLBuffer\n | WebGLFramebuffer\n | WebGLProgram\n | WebGLRenderbuffer\n | WebGLShader\n | WebGLShaderPrecisionFormat\n | WebGLTexture\n | WebGLUniformLocation\n | WebGLVertexArrayObject => {\n const webGLConstructorNames: string[] = [\n 'WebGLActiveInfo',\n 'WebGLBuffer',\n 'WebGLFramebuffer',\n 'WebGLProgram',\n 'WebGLRenderbuffer',\n 'WebGLShader',\n 'WebGLShaderPrecisionFormat',\n 'WebGLTexture',\n 'WebGLUniformLocation',\n 'WebGLVertexArrayObject',\n // In old Chrome versions, value won't be an instanceof WebGLVertexArrayObject.\n 'WebGLVertexArrayObjectOES',\n ];\n const supportedWebGLConstructorNames = webGLConstructorNames.filter(\n (name: string) => typeof win[name as keyof Window] === 'function',\n );\n return Boolean(\n supportedWebGLConstructorNames.find(\n (name: string) => value instanceof win[name as keyof Window],\n ),\n );\n};\n", "import {\n type blockClass,\n CanvasContext,\n type canvasManagerMutationCallback,\n type IWindow,\n type listenerHandler,\n type DataURLOptions,\n} from '@posthog/rrweb-types';\nimport { hookSetter, isBlocked } from '../../../utils';\nimport { patch } from '@posthog/rrweb-utils';\nimport { serializeArgs } from './serialize-args';\n\nexport default function initCanvas2DMutationObserver(\n cb: canvasManagerMutationCallback,\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n dataURLOptions: DataURLOptions,\n): listenerHandler {\n const handlers: listenerHandler[] = [];\n const props2D = Object.getOwnPropertyNames(\n win.CanvasRenderingContext2D.prototype,\n );\n for (const prop of props2D) {\n try {\n if (\n typeof win.CanvasRenderingContext2D.prototype[\n prop as keyof CanvasRenderingContext2D\n ] !== 'function'\n ) {\n continue;\n }\n const restoreHandler = patch(\n win.CanvasRenderingContext2D.prototype,\n prop,\n function (\n original: (\n this: CanvasRenderingContext2D,\n ...args: unknown[]\n ) => void,\n ) {\n return function (\n this: CanvasRenderingContext2D,\n ...args: Array<unknown>\n ) {\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\n // Using setTimeout as toDataURL can be heavy\n // and we'd rather not block the main thread\n setTimeout(() => {\n const recordArgs = serializeArgs(\n args,\n win,\n this,\n dataURLOptions,\n );\n cb(this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: recordArgs,\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n },\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter<CanvasRenderingContext2D>(\n win.CanvasRenderingContext2D.prototype,\n prop,\n {\n set(v) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n cb(this.canvas, {\n type: CanvasContext['2D'],\n property: prop,\n args: [v],\n setter: true,\n });\n },\n },\n );\n handlers.push(hookHandler);\n }\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\n", "import type { ICanvas } from '@posthog/rrweb-snapshot';\nimport type {\n blockClass,\n IWindow,\n listenerHandler,\n} from '@posthog/rrweb-types';\nimport { isBlocked } from '../../../utils';\nimport { patch } from '@posthog/rrweb-utils';\n\nfunction getNormalizedContextName(contextType: string) {\n return contextType === 'experimental-webgl' ? 'webgl' : contextType;\n}\n\nexport default function initCanvasContextObserver(\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n setPreserveDrawingBufferToTrue: boolean,\n): listenerHandler {\n const handlers: listenerHandler[] = [];\n try {\n const restoreHandler = patch(\n win.HTMLCanvasElement.prototype,\n 'getContext',\n function (\n original: (\n this: ICanvas | HTMLCanvasElement,\n contextType: string,\n ...args: Array<unknown>\n ) => void,\n ) {\n return function (\n this: ICanvas | HTMLCanvasElement,\n contextType: string,\n ...args: Array<unknown>\n ) {\n if (!isBlocked(this, blockClass, blockSelector, true)) {\n const ctxName = getNormalizedContextName(contextType);\n if (!('__context' in this)) (this as ICanvas).__context = ctxName;\n\n if (\n setPreserveDrawingBufferToTrue &&\n ['webgl', 'webgl2'].includes(ctxName)\n ) {\n if (args[0] && typeof args[0] === 'object') {\n const contextAttributes = args[0] as WebGLContextAttributes;\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n } else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true,\n });\n }\n }\n }\n return original.apply(this, [contextType, ...args]);\n };\n },\n );\n handlers.push(restoreHandler);\n } catch {\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\n", "import {\n type blockClass,\n CanvasContext,\n type canvasManagerMutationCallback,\n type canvasMutationWithType,\n type IWindow,\n type listenerHandler,\n type DataURLOptions,\n} from '@posthog/rrweb-types';\nimport { hookSetter, isBlocked } from '../../../utils';\nimport { patch } from '@posthog/rrweb-utils';\nimport { saveWebGLVar, serializeArgs } from './serialize-args';\n\nfunction patchGLPrototype(\n prototype: WebGLRenderingContext | WebGL2RenderingContext,\n type: CanvasContext,\n cb: canvasManagerMutationCallback,\n blockClass: blockClass,\n blockSelector: string | null,\n win: IWindow,\n dataURLOptions: DataURLOptions,\n): listenerHandler[] {\n const handlers: listenerHandler[] = [];\n\n const props = Object.getOwnPropertyNames(prototype);\n\n for (const prop of props) {\n if (\n //prop.startsWith('get') || // e.g. getProgramParameter, but too risky\n [\n 'isContextLost',\n 'canvas',\n 'drawingBufferWidth',\n 'drawingBufferHeight',\n ].includes(prop)\n ) {\n // skip read only propery/functions\n continue;\n }\n try {\n if (typeof prototype[prop as keyof typeof prototype] !== 'function') {\n continue;\n }\n const restoreHandler = patch(\n prototype,\n prop,\n function (\n original: (this: typeof prototype, ...args: Array<unknown>) => void,\n ) {\n return function (this: typeof prototype, ...args: Array<unknown>) {\n const result = original.apply(this, args);\n saveWebGLVar(result, win, this);\n if (\n 'tagName' in this.canvas &&\n !isBlocked(this.canvas, blockClass, blockSelector, true)\n ) {\n const recordArgs = serializeArgs(args, win, this, dataURLOptions);\n const mutation: canvasMutationWithType = {\n type,\n property: prop,\n args: recordArgs,\n };\n // TODO: this could potentially also be an OffscreenCanvas as well as HTMLCanvasElement\n cb(this.canvas, mutation);\n }\n\n return result;\n };\n },\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter<typeof prototype>(prototype, prop, {\n set(v) {\n // TODO: this could potentially also be an OffscreenCanvas as well as HTMLCanvasElement\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n cb(this.canvas as HTMLCanvasElement, {\n type,\n property: prop,\n args: [v],\n setter: true,\n });\n },\n });\n handlers.push(hookHandler);\n }\n }\n\n return handlers;\n}\n\nexport default function initCanvasWebGLMutationObserver(\n cb: canvasManagerMutationCallback,\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n dataURLOptions: DataURLOptions,\n): listenerHandler {\n const handlers: listenerHandler[] = [];\n\n handlers.push(\n ...patchGLPrototype(\n win.WebGLRenderingContext.prototype,\n CanvasContext.WebGL,\n cb,\n blockClass,\n blockSelector,\n win,\n dataURLOptions,\n ),\n );\n\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\n handlers.push(\n ...patchGLPrototype(\n win.WebGL2RenderingContext.prototype,\n CanvasContext.WebGL2,\n cb,\n blockClass,\n blockSelector,\n win,\n dataURLOptions,\n ),\n );\n }\n\n return () => {\n handlers.forEach((h) => h());\n };\n}\n", "import type { ICanvas, Mirror } from '@posthog/rrweb-snapshot';\nimport type {\n blockClass,\n canvasManagerMutationCallback,\n canvasMutationCallback,\n canvasMutationCommand,\n canvasMutationWithType,\n IWindow,\n listenerHandler,\n CanvasArg,\n DataURLOptions,\n} from '@posthog/rrweb-types';\nimport { isBlocked } from '../../../utils';\nimport { CanvasContext } from '@posthog/rrweb-types';\nimport initCanvas2DMutationObserver from './2d';\nimport initCanvasContextObserver from './canvas';\nimport initCanvasWebGLMutationObserver from './webgl';\nimport ImageBitmapDataURLWorker from '../../workers/image-bitmap-data-url-worker?worker&inline';\nimport type { ImageBitmapDataURLRequestWorker } from '../../workers/image-bitmap-data-url-worker';\n\nexport type RafStamps = { latestId: number; invokeId: number | null };\n\ntype pendingCanvasMutationsMap = Map<\n HTMLCanvasElement,\n canvasMutationWithType[]\n>;\n\nexport class CanvasManager {\n private pendingCanvasMutations: pendingCanvasMutationsMap = new Map();\n private rafStamps: RafStamps = { latestId: 0, invokeId: null };\n private mirror: Mirror;\n\n private mutationCb: canvasMutationCallback;\n private resetObservers?: listenerHandler;\n private frozen = false;\n private locked = false;\n private rafIdTimestamp: number | null = null;\n private rafIdFlush: number | null = null;\n\n public reset() {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n if (this.rafIdTimestamp !== null) {\n cancelAnimationFrame(this.rafIdTimestamp);\n this.rafIdTimestamp = null;\n }\n if (this.rafIdFlush !== null) {\n cancelAnimationFrame(this.rafIdFlush);\n this.rafIdFlush = null;\n }\n }\n\n public freeze() {\n this.frozen = true;\n }\n\n public unfreeze() {\n this.frozen = false;\n }\n\n public lock() {\n this.locked = true;\n }\n\n public unlock() {\n this.locked = false;\n }\n\n constructor(options: {\n recordCanvas: boolean;\n mutationCb: canvasMutationCallback;\n win: IWindow;\n blockClass: blockClass;\n blockSelector: string | null;\n mirror: Mirror;\n sampling?: 'all' | number;\n dataURLOptions: DataURLOptions;\n }) {\n const {\n sampling = 'all',\n win,\n blockClass,\n blockSelector,\n recordCanvas,\n dataURLOptions,\n } = options;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n\n if (recordCanvas && sampling === 'all')\n this.initCanvasMutationObserver(\n win,\n blockClass,\n blockSelector,\n dataURLOptions,\n );\n if (recordCanvas && typeof sampling === 'number')\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\n dataURLOptions,\n });\n }\n\n private processMutation: canvasManagerMutationCallback = (\n target,\n mutation,\n ) => {\n const newFrame =\n this.rafStamps.invokeId &&\n this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n\n this.pendingCanvasMutations.get(target)!.push(mutation);\n };\n\n private initCanvasFPSObserver(\n fps: number,\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n options: {\n dataURLOptions: DataURLOptions;\n },\n ) {\n if (!('OffscreenCanvas' in win)) {\n return;\n }\n\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n true,\n );\n const snapshotInProgressMap: Map<number, boolean> = new Map();\n const worker =\n new ImageBitmapDataURLWorker() as ImageBitmapDataURLRequestWorker;\n worker.onmessage = (e) => {\n const { id } = e.data;\n snapshotInProgressMap.set(id, false);\n\n if (!('base64' in e.data)) return;\n\n const { base64, type, width, height } = e.data;\n this.mutationCb({\n id,\n type: CanvasContext['2D'],\n commands: [\n {\n property: 'clearRect', // wipe canvas\n args: [0, 0, width, height],\n },\n {\n property: 'drawImage', // draws (semi-transparent) image\n args: [\n {\n rr_type: 'ImageBitmap',\n args: [\n {\n rr_type: 'Blob',\n data: [{ rr_type: 'ArrayBuffer', base64 }],\n type,\n },\n ],\n } as CanvasArg,\n 0,\n 0,\n ],\n },\n ],\n displayWidth: width,\n displayHeight: height,\n });\n };\n\n const timeBetweenSnapshots = 1000 / fps;\n let lastSnapshotTime = 0;\n let rafId: number;\n\n const getCanvas = (): HTMLCanvasElement[] => {\n const matchedCanvas: HTMLCanvasElement[] = [];\n const searchCanvas = (haystack: ParentNode) => {\n haystack.querySelectorAll('canvas').forEach((canvas) => {\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\n matchedCanvas.push(canvas);\n }\n });\n haystack.querySelectorAll('*').forEach((elem) => {\n if (elem.shadowRoot) {\n searchCanvas(elem.shadowRoot);\n }\n });\n };\n searchCanvas(win.document);\n return matchedCanvas;\n };\n\n const takeCanvasSnapshots = (timestamp: DOMHighResTimeStamp) => {\n if (\n lastSnapshotTime &&\n timestamp - lastSnapshotTime < timeBetweenSnapshots\n ) {\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n\n getCanvas()\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n .forEach(async (canvas: HTMLCanvasElement) => {\n const id = this.mirror.getId(canvas);\n if (snapshotInProgressMap.get(id)) return;\n\n // The browser throws if the canvas is 0 in size\n // Uncaught (in promise) DOMException: Failed to execute 'createImageBitmap' on 'Window': The source image width is 0.\n // Assuming the same happens with height\n if (canvas.width === 0 || canvas.height === 0) return;\n\n snapshotInProgressMap.set(id, true);\n if (['webgl', 'webgl2'].includes((canvas as ICanvas).__context)) {\n // if the canvas hasn't been modified recently,\n // its contents won't be in memory and `createImageBitmap`\n // will return a transparent imageBitmap\n\n const context = canvas.getContext((canvas as ICanvas).__context) as\n | WebGLRenderingContext\n | WebGL2RenderingContext\n | null;\n if (\n context?.getContextAttributes()?.preserveDrawingBuffer === false\n ) {\n // Hack to load canvas back into memory so `createImageBitmap` can grab it's contents.\n // Context: https://twitter.com/Juice10/status/1499775271758704643\n // Preferably we set `preserveDrawingBuffer` to true, but that's not always possible,\n // especially when canvas is loaded before rrweb.\n // This hack can wipe the background color of the canvas in the (unlikely) event that\n // the canvas background was changed but clear was not called directly afterwards.\n // Example of this hack having negative side effect: https://visgl.github.io/react-map-gl/examples/layers\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n // createImageBitmap throws if resizing to 0\n // Fallback to intrinsic size if canvas has not yet rendered\n const width = canvas.clientWidth || canvas.width;\n const height = canvas.clientHeight || canvas.height;\n const bitmap = await createImageBitmap(canvas, {\n resizeWidth: width,\n resizeHeight: height,\n });\n worker.postMessage(\n {\n id,\n bitmap,\n width: width,\n height: height,\n dataURLOptions: options.dataURLOptions,\n },\n [bitmap],\n );\n });\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n };\n\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n\n this.resetObservers = () => {\n canvasContextReset();\n cancelAnimationFrame(rafId);\n };\n }\n\n private initCanvasMutationObserver(\n win: IWindow,\n blockClass: blockClass,\n blockSelector: string | null,\n dataURLOptions: DataURLOptions,\n ): void {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n false,\n );\n const canvas2DReset = initCanvas2DMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector,\n dataURLOptions,\n );\n\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector,\n dataURLOptions,\n );\n\n this.resetObservers = () => {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n }\n\n private startPendingCanvasMutationFlusher() {\n this.rafIdFlush = requestAnimationFrame(() =>\n this.flushPendingCanvasMutations(),\n );\n }\n\n private startRAFTimestamping() {\n const setLatestRAFTimestamp = (timestamp: DOMHighResTimeStamp) => {\n this.rafStamps.latestId = timestamp;\n this.rafIdTimestamp = requestAnimationFrame(setLatestRAFTimestamp);\n };\n this.rafIdTimestamp = requestAnimationFrame(setLatestRAFTimestamp);\n }\n\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach(\n (_values: canvasMutationCommand[], canvas: HTMLCanvasElement) => {\n const id = this.mirror.getId(canvas);\n this.flushPendingCanvasMutationFor(canvas, id);\n },\n );\n this.rafIdFlush = requestAnimationFrame(() =>\n this.flushPendingCanvasMutations(),\n );\n }\n\n flushPendingCanvasMutationFor(canvas: HTMLCanvasElement, id: number) {\n if (this.frozen || this.locked) {\n return;\n }\n\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1) return;\n\n const values = valuesWithType.map((value) => {\n const { type, ...rest } = value;\n return rest;\n });\n const { type } = valuesWithType[0];\n\n this.mutationCb({ id, type, commands: values });\n\n this.pendingCanvasMutations.delete(canvas);\n }\n}\n", "import { stringifyRule } from '@posthog/rrweb-snapshot';\nimport type {\n elementNode,\n serializedNodeWithId,\n adoptedStyleSheetCallback,\n adoptedStyleSheetParam,\n attributeMutation,\n mutationCallBack,\n} from '@posthog/rrweb-types';\nimport { StyleSheetMirror } from '../utils';\n\nexport class StylesheetManager {\n private trackedLinkElements: WeakSet<HTMLLinkElement> = new WeakSet();\n private mutationCb: mutationCallBack;\n private adoptedStyleSheetCb: adoptedStyleSheetCallback;\n public styleMirror = new StyleSheetMirror();\n\n constructor(options: {\n mutationCb: mutationCallBack;\n adoptedStyleSheetCb: adoptedStyleSheetCallback;\n }) {\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n\n public attachLinkElement(\n linkEl: HTMLLinkElement,\n childSn: serializedNodeWithId,\n ) {\n if ('_cssText' in (childSn as elementNode).attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: (childSn as elementNode)\n .attributes as attributeMutation['attributes'],\n },\n ],\n });\n\n this.trackLinkElement(linkEl);\n }\n\n public trackLinkElement(linkEl: HTMLLinkElement) {\n if (this.trackedLinkElements.has(linkEl)) return;\n\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n\n public adoptStyleSheets(\n sheets: CSSStyleSheet[] | readonly CSSStyleSheet[],\n hostId: number,\n ) {\n if (sheets.length === 0) return;\n const adoptedStyleSheetData: adoptedStyleSheetParam = {\n id: hostId,\n styleIds: [] as number[],\n };\n const styles: NonNullable<adoptedStyleSheetParam['styles']> = [];\n for (const sheet of sheets) {\n let styleId;\n if (!this.styleMirror.has(sheet)) {\n styleId = this.styleMirror.add(sheet);\n styles.push({\n styleId,\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\n rule: stringifyRule(r, sheet.href),\n index,\n })),\n });\n } else styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0) adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n\n public reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = new WeakSet();\n }\n\n // TODO: take snapshot on stylesheet reload by applying event listener\n private trackStylesheetInLinkElement(_linkEl: HTMLLinkElement) {\n // linkEl.addEventListener('load', () => {\n // // re-loaded, maybe take another snapshot?\n // });\n }\n}\n", "import type MutationBuffer from './mutation';\n\n/**\n * Keeps a log of nodes that could show up in multiple mutation buffer but shouldn't be handled twice.\n */\nexport default class ProcessedNodeManager {\n private nodeMap: WeakMap<Node, Set<MutationBuffer>> = new WeakMap();\n\n private active = false;\n\n public inOtherBuffer(node: Node, thisBuffer: MutationBuffer) {\n const buffers = this.nodeMap.get(node);\n return (\n buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer)\n );\n }\n\n public add(node: Node, buffer: MutationBuffer) {\n if (!this.active) {\n this.active = true;\n requestAnimationFrame(() => {\n this.nodeMap = new WeakMap();\n this.active = false;\n });\n }\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\n }\n\n public destroy() {\n // cleanup no longer needed\n }\n}\n", "import {\n snapshot,\n type MaskInputOptions,\n type SlimDOMOptions,\n createMirror,\n} from '@posthog/rrweb-snapshot';\nimport { initObservers, mutationBuffers } from './observer';\nimport {\n on,\n getWindowWidth,\n getWindowHeight,\n getWindowScroll,\n polyfill,\n hasShadowRoot,\n isSerializedIframe,\n isSerializedStylesheet,\n nowTimestamp,\n} from '../utils';\nimport type { recordOptions } from '../types';\nimport {\n EventType,\n type eventWithoutTime,\n type eventWithTime,\n IncrementalSource,\n type listenerHandler,\n type mutationCallbackParam,\n type scrollCallback,\n type canvasMutationParam,\n type adoptedStyleSheetParam,\n} from '@posthog/rrweb-types';\nimport type { CrossOriginIframeMessageEventContent } from '../types';\nimport { IframeManager } from './iframe-manager';\nimport { ShadowDomManager } from './shadow-dom-manager';\nimport { CanvasManager } from './observers/canvas/canvas-manager';\nimport { StylesheetManager } from './stylesheet-manager';\nimport ProcessedNodeManager from './processed-node-manager';\nimport {\n callbackWrapper,\n registerErrorHandler,\n unregisterErrorHandler,\n} from './error-handler';\nimport dom from '@posthog/rrweb-utils';\n\nlet wrappedEmit!: (e: eventWithoutTime, isCheckout?: boolean) => void;\n\nlet takeFullSnapshot!: (isCheckout?: boolean) => void;\nlet canvasManager!: CanvasManager;\nlet recording = false;\n\n// Multiple tools (i.e. MooTools, Prototype.js) override Array.from and drop support for the 2nd parameter\n// Try to pull a clean implementation from a newly created iframe\ntry {\n if (Array.from([1], (x) => x * 2)[0] !== 2) {\n const cleanFrame = document.createElement('iframe');\n document.body.appendChild(cleanFrame);\n // eslint-disable-next-line @typescript-eslint/unbound-method -- Array.from is static and doesn't rely on binding\n Array.from = cleanFrame.contentWindow?.Array.from || Array.from;\n document.body.removeChild(cleanFrame);\n }\n} catch (err) {\n console.debug('Unable to override Array.from', err);\n}\n\nconst mirror = createMirror();\nfunction record<T = eventWithTime>(\n options: recordOptions<T> = {},\n): listenerHandler | undefined {\n const {\n emit,\n checkoutEveryNms,\n checkoutEveryNth,\n blockClass = 'rr-block',\n blockSelector = null,\n ignoreClass = 'rr-ignore',\n ignoreSelector = null,\n maskTextClass = 'rr-mask',\n maskTextSelector = null,\n inlineStylesheet = true,\n maskAllInputs,\n maskInputOptions: _maskInputOptions,\n slimDOMOptions: _slimDOMOptions,\n maskInputFn,\n maskTextFn,\n hooks,\n packFn,\n sampling = {},\n dataURLOptions: _dataURLOptions = {},\n mousemoveWait,\n recordDOM = true,\n recordCanvas = false,\n recordCrossOriginIframes = false,\n recordAfter = options.recordAfter === 'DOMContentLoaded'\n ? options.recordAfter\n : 'load',\n userTriggeredOnInput = false,\n collectFonts = false,\n inlineImages = false,\n plugins,\n keepIframeSrcFn = () => false,\n ignoreCSSAttributes = new Set([]),\n errorHandler,\n } = options;\n\n registerErrorHandler(errorHandler);\n\n const dataURLOptions = {\n type: 'image/webp',\n quality: 0.4,\n maxBase64ImageLength: 1048576,\n ..._dataURLOptions,\n };\n\n const inEmittingFrame = recordCrossOriginIframes\n ? window.parent === window\n : true;\n\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n // throws if parent is cross-origin\n if (window.parent.document) {\n passEmitsToParent = false; // if parent is same origin we collect iframe events from the parent\n }\n } catch (e) {\n passEmitsToParent = true;\n }\n }\n\n // runtime checks for user options\n if (inEmittingFrame && !emit) {\n throw new Error('emit function is required');\n }\n if (!inEmittingFrame && !passEmitsToParent) {\n return () => {\n /* no-op since in this case we don't need to record anything from this frame in particular */\n };\n }\n // move departed options to new options\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\n sampling.mousemove = mousemoveWait;\n }\n\n // reset mirror in case `record` this was called earlier\n mirror.reset();\n\n const maskInputOptions: MaskInputOptions =\n maskAllInputs === true\n ? {\n color: true,\n date: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true,\n }\n : _maskInputOptions !== undefined\n ? _maskInputOptions\n : { password: true };\n\n const slimDOMOptions: SlimDOMOptions =\n _slimDOMOptions === true || _slimDOMOptions === 'all'\n ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: _slimDOMOptions === 'all',\n headMetaDescKeywords: _slimDOMOptions === 'all',\n headTitleMutations: _slimDOMOptions === 'all',\n }\n : _slimDOMOptions\n ? _slimDOMOptions\n : {};\n\n polyfill();\n\n let lastFullSnapshotEvent: eventWithTime;\n let incrementalSnapshotCount = 0;\n\n const eventProcessor = (e: eventWithTime): T => {\n for (const plugin of plugins || []) {\n if (plugin.eventProcessor) {\n e = plugin.eventProcessor(e);\n }\n }\n if (\n packFn &&\n // Disable packing events which will be emitted to parent frames.\n !passEmitsToParent\n ) {\n e = packFn(e) as unknown as eventWithTime;\n }\n return e as unknown as T;\n };\n wrappedEmit = (r: eventWithoutTime, isCheckout?: boolean) => {\n const e = r as eventWithTime;\n e.timestamp = nowTimestamp();\n if (\n mutationBuffers[0]?.isFrozen() &&\n e.type !== EventType.FullSnapshot &&\n !(\n e.type === EventType.IncrementalSnapshot &&\n e.data.source === IncrementalSource.Mutation\n )\n ) {\n // we've got a user initiated event so first we need to apply\n // all DOM changes that have been buffering during paused state\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n\n if (inEmittingFrame) {\n emit?.(eventProcessor(e), isCheckout);\n } else if (passEmitsToParent) {\n const message: CrossOriginIframeMessageEventContent<T> = {\n type: 'rrweb',\n event: eventProcessor(e),\n origin: window.location.origin,\n isCheckout,\n };\n window.parent.postMessage(message, '*');\n }\n\n if (e.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e;\n incrementalSnapshotCount = 0;\n } else if (e.type === EventType.IncrementalSnapshot) {\n // attach iframe should be considered as full snapshot\n if (\n e.data.source === IncrementalSource.Mutation &&\n e.data.isAttachIframe\n ) {\n return;\n }\n\n incrementalSnapshotCount++;\n const exceedCount =\n checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime =\n checkoutEveryNms &&\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot(true);\n }\n }\n };\n\n const wrappedMutationEmit = (m: mutationCallbackParam) => {\n // Clean up removed iframes from the attachedIframes Map to prevent memory leaks\n // Only clean up iframes that are actually being removed, not moved\n // (moved iframes appear in both removes and adds)\n if (recordCrossOriginIframes && m.removes && m.removes.length > 0) {\n // Only create the Set if there are adds to check against\n const addedIds =\n m.adds.length > 0 ? new Set(m.adds.map((add) => add.node.id)) : null;\n m.removes.forEach(({ id }) => {\n // Only remove if not being re-added (i.e., actually removed, not moved)\n if (!addedIds || !addedIds.has(id)) {\n iframeManager.removeIframeById(id);\n }\n });\n }\n\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m,\n },\n });\n };\n const wrappedScrollEmit: scrollCallback = (p) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p,\n },\n });\n const wrappedCanvasMutationEmit = (p: canvasMutationParam) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p,\n },\n });\n\n const wrappedAdoptedStyleSheetEmit = (a: adoptedStyleSheetParam) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a,\n },\n });\n\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\n });\n\n const iframeManager = new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager: stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit,\n });\n\n /**\n * Exposes mirror to the plugins\n */\n for (const plugin of plugins || []) {\n if (plugin.getMirror)\n plugin.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror:\n iframeManager.crossOriginIframeStyleMirror,\n });\n }\n\n const processedNodeManager = new ProcessedNodeManager();\n\n canvasManager = new CanvasManager({\n recordCanvas,\n mutationCb: wrappedCanvasMutationEmit,\n win: window,\n blockClass,\n blockSelector,\n mirror,\n sampling: sampling.canvas,\n dataURLOptions,\n });\n\n const shadowDomManager = new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n dataURLOptions,\n maskTextFn,\n maskInputFn,\n recordCanvas,\n inlineImages,\n sampling,\n slimDOMOptions,\n iframeManager,\n stylesheetManager,\n canvasManager,\n keepIframeSrcFn,\n processedNodeManager,\n },\n mirror,\n });\n\n takeFullSnapshot = (isCheckout = false) => {\n if (!recordDOM) {\n return;\n }\n wrappedEmit(\n {\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight(),\n },\n },\n isCheckout,\n );\n\n // When we take a full snapshot, old tracked StyleSheets need to be removed.\n stylesheetManager.reset();\n\n shadowDomManager.init();\n\n mutationBuffers.forEach((buf) => buf.lock()); // don't allow any mirror modifications during snapshotting\n const node = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n onSerialize: (n) => {\n if (isSerializedIframe(n, mirror)) {\n iframeManager.addIframe(n as HTMLIFrameElement);\n }\n if (isSerializedStylesheet(n, mirror)) {\n stylesheetManager.trackLinkElement(n as HTMLLinkElement);\n }\n if (hasShadowRoot(n)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n shadowDomManager.addShadowRoot(dom.shadowRoot(n as Node)!, document);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (linkEl, childSn) => {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn,\n });\n\n if (!node) {\n return console.warn('Failed to snapshot the document');\n }\n\n wrappedEmit(\n {\n type: EventType.FullSnapshot,\n data: {\n node,\n initialOffset: getWindowScroll(window),\n },\n },\n isCheckout,\n );\n mutationBuffers.forEach((buf) => buf.unlock()); // generate & emit any mutations that happened during snapshotting, as can now apply against the newly built mirror\n\n if (recordCrossOriginIframes) {\n iframeManager.reattachIframes();\n }\n\n // Some old browsers don't support adoptedStyleSheets.\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(\n document.adoptedStyleSheets,\n mirror.getId(document),\n );\n };\n\n try {\n const handlers: listenerHandler[] = [];\n\n const observe = (doc: Document) => {\n return callbackWrapper(initObservers)(\n {\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions,\n },\n }),\n mouseInteractionCb: (d) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d,\n },\n }),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d,\n },\n }),\n inputCb: (v) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v,\n },\n }),\n mediaInteractionCb: (p) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p,\n },\n }),\n styleSheetRuleCb: (r) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r,\n },\n }),\n styleDeclarationCb: (r) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r,\n },\n }),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) =>\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Font,\n ...p,\n },\n }),\n selectionCb: (p) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Selection,\n ...p,\n },\n });\n },\n customElementCb: (c) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c,\n },\n });\n },\n blockClass,\n ignoreClass,\n ignoreSelector,\n maskTextClass,\n maskTextSelector,\n maskInputOptions,\n inlineStylesheet,\n sampling,\n recordDOM,\n recordCanvas,\n inlineImages,\n userTriggeredOnInput,\n collectFonts,\n doc,\n maskInputFn,\n maskTextFn,\n keepIframeSrcFn,\n blockSelector,\n slimDOMOptions,\n dataURLOptions,\n mirror,\n iframeManager,\n stylesheetManager,\n shadowDomManager,\n processedNodeManager,\n canvasManager,\n ignoreCSSAttributes,\n plugins:\n plugins\n ?.filter((p) => p.observer)\n ?.map((p) => ({\n observer: p.observer!,\n options: p.options,\n callback: (payload: object) =>\n wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload,\n },\n }),\n })) || [],\n },\n hooks,\n );\n };\n\n const loadListener = (iframeEl: HTMLIFrameElement) => {\n try {\n handlers.push(observe(iframeEl.contentDocument!));\n } catch (error) {\n // TODO: handle internal error\n console.warn(error);\n }\n };\n iframeManager.addLoadListener(loadListener);\n\n const init = () => {\n takeFullSnapshot();\n handlers.push(observe(document));\n recording = true;\n };\n if (\n document.readyState === 'interactive' ||\n document.readyState === 'complete'\n ) {\n init();\n } else {\n handlers.push(\n on('DOMContentLoaded', () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {},\n });\n if (recordAfter === 'DOMContentLoaded') init();\n }),\n );\n handlers.push(\n on(\n 'load',\n () => {\n wrappedEmit({\n type: EventType.Load,\n data: {},\n });\n if (recordAfter === 'load') init();\n },\n window,\n ),\n );\n }\n return () => {\n handlers.forEach((h) => h());\n processedNodeManager.destroy();\n iframeManager.removeLoadListener();\n iframeManager.destroy();\n mirror.reset();\n recording = false;\n unregisterErrorHandler();\n };\n } catch (error) {\n // TODO: handle internal error\n console.warn(error);\n }\n}\n\nrecord.addCustomEvent = <T>(tag: string, payload: T) => {\n if (!recording) {\n throw new Error('please add custom event after start recording');\n }\n wrappedEmit({\n type: EventType.Custom,\n data: {\n tag,\n payload,\n },\n });\n};\n\nrecord.freezePage = () => {\n mutationBuffers.forEach((buf) => buf.freeze());\n};\n\nrecord.takeFullSnapshot = (isCheckout?: boolean) => {\n if (!recording) {\n throw new Error('please take full snapshot after start recording');\n }\n takeFullSnapshot(isCheckout);\n};\n\nrecord.mirror = mirror;\n\nexport default record;\n", "export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n", "/**\n * A fork version of https://github.com/iamdustan/smoothscroll\n * Add support of customize target window and document\n */\n\n/* eslint-disable */\n// @ts-nocheck\nexport function polyfill(w: Window = window, d = document) {\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n const Element = w.HTMLElement || w.Element;\n const SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n const original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView,\n };\n\n // define timing method\n const now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n const userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n const ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.',\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n const overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n const isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n const isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n const time = now();\n let value;\n let currentX;\n let currentY;\n let elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n let scrollable;\n let startX;\n let startY;\n let method;\n const startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y,\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset,\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset,\n );\n };\n\n // w.scrollBy\n w.scrollBy = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : 0,\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset),\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object'\n ? ~~arguments[0]\n : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined\n ? ~~arguments[1]\n : this.scrollTop,\n );\n\n return;\n }\n\n const left = arguments[0].left;\n const top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top,\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function () {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop,\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior,\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function () {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0],\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n const scrollableParent = findScrollableParent(this);\n const parentRects = scrollableParent.getBoundingClientRect();\n const clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top,\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth',\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth',\n });\n }\n };\n}\n", "import {\n type actionWithDelay,\n type eventWithTime,\n EventType,\n IncrementalSource,\n} from '@posthog/rrweb-types';\n\nexport class Timer {\n public timeOffset = 0;\n public speed: number;\n\n private actions: actionWithDelay[];\n private raf: number | true | null = null;\n private lastTimestamp: number;\n\n constructor(\n actions: actionWithDelay[] = [],\n config: {\n speed: number;\n },\n ) {\n this.actions = actions;\n this.speed = config.speed;\n }\n /**\n * Add an action, possibly after the timer starts.\n */\n public addAction(action: actionWithDelay) {\n const rafWasActive = this.raf === true;\n if (\n !this.actions.length ||\n this.actions[this.actions.length - 1].delay <= action.delay\n ) {\n // 'fast track'\n this.actions.push(action);\n } else {\n // binary search - events can arrive out of order in a realtime context\n const index = this.findActionIndex(action);\n this.actions.splice(index, 0, action);\n }\n if (rafWasActive) {\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n }\n }\n\n public start() {\n this.timeOffset = 0;\n this.lastTimestamp = performance.now();\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n }\n\n private rafCheck() {\n const time = performance.now();\n this.timeOffset += (time - this.lastTimestamp) * this.speed;\n this.lastTimestamp = time;\n while (this.actions.length) {\n const action = this.actions[0];\n\n if (this.timeOffset >= action.delay) {\n this.actions.shift();\n action.doAction();\n } else {\n break;\n }\n }\n if (this.actions.length > 0) {\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n } else {\n this.raf = true; // was active\n }\n }\n\n public clear() {\n if (this.raf) {\n if (this.raf !== true) {\n cancelAnimationFrame(this.raf);\n }\n this.raf = null;\n }\n this.actions.length = 0;\n }\n\n public setSpeed(speed: number) {\n this.speed = speed;\n }\n\n public isActive() {\n return this.raf !== null;\n }\n\n private findActionIndex(action: actionWithDelay): number {\n let start = 0;\n let end = this.actions.length - 1;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n if (this.actions[mid].delay < action.delay) {\n start = mid + 1;\n } else if (this.actions[mid].delay > action.delay) {\n end = mid - 1;\n } else {\n // already an action with same delay (timestamp)\n // the plus one will splice the new one after the existing one\n return mid + 1;\n }\n }\n return start;\n }\n}\n\n// TODO: add speed to mouse move timestamp calculation\nexport function addDelay(event: eventWithTime, baselineTime: number): number {\n // Mouse move events was recorded in a throttle function,\n // so we need to find the real timestamp by traverse the time offsets.\n if (\n event.type === EventType.IncrementalSnapshot &&\n event.data.source === IncrementalSource.MouseMove &&\n event.data.positions &&\n event.data.positions.length\n ) {\n const firstOffset = event.data.positions[0].timeOffset;\n // timeOffset is a negative offset to event.timestamp\n const firstTimestamp = event.timestamp + firstOffset;\n event.delay = firstTimestamp - baselineTime;\n return firstTimestamp - baselineTime;\n }\n\n event.delay = event.timestamp - baselineTime;\n return event.delay;\n}\n", "/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(t,n){var e=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,o,i=e.call(t),a=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(t){o={error:t}}finally{try{r&&!r.done&&(e=i.return)&&e.call(i)}finally{if(o)throw o.error}}return a}var n;!function(t){t[t.NotStarted=0]=\"NotStarted\",t[t.Running=1]=\"Running\",t[t.Stopped=2]=\"Stopped\"}(n||(n={}));var e={type:\"xstate.init\"};function r(t){return void 0===t?[]:[].concat(t)}function o(t){return{type:\"xstate.assign\",assignment:t}}function i(t,n){return\"string\"==typeof(t=\"string\"==typeof t&&n&&n[t]?n[t]:t)?{type:t}:\"function\"==typeof t?{type:t.name,exec:t}:t}function a(t){return function(n){return t===n}}function u(t){return\"string\"==typeof t?{type:t}:t}function c(t,n){return{value:t,context:n,actions:[],changed:!1,matches:a(t)}}function f(t,n,e){var r=n,o=!1;return[t.filter((function(t){if(\"xstate.assign\"===t.type){o=!0;var n=Object.assign({},r);return\"function\"==typeof t.assignment?n=t.assignment(r,e):Object.keys(t.assignment).forEach((function(o){n[o]=\"function\"==typeof t.assignment[o]?t.assignment[o](r,e):t.assignment[o]})),r=n,!1}return!0})),r,o]}function s(n,o){void 0===o&&(o={});var s=t(f(r(n.states[n.initial].entry).map((function(t){return i(t,o.actions)})),n.context,e),2),l=s[0],v=s[1],y={config:n,_options:o,initialState:{value:n.initial,actions:l,context:v,matches:a(n.initial)},transition:function(e,o){var s,l,v=\"string\"==typeof e?{value:e,context:n.context}:e,p=v.value,g=v.context,d=u(o),x=n.states[p];if(x.on){var m=r(x.on[d.type]);try{for(var h=function(t){var n=\"function\"==typeof Symbol&&Symbol.iterator,e=n&&t[n],r=0;if(e)return e.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(n?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}(m),b=h.next();!b.done;b=h.next()){var S=b.value;if(void 0===S)return c(p,g);var w=\"string\"==typeof S?{target:S}:S,j=w.target,E=w.actions,R=void 0===E?[]:E,N=w.cond,O=void 0===N?function(){return!0}:N,_=void 0===j,k=null!=j?j:p,T=n.states[k];if(O(g,d)){var q=t(f((_?r(R):[].concat(x.exit,R,T.entry).filter((function(t){return t}))).map((function(t){return i(t,y._options.actions)})),g,d),3),z=q[0],A=q[1],B=q[2],C=null!=j?j:p;return{value:C,context:A,actions:z,changed:j!==p||z.length>0||B,matches:a(C)}}}}catch(t){s={error:t}}finally{try{b&&!b.done&&(l=h.return)&&l.call(h)}finally{if(s)throw s.error}}}return c(p,g)}};return y}var l=function(t,n){return t.actions.forEach((function(e){var r=e.exec;return r&&r(t.context,n)}))};function v(t){var r=t.initialState,o=n.NotStarted,i=new Set,c={_machine:t,send:function(e){o===n.Running&&(r=t.transition(r,e),l(r,u(e)),i.forEach((function(t){return t(r)})))},subscribe:function(t){return i.add(t),t(r),{unsubscribe:function(){return i.delete(t)}}},start:function(i){if(i){var u=\"object\"==typeof i?i:{context:t.config.context,value:i};r={value:u.value,actions:[],context:u.context,matches:a(u.value)}}return o=n.Running,l(r,e),c},stop:function(){return o=n.Stopped,i.clear(),c},get state(){return r},get status(){return o}};return c}export{n as InterpreterStatus,o as assign,s as createMachine,v as interpret};\n", "import {\n createMachine,\n interpret,\n assign,\n type StateMachine,\n} from '@xstate/fsm';\nimport type { playerConfig } from '../types';\nimport {\n type eventWithTime,\n ReplayerEvents,\n EventType,\n type Emitter,\n IncrementalSource,\n} from '@posthog/rrweb-types';\nimport { Timer, addDelay } from './timer';\n\nexport type PlayerContext = {\n events: eventWithTime[];\n timer: Timer;\n timeOffset: number;\n baselineTime: number;\n lastPlayedEvent: eventWithTime | null;\n};\nexport type PlayerEvent =\n | {\n type: 'PLAY';\n payload: {\n timeOffset: number;\n };\n }\n | {\n type: 'CAST_EVENT';\n payload: {\n event: eventWithTime;\n };\n }\n | { type: 'PAUSE' }\n | { type: 'TO_LIVE'; payload: { baselineTime?: number } }\n | {\n type: 'ADD_EVENT';\n payload: {\n event: eventWithTime;\n };\n }\n | {\n type: 'END';\n };\nexport type PlayerState =\n | {\n value: 'playing';\n context: PlayerContext;\n }\n | {\n value: 'paused';\n context: PlayerContext;\n }\n | {\n value: 'live';\n context: PlayerContext;\n };\n\n/**\n * If the array have multiple meta and fullsnapshot events,\n * return the events from last meta to the end.\n */\nexport function discardPriorSnapshots(\n events: eventWithTime[],\n baselineTime: number,\n): eventWithTime[] {\n for (let idx = events.length - 1; idx >= 0; idx--) {\n const event = events[idx];\n if (event.type === EventType.Meta) {\n if (event.timestamp <= baselineTime) {\n return events.slice(idx);\n }\n }\n }\n return events;\n}\n\ntype PlayerAssets = {\n emitter: Emitter;\n applyEventsSynchronously(events: Array<eventWithTime>): void;\n getCastFn(event: eventWithTime, isSync: boolean): () => void;\n};\nexport function createPlayerService(\n context: PlayerContext,\n { getCastFn, applyEventsSynchronously, emitter }: PlayerAssets,\n) {\n const playerMachine = createMachine<PlayerContext, PlayerEvent, PlayerState>(\n {\n id: 'player',\n context,\n initial: 'paused',\n states: {\n playing: {\n on: {\n PAUSE: {\n target: 'paused',\n actions: ['pause'],\n },\n CAST_EVENT: {\n target: 'playing',\n actions: 'castEvent',\n },\n END: {\n target: 'paused',\n actions: ['resetLastPlayedEvent', 'pause'],\n },\n ADD_EVENT: {\n target: 'playing',\n actions: ['addEvent'],\n },\n },\n },\n paused: {\n on: {\n PLAY: {\n target: 'playing',\n actions: ['recordTimeOffset', 'play'],\n },\n CAST_EVENT: {\n target: 'paused',\n actions: 'castEvent',\n },\n TO_LIVE: {\n target: 'live',\n actions: ['startLive'],\n },\n ADD_EVENT: {\n target: 'paused',\n actions: ['addEvent'],\n },\n },\n },\n live: {\n on: {\n ADD_EVENT: {\n target: 'live',\n actions: ['addEvent'],\n },\n CAST_EVENT: {\n target: 'live',\n actions: ['castEvent'],\n },\n },\n },\n },\n },\n {\n actions: {\n castEvent: assign({\n lastPlayedEvent: (ctx, event) => {\n if (event.type === 'CAST_EVENT') {\n return event.payload.event;\n }\n return ctx.lastPlayedEvent;\n },\n }),\n recordTimeOffset: assign((ctx, event) => {\n let timeOffset = ctx.timeOffset;\n if ('payload' in event && 'timeOffset' in event.payload) {\n timeOffset = event.payload.timeOffset;\n }\n return {\n ...ctx,\n timeOffset,\n baselineTime: ctx.events[0].timestamp + timeOffset,\n };\n }),\n play(ctx) {\n const { timer, events, baselineTime, lastPlayedEvent } = ctx;\n timer.clear();\n\n for (const event of events) {\n // TODO: improve this API\n addDelay(event, baselineTime);\n }\n const neededEvents = discardPriorSnapshots(events, baselineTime);\n\n let lastPlayedTimestamp = lastPlayedEvent?.timestamp;\n if (\n lastPlayedEvent?.type === EventType.IncrementalSnapshot &&\n lastPlayedEvent.data.source === IncrementalSource.MouseMove\n ) {\n lastPlayedTimestamp =\n lastPlayedEvent.timestamp +\n lastPlayedEvent.data.positions[0]?.timeOffset;\n }\n if (baselineTime < (lastPlayedTimestamp || 0)) {\n emitter.emit(ReplayerEvents.PlayBack);\n }\n\n const syncEvents = new Array<eventWithTime>();\n for (const event of neededEvents) {\n if (\n lastPlayedTimestamp &&\n lastPlayedTimestamp < baselineTime &&\n (event.timestamp <= lastPlayedTimestamp ||\n event === lastPlayedEvent)\n ) {\n continue;\n }\n if (event.timestamp < baselineTime) {\n syncEvents.push(event);\n } else {\n const castFn = getCastFn(event, false);\n timer.addAction({\n doAction: () => {\n castFn();\n },\n delay: event.delay!,\n });\n }\n }\n applyEventsSynchronously(syncEvents);\n emitter.emit(ReplayerEvents.Flush);\n timer.start();\n },\n pause(ctx) {\n ctx.timer.clear();\n },\n resetLastPlayedEvent: assign((ctx) => {\n return {\n ...ctx,\n lastPlayedEvent: null,\n };\n }),\n startLive: assign({\n baselineTime: (ctx, event) => {\n ctx.timer.start();\n if (event.type === 'TO_LIVE' && event.payload.baselineTime) {\n return event.payload.baselineTime;\n }\n return Date.now();\n },\n }),\n addEvent: assign((ctx, machineEvent) => {\n const { baselineTime, timer, events } = ctx;\n if (machineEvent.type === 'ADD_EVENT') {\n const { event } = machineEvent.payload;\n addDelay(event, baselineTime);\n\n let end = events.length - 1;\n if (!events[end] || events[end].timestamp <= event.timestamp) {\n // fast track\n events.push(event);\n } else {\n let insertionIndex = -1;\n let start = 0;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n if (events[mid].timestamp <= event.timestamp) {\n start = mid + 1;\n } else {\n end = mid - 1;\n }\n }\n if (insertionIndex === -1) {\n insertionIndex = start;\n }\n events.splice(insertionIndex, 0, event);\n }\n\n const isSync = event.timestamp < baselineTime;\n const castFn = getCastFn(event, isSync);\n if (isSync) {\n castFn();\n } else if (timer.isActive()) {\n timer.addAction({\n doAction: () => {\n castFn();\n },\n delay: event.delay!,\n });\n }\n }\n return { ...ctx, events };\n }),\n },\n },\n );\n return interpret(playerMachine);\n}\n\nexport type SpeedContext = {\n normalSpeed: playerConfig['speed'];\n timer: Timer;\n};\n\nexport type SpeedEvent =\n | {\n type: 'FAST_FORWARD';\n payload: { speed: playerConfig['speed'] };\n }\n | {\n type: 'BACK_TO_NORMAL';\n }\n | {\n type: 'SET_SPEED';\n payload: { speed: playerConfig['speed'] };\n };\n\nexport type SpeedState =\n | {\n value: 'normal';\n context: SpeedContext;\n }\n | {\n value: 'skipping';\n context: SpeedContext;\n };\n\nexport function createSpeedService(context: SpeedContext) {\n const speedMachine = createMachine<SpeedContext, SpeedEvent, SpeedState>(\n {\n id: 'speed',\n context,\n initial: 'normal',\n states: {\n normal: {\n on: {\n FAST_FORWARD: {\n target: 'skipping',\n actions: ['recordSpeed', 'setSpeed'],\n },\n SET_SPEED: {\n target: 'normal',\n actions: ['setSpeed'],\n },\n },\n },\n skipping: {\n on: {\n BACK_TO_NORMAL: {\n target: 'normal',\n actions: ['restoreSpeed'],\n },\n SET_SPEED: {\n target: 'normal',\n actions: ['setSpeed'],\n },\n },\n },\n },\n },\n {\n actions: {\n setSpeed: (ctx, event) => {\n if ('payload' in event) {\n ctx.timer.setSpeed(event.payload.speed);\n }\n },\n recordSpeed: assign({\n normalSpeed: (ctx) => ctx.timer.speed,\n }),\n restoreSpeed: (ctx) => {\n ctx.timer.setSpeed(ctx.normalSpeed);\n },\n },\n },\n );\n\n return interpret(speedMachine);\n}\n\nexport type PlayerMachineState = StateMachine.State<\n PlayerContext,\n PlayerEvent,\n PlayerState\n>;\n\nexport type SpeedMachineState = StateMachine.State<\n SpeedContext,\n SpeedEvent,\n SpeedState\n>;\n", "const rules: (blockClass: string) => string[] = (blockClass: string) => [\n `.${blockClass} { background: currentColor }`,\n 'noscript { display: none !important; }',\n];\n\nexport default rules;\n", "import { decode } from 'base64-arraybuffer';\nimport type { Replayer } from '../';\nimport type { CanvasArg, SerializedCanvasArg } from '@posthog/rrweb-types';\n\n// TODO: add ability to wipe this list\ntype GLVarMap = Map<string, any[]>;\nconst webGLVarMap: Map<\n CanvasRenderingContext2D | WebGLRenderingContext | WebGL2RenderingContext,\n GLVarMap\n> = new Map();\nexport function variableListFor(\n ctx:\n | CanvasRenderingContext2D\n | WebGLRenderingContext\n | WebGL2RenderingContext,\n ctor: string,\n) {\n let contextMap = webGLVarMap.get(ctx);\n if (!contextMap) {\n contextMap = new Map();\n webGLVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return contextMap.get(ctor) as any[];\n}\n\nexport function isSerializedArg(arg: unknown): arg is SerializedCanvasArg {\n return Boolean(arg && typeof arg === 'object' && 'rr_type' in arg);\n}\n\nexport function deserializeArg(\n imageMap: Replayer['imageMap'],\n ctx:\n | CanvasRenderingContext2D\n | WebGLRenderingContext\n | WebGL2RenderingContext\n | null,\n preload?: {\n isUnchanged: boolean;\n },\n): (arg: CanvasArg) => Promise<any> {\n return async (arg: CanvasArg): Promise<any> => {\n if (arg && typeof arg === 'object' && 'rr_type' in arg) {\n if (preload) preload.isUnchanged = false;\n if (arg.rr_type === 'ImageBitmap' && 'args' in arg) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const args = await deserializeArg(imageMap, ctx, preload)(arg.args);\n // eslint-disable-next-line prefer-spread\n return await createImageBitmap.apply(null, args);\n } else if ('index' in arg) {\n if (preload || ctx === null) return arg; // we are preloading, ctx is unknown\n const { rr_type: name, index } = arg;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return variableListFor(ctx, name)[index];\n } else if ('args' in arg) {\n const { rr_type: name, args } = arg;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const ctor = window[name as keyof Window];\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return new ctor(\n ...(await Promise.all(\n args.map(deserializeArg(imageMap, ctx, preload)),\n )),\n );\n } else if ('base64' in arg) {\n return decode(arg.base64);\n } else if ('src' in arg) {\n const image = imageMap.get(arg.src);\n if (image) {\n return image;\n } else {\n const image = new Image();\n image.src = arg.src;\n imageMap.set(arg.src, image);\n return image;\n }\n } else if ('data' in arg && arg.rr_type === 'Blob') {\n const blobContents = await Promise.all(\n arg.data.map(deserializeArg(imageMap, ctx, preload)),\n );\n const blob = new Blob(blobContents, {\n type: arg.type,\n });\n return blob;\n }\n } else if (Array.isArray(arg)) {\n const result = await Promise.all(\n arg.map(deserializeArg(imageMap, ctx, preload)),\n );\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result;\n }\n return arg;\n };\n}\n", "import type { Replayer } from '../';\nimport {\n CanvasContext,\n type canvasMutationCommand,\n} from '@posthog/rrweb-types';\nimport { deserializeArg, variableListFor } from './deserialize-args';\n\nfunction getContext(\n target: HTMLCanvasElement,\n type: CanvasContext,\n): WebGLRenderingContext | WebGL2RenderingContext | null {\n // Note to whomever is going to implement support for `contextAttributes`:\n // if `preserveDrawingBuffer` is set to true,\n // you might have to do `ctx.flush()` before every webgl canvas event\n try {\n if (type === CanvasContext.WebGL) {\n return (\n target.getContext('webgl')! || target.getContext('experimental-webgl')\n );\n }\n return target.getContext('webgl2')!;\n } catch (e) {\n return null;\n }\n}\n\nconst WebGLVariableConstructorsNames = [\n 'WebGLActiveInfo',\n 'WebGLBuffer',\n 'WebGLFramebuffer',\n 'WebGLProgram',\n 'WebGLRenderbuffer',\n 'WebGLShader',\n 'WebGLShaderPrecisionFormat',\n 'WebGLTexture',\n 'WebGLUniformLocation',\n 'WebGLVertexArrayObject',\n];\n\nfunction saveToWebGLVarMap(\n ctx: WebGLRenderingContext | WebGL2RenderingContext,\n result: any,\n) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (!result?.constructor) return; // probably null or undefined\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n const { name } = result.constructor;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (!WebGLVariableConstructorsNames.includes(name)) return; // not a WebGL variable\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n const variables = variableListFor(ctx, name);\n if (!variables.includes(result)) variables.push(result);\n}\n\nexport default async function webglMutation({\n mutation,\n target,\n type,\n imageMap,\n errorHandler,\n}: {\n mutation: canvasMutationCommand;\n target: HTMLCanvasElement;\n type: CanvasContext;\n imageMap: Replayer['imageMap'];\n errorHandler: Replayer['warnCanvasMutationFailed'];\n}): Promise<void> {\n try {\n const ctx = getContext(target, type);\n if (!ctx) return;\n\n // NOTE: if `preserveDrawingBuffer` is set to true,\n // we must flush the buffers on every new canvas event\n // if (mutation.newFrame) ctx.flush();\n\n if (mutation.setter) {\n // skip some read-only type checks\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n (ctx as any)[mutation.property] = mutation.args[0];\n return;\n }\n const original = ctx[\n mutation.property as Exclude<keyof typeof ctx, 'canvas'>\n ] as (\n ctx: WebGLRenderingContext | WebGL2RenderingContext,\n args: unknown[],\n ) => void;\n\n const args = await Promise.all(\n mutation.args.map(deserializeArg(imageMap, ctx)),\n );\n const result = original.apply(ctx, args);\n saveToWebGLVarMap(ctx, result);\n\n // Slows down replay considerably, only use for debugging\n const debugMode = false;\n if (debugMode) {\n if (mutation.property === 'compileShader') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (!ctx.getShaderParameter(args[0], ctx.COMPILE_STATUS))\n console.warn(\n 'something went wrong in replay',\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n ctx.getShaderInfoLog(args[0]),\n );\n } else if (mutation.property === 'linkProgram') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n ctx.validateProgram(args[0]);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (!ctx.getProgramParameter(args[0], ctx.LINK_STATUS))\n console.warn(\n 'something went wrong in replay',\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n ctx.getProgramInfoLog(args[0]),\n );\n }\n const webglError = ctx.getError();\n if (webglError !== ctx.NO_ERROR) {\n console.warn(\n 'WEBGL ERROR',\n webglError,\n 'on command:',\n mutation.property,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n ...args,\n );\n }\n }\n } catch (error) {\n errorHandler(mutation, error);\n }\n}\n", "import type { Replayer } from '../';\nimport type { canvasMutationCommand } from '@posthog/rrweb-types';\nimport { deserializeArg } from './deserialize-args';\n\nexport default async function canvasMutation({\n event,\n mutations,\n target,\n imageMap,\n errorHandler,\n}: {\n event: Parameters<Replayer['applyIncremental']>[0];\n mutations: canvasMutationCommand[];\n target: HTMLCanvasElement;\n imageMap: Replayer['imageMap'];\n errorHandler: Replayer['warnCanvasMutationFailed'];\n}): Promise<void> {\n const ctx = target.getContext('2d');\n\n if (!ctx) {\n errorHandler(mutations[0], new Error('Canvas context is null'));\n return;\n }\n\n // step 1, deserialize args, they may be async\n const mutationArgsPromises = mutations.map(\n async (mutation: canvasMutationCommand): Promise<unknown[]> => {\n return Promise.all(mutation.args.map(deserializeArg(imageMap, ctx)));\n },\n );\n const args = await Promise.all(mutationArgsPromises);\n // step 2 apply all mutations\n args.forEach((args, index) => {\n const mutation = mutations[index];\n try {\n if (mutation.setter) {\n // skip some read-only type checks\n (ctx as unknown as Record<string, unknown>)[mutation.property] =\n mutation.args[0];\n return;\n }\n const original = ctx[\n mutation.property as Exclude<keyof typeof ctx, 'canvas'>\n ] as (ctx: CanvasRenderingContext2D, args: unknown[]) => void;\n\n /**\n * We have serialized the image source into base64 string during recording,\n * which has been preloaded before replay.\n * So we can get call drawImage SYNCHRONOUSLY which avoid some fragile cast.\n */\n if (\n mutation.property === 'drawImage' &&\n typeof mutation.args[0] === 'string'\n ) {\n imageMap.get(event);\n original.apply(ctx, mutation.args);\n } else {\n original.apply(ctx, args);\n }\n } catch (error) {\n errorHandler(mutation, error);\n }\n\n return;\n });\n}\n", "import type { Replayer } from '..';\nimport {\n CanvasContext,\n type canvasMutationCommand,\n type canvasMutationData,\n type canvasMutationParam,\n} from '@posthog/rrweb-types';\nimport webglMutation from './webgl';\nimport canvas2DMutation from './2d';\n\nexport default async function canvasMutation({\n event,\n mutation,\n target,\n imageMap,\n canvasEventMap,\n errorHandler,\n}: {\n event: Parameters<Replayer['applyIncremental']>[0];\n mutation: canvasMutationData;\n target: HTMLCanvasElement;\n imageMap: Replayer['imageMap'];\n canvasEventMap: Replayer['canvasEventMap'];\n errorHandler: Replayer['warnCanvasMutationFailed'];\n}): Promise<void> {\n try {\n const precomputedMutation: canvasMutationParam =\n canvasEventMap.get(event) || mutation;\n\n const commands: canvasMutationCommand[] =\n 'commands' in precomputedMutation\n ? precomputedMutation.commands\n : [precomputedMutation];\n\n if ([CanvasContext.WebGL, CanvasContext.WebGL2].includes(mutation.type)) {\n for (let i = 0; i < commands.length; i++) {\n const command = commands[i];\n await webglMutation({\n mutation: command,\n type: mutation.type,\n target,\n imageMap,\n errorHandler,\n });\n }\n return;\n }\n // default is '2d' for backwards compatibility (rrweb below 1.1.x)\n await canvas2DMutation({\n event,\n mutations: commands,\n target,\n imageMap,\n errorHandler,\n });\n } catch (error) {\n errorHandler(mutation, error);\n }\n}\n", "import type { Emitter } from '@posthog/rrweb-types';\nimport { MediaInteractions, ReplayerEvents } from '@posthog/rrweb-types';\nimport type { RRMediaElement } from '@posthog/rrdom';\nimport type { createPlayerService, createSpeedService } from '../machine';\nimport type { Mirror } from '@posthog/rrweb-snapshot';\nimport type {\n mediaInteractionData,\n mediaAttributes,\n} from '@posthog/rrweb-types';\n\nconst SUPPORTED_MEDIA_ELEMENT_NAMES = ['AUDIO', 'VIDEO'];\n\ntype MediaState = {\n isPlaying: boolean;\n currentTimeAtLastInteraction: number;\n lastInteractionTimeOffset: number;\n playbackRate: number;\n loop: boolean;\n volume: number;\n muted: boolean;\n};\n\nexport class MediaManager {\n private mediaMap: Map<HTMLMediaElement | RRMediaElement, MediaState> =\n new Map();\n private warn: (...args: Parameters<typeof console.warn>) => void;\n private service: ReturnType<typeof createPlayerService>;\n private speedService: ReturnType<typeof createSpeedService>;\n private emitter: Emitter;\n private getCurrentTime: () => number;\n private metadataCallbackMap: WeakMap<\n HTMLMediaElement | RRMediaElement,\n () => void\n > = new Map();\n\n constructor(options: {\n warn: (...args: Parameters<typeof console.warn>) => void;\n service: ReturnType<typeof createPlayerService>;\n speedService: ReturnType<typeof createSpeedService>;\n getCurrentTime: () => number;\n emitter: Emitter;\n }) {\n this.warn = options.warn;\n this.service = options.service;\n this.speedService = options.speedService;\n this.emitter = options.emitter;\n this.getCurrentTime = options.getCurrentTime;\n\n this.emitter.on(ReplayerEvents.Start, this.start.bind(this));\n this.emitter.on(ReplayerEvents.SkipStart, this.start.bind(this));\n this.emitter.on(ReplayerEvents.Pause, this.pause.bind(this));\n this.emitter.on(ReplayerEvents.Finish, this.pause.bind(this));\n this.speedService.subscribe(() => {\n this.syncAllMediaElements();\n });\n }\n\n private syncAllMediaElements(options = { pause: false }) {\n this.mediaMap.forEach((_mediaState, target) => {\n this.syncTargetWithState(target);\n if (options.pause) {\n target.pause();\n }\n });\n }\n\n private start() {\n this.syncAllMediaElements();\n }\n\n private pause() {\n this.syncAllMediaElements({ pause: true });\n }\n\n private seekTo({\n time,\n target,\n mediaState,\n }: {\n time: number;\n target: HTMLMediaElement | RRMediaElement;\n mediaState: MediaState;\n }) {\n if (mediaState.isPlaying) {\n const differenceBetweenCurrentTimeAndMediaMutationTimestamp =\n time - mediaState.lastInteractionTimeOffset;\n const mediaPlaybackOffset =\n (differenceBetweenCurrentTimeAndMediaMutationTimestamp / 1000) *\n mediaState.playbackRate;\n\n const duration = 'duration' in target && target.duration;\n\n // Video hasn't loaded yet, wait for metadata\n if (Number.isNaN(duration)) {\n this.waitForMetadata(target);\n return;\n }\n\n let seekToTime =\n mediaState.currentTimeAtLastInteraction + mediaPlaybackOffset;\n\n if (\n target.loop &&\n // RRMediaElement doesn't have a duration property\n duration !== false\n ) {\n seekToTime = seekToTime % duration;\n }\n\n target.currentTime = seekToTime;\n } else {\n target.pause();\n target.currentTime = mediaState.currentTimeAtLastInteraction;\n }\n }\n\n private waitForMetadata(target: HTMLMediaElement | RRMediaElement) {\n if (this.metadataCallbackMap.has(target)) return;\n if (!('addEventListener' in target)) return;\n\n const onLoadedMetadata = () => {\n this.metadataCallbackMap.delete(target);\n const mediaState = this.mediaMap.get(target);\n if (!mediaState) return;\n this.seekTo({\n time: this.getCurrentTime(),\n target,\n mediaState,\n });\n };\n\n this.metadataCallbackMap.set(target, onLoadedMetadata);\n target.addEventListener('loadedmetadata', onLoadedMetadata, {\n once: true,\n });\n }\n\n private getMediaStateFromMutation({\n target,\n timeOffset,\n mutation,\n }: {\n target: HTMLMediaElement | RRMediaElement;\n timeOffset: number;\n mutation: mediaInteractionData;\n }): MediaState {\n const lastState = this.mediaMap.get(target);\n const { type, playbackRate, currentTime, muted, volume, loop } = mutation;\n\n const isPlaying =\n type === MediaInteractions.Play ||\n (type !== MediaInteractions.Pause &&\n (lastState?.isPlaying || target.getAttribute('autoplay') !== null));\n\n const mediaState: MediaState = {\n isPlaying,\n currentTimeAtLastInteraction:\n currentTime ?? lastState?.currentTimeAtLastInteraction ?? 0,\n lastInteractionTimeOffset: timeOffset,\n playbackRate: playbackRate ?? lastState?.playbackRate ?? 1,\n volume: volume ?? lastState?.volume ?? 1,\n muted: muted ?? lastState?.muted ?? target.getAttribute('muted') === null,\n loop: loop ?? lastState?.loop ?? target.getAttribute('loop') === null,\n };\n\n return mediaState;\n }\n\n private syncTargetWithState(target: HTMLMediaElement | RRMediaElement) {\n const mediaState = this.mediaMap.get(target);\n if (!mediaState) return;\n const { muted, loop, volume, isPlaying } = mediaState;\n const playerIsPaused = this.service.state.matches('paused');\n const playbackRate =\n mediaState.playbackRate * this.speedService.state.context.timer.speed;\n\n try {\n this.seekTo({\n time: this.getCurrentTime(),\n target,\n mediaState,\n });\n\n if (target.volume !== volume) {\n target.volume = volume;\n }\n target.muted = muted;\n target.loop = loop;\n\n if (target.playbackRate !== playbackRate) {\n // Avoid setting playbackRate when it's already the same\n // Safari drops frames whenever playbackRate is set, even if it's the same\n target.playbackRate = playbackRate;\n }\n\n if (isPlaying && !playerIsPaused) {\n // remove listener for 'canplay' event because play() is async and returns a promise\n // i.e. media will eventually start to play when data is loaded\n // 'canplay' event fires even when currentTime attribute changes which may lead to\n // unexpected behavior\n void target.play();\n } else {\n target.pause();\n }\n } catch (error) {\n this.warn(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions\n `Failed to replay media interactions: ${error.message || error}`,\n );\n }\n }\n\n public addMediaElements(node: Node, timeOffset: number, mirror: Mirror) {\n if (!this.isSupportedMediaElement(node)) return;\n const target = node;\n const serializedNode = mirror.getMeta(target);\n if (!serializedNode || !('attributes' in serializedNode)) return;\n const playerIsPaused = this.service.state.matches('paused');\n const mediaAttributes = serializedNode.attributes as\n | mediaAttributes\n | Record<string, never>;\n\n let isPlaying = false;\n if (mediaAttributes.rr_mediaState) {\n isPlaying = mediaAttributes.rr_mediaState === 'played';\n } else {\n isPlaying = target.getAttribute('autoplay') !== null;\n }\n if (isPlaying && playerIsPaused) target.pause();\n\n let playbackRate = 1;\n if (typeof mediaAttributes.rr_mediaPlaybackRate === 'number') {\n playbackRate = mediaAttributes.rr_mediaPlaybackRate;\n }\n\n let muted = false;\n if (typeof mediaAttributes.rr_mediaMuted === 'boolean') {\n muted = mediaAttributes.rr_mediaMuted;\n } else {\n muted = target.getAttribute('muted') !== null;\n }\n\n let loop = false;\n if (typeof mediaAttributes.rr_mediaLoop === 'boolean') {\n loop = mediaAttributes.rr_mediaLoop;\n } else {\n loop = target.getAttribute('loop') !== null;\n }\n\n let volume = 1;\n if (typeof mediaAttributes.rr_mediaVolume === 'number') {\n volume = mediaAttributes.rr_mediaVolume;\n }\n\n let currentTimeAtLastInteraction = 0;\n if (typeof mediaAttributes.rr_mediaCurrentTime === 'number') {\n currentTimeAtLastInteraction = mediaAttributes.rr_mediaCurrentTime;\n }\n\n this.mediaMap.set(target, {\n isPlaying,\n currentTimeAtLastInteraction,\n lastInteractionTimeOffset: timeOffset,\n playbackRate,\n volume,\n muted,\n loop,\n });\n this.syncTargetWithState(target);\n }\n\n public mediaMutation({\n target,\n timeOffset,\n mutation,\n }: {\n target: HTMLMediaElement | RRMediaElement;\n timeOffset: number;\n mutation: mediaInteractionData;\n }) {\n if (!SUPPORTED_MEDIA_ELEMENT_NAMES.includes(target.nodeName)) {\n return;\n }\n\n this.mediaMap.set(\n target,\n this.getMediaStateFromMutation({\n target,\n timeOffset,\n mutation,\n }),\n );\n\n this.syncTargetWithState(target);\n }\n\n public isSupportedMediaElement(node: Node): node is HTMLMediaElement {\n return SUPPORTED_MEDIA_ELEMENT_NAMES.includes(node.nodeName);\n }\n\n public reset() {\n this.mediaMap.clear();\n }\n}\n", "import type { attributeMutation } from '@posthog/rrweb-types';\nimport { RRNode } from '@posthog/rrdom';\n\n/**\n * Checks if the dialog is a top level dialog and applies the dialog to the top level\n * @param node - potential dialog element to apply top level `showModal()` to, or other node (which will be ignored)\n * @param attributeMutation - the attribute mutation used to change the dialog (optional)\n * @returns void\n */\nexport function applyDialogToTopLevel(\n node: HTMLDialogElement | Node | RRNode,\n attributeMutation?: attributeMutation,\n): void {\n if (node.nodeName !== 'DIALOG' || node instanceof RRNode) return;\n const dialog = node as HTMLDialogElement;\n const oldIsOpen = dialog.open;\n const oldIsModalState = oldIsOpen && dialog.matches('dialog:modal');\n const rrOpenMode = dialog.getAttribute('rr_open_mode');\n\n const newIsOpen =\n typeof attributeMutation?.attributes.open === 'string' ||\n typeof dialog.getAttribute('open') === 'string';\n const newIsModalState = rrOpenMode === 'modal';\n const newIsNonModalState = rrOpenMode === 'non-modal';\n\n const modalStateChanged =\n (oldIsModalState && newIsNonModalState) ||\n (!oldIsModalState && newIsModalState);\n\n if (oldIsOpen && !modalStateChanged) return;\n // complain if dialog is not attached to the dom\n if (!dialog.isConnected) {\n console.warn('dialog is not attached to the dom', dialog);\n return;\n }\n\n if (oldIsOpen) dialog.close();\n if (!newIsOpen) return;\n\n if (newIsModalState) dialog.showModal();\n else dialog.show();\n}\n\n/**\n * Check if the dialog is a top level dialog and removes the dialog from the top level if necessary\n * @param node - potential dialog element to remove from top level, or other node (which will be ignored)\n * @param attributeMutation - the attribute mutation used to change the dialog\n * @returns void\n */\nexport function removeDialogFromTopLevel(\n node: HTMLDialogElement | Node | RRNode,\n attributeMutation: attributeMutation,\n): void {\n if (node.nodeName !== 'DIALOG' || node instanceof RRNode) return;\n const dialog = node as HTMLDialogElement;\n\n // complain if dialog is not attached to the dom\n if (!dialog.isConnected) {\n console.warn('dialog is not attached to the dom', dialog);\n return;\n }\n\n if (attributeMutation.attributes.open === null) {\n dialog.removeAttribute('open');\n dialog.removeAttribute('rr_open_mode');\n }\n}\n", "import {\n rebuild,\n buildNodeWithSN,\n type BuildCache,\n createCache,\n Mirror,\n createMirror,\n toLowerCase,\n} from '@posthog/rrweb-snapshot';\nimport {\n RRDocument,\n createOrGetNode,\n buildFromNode,\n buildFromDom,\n diff,\n getDefaultSN,\n} from '@posthog/rrdom';\nimport type {\n RRNode,\n RRElement,\n RRStyleElement,\n RRIFrameElement,\n RRMediaElement,\n RRCanvasElement,\n ReplayerHandler,\n Mirror as RRDOMMirror,\n} from '@posthog/rrdom';\nimport * as mittProxy from 'mitt';\nimport { polyfill as smoothscrollPolyfill } from './smoothscroll';\nimport { Timer } from './timer';\nimport {\n createPlayerService,\n createSpeedService,\n type PlayerMachineState,\n type SpeedMachineState,\n} from './machine';\nimport type { playerConfig, missingNodeMap } from '../types';\nimport {\n NodeType,\n EventType,\n IncrementalSource,\n MouseInteractions,\n ReplayerEvents,\n} from '@posthog/rrweb-types';\nimport type {\n attributes,\n fullSnapshotEvent,\n eventWithTime,\n playerMetaData,\n viewportResizeDimension,\n addedNodeMutation,\n incrementalSnapshotEvent,\n incrementalData,\n Handler,\n Emitter,\n metaEvent,\n mutationData,\n scrollData,\n inputData,\n canvasMutationData,\n styleValueWithPriority,\n mouseMovePos,\n IWindow,\n canvasMutationCommand,\n canvasMutationParam,\n canvasEventWithTime,\n selectionData,\n styleSheetRuleData,\n styleDeclarationData,\n adoptedStyleSheetData,\n serializedElementNodeWithId,\n} from '@posthog/rrweb-types';\nimport {\n polyfill,\n queueToResolveTrees,\n iterateResolveTree,\n type AppendedIframe,\n getBaseDimension,\n hasShadowRoot,\n isSerializedIframe,\n getNestedRule,\n getPositionsAndIndex,\n uniqueTextMutations,\n StyleSheetMirror,\n} from '../utils';\nimport getInjectStyleRules from './styles/inject-style';\nimport './styles/style.css';\nimport canvasMutation from './canvas';\nimport { deserializeArg } from './canvas/deserialize-args';\nimport { MediaManager } from './media';\nimport { applyDialogToTopLevel, removeDialogFromTopLevel } from './dialog';\n\nconst SKIP_TIME_INTERVAL = 5 * 1000;\n\n// https://github.com/rollup/rollup/issues/1267#issuecomment-296395734\nconst mitt = mittProxy.default || mittProxy;\n\nconst REPLAY_CONSOLE_PREFIX = '[replayer]';\n\nconst defaultMouseTailConfig = {\n duration: 500,\n lineCap: 'round',\n lineWidth: 3,\n strokeStyle: 'red',\n} as const;\n\nfunction indicatesTouchDevice(e: eventWithTime) {\n return (\n e.type == EventType.IncrementalSnapshot &&\n (e.data.source == IncrementalSource.TouchMove ||\n (e.data.source == IncrementalSource.MouseInteraction &&\n e.data.type == MouseInteractions.TouchStart))\n );\n}\n\nexport class Replayer {\n public wrapper: HTMLDivElement;\n public iframe: HTMLIFrameElement;\n\n public service: ReturnType<typeof createPlayerService>;\n public speedService: ReturnType<typeof createSpeedService>;\n public get timer() {\n return this.service.state.context.timer;\n }\n\n public config: playerConfig;\n\n // In the fast-forward process, if the virtual-dom optimization is used, this flag value is true.\n public usingVirtualDom = false;\n public virtualDom: RRDocument = new RRDocument();\n\n private mouse: HTMLDivElement;\n private mouseTail: HTMLCanvasElement | null = null;\n private tailPositions: Array<{ x: number; y: number }> = [];\n\n private emitter: Emitter = mitt();\n\n private nextUserInteractionEvent: eventWithTime | null;\n\n private legacy_missingNodeRetryMap: missingNodeMap = {};\n\n // The replayer uses the cache to speed up replay and scrubbing.\n private cache: BuildCache = createCache();\n\n private imageMap: Map<eventWithTime | string, HTMLImageElement> = new Map();\n private canvasEventMap: Map<eventWithTime, canvasMutationParam> = new Map();\n\n private mirror: Mirror = createMirror();\n\n // Used to track StyleSheetObjects adopted on multiple document hosts.\n private styleMirror: StyleSheetMirror = new StyleSheetMirror();\n\n // Used to track video & audio elements, and keep them in sync with general playback.\n private mediaManager: MediaManager;\n\n private firstFullSnapshot: eventWithTime | true | null = null;\n\n private newDocumentQueue: addedNodeMutation[] = [];\n\n private mousePos: mouseMovePos | null = null;\n private touchActive: boolean | null = null;\n private lastMouseDownEvent: [Node, Event] | null = null;\n\n // Keep the rootNode of the last hovered element. So when hovering a new element, we can remove the last hovered element's :hover style.\n private lastHoveredRootNode: Document | ShadowRoot;\n\n // In the fast-forward mode, only the last selection data needs to be applied.\n private lastSelectionData: selectionData | null = null;\n\n // In the fast-forward mode using VirtualDom optimization, all stylesheetRule, and styleDeclaration events on constructed StyleSheets will be delayed to get applied until the flush stage.\n private constructedStyleMutations: (\n | styleSheetRuleData\n | styleDeclarationData\n )[] = [];\n\n // Similar to the reason for constructedStyleMutations.\n private adoptedStyleSheets: adoptedStyleSheetData[] = [];\n\n // Track resources for cleanup\n private emitterHandlers: Array<{ event: string; handler: Handler }> = [];\n private serviceSubscription?: { unsubscribe: () => void };\n private speedServiceSubscription?: { unsubscribe: () => void };\n private timeouts: Set<ReturnType<typeof setTimeout>> = new Set();\n private styleSheetLoadListeners: Map<HTMLLinkElement, () => void> = new Map();\n\n constructor(\n events: Array<eventWithTime | string>,\n config?: Partial<playerConfig>,\n ) {\n if (!config?.liveMode && events.length < 2) {\n throw new Error('Replayer need at least 2 events.');\n }\n const defaultConfig: playerConfig = {\n speed: 1,\n maxSpeed: 360,\n root: document.body,\n loadTimeout: 0,\n skipInactive: false,\n inactivePeriodThreshold: 10 * 1000,\n showWarning: true,\n showDebug: false,\n blockClass: 'rr-block',\n liveMode: false,\n insertStyleRules: [],\n triggerFocus: true,\n UNSAFE_replayCanvas: false,\n pauseAnimation: true,\n mouseTail: defaultMouseTailConfig,\n useVirtualDom: true, // Virtual-dom optimization is enabled by default.\n logger: console,\n };\n this.config = Object.assign({}, defaultConfig, config);\n\n this.handleResize = this.handleResize.bind(this);\n this.getCastFn = this.getCastFn.bind(this);\n this.applyEventsSynchronously = this.applyEventsSynchronously.bind(this);\n this.addEmitterHandler(ReplayerEvents.Resize, this.handleResize as Handler);\n\n this.setupDom();\n\n /**\n * Exposes mirror to the plugins\n */\n for (const plugin of this.config.plugins || []) {\n if (plugin.getMirror) plugin.getMirror({ nodeMirror: this.mirror });\n }\n\n const flushHandler = () => {\n if (this.usingVirtualDom) {\n const replayerHandler: ReplayerHandler = {\n mirror: this.mirror,\n applyCanvas: (\n canvasEvent: canvasEventWithTime,\n canvasMutationData: canvasMutationData,\n target: HTMLCanvasElement,\n ) => {\n void canvasMutation({\n event: canvasEvent,\n mutation: canvasMutationData,\n target,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this),\n });\n },\n applyInput: this.applyInput.bind(this),\n applyScroll: this.applyScroll.bind(this),\n applyStyleSheetMutation: (\n data: styleDeclarationData | styleSheetRuleData,\n styleSheet: CSSStyleSheet,\n ) => {\n if (data.source === IncrementalSource.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n },\n afterAppend: (node: Node, id: number) => {\n for (const plugin of this.config.plugins || []) {\n if (plugin.onBuild) plugin.onBuild(node, { id, replayer: this });\n }\n },\n };\n if (this.iframe.contentDocument)\n try {\n diff(\n this.iframe.contentDocument,\n this.virtualDom,\n replayerHandler,\n this.virtualDom.mirror,\n );\n } catch (e) {\n this.warn(e);\n }\n\n this.virtualDom.destroyTree();\n this.usingVirtualDom = false;\n\n // If these legacy missing nodes haven't been resolved, they should be converted to real Nodes.\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n for (const key in this.legacy_missingNodeRetryMap) {\n try {\n const value = this.legacy_missingNodeRetryMap[key];\n const realNode = createOrGetNode(\n value.node as RRNode,\n this.mirror,\n this.virtualDom.mirror,\n );\n diff(\n realNode,\n value.node as RRNode,\n replayerHandler,\n this.virtualDom.mirror,\n );\n value.node = realNode;\n } catch (error) {\n this.warn(error);\n }\n }\n }\n\n this.constructedStyleMutations.forEach((data) => {\n this.applyStyleSheetMutation(data);\n });\n this.constructedStyleMutations = [];\n\n this.adoptedStyleSheets.forEach((data) => {\n this.applyAdoptedStyleSheet(data);\n });\n this.adoptedStyleSheets = [];\n }\n\n if (this.mousePos) {\n this.moveAndHover(\n this.mousePos.x,\n this.mousePos.y,\n this.mousePos.id,\n true,\n this.mousePos.debugData,\n );\n this.mousePos = null;\n }\n\n if (this.touchActive === true) {\n this.mouse.classList.add('touch-active');\n } else if (this.touchActive === false) {\n this.mouse.classList.remove('touch-active');\n }\n this.touchActive = null;\n\n if (this.lastMouseDownEvent) {\n const [target, event] = this.lastMouseDownEvent;\n target.dispatchEvent(event);\n }\n this.lastMouseDownEvent = null;\n\n if (this.lastSelectionData) {\n this.applySelection(this.lastSelectionData);\n this.lastSelectionData = null;\n }\n };\n this.addEmitterHandler(ReplayerEvents.Flush, flushHandler);\n\n const playBackHandler = () => {\n this.firstFullSnapshot = null;\n this.mirror.reset();\n this.styleMirror.reset();\n this.mediaManager.reset();\n };\n this.addEmitterHandler(ReplayerEvents.PlayBack, playBackHandler);\n\n const timer = new Timer([], {\n speed: this.config.speed,\n });\n this.service = createPlayerService(\n {\n events: events\n .map((e) => {\n if (config && config.unpackFn) {\n return config.unpackFn(e as string);\n }\n return e as eventWithTime;\n })\n .sort((a1, a2) => a1.timestamp - a2.timestamp),\n timer,\n timeOffset: 0,\n baselineTime: 0,\n lastPlayedEvent: null,\n },\n {\n getCastFn: this.getCastFn,\n applyEventsSynchronously: this.applyEventsSynchronously,\n emitter: this.emitter,\n },\n );\n this.service.start();\n this.serviceSubscription = this.service.subscribe((state) => {\n this.emitter.emit(ReplayerEvents.StateChange, {\n player: state,\n });\n });\n this.speedService = createSpeedService({\n normalSpeed: -1,\n timer,\n });\n this.speedService.start();\n this.speedServiceSubscription = this.speedService.subscribe((state) => {\n this.emitter.emit(ReplayerEvents.StateChange, {\n speed: state,\n });\n });\n this.mediaManager = new MediaManager({\n warn: this.warn.bind(this),\n service: this.service,\n speedService: this.speedService,\n emitter: this.emitter,\n getCurrentTime: this.getCurrentTime.bind(this),\n });\n\n // rebuild first full snapshot as the poster of the player\n // maybe we can cache it for performance optimization\n const firstMeta = this.service.state.context.events.find(\n (e) => e.type === EventType.Meta,\n );\n const firstFullsnapshot = this.service.state.context.events.find(\n (e) => e.type === EventType.FullSnapshot,\n );\n if (firstMeta) {\n const { width, height } = firstMeta.data as metaEvent['data'];\n this.addTimeout(() => {\n this.emitter.emit(ReplayerEvents.Resize, {\n width,\n height,\n });\n }, 0);\n }\n if (firstFullsnapshot) {\n this.addTimeout(() => {\n // when something has been played, there is no need to rebuild poster\n if (this.firstFullSnapshot) {\n // true if any other fullSnapshot has been executed by Timer already\n return;\n }\n this.firstFullSnapshot = firstFullsnapshot;\n this.rebuildFullSnapshot(\n firstFullsnapshot as fullSnapshotEvent & { timestamp: number },\n );\n this.iframe.contentWindow?.scrollTo(\n (firstFullsnapshot as fullSnapshotEvent).data.initialOffset,\n );\n }, 1);\n }\n if (this.service.state.context.events.find(indicatesTouchDevice)) {\n this.mouse.classList.add('touch-device');\n }\n }\n\n public on(event: string, handler: Handler) {\n this.emitter.on(event, handler);\n return this;\n }\n\n public off(event: string, handler: Handler) {\n this.emitter.off(event, handler);\n return this;\n }\n\n /**\n * Track emitter handlers for cleanup\n */\n private addEmitterHandler(event: string, handler: Handler) {\n this.emitter.on(event, handler);\n this.emitterHandlers.push({ event, handler });\n }\n\n /**\n * Track timeouts for cleanup\n */\n private addTimeout(\n callback: () => void,\n delay: number,\n ): ReturnType<typeof setTimeout> {\n const timeout = setTimeout(() => {\n this.timeouts.delete(timeout);\n callback();\n }, delay);\n this.timeouts.add(timeout);\n return timeout;\n }\n\n public setConfig(config: Partial<playerConfig>) {\n Object.keys(config).forEach((key) => {\n const newConfigValue = config[key as keyof playerConfig];\n (this.config as Record<keyof playerConfig, typeof newConfigValue>)[\n key as keyof playerConfig\n ] = config[key as keyof playerConfig];\n });\n if (!this.config.skipInactive) {\n this.backToNormal();\n }\n if (typeof config.speed !== 'undefined') {\n this.speedService.send({\n type: 'SET_SPEED',\n payload: {\n speed: config.speed,\n },\n });\n }\n if (typeof config.mouseTail !== 'undefined') {\n if (config.mouseTail === false) {\n if (this.mouseTail) {\n this.mouseTail.style.display = 'none';\n }\n } else {\n if (!this.mouseTail) {\n this.mouseTail = document.createElement('canvas');\n this.mouseTail.width = Number.parseFloat(this.iframe.width);\n this.mouseTail.height = Number.parseFloat(this.iframe.height);\n this.mouseTail.classList.add('replayer-mouse-tail');\n this.wrapper.insertBefore(this.mouseTail, this.iframe);\n }\n this.mouseTail.style.display = 'inherit';\n }\n }\n }\n\n public getMetaData(): playerMetaData {\n const firstEvent = this.service.state.context.events[0];\n const lastEvent =\n this.service.state.context.events[\n this.service.state.context.events.length - 1\n ];\n return {\n startTime: firstEvent.timestamp,\n endTime: lastEvent.timestamp,\n totalTime: lastEvent.timestamp - firstEvent.timestamp,\n };\n }\n\n /**\n * Get the actual time offset the player is at now compared to the first event.\n */\n public getCurrentTime(): number {\n return this.timer.timeOffset + this.getTimeOffset();\n }\n\n /**\n * Get the time offset the player is at now compared to the first event, but without regard for the timer.\n */\n public getTimeOffset(): number {\n const { baselineTime, events } = this.service.state.context;\n return baselineTime - events[0].timestamp;\n }\n\n public getMirror(): Mirror {\n return this.mirror;\n }\n\n /**\n * This API was designed to be used as play at any time offset.\n * Since we minimized the data collected from recorder, we do not\n * have the ability of undo an event.\n * So the implementation of play at any time offset will always iterate\n * all of the events, cast event before the offset synchronously\n * and cast event after the offset asynchronously with timer.\n * @param timeOffset - number\n */\n public play(timeOffset = 0) {\n if (this.service.state.matches('paused')) {\n this.service.send({ type: 'PLAY', payload: { timeOffset } });\n } else {\n this.service.send({ type: 'PAUSE' });\n this.service.send({ type: 'PLAY', payload: { timeOffset } });\n }\n this.iframe.contentDocument\n ?.getElementsByTagName('html')[0]\n ?.classList.remove('rrweb-paused');\n this.emitter.emit(ReplayerEvents.Start);\n }\n\n public pause(timeOffset?: number) {\n if (timeOffset === undefined && this.service.state.matches('playing')) {\n this.service.send({ type: 'PAUSE' });\n }\n if (typeof timeOffset === 'number') {\n this.play(timeOffset);\n this.service.send({ type: 'PAUSE' });\n }\n this.iframe.contentDocument\n ?.getElementsByTagName('html')[0]\n ?.classList.add('rrweb-paused');\n this.emitter.emit(ReplayerEvents.Pause);\n }\n\n public resume(timeOffset = 0) {\n this.warn(\n `The 'resume' was deprecated in 1.0. Please use 'play' method which has the same interface.`,\n );\n this.play(timeOffset);\n this.emitter.emit(ReplayerEvents.Resume);\n }\n\n /**\n * Totally destroy this replayer and please be careful that this operation is irreversible.\n * Memory occupation can be released by removing all references to this replayer.\n */\n public destroy() {\n // Make destroy() idempotent - return early if already destroyed\n if (!this.wrapper || !this.wrapper.parentNode) {\n return;\n }\n\n this.pause();\n\n // Remove all tracked emitter handlers\n this.emitterHandlers.forEach(({ event, handler }) => {\n this.emitter.off(event, handler);\n });\n this.emitterHandlers = [];\n\n // Unsubscribe from services\n this.serviceSubscription?.unsubscribe();\n this.speedServiceSubscription?.unsubscribe();\n this.serviceSubscription = undefined;\n this.speedServiceSubscription = undefined;\n\n // Stop the state machine services\n this.service.stop();\n this.speedService.stop();\n\n // Clear all pending timeouts\n this.timeouts.forEach((timeout) => clearTimeout(timeout));\n this.timeouts.clear();\n\n // Remove all CSS link load listeners\n this.styleSheetLoadListeners.forEach((handler, element) => {\n element.removeEventListener('load', handler);\n });\n this.styleSheetLoadListeners.clear();\n\n // Clear maps to allow garbage collection\n this.imageMap.clear();\n this.canvasEventMap.clear();\n\n // Reset caches and mirrors\n this.mirror.reset();\n this.styleMirror.reset();\n this.mediaManager.reset();\n this.resetCache();\n\n // Remove DOM elements\n this.config.root.removeChild(this.wrapper);\n\n // Emit destroy event last\n this.emitter.emit(ReplayerEvents.Destroy);\n }\n\n public startLive(baselineTime?: number) {\n this.service.send({ type: 'TO_LIVE', payload: { baselineTime } });\n }\n\n public addEvent(rawEvent: eventWithTime | string) {\n const event = this.config.unpackFn\n ? this.config.unpackFn(rawEvent as string)\n : (rawEvent as eventWithTime);\n if (indicatesTouchDevice(event)) {\n this.mouse.classList.add('touch-device');\n }\n void Promise.resolve().then(() =>\n this.service.send({ type: 'ADD_EVENT', payload: { event } }),\n );\n }\n\n public enableInteract() {\n this.iframe.setAttribute('scrolling', 'auto');\n this.iframe.style.pointerEvents = 'auto';\n }\n\n public disableInteract() {\n this.iframe.setAttribute('scrolling', 'no');\n this.iframe.style.pointerEvents = 'none';\n }\n\n /**\n * Empties the replayer's cache and reclaims memory.\n * The replayer will use this cache to speed up the playback.\n */\n public resetCache() {\n this.cache = createCache();\n }\n\n private setupDom() {\n this.wrapper = document.createElement('div');\n this.wrapper.classList.add('replayer-wrapper');\n this.config.root.appendChild(this.wrapper);\n\n this.mouse = document.createElement('div');\n this.mouse.classList.add('replayer-mouse');\n this.wrapper.appendChild(this.mouse);\n\n if (this.config.mouseTail !== false) {\n this.mouseTail = document.createElement('canvas');\n this.mouseTail.classList.add('replayer-mouse-tail');\n this.mouseTail.style.display = 'inherit';\n this.wrapper.appendChild(this.mouseTail);\n }\n\n this.iframe = document.createElement('iframe');\n const attributes = ['allow-same-origin'];\n if (this.config.UNSAFE_replayCanvas) {\n attributes.push('allow-scripts');\n }\n // hide iframe before first meta event\n this.iframe.style.display = 'none';\n this.iframe.setAttribute('sandbox', attributes.join(' '));\n this.disableInteract();\n this.wrapper.appendChild(this.iframe);\n if (this.iframe.contentWindow && this.iframe.contentDocument) {\n smoothscrollPolyfill(\n this.iframe.contentWindow,\n this.iframe.contentDocument,\n );\n\n polyfill(this.iframe.contentWindow as IWindow);\n }\n }\n\n private handleResize = (dimension: viewportResizeDimension) => {\n this.iframe.style.display = 'inherit';\n for (const el of [this.mouseTail, this.iframe]) {\n if (!el) {\n continue;\n }\n el.setAttribute('width', String(dimension.width));\n el.setAttribute('height', String(dimension.height));\n }\n };\n\n private applyEventsSynchronously = (events: Array<eventWithTime>) => {\n for (const event of events) {\n switch (event.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n case EventType.Custom:\n continue;\n case EventType.FullSnapshot:\n case EventType.Meta:\n case EventType.Plugin:\n case EventType.IncrementalSnapshot:\n break;\n default:\n break;\n }\n const castFn = this.getCastFn(event, true);\n castFn();\n }\n };\n\n private getCastFn = (event: eventWithTime, isSync = false) => {\n let castFn: undefined | (() => void);\n switch (event.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n break;\n case EventType.Custom:\n castFn = () => {\n /**\n * emit custom-event and pass the event object.\n *\n * This will add more value to the custom event and allows the client to react for custom-event.\n */\n this.emitter.emit(ReplayerEvents.CustomEvent, event);\n };\n break;\n case EventType.Meta:\n castFn = () =>\n this.emitter.emit(ReplayerEvents.Resize, {\n width: event.data.width,\n height: event.data.height,\n });\n break;\n case EventType.FullSnapshot:\n castFn = () => {\n if (this.firstFullSnapshot) {\n if (this.firstFullSnapshot === event) {\n // we've already built this exact FullSnapshot when the player was mounted, and haven't built any other FullSnapshot since\n this.firstFullSnapshot = true; // forget as we might need to re-execute this FullSnapshot later e.g. to rebuild after scrubbing\n return;\n }\n } else {\n // Timer (requestAnimationFrame) can be faster than setTimeout(..., 1)\n this.firstFullSnapshot = true;\n }\n this.mediaManager.reset();\n this.styleMirror.reset();\n this.rebuildFullSnapshot(event, isSync);\n this.iframe.contentWindow?.scrollTo(event.data.initialOffset);\n };\n break;\n case EventType.IncrementalSnapshot:\n castFn = () => {\n this.applyIncremental(event, isSync);\n if (isSync) {\n // do not check skip in sync\n return;\n }\n if (event === this.nextUserInteractionEvent) {\n this.nextUserInteractionEvent = null;\n this.backToNormal();\n }\n if (this.config.skipInactive && !this.nextUserInteractionEvent) {\n for (const _event of this.service.state.context.events) {\n if (_event.timestamp <= event.timestamp) {\n continue;\n }\n if (this.isUserInteraction(_event)) {\n if (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _event.delay! - event.delay! >\n this.config.inactivePeriodThreshold *\n this.speedService.state.context.timer.speed\n ) {\n this.nextUserInteractionEvent = _event;\n }\n break;\n }\n }\n if (this.nextUserInteractionEvent) {\n const skipTime =\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.nextUserInteractionEvent.delay! - event.delay!;\n const payload = {\n speed: Math.min(\n Math.round(skipTime / SKIP_TIME_INTERVAL),\n this.config.maxSpeed,\n ),\n };\n this.speedService.send({ type: 'FAST_FORWARD', payload });\n this.emitter.emit(ReplayerEvents.SkipStart, payload);\n }\n }\n };\n break;\n default:\n }\n const wrappedCastFn = () => {\n if (castFn) {\n castFn();\n }\n\n for (const plugin of this.config.plugins || []) {\n if (plugin.handler) plugin.handler(event, isSync, { replayer: this });\n }\n\n this.service.send({ type: 'CAST_EVENT', payload: { event } });\n\n // events are kept sorted by timestamp, check if this is the last event\n const last_index = this.service.state.context.events.length - 1;\n if (\n !this.config.liveMode &&\n event === this.service.state.context.events[last_index]\n ) {\n const finish = () => {\n if (last_index < this.service.state.context.events.length - 1) {\n // more events have been added since the setTimeout\n return;\n }\n this.backToNormal();\n this.service.send('END');\n this.emitter.emit(ReplayerEvents.Finish);\n };\n let finish_buffer = 50; // allow for checking whether new events aren't just about to be loaded in\n if (\n event.type === EventType.IncrementalSnapshot &&\n event.data.source === IncrementalSource.MouseMove &&\n event.data.positions.length\n ) {\n // extend finish event if the last event is a mouse move so that the timer isn't stopped by the service before checking the last event\n finish_buffer += Math.max(0, -event.data.positions[0].timeOffset);\n }\n setTimeout(finish, finish_buffer);\n }\n\n this.emitter.emit(ReplayerEvents.EventCast, event);\n };\n return wrappedCastFn;\n };\n\n private rebuildFullSnapshot(\n event: fullSnapshotEvent & { timestamp: number },\n isSync = false,\n ) {\n if (!this.iframe.contentDocument) {\n return this.warn('Looks like your replayer has been destroyed.');\n }\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n this.warn(\n 'Found unresolved missing node map',\n this.legacy_missingNodeRetryMap,\n );\n }\n this.legacy_missingNodeRetryMap = {};\n const collectedIframes: AppendedIframe[] = [];\n const collectedDialogs = new Set<HTMLDialogElement>();\n const afterAppend = (builtNode: Node, id: number) => {\n if (builtNode.nodeName === 'DIALOG')\n collectedDialogs.add(builtNode as HTMLDialogElement);\n this.collectIframeAndAttachDocument(collectedIframes, builtNode);\n if (this.mediaManager.isSupportedMediaElement(builtNode)) {\n const { events } = this.service.state.context;\n this.mediaManager.addMediaElements(\n builtNode,\n event.timestamp - events[0].timestamp,\n this.mirror,\n );\n }\n for (const plugin of this.config.plugins || []) {\n if (plugin.onBuild)\n plugin.onBuild(builtNode, {\n id,\n replayer: this,\n });\n }\n };\n\n /**\n * Normally rebuilding full snapshot should not be under virtual dom environment.\n * But if the order of data events has some issues, it might be possible.\n * Adding this check to avoid any potential issues.\n */\n if (this.usingVirtualDom) {\n this.virtualDom.destroyTree();\n this.usingVirtualDom = false;\n }\n\n this.mirror.reset();\n rebuild(event.data.node, {\n doc: this.iframe.contentDocument,\n afterAppend,\n cache: this.cache,\n mirror: this.mirror,\n });\n afterAppend(this.iframe.contentDocument, event.data.node.id);\n\n for (const { mutationInQueue, builtNode } of collectedIframes) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue,\n );\n }\n const { documentElement, head } = this.iframe.contentDocument;\n this.insertStyleRules(documentElement, head);\n collectedDialogs.forEach((d) => applyDialogToTopLevel(d));\n if (!this.service.state.matches('playing')) {\n this.iframe.contentDocument\n .getElementsByTagName('html')[0]\n .classList.add('rrweb-paused');\n }\n this.emitter.emit(ReplayerEvents.FullsnapshotRebuilded, event);\n if (!isSync) {\n this.waitForStylesheetLoad();\n }\n if (this.config.UNSAFE_replayCanvas) {\n void this.preloadAllImages();\n }\n }\n\n private insertStyleRules(\n documentElement: HTMLElement | RRElement,\n head: HTMLHeadElement | RRElement,\n ) {\n const injectStylesRules = getInjectStyleRules(\n this.config.blockClass,\n ).concat(this.config.insertStyleRules);\n if (this.config.pauseAnimation) {\n injectStylesRules.push(\n 'html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }',\n );\n }\n if (this.usingVirtualDom) {\n const styleEl = this.virtualDom.createElement('style');\n this.virtualDom.mirror.add(\n styleEl,\n getDefaultSN(styleEl, this.virtualDom.unserializedId),\n );\n (documentElement as RRElement).insertBefore(styleEl, head as RRElement);\n styleEl.rules.push({\n source: IncrementalSource.StyleSheetRule,\n adds: injectStylesRules.map((cssText, index) => ({\n rule: cssText,\n index,\n })),\n });\n } else {\n const styleEl = document.createElement('style');\n (documentElement as HTMLElement).insertBefore(\n styleEl,\n head as HTMLHeadElement,\n );\n for (let idx = 0; idx < injectStylesRules.length; idx++) {\n styleEl.sheet?.insertRule(injectStylesRules[idx], idx);\n }\n }\n }\n\n private attachDocumentToIframe(\n mutation: addedNodeMutation,\n iframeEl: HTMLIFrameElement | RRIFrameElement,\n ) {\n const mirror: RRDOMMirror | Mirror = this.usingVirtualDom\n ? this.virtualDom.mirror\n : this.mirror;\n type TNode = typeof mirror extends Mirror ? Node : RRNode;\n type TMirror = typeof mirror extends Mirror ? Mirror : RRDOMMirror;\n\n const collectedIframes: AppendedIframe[] = [];\n const collectedDialogs = new Set<HTMLDialogElement>();\n const afterAppend = (builtNode: Node, id: number) => {\n if (builtNode.nodeName === 'DIALOG')\n collectedDialogs.add(builtNode as HTMLDialogElement);\n this.collectIframeAndAttachDocument(collectedIframes, builtNode);\n const sn = (mirror as TMirror).getMeta(builtNode as unknown as TNode);\n if (\n sn?.type === NodeType.Element &&\n sn?.tagName.toUpperCase() === 'HTML'\n ) {\n const { documentElement, head } = iframeEl.contentDocument!;\n this.insertStyleRules(\n documentElement as HTMLElement | RRElement,\n head as HTMLElement | RRElement,\n );\n }\n\n // Skip the plugin onBuild callback in the virtual dom mode\n if (this.usingVirtualDom) return;\n for (const plugin of this.config.plugins || []) {\n if (plugin.onBuild)\n plugin.onBuild(builtNode, {\n id,\n replayer: this,\n });\n }\n };\n\n buildNodeWithSN(mutation.node, {\n doc: iframeEl.contentDocument! as Document,\n mirror: mirror as Mirror,\n hackCss: true,\n skipChild: false,\n afterAppend,\n cache: this.cache,\n });\n afterAppend(iframeEl.contentDocument! as Document, mutation.node.id);\n\n for (const { mutationInQueue, builtNode } of collectedIframes) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue,\n );\n }\n\n collectedDialogs.forEach((d) => applyDialogToTopLevel(d));\n }\n\n private collectIframeAndAttachDocument(\n collected: AppendedIframe[],\n builtNode: Node,\n ) {\n if (isSerializedIframe(builtNode, this.mirror)) {\n const mutationInQueue = this.newDocumentQueue.find(\n (m) => m.parentId === this.mirror.getId(builtNode),\n );\n if (mutationInQueue) {\n collected.push({\n mutationInQueue,\n builtNode: builtNode as HTMLIFrameElement,\n });\n }\n }\n }\n\n /**\n * pause when loading style sheet, resume when loaded all timeout exceed\n */\n private waitForStylesheetLoad() {\n const head = this.iframe.contentDocument?.head;\n if (head) {\n const unloadSheets: Set<HTMLLinkElement> = new Set();\n let timer: ReturnType<typeof setTimeout> | -1;\n let beforeLoadState = this.service.state;\n const stateHandler = () => {\n beforeLoadState = this.service.state;\n };\n this.emitter.on(ReplayerEvents.Start, stateHandler);\n this.emitter.on(ReplayerEvents.Pause, stateHandler);\n const unsubscribe = () => {\n this.emitter.off(ReplayerEvents.Start, stateHandler);\n this.emitter.off(ReplayerEvents.Pause, stateHandler);\n };\n head\n .querySelectorAll('link[rel=\"stylesheet\"]')\n .forEach((css: HTMLLinkElement) => {\n if (!css.sheet) {\n unloadSheets.add(css);\n css.addEventListener('load', () => {\n unloadSheets.delete(css);\n // all loaded and timer not released yet\n if (unloadSheets.size === 0 && timer !== -1) {\n if (beforeLoadState.matches('playing')) {\n this.play(this.getCurrentTime());\n }\n this.emitter.emit(ReplayerEvents.LoadStylesheetEnd);\n if (timer) {\n clearTimeout(timer);\n }\n unsubscribe();\n }\n });\n }\n });\n\n if (unloadSheets.size > 0) {\n // find some unload sheets after iterate\n this.service.send({ type: 'PAUSE' });\n this.emitter.emit(ReplayerEvents.LoadStylesheetStart);\n timer = setTimeout(() => {\n if (beforeLoadState.matches('playing')) {\n this.play(this.getCurrentTime());\n }\n // mark timer was called\n timer = -1;\n unsubscribe();\n }, this.config.loadTimeout);\n }\n }\n }\n\n /**\n * pause when there are some canvas drawImage args need to be loaded\n */\n private async preloadAllImages(): Promise<void[]> {\n const promises: Promise<void>[] = [];\n for (const event of this.service.state.context.events) {\n if (\n event.type === EventType.IncrementalSnapshot &&\n event.data.source === IncrementalSource.CanvasMutation\n ) {\n promises.push(\n this.deserializeAndPreloadCanvasEvents(event.data, event),\n );\n const commands =\n 'commands' in event.data ? event.data.commands : [event.data];\n commands.forEach((c) => {\n this.preloadImages(c, event);\n });\n }\n }\n return Promise.all(promises);\n }\n\n private preloadImages(data: canvasMutationCommand, event: eventWithTime) {\n if (\n data.property === 'drawImage' &&\n typeof data.args[0] === 'string' &&\n !this.imageMap.has(event)\n ) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const imgd = ctx?.createImageData(canvas.width, canvas.height);\n ctx?.putImageData(imgd!, 0, 0);\n }\n }\n private async deserializeAndPreloadCanvasEvents(\n data: canvasMutationData,\n event: eventWithTime,\n ) {\n if (!this.canvasEventMap.has(event)) {\n const status = {\n isUnchanged: true,\n };\n if ('commands' in data) {\n const commands = await Promise.all(\n data.commands.map(async (c) => {\n const args = await Promise.all(\n c.args.map(deserializeArg(this.imageMap, null, status)),\n );\n return { ...c, args };\n }),\n );\n if (status.isUnchanged === false)\n this.canvasEventMap.set(event, { ...data, commands });\n } else {\n const args = await Promise.all(\n data.args.map(deserializeArg(this.imageMap, null, status)),\n );\n if (status.isUnchanged === false)\n this.canvasEventMap.set(event, { ...data, args });\n }\n }\n }\n\n private applyIncremental(\n e: incrementalSnapshotEvent & { timestamp: number; delay?: number },\n isSync: boolean,\n ) {\n const { data: d } = e;\n switch (d.source) {\n case IncrementalSource.Mutation: {\n try {\n this.applyMutation(d, isSync);\n } catch (error) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions\n this.warn(`Exception in mutation ${error.message || error}`, d);\n }\n break;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove:\n if (isSync) {\n const lastPosition = d.positions[d.positions.length - 1];\n this.mousePos = {\n x: lastPosition.x,\n y: lastPosition.y,\n id: lastPosition.id,\n debugData: d,\n };\n } else {\n d.positions.forEach((p) => {\n const action = {\n doAction: () => {\n this.moveAndHover(p.x, p.y, p.id, isSync, d);\n },\n delay:\n p.timeOffset +\n e.timestamp -\n this.service.state.context.baselineTime,\n };\n this.timer.addAction(action);\n });\n // add a dummy action to keep timer alive\n this.timer.addAction({\n doAction() {\n //\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n delay: e.delay! - d.positions[0]?.timeOffset,\n });\n }\n break;\n case IncrementalSource.MouseInteraction: {\n /**\n * Same as the situation of missing input target.\n */\n if (d.id === -1) {\n break;\n }\n const event = new Event(toLowerCase(MouseInteractions[d.type]));\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n this.emitter.emit(ReplayerEvents.MouseInteraction, {\n type: d.type,\n target,\n });\n const { triggerFocus } = this.config;\n switch (d.type) {\n case MouseInteractions.Blur:\n if ('blur' in (target as HTMLElement)) {\n (target as HTMLElement).blur();\n }\n break;\n case MouseInteractions.Focus:\n if (triggerFocus && (target as HTMLElement).focus) {\n (target as HTMLElement).focus({\n preventScroll: true,\n });\n }\n break;\n case MouseInteractions.Click:\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n if (isSync) {\n if (d.type === MouseInteractions.TouchStart) {\n this.touchActive = true;\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.touchActive = false;\n }\n if (d.type === MouseInteractions.MouseDown) {\n this.lastMouseDownEvent = [target, event];\n } else if (d.type === MouseInteractions.MouseUp) {\n this.lastMouseDownEvent = null;\n }\n this.mousePos = {\n x: d.x || 0,\n y: d.y || 0,\n id: d.id,\n debugData: d,\n };\n } else {\n if (d.type === MouseInteractions.TouchStart) {\n // don't draw a trail as user has lifted finger and is placing at a new point\n this.tailPositions.length = 0;\n }\n this.moveAndHover(d.x || 0, d.y || 0, d.id, isSync, d);\n if (d.type === MouseInteractions.Click) {\n /*\n * don't want target.click() here as could trigger an iframe navigation\n * instead any effects of the click should already be covered by mutations\n */\n /*\n * removal and addition of .active class (along with void line to trigger repaint)\n * triggers the 'click' css animation in styles/style.css\n */\n this.mouse.classList.remove('active');\n void this.mouse.offsetWidth;\n this.mouse.classList.add('active');\n } else if (d.type === MouseInteractions.TouchStart) {\n void this.mouse.offsetWidth; // needed for the position update of moveAndHover to apply without the .touch-active transition\n this.mouse.classList.add('touch-active');\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.mouse.classList.remove('touch-active');\n } else {\n // for MouseDown & MouseUp also invoke default behavior\n target.dispatchEvent(event);\n }\n }\n break;\n case MouseInteractions.TouchCancel:\n if (isSync) {\n this.touchActive = false;\n } else {\n this.mouse.classList.remove('touch-active');\n }\n break;\n default:\n target.dispatchEvent(event);\n }\n break;\n }\n case IncrementalSource.Scroll: {\n /**\n * Same as the situation of missing input target.\n */\n if (d.id === -1) {\n break;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(d.id) as RRElement;\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.scrollData = d;\n break;\n }\n // Use isSync rather than this.usingVirtualDom because not every fast-forward process uses virtual dom optimization.\n this.applyScroll(d, isSync);\n break;\n }\n case IncrementalSource.ViewportResize:\n this.emitter.emit(ReplayerEvents.Resize, {\n width: d.width,\n height: d.height,\n });\n break;\n case IncrementalSource.Input: {\n /**\n * Input event on an unserialized node usually means the event\n * was synchrony triggered programmatically after the node was\n * created. This means there was not an user observable interaction\n * and we do not need to replay it.\n */\n if (d.id === -1) {\n break;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(d.id) as RRElement;\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.inputData = d;\n break;\n }\n this.applyInput(d);\n break;\n }\n case IncrementalSource.MediaInteraction: {\n const target = this.usingVirtualDom\n ? this.virtualDom.mirror.getNode(d.id)\n : this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n const mediaEl = target as HTMLMediaElement | RRMediaElement;\n const { events } = this.service.state.context;\n\n this.mediaManager.mediaMutation({\n target: mediaEl,\n timeOffset: e.timestamp - events[0].timestamp,\n mutation: d,\n });\n\n break;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n if (this.usingVirtualDom) {\n if (d.styleId) this.constructedStyleMutations.push(d);\n else if (d.id)\n (\n this.virtualDom.mirror.getNode(d.id) as RRStyleElement | null\n )?.rules.push(d);\n } else this.applyStyleSheetMutation(d);\n break;\n }\n case IncrementalSource.CanvasMutation: {\n if (!this.config.UNSAFE_replayCanvas) {\n return;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(\n d.id,\n ) as RRCanvasElement;\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.canvasMutations.push({\n event: e as canvasEventWithTime,\n mutation: d,\n });\n } else {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n void canvasMutation({\n event: e,\n mutation: d,\n target: target as HTMLCanvasElement,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this),\n });\n }\n break;\n }\n case IncrementalSource.Font: {\n try {\n const fontFace = new FontFace(\n d.family,\n d.buffer\n ? new Uint8Array(JSON.parse(d.fontSource) as Iterable<number>)\n : d.fontSource,\n d.descriptors,\n );\n this.iframe.contentDocument?.fonts.add(fontFace);\n } catch (error) {\n this.warn(error);\n }\n break;\n }\n case IncrementalSource.Selection: {\n if (isSync) {\n this.lastSelectionData = d;\n break;\n }\n this.applySelection(d);\n break;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n if (this.usingVirtualDom) this.adoptedStyleSheets.push(d);\n else this.applyAdoptedStyleSheet(d);\n break;\n }\n default:\n }\n }\n\n /**\n * Apply the mutation to the virtual dom or the real dom.\n * @param d - The mutation data.\n * @param isSync - Whether the mutation should be applied synchronously (while fast-forwarding).\n */\n private applyMutation(d: mutationData, isSync: boolean) {\n // Only apply virtual dom optimization if the fast-forward process has node mutation. Because the cost of creating a virtual dom tree and executing the diff algorithm is usually higher than directly applying other kind of events.\n if (this.config.useVirtualDom && !this.usingVirtualDom && isSync) {\n this.usingVirtualDom = true;\n buildFromDom(this.iframe.contentDocument!, this.mirror, this.virtualDom);\n // If these legacy missing nodes haven't been resolved, they should be converted to virtual nodes.\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n for (const key in this.legacy_missingNodeRetryMap) {\n try {\n const value = this.legacy_missingNodeRetryMap[key];\n const virtualNode = buildFromNode(\n value.node as Node,\n this.virtualDom,\n this.mirror,\n );\n if (virtualNode) value.node = virtualNode;\n } catch (error) {\n this.warn(error);\n }\n }\n }\n }\n const mirror = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\n type TNode = typeof mirror extends Mirror ? Node : RRNode;\n\n d.removes = d.removes.filter((mutation) => {\n // warn of absence from mirror before we start applying each removal\n // as earlier removals could remove a tree that includes a later removal\n if (!mirror.getNode(mutation.id)) {\n this.warnNodeNotFound(d, mutation.id);\n return false;\n }\n return true;\n });\n d.removes.forEach((mutation) => {\n const target = mirror.getNode(mutation.id);\n if (!target) {\n // no need to warn here, an ancestor may have already been removed\n return;\n }\n let parent: Node | null | ShadowRoot | RRNode = mirror.getNode(\n mutation.parentId,\n );\n if (!parent) {\n return this.warnNodeNotFound(d, mutation.parentId);\n }\n if (mutation.isShadow && hasShadowRoot(parent as Node)) {\n parent = (parent as Element | RRElement).shadowRoot;\n }\n // target may be removed with its parents before\n mirror.removeNodeFromMap(target as Node & RRNode);\n if (parent)\n try {\n parent.removeChild(target as Node & RRNode);\n /**\n * https://github.com/rrweb-io/rrweb/pull/887\n * Remove any virtual style rules for stylesheets if a child text node is removed.\n */\n if (\n this.usingVirtualDom &&\n target.nodeName === '#text' &&\n parent.nodeName === 'STYLE' &&\n (parent as RRStyleElement).rules?.length > 0\n )\n (parent as RRStyleElement).rules = [];\n } catch (error) {\n if (error instanceof DOMException) {\n this.warn(\n 'parent could not remove child in mutation',\n parent,\n target,\n d,\n );\n } else {\n throw error;\n }\n }\n });\n\n const legacy_missingNodeMap: missingNodeMap = {\n ...this.legacy_missingNodeRetryMap,\n };\n const queue: addedNodeMutation[] = [];\n\n const appendNode = (mutation: addedNodeMutation) => {\n if (!this.iframe.contentDocument) {\n return this.warn('Looks like your replayer has been destroyed.');\n }\n let parent: Node | null | ShadowRoot | RRNode = mirror.getNode(\n mutation.parentId,\n );\n if (!parent) {\n if (mutation.node.type === NodeType.Document) {\n // is newly added document, maybe the document node of an iframe\n return this.newDocumentQueue.push(mutation);\n }\n // Only re-queue if the parent id is actually in the current batch of adds\n // This prevents infinite loops when parentId will never be available\n const parentIdInCurrentBatch = d.adds.some(\n (add) => add.node.id === mutation.parentId,\n );\n return parentIdInCurrentBatch ? queue.push(mutation) : undefined;\n }\n\n if (mutation.node.isShadow) {\n // If the parent is attached a shadow dom after it's created, it won't have a shadow root.\n if (!hasShadowRoot(parent)) {\n (parent as Element | RRElement).attachShadow({ mode: 'open' });\n parent = (parent as Element | RRElement).shadowRoot! as Node | RRNode;\n } else parent = parent.shadowRoot as Node | RRNode;\n }\n\n let previous: Node | RRNode | null = null;\n let next: Node | RRNode | null = null;\n if (mutation.previousId) {\n previous = mirror.getNode(mutation.previousId);\n }\n if (mutation.nextId) {\n next = mirror.getNode(mutation.nextId);\n }\n\n if (mutation.node.rootId && !mirror.getNode(mutation.node.rootId)) {\n return;\n }\n\n const targetDoc = mutation.node.rootId\n ? mirror.getNode(mutation.node.rootId)\n : this.usingVirtualDom\n ? this.virtualDom\n : this.iframe.contentDocument;\n if (isSerializedIframe<typeof parent>(parent, mirror)) {\n this.attachDocumentToIframe(\n mutation,\n parent as HTMLIFrameElement | RRIFrameElement,\n );\n return;\n }\n const afterAppend = (node: Node | RRNode, id: number) => {\n // Skip the plugin onBuild callback for virtual dom\n if (this.usingVirtualDom) return;\n applyDialogToTopLevel(node);\n for (const plugin of this.config.plugins || []) {\n if (plugin.onBuild) plugin.onBuild(node, { id, replayer: this });\n }\n };\n\n const target = buildNodeWithSN(mutation.node, {\n doc: targetDoc as Document, // can be Document or RRDocument\n mirror: mirror as Mirror, // can be this.mirror or virtualDom.mirror\n skipChild: true,\n hackCss: true,\n cache: this.cache,\n /**\n * caveat: `afterAppend` only gets called on child nodes of target\n * we have to call it again below when this target was added to the DOM\n */\n afterAppend,\n }) as Node | RRNode;\n\n // legacy data, we should not have -1 siblings any more\n if (mutation.previousId === -1 || mutation.nextId === -1) {\n legacy_missingNodeMap[mutation.node.id] = {\n node: target,\n mutation,\n };\n return;\n }\n\n // Typescripts type system is not smart enough\n // to understand what is going on with the types below\n type TNode = typeof mirror extends Mirror ? Node : RRNode;\n type TMirror = typeof mirror extends Mirror ? Mirror : RRDOMMirror;\n\n const parentSn = (mirror as TMirror).getMeta(parent as TNode);\n if (\n parentSn &&\n parentSn.type === NodeType.Element &&\n mutation.node.type === NodeType.Text\n ) {\n const prospectiveSiblings = Array.isArray(parent.childNodes)\n ? parent.childNodes\n : Array.from(parent.childNodes);\n if (parentSn.tagName === 'textarea') {\n // This should be redundant now as we are either recording the value or the childNode, and not both\n // keeping around for backwards compatibility with old bad double data, see\n\n // https://github.com/rrweb-io/rrweb/issues/745\n // parent is textarea, will only keep one child node as the value\n for (const c of prospectiveSiblings) {\n if (c.nodeType === parent.TEXT_NODE) {\n parent.removeChild(c as Node & RRNode);\n }\n }\n } else if (\n parentSn.tagName === 'style' &&\n prospectiveSiblings.length === 1\n ) {\n // https://github.com/rrweb-io/rrweb/pull/1417\n /**\n * If both _cssText and textContent are present for a style element due to some existing bugs, the element was ending up with two child text nodes\n * We need to remove the textNode created by _cssText as it doesn't have an id in the mirror, and thus cannot be further mutated.\n */\n for (const cssText of prospectiveSiblings as (Node & RRNode)[]) {\n if (\n cssText.nodeType === parent.TEXT_NODE &&\n !mirror.hasNode(cssText)\n ) {\n target.textContent = cssText.textContent;\n parent.removeChild(cssText);\n }\n }\n }\n } else if (parentSn?.type === NodeType.Document) {\n /**\n * Sometimes the document object is changed or reopened and the MutationObserver is disconnected, so the removal of child elements can't be detected and recorded.\n * After the change of document, we may get another mutation which adds a new doctype or a HTML element, while the old one still exists in the dom.\n * So, we need to remove the old one first to avoid collision.\n */\n const parentDoc = parent as Document | RRDocument;\n /**\n * To detect the exist of the old doctype before adding a new doctype.\n * We need to remove the old doctype before adding the new one. Otherwise, code will throw \"mutation Failed to execute 'insertBefore' on 'Node': Only one doctype on document allowed\".\n */\n if (\n mutation.node.type === NodeType.DocumentType &&\n parentDoc.childNodes[0]?.nodeType === Node.DOCUMENT_TYPE_NODE\n )\n parentDoc.removeChild(parentDoc.childNodes[0] as Node & RRNode);\n /**\n * To detect the exist of the old HTML element before adding a new HTML element.\n * The reason is similar to the above. One document only allows exactly one DocType and one HTML Element.\n */\n if (target.nodeName === 'HTML' && parentDoc.documentElement)\n parentDoc.removeChild(\n parentDoc.documentElement as HTMLElement & RRNode,\n );\n }\n\n if (previous && previous.nextSibling && previous.nextSibling.parentNode) {\n (parent as TNode).insertBefore(\n target as TNode,\n previous.nextSibling as TNode,\n );\n } else if (next && next.parentNode) {\n // making sure the parent contains the reference nodes\n // before we insert target before next.\n (parent as TNode).contains(next as TNode)\n ? (parent as TNode).insertBefore(target as TNode, next as TNode)\n : (parent as TNode).insertBefore(target as TNode, null);\n } else {\n (parent as TNode).appendChild(target as TNode);\n }\n /**\n * target was added, execute plugin hooks\n */\n afterAppend(target, mutation.node.id);\n\n /**\n * https://github.com/rrweb-io/rrweb/pull/887\n * Remove any virtual style rules for stylesheets if a new text node is appended.\n */\n if (\n this.usingVirtualDom &&\n target.nodeName === '#text' &&\n parent.nodeName === 'STYLE' &&\n (parent as RRStyleElement).rules?.length > 0\n )\n (parent as RRStyleElement).rules = [];\n\n if (isSerializedIframe(target, this.mirror)) {\n const targetId = this.mirror.getId(target as HTMLIFrameElement);\n const mutationInQueue = this.newDocumentQueue.find(\n (m) => m.parentId === targetId,\n );\n if (mutationInQueue) {\n this.attachDocumentToIframe(\n mutationInQueue,\n target as HTMLIFrameElement,\n );\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue,\n );\n }\n }\n\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(\n legacy_missingNodeMap,\n parent,\n target,\n mutation,\n );\n }\n };\n\n d.adds.forEach((mutation) => {\n appendNode(mutation);\n });\n\n const startTime = performance.now();\n\n while (queue.length) {\n // transform queue to resolve tree\n const resolveTrees = queueToResolveTrees(queue);\n\n queue.length = 0;\n\n if (performance.now() - startTime > 150) {\n this.warn(\n 'Timeout in the loop, please check the resolve tree data:',\n resolveTrees,\n );\n break;\n }\n\n for (const tree of resolveTrees) {\n const parent = mirror.getNode(tree.value.parentId);\n if (!parent) {\n this.debug(\n 'Drop resolve tree since there is no parent for the root node.',\n tree,\n );\n } else {\n iterateResolveTree(tree, (mutation) => {\n appendNode(mutation);\n });\n }\n }\n }\n\n if (Object.keys(legacy_missingNodeMap).length) {\n Object.assign(this.legacy_missingNodeRetryMap, legacy_missingNodeMap);\n }\n\n uniqueTextMutations(d.texts).forEach((mutation) => {\n const target = mirror.getNode(mutation.id);\n if (!target) {\n if (d.removes.find((r) => r.id === mutation.id)) {\n // no need to warn, element was already removed\n return;\n }\n return this.warnNodeNotFound(d, mutation.id);\n }\n target.textContent = mutation.value;\n\n /**\n * https://github.com/rrweb-io/rrweb/pull/865\n * Remove any virtual style rules for stylesheets whose contents are replaced.\n */\n if (this.usingVirtualDom) {\n const parent = target.parentNode as RRStyleElement;\n if (parent?.rules?.length > 0) parent.rules = [];\n }\n });\n d.attributes.forEach((mutation) => {\n const target = mirror.getNode(mutation.id);\n if (!target) {\n if (d.removes.find((r) => r.id === mutation.id)) {\n // no need to warn, element was already removed\n return;\n }\n return this.warnNodeNotFound(d, mutation.id);\n }\n for (const attributeName in mutation.attributes) {\n if (typeof attributeName === 'string') {\n const value = mutation.attributes[attributeName];\n if (value === null) {\n (target as Element | RRElement).removeAttribute(attributeName);\n if (attributeName === 'open')\n removeDialogFromTopLevel(target, mutation);\n } else if (typeof value === 'string') {\n try {\n // When building snapshot, some link styles haven't loaded. Then they are loaded, they will be inlined as incremental mutation change of attribute. We need to replace the old elements whose styles aren't inlined.\n if (\n attributeName === '_cssText' &&\n (target.nodeName === 'LINK' || target.nodeName === 'STYLE')\n ) {\n try {\n const newSn = mirror.getMeta(\n target as Node & RRNode,\n ) as serializedElementNodeWithId;\n Object.assign(\n newSn.attributes,\n mutation.attributes as attributes,\n );\n const newNode = buildNodeWithSN(newSn, {\n doc: target.ownerDocument as Document, // can be Document or RRDocument\n mirror: mirror as Mirror,\n skipChild: true,\n hackCss: true,\n cache: this.cache,\n });\n const siblingNode = target.nextSibling;\n const parentNode = target.parentNode;\n if (newNode && parentNode) {\n parentNode.removeChild(target as Node & RRNode);\n parentNode.insertBefore(\n newNode as Node & RRNode,\n siblingNode as (Node & RRNode) | null,\n );\n mirror.replace(mutation.id, newNode as Node & RRNode);\n break;\n }\n } catch (e) {\n // for safe\n }\n }\n if (attributeName === 'value' && target.nodeName === 'TEXTAREA') {\n // this may or may not have an effect on the value property (which is what is displayed)\n // depending on whether the textarea has been modified by the user yet\n // TODO: replaceChildNodes is not available in RRDom\n const textarea = target as TNode;\n textarea.childNodes.forEach((c) =>\n textarea.removeChild(c as TNode),\n );\n const tn = target.ownerDocument?.createTextNode(value);\n if (tn) {\n textarea.appendChild(tn as TNode);\n }\n } else {\n (target as Element | RRElement).setAttribute(\n attributeName,\n value,\n );\n }\n\n if (\n attributeName === 'rr_open_mode' &&\n target.nodeName === 'DIALOG'\n ) {\n applyDialogToTopLevel(target, mutation);\n }\n } catch (error) {\n this.warn(\n 'An error occurred may due to the checkout feature.',\n error,\n );\n }\n } else if (attributeName === 'style') {\n const styleValues = value;\n const targetEl = target as HTMLElement | RRElement;\n for (const s in styleValues) {\n if (styleValues[s] === false) {\n targetEl.style.removeProperty(s);\n } else if (styleValues[s] instanceof Array) {\n const svp = styleValues[s] as styleValueWithPriority;\n targetEl.style.setProperty(s, svp[0], svp[1]);\n } else {\n const svs = styleValues[s] as string;\n targetEl.style.setProperty(s, svs);\n }\n }\n }\n }\n }\n });\n }\n\n /**\n * Apply the scroll data on real elements.\n * If the replayer is in sync mode, smooth scroll behavior should be disabled.\n * @param d - the scroll data\n * @param isSync - whether the replayer is in sync mode(fast-forward)\n */\n private applyScroll(d: scrollData, isSync: boolean) {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n const sn = this.mirror.getMeta(target);\n if (target === this.iframe.contentDocument) {\n this.iframe.contentWindow?.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? 'auto' : 'smooth',\n });\n } else if (sn?.type === NodeType.Document) {\n // nest iframe content document\n (target as Document).defaultView?.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? 'auto' : 'smooth',\n });\n } else {\n try {\n (target as Element).scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? 'auto' : 'smooth',\n });\n } catch (error) {\n /**\n * Seldomly we may found scroll target was removed before\n * its last scroll event.\n */\n }\n }\n }\n\n private applyInput(d: inputData) {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n try {\n (target as HTMLInputElement).checked = d.isChecked;\n (target as HTMLInputElement).value = d.text;\n } catch (error) {\n // for safe\n }\n }\n\n private applySelection(d: selectionData) {\n try {\n const selectionSet = new Set<Selection>();\n const ranges = d.ranges.map(({ start, startOffset, end, endOffset }) => {\n const startContainer = this.mirror.getNode(start);\n const endContainer = this.mirror.getNode(end);\n\n if (!startContainer || !endContainer) return;\n\n const result = new Range();\n\n result.setStart(startContainer, startOffset);\n result.setEnd(endContainer, endOffset);\n const doc = startContainer.ownerDocument;\n const selection = doc?.getSelection();\n selection && selectionSet.add(selection);\n\n return {\n range: result,\n selection,\n };\n });\n\n selectionSet.forEach((s) => s.removeAllRanges());\n\n ranges.forEach((r) => r && r.selection?.addRange(r.range));\n } catch (error) {\n // for safe\n }\n }\n\n private applyStyleSheetMutation(\n data: styleDeclarationData | styleSheetRuleData,\n ) {\n let styleSheet: CSSStyleSheet | null = null;\n if (data.styleId) styleSheet = this.styleMirror.getStyle(data.styleId);\n else if (data.id)\n styleSheet =\n (this.mirror.getNode(data.id) as HTMLStyleElement)?.sheet || null;\n if (!styleSheet) return;\n if (data.source === IncrementalSource.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n }\n\n private applyStyleSheetRule(\n data: styleSheetRuleData,\n styleSheet: CSSStyleSheet,\n ) {\n data.adds?.forEach(({ rule, index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.insertRule(rule, index);\n } else {\n const index =\n nestedIndex === undefined\n ? undefined\n : Math.min(nestedIndex, styleSheet.cssRules.length);\n styleSheet?.insertRule(rule, index);\n }\n } catch (e) {\n /**\n * sometimes we may capture rules with browser prefix\n * insert rule with prefixs in other browsers may cause Error\n */\n /**\n * accessing styleSheet rules may cause SecurityError\n * for specific access control settings\n */\n }\n });\n\n data.removes?.forEach(({ index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.deleteRule(index || 0);\n } else {\n styleSheet?.deleteRule(nestedIndex);\n }\n } catch (e) {\n /**\n * same as insertRule\n */\n }\n });\n\n if (data.replace)\n try {\n void styleSheet.replace?.(data.replace);\n } catch (e) {\n // for safety\n }\n\n if (data.replaceSync)\n try {\n styleSheet.replaceSync?.(data.replaceSync);\n } catch (e) {\n // for safety\n }\n }\n\n private applyStyleDeclaration(\n data: styleDeclarationData,\n styleSheet: CSSStyleSheet,\n ) {\n if (data.set) {\n const rule = getNestedRule(\n styleSheet.rules,\n data.index,\n ) as unknown as CSSStyleRule;\n rule?.style?.setProperty(\n data.set.property,\n data.set.value,\n data.set.priority,\n );\n }\n\n if (data.remove) {\n const rule = getNestedRule(\n styleSheet.rules,\n data.index,\n ) as unknown as CSSStyleRule;\n rule?.style?.removeProperty(data.remove.property);\n }\n }\n\n private applyAdoptedStyleSheet(data: adoptedStyleSheetData) {\n const targetHost = this.mirror.getNode(data.id);\n if (!targetHost) return;\n // Create StyleSheet objects which will be adopted after.\n data.styles?.forEach((style) => {\n let newStyleSheet: CSSStyleSheet | null = null;\n /**\n * Constructed StyleSheet can't share across multiple documents.\n * The replayer has to get the correct host window to recreate a StyleSheetObject.\n */\n let hostWindow: IWindow | null = null;\n if (hasShadowRoot(targetHost))\n hostWindow = targetHost.ownerDocument?.defaultView || null;\n else if (targetHost.nodeName === '#document')\n hostWindow = (targetHost as Document).defaultView;\n\n if (!hostWindow) return;\n try {\n newStyleSheet = new hostWindow.CSSStyleSheet();\n this.styleMirror.add(newStyleSheet, style.styleId);\n // To reuse the code of applying stylesheet rules\n this.applyStyleSheetRule(\n {\n source: IncrementalSource.StyleSheetRule,\n adds: style.rules,\n },\n newStyleSheet,\n );\n } catch (e) {\n // In case some browsers don't support constructing StyleSheet.\n }\n });\n\n const MAX_RETRY_TIME = 10;\n let count = 0;\n const adoptStyleSheets = (targetHost: Node, styleIds: number[]) => {\n const stylesToAdopt = styleIds\n .map((styleId) => this.styleMirror.getStyle(styleId))\n .filter((style) => style !== null) as CSSStyleSheet[];\n if (hasShadowRoot(targetHost))\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n (targetHost as HTMLElement).shadowRoot!.adoptedStyleSheets =\n stylesToAdopt;\n else if (targetHost.nodeName === '#document')\n (targetHost as Document).adoptedStyleSheets = stylesToAdopt;\n\n /**\n * In the live mode where events are transferred over network without strict order guarantee, some newer events are applied before some old events and adopted stylesheets may haven't been created.\n * This retry mechanism can help resolve this situation.\n */\n if (stylesToAdopt.length !== styleIds.length && count < MAX_RETRY_TIME) {\n setTimeout(\n () => adoptStyleSheets(targetHost, styleIds),\n 0 + 100 * count,\n );\n count++;\n }\n };\n adoptStyleSheets(targetHost, data.styleIds);\n }\n\n private legacy_resolveMissingNode(\n map: missingNodeMap,\n parent: Node | RRNode,\n target: Node | RRNode,\n targetMutation: addedNodeMutation,\n ) {\n const { previousId, nextId } = targetMutation;\n const previousInMap = previousId && map[previousId];\n const nextInMap = nextId && map[nextId];\n if (previousInMap) {\n const { node, mutation } = previousInMap;\n parent.insertBefore(node as Node & RRNode, target as Node & RRNode);\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node, mutation);\n }\n }\n if (nextInMap) {\n const { node, mutation } = nextInMap;\n parent.insertBefore(\n node as Node & RRNode,\n target.nextSibling as Node & RRNode,\n );\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node, mutation);\n }\n }\n }\n\n private moveAndHover(\n x: number,\n y: number,\n id: number,\n isSync: boolean,\n debugData: incrementalData,\n ) {\n const target = this.mirror.getNode(id);\n if (!target) {\n return this.debugNodeNotFound(debugData, id);\n }\n\n const base = getBaseDimension(target, this.iframe);\n const _x = x * base.absoluteScale + base.x;\n const _y = y * base.absoluteScale + base.y;\n\n this.mouse.style.left = `${_x}px`;\n this.mouse.style.top = `${_y}px`;\n if (!isSync) {\n this.drawMouseTail({ x: _x, y: _y });\n }\n this.hoverElements(target as Element);\n }\n\n private drawMouseTail(position: { x: number; y: number }) {\n if (!this.mouseTail) {\n return;\n }\n\n const { lineCap, lineWidth, strokeStyle, duration } =\n this.config.mouseTail === true\n ? defaultMouseTailConfig\n : Object.assign({}, defaultMouseTailConfig, this.config.mouseTail);\n\n const draw = () => {\n if (!this.mouseTail) {\n return;\n }\n const ctx = this.mouseTail.getContext('2d');\n if (!ctx || !this.tailPositions.length) {\n return;\n }\n ctx.clearRect(0, 0, this.mouseTail.width, this.mouseTail.height);\n ctx.beginPath();\n ctx.lineWidth = lineWidth;\n ctx.lineCap = lineCap;\n ctx.strokeStyle = strokeStyle;\n ctx.moveTo(this.tailPositions[0].x, this.tailPositions[0].y);\n this.tailPositions.forEach((p) => ctx.lineTo(p.x, p.y));\n ctx.stroke();\n };\n\n this.tailPositions.push(position);\n draw();\n setTimeout(() => {\n this.tailPositions = this.tailPositions.filter((p) => p !== position);\n draw();\n }, duration / this.speedService.state.context.timer.speed);\n }\n\n private hoverElements(el: Element) {\n (this.lastHoveredRootNode || this.iframe.contentDocument)\n ?.querySelectorAll('.\\\\:hover')\n .forEach((hoveredEl) => {\n hoveredEl.classList.remove(':hover');\n });\n this.lastHoveredRootNode = el.getRootNode() as Document | ShadowRoot;\n let currentEl: Element | null = el;\n while (currentEl) {\n if (currentEl.classList) {\n currentEl.classList.add(':hover');\n }\n currentEl = currentEl.parentElement;\n }\n }\n\n private isUserInteraction(event: eventWithTime): boolean {\n if (event.type !== EventType.IncrementalSnapshot) {\n return false;\n }\n return (\n event.data.source > IncrementalSource.Mutation &&\n event.data.source <= IncrementalSource.Input\n );\n }\n\n private backToNormal() {\n this.nextUserInteractionEvent = null;\n if (this.speedService.state.matches('normal')) {\n return;\n }\n this.speedService.send({ type: 'BACK_TO_NORMAL' });\n this.emitter.emit(ReplayerEvents.SkipEnd, {\n speed: this.speedService.state.context.normalSpeed,\n });\n }\n\n private warnNodeNotFound(d: incrementalData, id: number) {\n this.warn(`Node with id '${id}' not found. `, d);\n }\n\n private warnCanvasMutationFailed(\n d: canvasMutationData | canvasMutationCommand,\n error: unknown,\n ) {\n this.warn(`Has error on canvas update`, error, 'canvas mutation:', d);\n }\n\n private debugNodeNotFound(d: incrementalData, id: number) {\n /**\n * There maybe some valid scenes of node not being found.\n * Because DOM events are macrotask and MutationObserver callback\n * is microtask, so events fired on a removed DOM may emit\n * snapshots in the reverse order.\n */\n this.debug(`Node with id '${id}' not found. `, d);\n }\n\n private warn(...args: Parameters<typeof console.warn>) {\n if (!this.config.showWarning) {\n return;\n }\n this.config.logger.warn(REPLAY_CONSOLE_PREFIX, ...args);\n }\n\n private debug(...args: Parameters<typeof console.log>) {\n if (!this.config.showDebug) {\n return;\n }\n this.config.logger.log(REPLAY_CONSOLE_PREFIX, ...args);\n }\n}\n\nexport { type PlayerMachineState, type SpeedMachineState, type playerConfig };\n", "import record from './record';\nimport {\n Replayer,\n type playerConfig,\n type PlayerMachineState,\n type SpeedMachineState,\n} from './replay';\nimport canvasMutation from './replay/canvas';\nimport { _mirror } from './utils';\nimport * as utils from './utils';\n\nexport {\n EventType,\n IncrementalSource,\n MouseInteractions,\n ReplayerEvents,\n type eventWithTime,\n} from '@posthog/rrweb-types';\n\nexport {\n wasMaxDepthReached,\n resetMaxDepthState,\n} from '@posthog/rrweb-snapshot';\n\n// exports style.css from replay\nimport './replay/styles/style.css';\n\nexport type { recordOptions, ReplayPlugin } from './types';\n\nconst { addCustomEvent } = record;\nconst { freezePage } = record;\nconst { takeFullSnapshot } = record;\n\nexport {\n record,\n addCustomEvent,\n freezePage,\n takeFullSnapshot,\n Replayer,\n type playerConfig,\n type PlayerMachineState,\n type SpeedMachineState,\n canvasMutation,\n _mirror as mirror,\n utils,\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
5
|
+
"mappings": ";w1BAAA,IAAIA,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAKC,EAAKC,IAAUD,KAAOD,EAAMF,GAAUE,EAAKC,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAC,CAAK,CAAE,EAAIF,EAAIC,CAAG,EAAIC,EACtJC,GAAgB,CAACH,EAAKC,EAAKC,IAAUH,GAAgBC,EAAK,OAAOC,GAAQ,SAAWA,EAAM,GAAKA,EAAKC,CAAK,EACzGE,GAA+BC,IACjCA,EAAUA,EAAU,SAAc,CAAC,EAAI,WACvCA,EAAUA,EAAU,aAAkB,CAAC,EAAI,eAC3CA,EAAUA,EAAU,QAAa,CAAC,EAAI,UACtCA,EAAUA,EAAU,KAAU,CAAC,EAAI,OACnCA,EAAUA,EAAU,MAAW,CAAC,EAAI,QACpCA,EAAUA,EAAU,QAAa,CAAC,EAAI,UAC/BA,IACND,GAAc,CAAA,CAAE,EACnB,MAAME,GAAoB,CACxB,KAAM,CAAC,aAAc,aAAc,gBAAiB,aAAa,EACjE,WAAY,CAAC,OAAQ,aAAa,EAClC,QAAS,CAAC,aAAc,gBAAiB,kBAAkB,EAC3D,iBAAkB,CAAA,CACpB,EACMC,GAAkB,CACtB,KAAM,CAAC,WAAY,aAAa,EAChC,WAAY,CAAC,cAAc,EAC3B,QAAS,CAAA,EACT,iBAAkB,CAAC,aAAa,CAClC,EACMC,GAAyB,CAAA,EAC/B,SAASC,GAAgCR,EAAK,CAC5C,IAAIS,EAAIC,EACR,MAAMC,GAAiCD,GAAMD,EAAK,YAAc,KAAO,OAAS,WAAW,OAAS,KAAO,OAASA,EAAG,aAAe,KAAO,OAASC,EAAG,KAAKD,EAAIT,CAAG,EACrK,GAAIW,GAAiC,WAAWA,CAA6B,EAC3E,OAAO,WAAWA,CAA6B,CAInD,CACA,SAASC,GAAsBZ,EAAK,CAClC,GAAIO,GAAuBP,CAAG,EAC5B,OAAOO,GAAuBP,CAAG,EACnC,MAAMa,EAAYL,GAAgCR,CAAG,GAAK,WAAWA,CAAG,EAClEc,EAAmBD,EAAU,UAC7BE,EAAgBf,KAAOK,GAAoBA,GAAkBL,CAAG,EAAI,OACpEgB,EAAuB,GAC3BD,GACAA,EAAc,MACXE,GAAa,CACZ,IAAIR,EAAIC,EACR,MAAO,IACJA,GAAMD,EAAK,OAAO,yBAAyBK,EAAkBG,CAAQ,IAAM,KAAO,OAASR,EAAG,MAAQ,MAAgBC,EAAG,SAAQ,EAAG,SAAS,eAAe,EAEjK,CACN,GAEQQ,EAAclB,KAAOM,GAAkBA,GAAgBN,CAAG,EAAI,OAC9DmB,EAAqB,GACzBD,GAAeA,EAAY,MAExBE,GAAW,CACV,IAAIX,EACJ,OAAO,OAAOK,EAAiBM,CAAM,GAAM,cAAgBX,EAAKK,EAAiBM,CAAM,IAAM,KAAO,OAASX,EAAG,SAAQ,EAAG,SAAS,eAAe,EACrJ,CACN,GAEE,GAAIO,GAAwBG,EAC1BZ,OAAAA,GAAuBP,CAAG,EAAIa,EAAU,UACjCA,EAAU,UAEnB,GAAI,CACF,MAAMQ,EAAW,SAAS,cAAc,QAAQ,EAChD,SAAS,KAAK,YAAYA,CAAQ,EAClC,MAAMC,EAAMD,EAAS,cACrB,GAAI,CAACC,EAAK,OAAOT,EAAU,UAC3B,MAAMU,EAAkBD,EAAItB,CAAG,EAAE,UAEjC,OADA,SAAS,KAAK,YAAYqB,CAAQ,EAC7BE,EACEhB,GAAuBP,CAAG,EAAIuB,EADRT,CAE/B,OAAQU,EAAA,CACN,OAAOV,CACT,CACF,CACA,MAAMW,GAAyB,CAAA,EAC/B,SAASC,GAAqB1B,EAAK2B,EAAUV,EAAU,CACrD,IAAIR,EACJ,MAAMmB,EAAW,GAAG5B,CAAG,IAAI,OAAOiB,CAAQ,CAAC,GAC3C,GAAIQ,GAAuBG,CAAQ,EACjC,OAAOH,GAAuBG,CAAQ,EAAE,KACtCD,CACN,EACE,MAAME,EAAqBjB,GAAsBZ,CAAG,EAC9C8B,GAAqBrB,EAAK,OAAO,yBACrCoB,EACAZ,CACJ,IAAQ,KAAO,OAASR,EAAG,IACzB,OAAKqB,GACLL,GAAuBG,CAAQ,EAAIE,EAC5BA,EAAkB,KAAKH,CAAQ,GAFPA,EAASV,CAAQ,CAGlD,CACA,MAAMc,GAAuB,CAAA,EAC7B,SAASC,GAAmBhC,EAAK2B,EAAUP,EAAQ,CACjD,MAAMQ,EAAW,GAAG5B,CAAG,IAAI,OAAOoB,CAAM,CAAC,GACzC,GAAIW,GAAqBH,CAAQ,EAC/B,OAAOG,GAAqBH,CAAQ,EAAE,KACpCD,CACN,EAEE,MAAMM,EADqBrB,GAAsBZ,CAAG,EACToB,CAAM,EACjD,OAAI,OAAOa,GAAoB,WAAmBN,EAASP,CAAM,GACjEW,GAAqBH,CAAQ,EAAIK,EAC1BA,EAAgB,KAAKN,CAAQ,EACtC,CACA,SAASO,GAAWC,EAAG,CACrB,OAAOT,GAAqB,OAAQS,EAAG,YAAY,CACrD,CACA,SAASC,GAAWD,EAAG,CACrB,OAAOT,GAAqB,OAAQS,EAAG,YAAY,CACrD,CACA,SAASE,GAAcF,EAAG,CACxB,OAAOT,GAAqB,OAAQS,EAAG,eAAe,CACxD,CACA,SAASG,GAAYH,EAAG,CACtB,OAAOT,GAAqB,OAAQS,EAAG,aAAa,CACtD,CACA,SAASI,GAASJ,EAAGK,EAAO,CAC1B,OAAOR,GAAmB,OAAQG,EAAG,UAAU,EAAEK,CAAK,CACxD,CACA,SAASC,GAAYN,EAAG,CACtB,OAAOH,GAAmB,OAAQG,EAAG,aAAa,EAAC,CACrD,CACA,SAASO,GAAKP,EAAG,CACf,MAAI,CAACA,GAAK,EAAE,SAAUA,GAAW,KAC1BT,GAAqB,aAAcS,EAAG,MAAM,CACrD,CACA,SAASQ,GAAYR,EAAG,CACtB,OAAOA,EAAE,WACX,CACA,SAASS,GAAWT,EAAG,CACrB,MAAI,CAACA,GAAK,EAAE,eAAgBA,GAAW,KAChCT,GAAqB,UAAWS,EAAG,YAAY,CACxD,CACA,SAASU,GAAcV,EAAGW,EAAW,CACnC,OAAOpB,GAAqB,UAAWS,EAAG,eAAe,EAAEW,CAAS,CACtE,CACA,SAASC,GAAiBZ,EAAGW,EAAW,CACtC,OAAOpB,GAAqB,UAAWS,EAAG,kBAAkB,EAAEW,CAAS,CACzE,CACA,SAASE,IAAuB,CAC9B,OAAOpC,GAAsB,kBAAkB,EAAE,WACnD,CACA,SAASqC,GAAMC,EAAQC,EAAMC,EAAa,CACxC,GAAI,CACF,GAAI,EAAED,KAAQD,GACZ,MAAO,IAAM,CACb,EAEF,MAAMG,EAAWH,EAAOC,CAAI,EACtBG,EAAUF,EAAYC,CAAQ,EACpC,OAAI,OAAOC,GAAY,aACrBA,EAAQ,UAAYA,EAAQ,WAAa,CAAA,EACzC,OAAO,iBAAiBA,EAAS,CAC/B,mBAAoB,CAClB,WAAY,GACZ,MAAOD,CACjB,CACA,CAAO,GAEHH,EAAOC,CAAI,EAAIG,EACR,IAAM,CACXJ,EAAOC,CAAI,EAAIE,CACjB,CACF,OAAQ7B,EAAA,CACN,MAAO,IAAM,CACb,CACF,CACF,CACA,MAAM+B,GAAQ,CACd,WAAErB,GACF,WAAEE,GACF,cAAEC,GACF,YAAEC,GACF,SAAEC,GACF,YAAEE,GACF,KAAEC,GACF,YAAEC,GACF,WAAEC,GACF,cAAEC,GACF,iBAAEE,GACA,iBAAkBC,GACpB,MAAEC,EACF,EACA,SAASO,GAAUrB,EAAG,CACpB,OAAOA,EAAE,WAAaA,EAAE,YAC1B,CACA,SAASsB,GAAatB,EAAG,CACvB,MAAMuB,EAGJvB,GAAK,SAAUA,GAAK,SAAUA,GAAKoB,GAAM,KAAKpB,CAAC,GAAK,KAEtD,MAAO,GACLuB,GAAU,eAAgBA,GAAUH,GAAM,WAAWG,CAAM,IAAMvB,EAErE,CACA,SAASwB,GAAkBC,EAAa,CACtC,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAW,IAAM,qBACzD,CACA,SAASC,GAAmCC,EAAS,CACnD,OAAIA,EAAQ,SAAS,yBAAyB,GAAK,CAACA,EAAQ,SAAS,iCAAiC,IACpGA,EAAUA,EAAQ,QAChB,8BACA,wDACN,GAESA,CACT,CACA,SAASC,GAAsBC,EAAM,CACnC,KAAM,CAAE,QAAAF,CAAO,EAAKE,EACpB,GAAIF,EAAQ,MAAM,GAAG,EAAE,OAAS,EAAG,OAAOA,EAC1C,MAAMG,EAAY,CAAC,UAAW,OAAO,KAAK,UAAUD,EAAK,IAAI,CAAC,GAAG,EACjE,OAAIA,EAAK,YAAc,GACrBC,EAAU,KAAK,OAAO,EACbD,EAAK,WACdC,EAAU,KAAK,SAASD,EAAK,SAAS,GAAG,EAEvCA,EAAK,cACPC,EAAU,KAAK,YAAYD,EAAK,YAAY,GAAG,EAE7CA,EAAK,MAAM,QACbC,EAAU,KAAKD,EAAK,MAAM,SAAS,EAE9BC,EAAU,KAAK,GAAG,EAAI,GAC/B,CACA,SAASC,GAAoBC,EAAG,CAC9B,GAAI,CACF,MAAMC,EAAQD,EAAE,OAASA,EAAE,SAC3B,GAAI,CAACC,EACH,OAAO,KAET,IAAIC,EAAYF,EAAE,KACd,CAACE,GAAaF,EAAE,YAClBE,EAAYF,EAAE,UAAU,SAE1B,MAAMG,EAAmB,MAAM,KAC7BF,EACCJ,GAASO,GAAcP,EAAMK,CAAS,CAC7C,EAAM,KAAK,EAAE,EACT,OAAOR,GAAmCS,CAAgB,CAC5D,OAASE,EAAO,CACd,OAAO,IACT,CACF,CACA,SAASD,GAAcP,EAAMK,EAAW,CACtC,IAAI5D,EACJ,GAAIgE,GAAgBT,CAAI,EAAG,CACzB,IAAIU,EACJ,GAAI,CACFA,EAEAR,GAAoBF,EAAK,UAAU,GACnCD,GAAsBC,CAAI,CAC5B,OAASQ,EAAO,CACdE,EAAoBV,EAAK,OAC3B,CACA,GAAI,CACF,GAAIU,KAAuBjE,EAAKuD,EAAK,aAAe,MAAgBvD,EAAG,MACrE,OAAOkE,GAAeD,EAAmBV,EAAK,WAAW,IAAI,CAEjE,OAAQxC,EAAA,CACR,CACA,OAAOkD,CACT,KAAO,CACL,IAAIE,EAAkBZ,EAAK,QAI3B,OAHIa,GAAeb,CAAI,GAAKA,EAAK,aAAa,SAAS,GAAG,IACxDY,EAAkBE,GAAgBF,CAAe,GAE/CP,EACKM,GAAeC,EAAiBP,CAAS,EAE3CO,CACT,CACF,CACA,SAASE,GAAgBC,EAAgB,CACvC,MAAMC,EAAQ,uCACd,OAAOD,EAAe,QAAQC,EAAO,QAAQ,CAC/C,CACA,SAASP,GAAgBT,EAAM,CAC7B,MAAO,eAAgBA,CACzB,CACA,SAASa,GAAeb,EAAM,CAC5B,MAAO,iBAAkBA,CAC3B,CACA,MAAMiB,EAAO,CACX,aAAc,CACZ/E,GAAc,KAAM,YAA6B,IAAI,GAAK,EAC1DA,GAAc,KAAM,cAA+B,IAAI,OAAS,CAClE,CACA,MAAMiC,EAAG,CACP,IAAI1B,EACJ,GAAI,CAAC0B,EAAG,MAAO,GACf,MAAM+C,GAAMzE,EAAK,KAAK,QAAQ0B,CAAC,IAAM,KAAO,OAAS1B,EAAG,GACxD,OAAOyE,GAAA,KAAAA,EAAM,EACf,CACA,QAAQA,EAAI,CACV,OAAO,KAAK,UAAU,IAAIA,CAAE,GAAK,IACnC,CACA,QAAS,CACP,OAAO,MAAM,KAAK,KAAK,UAAU,KAAI,CAAE,CACzC,CACA,QAAQ/C,EAAG,CACT,OAAO,KAAK,YAAY,IAAIA,CAAC,GAAK,IACpC,CAGA,kBAAkBA,EAAG,CACnB,MAAM+C,EAAK,KAAK,MAAM/C,CAAC,EAOvB,GANA,KAAK,UAAU,OAAO+C,CAAE,EACpB/C,EAAE,YACJA,EAAE,WAAW,QACVgD,GAAc,KAAK,kBAAkBA,CAAS,CACvD,EAEQ3B,GAAUrB,CAAC,EAAG,CAChB,MAAMiD,EAAe7B,GAAM,WAAWpB,CAAC,EACnCiD,GACF,KAAK,kBAAkBA,CAAY,EAEjCjD,EAAE,WAAa,UAAYA,EAAE,iBAC/B,KAAK,kBACHA,EAAE,eACZ,CAEI,CACF,CACA,IAAI+C,EAAI,CACN,OAAO,KAAK,UAAU,IAAIA,CAAE,CAC9B,CACA,QAAQG,EAAM,CACZ,OAAO,KAAK,YAAY,IAAIA,CAAI,CAClC,CACA,IAAIlD,EAAGmD,EAAM,CACX,MAAMJ,EAAKI,EAAK,GAChB,KAAK,UAAU,IAAIJ,EAAI/C,CAAC,EACxB,KAAK,YAAY,IAAIA,EAAGmD,CAAI,CAC9B,CACA,QAAQJ,EAAI/C,EAAG,CACb,MAAMoD,EAAU,KAAK,QAAQL,CAAE,EAC/B,GAAIK,EAAS,CACX,MAAMD,EAAO,KAAK,YAAY,IAAIC,CAAO,EACrCD,GAAM,KAAK,YAAY,IAAInD,EAAGmD,CAAI,CACxC,CACA,KAAK,UAAU,IAAIJ,EAAI/C,CAAC,CAC1B,CACA,OAAQ,CACN,KAAK,UAA4B,IAAI,IACrC,KAAK,YAA8B,IAAI,OACzC,CACF,CACA,SAASqD,IAAe,CACtB,OAAO,IAAIP,EACb,CACA,SAASQ,GAAe,CACtB,QAAAC,EACA,iBAAAC,EACA,QAAAC,EACA,KAAAC,EACA,MAAA5F,EACA,YAAA6F,CACF,EAAG,CACD,IAAIC,EAAO9F,GAAS,GACpB,MAAM+F,EAAaH,GAAQI,GAAYJ,CAAI,EAC3C,OAAIF,EAAiBC,EAAQ,YAAW,CAAE,GAAKI,GAAcL,EAAiBK,CAAU,KAClFF,EACFC,EAAOD,EAAYC,EAAML,CAAO,EAEhCK,EAAO,IAAI,OAAOA,EAAK,MAAM,GAG1BA,CACT,CACA,SAASE,GAAYC,EAAK,CACxB,OAAOA,EAAI,YAAW,CACxB,CACA,MAAMC,GAA0B,qBAChC,SAASC,GAAgBC,EAAQ,CAC/B,MAAMC,EAAMD,EAAO,WAAW,IAAI,EAClC,GAAI,CAACC,EAAK,MAAO,GACjB,MAAMC,EAAY,GAClB,QAASC,EAAI,EAAGA,EAAIH,EAAO,MAAOG,GAAKD,EACrC,QAASE,EAAI,EAAGA,EAAIJ,EAAO,OAAQI,GAAKF,EAAW,CACjD,MAAMG,EAAeJ,EAAI,aACnBK,EAAuBR,MAA2BO,EAAeA,EAAaP,EAAuB,EAAIO,EAW/G,GAVoB,IAAI,YAEtBC,EAAqB,KACnBL,EACAE,EACAC,EACA,KAAK,IAAIF,EAAWF,EAAO,MAAQG,CAAC,EACpC,KAAK,IAAID,EAAWF,EAAO,OAASI,CAAC,CAC/C,EAAU,KAAK,MACf,EACsB,KAAMG,GAAUA,IAAU,CAAC,EAAG,MAAO,EACvD,CAEF,MAAO,EACT,CACA,SAASC,GAAgBC,EAAGC,EAAG,CAC7B,MAAI,CAACD,GAAK,CAACC,GAAKD,EAAE,OAASC,EAAE,KAAa,GACtCD,EAAE,OAAS3G,EAAW,SACjB2G,EAAE,aAAeC,EAAE,WACnBD,EAAE,OAAS3G,EAAW,aACtB2G,EAAE,OAASC,EAAE,MAAQD,EAAE,WAAaC,EAAE,UAAYD,EAAE,WAAaC,EAAE,SACnED,EAAE,OAAS3G,EAAW,SAAW2G,EAAE,OAAS3G,EAAW,MAAQ2G,EAAE,OAAS3G,EAAW,MACrF2G,EAAE,cAAgBC,EAAE,YACpBD,EAAE,OAAS3G,EAAW,QACtB2G,EAAE,UAAYC,EAAE,SAAW,KAAK,UAAUD,EAAE,UAAU,IAAM,KAAK,UAAUC,EAAE,UAAU,GAAKD,EAAE,QAAUC,EAAE,OAASD,EAAE,YAAcC,EAAE,UACvI,EACT,CACA,SAASC,GAAatB,EAAS,CAC7B,MAAMG,EAAOH,EAAQ,KACrB,OAAOA,EAAQ,aAAa,qBAAqB,EAAI,WAAaG,EAEhEI,GAAYJ,CAAI,EACd,IACN,CACA,SAASoB,GAAqBC,EAAMC,EAAS,OAC3C,IAAIC,EACJ,GAAI,CACFA,EAAM,IAAI,IAAIF,EAAMC,GAAA,KAAAA,EAAW,OAAO,SAAS,IAAI,CACrD,OAASE,EAAK,CACZ,OAAO,IACT,CACA,MAAMrC,EAAQ,sBACRsC,EAAQF,EAAI,SAAS,MAAMpC,CAAK,EACtC,OAAQvE,EAAA6G,GAAS,KAAO,OAASA,EAAM,CAAC,IAAhC,KAAA7G,EAAsC,IAChD,CACA,SAAS8G,GAAcH,EAAK,CAC1B,IAAII,EAAS,GACb,OAAIJ,EAAI,QAAQ,IAAI,EAAI,GACtBI,EAASJ,EAAI,MAAM,GAAG,EAAE,MAAM,EAAG,CAAC,EAAE,KAAK,GAAG,EAE5CI,EAASJ,EAAI,MAAM,GAAG,EAAE,CAAC,EAE3BI,EAASA,EAAO,MAAM,GAAG,EAAE,CAAC,EACrBA,CACT,CACA,MAAMC,GAAiB,6CACjBC,GAAqB,sBACrBC,GAAgB,YAChBC,GAAW,wBACjB,SAASjD,GAAeb,EAAS+D,EAAM,CACrC,OAAQ/D,GAAW,IAAI,QACrB2D,GACA,CAACD,EAAQM,EAAQC,EAAOC,EAAQC,EAAOC,IAAU,CAC/C,MAAMC,EAAWJ,GAASE,GAASC,EAC7BE,EAAaN,GAAUE,GAAU,GACvC,GAAI,CAACG,EACH,OAAOX,EAET,GAAIE,GAAmB,KAAKS,CAAQ,GAAKR,GAAc,KAAKQ,CAAQ,EAClE,MAAO,OAAOC,CAAU,GAAGD,CAAQ,GAAGC,CAAU,IAElD,GAAIR,GAAS,KAAKO,CAAQ,EACxB,MAAO,OAAOC,CAAU,GAAGD,CAAQ,GAAGC,CAAU,IAElD,GAAID,EAAS,CAAC,IAAM,IAClB,MAAO,OAAOC,CAAU,GAAGb,GAAcM,CAAI,EAAIM,CAAQ,GAAGC,CAAU,IAExE,MAAMC,EAAQR,EAAK,MAAM,GAAG,EACtBS,EAAQH,EAAS,MAAM,GAAG,EAChCE,EAAM,IAAG,EACT,UAAWE,KAAQD,EACbC,IAAS,MAEFA,IAAS,KAClBF,EAAM,IAAG,EAETA,EAAM,KAAKE,CAAI,GAGnB,MAAO,OAAOH,CAAU,GAAGC,EAAM,KAAK,GAAG,CAAC,GAAGD,CAAU,GACzD,CACJ,CACA,CACA,MAAMI,GAA0B,qjBAC1BC,GAAwC,KAC9C,SAASC,GAAsBC,EAAKC,EAAS/C,EAAMgD,EAAS,CAI1D,GAHI,CAACF,EAAI,UAAYA,EAAI,eAAiB,GAGtCA,EAAI,aAAeF,IAAyCE,EAAI,cAAgBF,GAClF,OAAOG,EAET,GAAI,CACF,MAAMvC,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,MAAQsC,EAAI,aACnBtC,EAAO,OAASsC,EAAI,cACpB,MAAMrC,EAAMD,EAAO,WAAW,IAAI,EAClC,OAAKC,GAGLA,EAAI,UAAUqC,EAAK,EAAG,CAAC,EACFtC,EAAO,UAAUR,GAAQ,aAAcgD,GAAA,KAAAA,EAAW,EAAG,GAHjED,CAKX,OAASvB,EAAK,CACZ,OAAOuB,CACT,CACF,CACA,SAASE,GAAiBF,EAASG,EAAW,CAC5C,MAAI,CAACA,GAAaH,EAAQ,QAAUG,EAC3BH,EAEFJ,EACT,CC7fA,IAAIQ,GAAM,EACV,MAAMC,GAAe,IAAI,OAAO,cAAc,EACxCC,GAAe,GACrB,SAASC,IAAQ,CACf,OAAOH,IACT,CACA,SAASI,GAAgB1D,EAAS,CAChC,GAAIA,aAAmB,gBACrB,MAAO,OAET,MAAM2D,EAAmBpD,GAAYP,EAAQ,OAAO,EACpD,OAAIuD,GAAa,KAAKI,CAAgB,EAC7B,MAEFA,CACT,CACA,IAAIC,GACAC,GACJ,MAAMC,GAAoB,qBACpBC,GAA0B,qBAChC,SAASC,GAAwBC,EAAKC,EAAgB,CACpD,GAAIA,EAAe,KAAI,IAAO,GAC5B,OAAOA,EAET,IAAIC,EAAM,EACV,SAASC,EAAkBC,EAAO,CAChC,IAAIC,EACJ,MAAM1C,EAAQyC,EAAM,KAAKH,EAAe,UAAUC,CAAG,CAAC,EACtD,OAAIvC,GACF0C,EAAQ1C,EAAM,CAAC,EACfuC,GAAOG,EAAM,OACNA,GAEF,EACT,CACA,MAAMC,EAAS,CAAA,EACf,KACEH,EAAkBL,EAAuB,EACrC,EAAAI,GAAOD,EAAe,SAFf,CAKX,IAAIxC,EAAM0C,EAAkBN,EAAiB,EAC7C,GAAIpC,EAAI,MAAM,EAAE,IAAM,IACpBA,EAAM8C,GAAcP,EAAKvC,EAAI,UAAU,EAAGA,EAAI,OAAS,CAAC,CAAC,EACzD6C,EAAO,KAAK7C,CAAG,MACV,CACL,IAAI+C,EAAiB,GACrB/C,EAAM8C,GAAcP,EAAKvC,CAAG,EAC5B,IAAIgD,EAAW,GACf,OAAa,CACX,MAAMC,EAAIT,EAAe,OAAOC,CAAG,EACnC,GAAIQ,IAAM,GAAI,CACZJ,EAAO,MAAM7C,EAAM+C,GAAgB,KAAI,CAAE,EACzC,KACF,SAAYC,EASNC,IAAM,MACRD,EAAW,YATTC,IAAM,IAAK,CACbR,GAAO,EACPI,EAAO,MAAM7C,EAAM+C,GAAgB,KAAI,CAAE,EACzC,KACF,MAAWE,IAAM,MACfD,EAAW,IAOfD,GAAkBE,EAClBR,GAAO,CACT,CACF,CACF,CACA,OAAOI,EAAO,KAAK,IAAI,CACzB,CACA,MAAMK,GAAiC,IAAI,QAC3C,SAASJ,GAAcP,EAAKC,EAAgB,CAC1C,MAAI,CAACA,GAAkBA,EAAe,KAAI,IAAO,GACxCA,EAEFW,GAAQZ,EAAKC,CAAc,CACpC,CACA,SAASY,GAAaC,EAAI,CACxB,MAAO,GAAQA,EAAG,UAAY,OAASA,EAAG,gBAC5C,CACA,SAASF,GAAQZ,EAAKe,EAAY,CAChC,IAAI5D,EAAIwD,GAAe,IAAIX,CAAG,EAK9B,GAJK7C,IACHA,EAAI6C,EAAI,cAAc,GAAG,EACzBW,GAAe,IAAIX,EAAK7C,CAAC,GAEvB,CAAC4D,EACHA,EAAa,WACJA,EAAW,WAAW,OAAO,GAAKA,EAAW,WAAW,OAAO,EACxE,OAAOA,EAET5D,OAAAA,EAAE,aAAa,OAAQ4D,CAAU,EAC1B5D,EAAE,IACX,CACA,SAAS6D,GAAmBhB,EAAK/D,EAASzC,EAAMlD,EAAOyF,EAASkF,EAAgB,CAC9E,GAAI,CAAC3K,EACH,OAAOA,EAET,GAAIkD,IAAS,OAASA,IAAS,QAAU,EAAEyC,IAAY,OAAS3F,EAAM,CAAC,IAAM,KAAM,CACjF,MAAM4K,EAAmBX,GAAcP,EAAK1J,CAAK,EACjD,GAAI2F,IAAY,OAASiF,EAAiB,WAAW,OAAO,GAAKnF,EAAS,CACxE,MAAMiD,EAAMjD,EACZ,IAAIoF,EAAmBD,EACvB,OAAKD,GAAkB,MAAgBA,EAAe,OAAUA,GAAkB,KAAO,OAASA,EAAe,WAAa,UAC5HE,EAAmBpC,GACjBC,EACAkC,EACAD,EAAe,KACfA,EAAe,OACzB,GAEUA,GAAkB,MAAgBA,EAAe,uBACnDE,EAAmBhC,GACjBgC,EACAF,EAAe,oBACzB,GAEaE,CACT,CACA,OAAOD,CACT,KAAA,IAAW1H,IAAS,cAAgBlD,EAAM,CAAC,IAAM,IAC/C,OAAOiK,GAAcP,EAAK1J,CAAK,EACjC,GAAWkD,IAAS,eAAiByC,IAAY,SAAWA,IAAY,MAAQA,IAAY,MAC1F,OAAOsE,GAAcP,EAAK1J,CAAK,EACjC,GAAWkD,IAAS,SAClB,OAAOuG,GAAwBC,EAAK1J,CAAK,EAC3C,GAAWkD,IAAS,QAClB,OAAOwB,GAAe1E,EAAOsK,GAAQZ,CAAG,CAAC,EAC3C,GAAW/D,IAAY,UAAYzC,IAAS,OAC1C,OAAO+G,GAAcP,EAAK1J,CAAK,EAEjC,OAAOA,CACT,CACA,SAAS8K,GAAgBnF,EAASzC,EAAM6H,EAAQ,CAC9C,OAAQpF,IAAY,SAAWA,IAAY,UAAYzC,IAAS,UAClE,CACA,SAAS8H,GAAkBvF,EAASwF,EAAYC,EAAe,CAC7D,GAAI,CACF,GAAI,OAAOD,GAAe,UACxB,GAAIxF,EAAQ,UAAU,SAASwF,CAAU,EACvC,MAAO,OAGT,SAASE,EAAS1F,EAAQ,UAAU,OAAQ0F,KAAY,CACtD,MAAMC,EAAY3F,EAAQ,UAAU0F,CAAM,EAC1C,GAAIF,EAAW,KAAKG,CAAS,EAC3B,MAAO,EAEX,CAEF,GAAIF,EACF,OAAOzF,EAAQ,QAAQyF,CAAa,CAExC,OAAS3J,EAAG,CACZ,CACA,MAAO,EACT,CACA,SAAS8J,GAAkBjG,EAAML,EAAOuG,EAAgB,CACtD,GAAI,CAAClG,EAAM,MAAO,GAClB,GAAIA,EAAK,WAAaA,EAAK,aACzB,OAAKkG,EACED,GAAkB/H,GAAM,WAAW8B,CAAI,EAAGL,EAAOuG,CAAc,EAD1C,GAG9B,QAASH,EAAS/F,EAAK,UAAU,OAAQ+F,KAAY,CACnD,MAAMC,EAAYhG,EAAK,UAAU+F,CAAM,EACvC,GAAIpG,EAAM,KAAKqG,CAAS,EACtB,MAAO,EAEX,CACA,OAAKE,EACED,GAAkB/H,GAAM,WAAW8B,CAAI,EAAGL,EAAOuG,CAAc,EAD1C,EAE9B,CACA,SAASC,GAAgBnG,EAAMoG,EAAeC,EAAkBH,EAAgB,CAC9E,IAAId,EACJ,GAAIjH,GAAU6B,CAAI,GAEhB,GADAoF,EAAKpF,EACD,CAAC9B,GAAM,WAAWkH,CAAE,EAAE,OACxB,MAAO,OAEX,IAAWlH,GAAM,cAAc8B,CAAI,IAAM,KACvC,MAAO,GAEPoF,EAAKlH,GAAM,cAAc8B,CAAI,EAE/B,GAAI,CACF,GAAI,OAAOoG,GAAkB,UAC3B,GAAIF,GACF,GAAId,EAAG,QAAQ,IAAIgB,CAAa,EAAE,EAAG,MAAO,WAExChB,EAAG,UAAU,SAASgB,CAAa,EAAG,MAAO,WAG/CH,GAAkBb,EAAIgB,EAAeF,CAAc,EAAG,MAAO,GAEnE,GAAIG,GACF,GAAIH,GACF,GAAId,EAAG,QAAQiB,CAAgB,EAAG,MAAO,WAErCjB,EAAG,QAAQiB,CAAgB,EAAG,MAAO,GAG/C,OAASlK,EAAG,CACZ,CACA,MAAO,EACT,CACA,SAASmK,GAAiBtK,EAAUuK,EAAUC,EAAmB,CAC/D,MAAMvK,EAAMD,EAAS,cACrB,GAAI,CAACC,EACH,OAEF,IAAIwK,EAAQ,GACRC,EACJ,GAAI,CACFA,EAAazK,EAAI,SAAS,UAC5B,OAASkD,EAAO,CACd,MACF,CACA,GAAIuH,IAAe,WAAY,CAC7B,MAAMC,EAAQ,WAAW,IAAM,CACxBF,IACHF,EAAQ,EACRE,EAAQ,GAEZ,EAAGD,CAAiB,EACpBxK,EAAS,iBAAiB,OAAQ,IAAM,CACtC,aAAa2K,CAAK,EAClBF,EAAQ,GACRF,EAAQ,CACV,CAAC,EACD,MACF,CACA,MAAMK,EAAW,cACjB,GAAI3K,EAAI,SAAS,OAAS2K,GAAY5K,EAAS,MAAQ4K,GAAY5K,EAAS,MAAQ,GAClF,kBAAWuK,EAAU,CAAC,EACfvK,EAAS,iBAAiB,OAAQuK,CAAQ,EAEnDvK,EAAS,iBAAiB,OAAQuK,CAAQ,CAC5C,CACA,SAASM,GAAqBC,EAAMP,EAAUQ,EAAuB,CACnE,IAAIN,EAAQ,GACRO,EACJ,GAAI,CACFA,EAAmBF,EAAK,KAC1B,OAAS3H,EAAO,CACd,MACF,CACA,GAAI6H,EAAkB,OACtB,MAAML,EAAQ,WAAW,IAAM,CACxBF,IACHF,EAAQ,EACRE,EAAQ,GAEZ,EAAGM,CAAqB,EACxBD,EAAK,iBAAiB,OAAQ,IAAM,CAClC,aAAaH,CAAK,EAClBF,EAAQ,GACRF,EAAQ,CACV,CAAC,CACH,CACA,SAASU,GAAcnK,EAAGoK,EAAS,CACjC,KAAM,CACJ,IAAA5C,EACA,OAAA6C,EACA,WAAAtB,EACA,cAAAC,EACA,UAAAsB,EACA,iBAAAC,EACA,iBAAA/G,EAAmB,CAAA,EACnB,WAAAgH,EACA,YAAA7G,EACA,eAAA8E,EAAiB,CAAA,EACjB,aAAAgC,EACA,aAAAC,EACA,gBAAAC,EACA,kBAAAC,EAAoB,EACxB,EAAMR,EACES,EAASC,GAAUtD,EAAK6C,CAAM,EACpC,OAAQrK,EAAE,SAAQ,CAChB,KAAKA,EAAE,cACL,OAAIA,EAAE,aAAe,aACZ,CACL,KAAM+K,EAAS,SACf,WAAY,CAAA,EACZ,WAAY/K,EAAE,UAExB,EAEe,CACL,KAAM+K,EAAS,SACf,WAAY,CAAA,CACtB,EAEI,KAAK/K,EAAE,mBACL,MAAO,CACL,KAAM+K,EAAS,aACf,KAAM/K,EAAE,KACR,SAAUA,EAAE,SACZ,SAAUA,EAAE,SACZ,OAAA6K,CACR,EACI,KAAK7K,EAAE,aACL,OAAOgL,GAAqBhL,EAAG,CAC7B,IAAAwH,EACA,WAAAuB,EACA,cAAAC,EACA,iBAAAuB,EACA,iBAAA/G,EACA,YAAAG,EACA,eAAA8E,EACA,aAAAgC,EACA,aAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,OAAAC,CACR,CAAO,EACH,KAAK7K,EAAE,UACL,OAAOiL,GAAkBjL,EAAG,CAC1B,IAAAwH,EACA,UAAA8C,EACA,WAAAE,EACA,OAAAK,CACR,CAAO,EACH,KAAK7K,EAAE,mBACL,MAAO,CACL,KAAM+K,EAAS,MACf,YAAa,GACb,OAAAF,CACR,EACI,KAAK7K,EAAE,aACL,MAAO,CACL,KAAM+K,EAAS,QACf,YAAa3J,GAAM,YAAYpB,CAAC,GAAK,GACrC,OAAA6K,CACR,EACI,QACE,MAAO,EACb,CACA,CACA,SAASC,GAAUtD,EAAK6C,EAAQ,CAC9B,GAAI,CAACA,EAAO,QAAQ7C,CAAG,EAAG,OAC1B,MAAM0D,EAAQb,EAAO,MAAM7C,CAAG,EAC9B,OAAO0D,IAAU,EAAI,OAASA,CAChC,CACA,SAASD,GAAkBjL,EAAGoK,EAAS,CACrC,IAAI9L,EACJ,KAAM,CAAE,UAAAgM,EAAW,WAAAE,EAAY,OAAAK,CAAM,EAAKT,EACpCe,EAAS/J,GAAM,WAAWpB,CAAC,EAC3BoL,EAAgBD,GAAUA,EAAO,QACvC,IAAIvH,EAAOxC,GAAM,YAAYpB,CAAC,EAC9B,MAAMqL,EAAUD,IAAkB,QAAU,GAAO,OAC7CE,EAAWF,IAAkB,SAAW,GAAO,OACrD,GAAIC,GAAWzH,EAAM,CACnB,GAAI,CACE5D,EAAE,aAAeA,EAAE,kBACX1B,EAAK6M,EAAO,QAAU,MAAgB7M,EAAG,WACnDsF,EAAO7B,GAAoBoJ,EAAO,KAAK,EAE3C,OAASjG,EAAK,CACZ,QAAQ,KACN,wDAAwDA,CAAG,GAC3DlF,CACR,CACI,CACA4D,EAAOpB,GAAeoB,EAAMwE,GAAQgC,EAAQ,GAAG,CAAC,CAClD,CACA,OAAIkB,IACF1H,EAAO,sBAEL,CAACyH,GAAW,CAACC,GAAY1H,GAAQ0G,IACnC1G,EAAO4G,EAAaA,EAAW5G,EAAMxC,GAAM,cAAcpB,CAAC,CAAC,EAAI4D,EAAK,QAAQ,QAAS,GAAG,GAEnF,CACL,KAAMmH,EAAS,KACf,YAAanH,GAAQ,GACrB,QAAAyH,EACA,OAAAR,CACJ,CACA,CACA,SAASU,GAAe/D,EAAK9B,EAAM,CACjC,OAAO,MAAM,KAAK8B,EAAI,WAAW,EAAE,KAAMxF,GAAMA,EAAE,OAAS0D,CAAI,CAChE,CACA,SAAS8F,GAASxL,EAAG,CACnB,OAAOA,EAAE,IACX,CACA,SAASgL,GAAqBhL,EAAGoK,EAAS,CACxC,IAAI9L,EAAIC,EACR,KAAM,CACJ,IAAAiJ,EACA,WAAAuB,EACA,cAAAC,EACA,iBAAAuB,EACA,iBAAA/G,EAAmB,CAAA,EACnB,YAAAG,EACA,eAAA8E,EAAiB,CAAA,EACjB,aAAAgC,EACA,aAAAC,EACA,gBAAAC,EACA,kBAAAC,EAAoB,GACpB,OAAAC,CACJ,EAAMT,EACEqB,EAAY3C,GAAkB9I,EAAG+I,EAAYC,CAAa,EAC1DvF,EAAUwD,GAAgBjH,CAAC,EACjC,IAAI0L,EAAa,CAAA,EACjB,MAAMC,EAAM3L,EAAE,WAAW,OACzB,QAAS4L,EAAI,EAAGA,EAAID,EAAKC,IAAK,CAC5B,MAAMC,EAAO7L,EAAE,WAAW4L,CAAC,EACtBhD,GAAgBnF,EAASoI,EAAK,KAAMA,EAAK,KAAK,IACjDH,EAAWG,EAAK,IAAI,EAAIrD,GACtBhB,EACA/D,EACAK,GAAY+H,EAAK,IAAI,EACrBA,EAAK,MACL7L,EACAyI,CACR,EAEE,CACA,GAAIhF,IAAY,QAAU8G,EAAkB,CAC1C,MAAM7E,EAAO8F,GAASxL,CAAC,EACvB,GAAI0F,EAAM,CACR,IAAIoG,EAAaP,GAAe/D,EAAK9B,CAAI,EACzC,GAAI,CAACoG,GAAcpG,EAAK,SAAS,MAAM,EAAG,CACxC,MAAMqG,EAAa,OAAO,SAAS,OAC7BC,EAAiBtG,EAAK,QAAQ,OAAO,SAAS,KAAM,EAAE,EACtDuG,EAA0BF,EAAa,IAAMC,EACnDF,EAAaP,GAAe/D,EAAKyE,CAAuB,CAC1D,CACA,IAAItK,EAAU,KACVmK,IACFnK,EAAUI,GAAoB+J,CAAU,GAEtCnK,IACF,OAAO+J,EAAW,IAClB,OAAOA,EAAW,KAClBA,EAAW,SAAW/J,EAE1B,CACF,CACA,GAAI8B,IAAY,SAAWzD,EAAE,OAC7B,EAAEA,EAAE,WAAaoB,GAAM,YAAYpB,CAAC,GAAK,IAAI,KAAI,EAAG,OAAQ,CAC1D,MAAM2B,EAAUI,GACd/B,EAAE,KACR,EACQ2B,IACF+J,EAAW,SAAW/J,EAE1B,CACA,GAAI8B,IAAY,SAAWA,IAAY,YAAcA,IAAY,SAAU,CACzE,MAAM3F,EAAQkC,EAAE,MACVkM,EAAUlM,EAAE,QACd0L,EAAW,OAAS,SAAWA,EAAW,OAAS,YAAcA,EAAW,OAAS,UAAYA,EAAW,OAAS,UAAY5N,EACnI4N,EAAW,MAAQpI,GAAe,CAChC,QAAStD,EACT,KAAM6E,GAAa7E,CAAC,EACpB,QAAAyD,EACA,MAAA3F,EACA,iBAAA0F,EACA,YAAAG,CACR,CAAO,EACQuI,IACTR,EAAW,QAAUQ,EAEzB,CAQA,GAPIzI,IAAY,WACVzD,EAAE,UAAY,CAACwD,EAAiB,OAClCkI,EAAW,SAAW,GAEtB,OAAOA,EAAW,UAGlBjI,IAAY,UAAYzD,EAAE,KAC5B,GAAI,CACF0L,EAAW,aAAe1L,EAAE,QAAQ,cAAc,EAAI,QAAU,WAClE,OAAQX,EAAA,CACNqM,EAAW,aAAe,QAC1BA,EAAW,6BAA+B,EAC5C,CAEF,GAAIjI,IAAY,UAAYiH,GAC1B,GAAI1K,EAAE,YAAc,KACbiE,GAAgBjE,CAAC,IACpB0L,EAAW,WAAa1L,EAAE,UACxByI,EAAe,KACfA,EAAe,OACzB,WAEe,EAAE,cAAezI,GAAI,CAC9B,MAAMmM,EAAgBnM,EAAE,UACtByI,EAAe,KACfA,EAAe,OACvB,EACY2D,EAAc5E,EAAI,cAAc,QAAQ,EAC9C4E,EAAY,MAAQpM,EAAE,MACtBoM,EAAY,OAASpM,EAAE,OACvB,MAAMqM,EAAqBD,EAAY,UACrC3D,EAAe,KACfA,EAAe,OACvB,EACU0D,IAAkBE,IACpBX,EAAW,WAAaS,EAE5B,EAEF,GAAI1I,IAAY,OAASgH,EAAc,CAChCtD,KACHA,GAAgBK,EAAI,cAAc,QAAQ,EAC1CJ,GAAYD,GAAc,WAAW,IAAI,GAE3C,MAAMmF,EAAQtM,EACRuM,EAAWD,EAAM,YAAcA,EAAM,aAAa,KAAK,GAAK,gBAC5DE,EAAmBF,EAAM,YACzBG,EAAoB,IAAM,CAC9BH,EAAM,oBAAoB,OAAQG,CAAiB,EACnD,GAAI,CACFtF,GAAc,MAAQmF,EAAM,aAC5BnF,GAAc,OAASmF,EAAM,cAC7BlF,GAAU,UAAUkF,EAAO,EAAG,CAAC,EAC/BZ,EAAW,WAAavE,GAAc,UACpCsB,EAAe,KACfA,EAAe,OACzB,CACM,OAASvD,EAAK,CACZ,GAAIoH,EAAM,cAAgB,YAAa,CACrCA,EAAM,YAAc,YAChBA,EAAM,UAAYA,EAAM,eAAiB,EAC3CG,EAAiB,EACdH,EAAM,iBAAiB,OAAQG,CAAiB,EACrD,MACF,MACE,QAAQ,KACN,yBAAyBF,CAAQ,YAAYrH,CAAG,EAC5D,CAEM,CACIoH,EAAM,cAAgB,cACxBE,EAAmBd,EAAW,YAAcc,EAAmBF,EAAM,gBAAgB,aAAa,EAEtG,EACIA,EAAM,UAAYA,EAAM,eAAiB,EAAGG,EAAiB,EAC5DH,EAAM,iBAAiB,OAAQG,CAAiB,CACvD,CACA,GAAIhJ,IAAY,SAAWA,IAAY,QAAS,CAC9C,MAAMiJ,EAAkBhB,EACxBgB,EAAgB,cAAgB1M,EAAE,OAAS,SAAW,SACtD0M,EAAgB,oBAAsB1M,EAAE,YACxC0M,EAAgB,qBAAuB1M,EAAE,aACzC0M,EAAgB,cAAgB1M,EAAE,MAClC0M,EAAgB,aAAe1M,EAAE,KACjC0M,EAAgB,eAAiB1M,EAAE,MACrC,CASA,GARK4K,IACC5K,EAAE,aACJ0L,EAAW,cAAgB1L,EAAE,YAE3BA,EAAE,YACJ0L,EAAW,aAAe1L,EAAE,YAG5ByL,EAAW,CACb,KAAM,CAAE,MAAAkB,EAAO,OAAAC,EAAQ,KAAAC,EAAM,IAAAC,CAAG,EAAK9M,EAAE,sBAAqB,EAC5D0L,EAAa,CACX,MAAOA,EAAW,MAClB,SAAU,GAAGiB,CAAK,KAClB,UAAW,GAAGC,CAAM,KACpB,QAAS,GAAG,KAAK,MAAMC,KAAUvO,EAAKkJ,EAAI,cAAgB,KAAO,OAASlJ,EAAG,UAAY,EAAE,CAAC,KAC5F,OAAQ,GAAG,KAAK,MAAMwO,KAASvO,EAAKiJ,EAAI,cAAgB,KAAO,OAASjJ,EAAG,UAAY,EAAE,CAAC,IAChG,CACE,CACIkF,IAAY,UAAY,CAACkH,EAAgBe,EAAW,GAAG,IACpD1L,EAAE,kBACL0L,EAAW,OAASA,EAAW,KAEjC,OAAOA,EAAW,KAEpB,IAAIqB,EACJ,GAAI,CACE,eAAe,IAAItJ,CAAO,IAAGsJ,EAAkB,GACrD,OAAS1N,EAAG,CACZ,CACA,MAAO,CACL,KAAM0L,EAAS,QACf,QAAAtH,EACA,WAAAiI,EACA,WAAY,CAAA,EACZ,MAAOrD,GAAarI,CAAC,GAAK,OAC1B,UAAAyL,EACA,OAAAZ,EACA,SAAUkC,CACd,CACA,CACA,SAASC,EAAcC,EAAW,CAChC,OAA4BA,GAAc,KACjC,GAEAA,EAAU,YAAW,CAEhC,CACA,SAASC,GAAgBC,EAAIC,EAAgB,CAC3C,GAAIA,EAAe,SAAWD,EAAG,OAASpC,EAAS,QACjD,MAAO,GACT,GAAWoC,EAAG,OAASpC,EAAS,QAAS,CACvC,GAAIqC,EAAe,SAClBD,EAAG,UAAY,UAChBA,EAAG,UAAY,SAAWA,EAAG,WAAW,MAAQ,WAAaA,EAAG,WAAW,KAAO,UAAYA,EAAG,WAAW,MAAQ,kBACpHA,EAAG,UAAY,QAAUA,EAAG,WAAW,MAAQ,YAAc,OAAOA,EAAG,WAAW,MAAS,UAAYrI,GAAqBqI,EAAG,WAAW,IAAI,IAAM,MAClJ,MAAO,GACT,GAAWC,EAAe,cAAgBD,EAAG,UAAY,QAAUA,EAAG,WAAW,MAAQ,iBAAmBA,EAAG,UAAY,SAAWH,EAAcG,EAAG,WAAW,IAAI,EAAE,MACtK,mCACN,GAASH,EAAcG,EAAG,WAAW,IAAI,IAAM,oBAAsBH,EAAcG,EAAG,WAAW,GAAG,IAAM,QAAUH,EAAcG,EAAG,WAAW,GAAG,IAAM,oBAAsBH,EAAcG,EAAG,WAAW,GAAG,IAAM,kBAC9M,MAAO,GACT,GAAWA,EAAG,UAAY,OAAQ,CAChC,GAAIC,EAAe,sBAAwBJ,EAAcG,EAAG,WAAW,IAAI,EAAE,MAAM,wBAAwB,EACzG,MAAO,GACT,GAAWC,EAAe,iBAAmBJ,EAAcG,EAAG,WAAW,QAAQ,EAAE,MAAM,mBAAmB,GAC5GH,EAAcG,EAAG,WAAW,IAAI,EAAE,MAAM,gBAAgB,GAAKH,EAAcG,EAAG,WAAW,IAAI,IAAM,aACjG,MAAO,GACT,GAAWC,EAAe,iBAAmBJ,EAAcG,EAAG,WAAW,IAAI,IAAM,UAAYH,EAAcG,EAAG,WAAW,IAAI,IAAM,aAAeH,EAAcG,EAAG,WAAW,IAAI,IAAM,WACxL,MAAO,GACT,GAAWC,EAAe,mBAAqBD,EAAG,WAAW,YAAY,IAAM,OAC7E,MAAO,GACT,GAAWC,EAAe,qBAAuBJ,EAAcG,EAAG,WAAW,IAAI,IAAM,UAAYH,EAAcG,EAAG,WAAW,IAAI,IAAM,aAAeH,EAAcG,EAAG,WAAW,IAAI,IAAM,aAAeH,EAAcG,EAAG,WAAW,IAAI,IAAM,aAAeH,EAAcG,EAAG,WAAW,IAAI,IAAM,UAAYH,EAAcG,EAAG,WAAW,QAAQ,EAAE,MAAM,WAAW,GAAKH,EAAcG,EAAG,WAAW,QAAQ,EAAE,MAAM,WAAW,GACra,MAAO,GACT,GAAWC,EAAe,uBAAyBJ,EAAcG,EAAG,WAAW,IAAI,IAAM,4BAA8BH,EAAcG,EAAG,WAAW,IAAI,IAAM,uBAAyBH,EAAcG,EAAG,WAAW,IAAI,IAAM,cAAgBH,EAAcG,EAAG,WAAW,IAAI,IAAM,mBAAqBH,EAAcG,EAAG,WAAW,IAAI,IAAM,aAAeH,EAAcG,EAAG,WAAW,IAAI,IAAM,gBAAkBH,EAAcG,EAAG,WAAW,IAAI,IAAM,8BACxb,MAAO,EAEX,CACF,CACA,MAAO,EACT,CACA,MAAME,GAAoB,GAC1B,IAAIC,GAAkB,GAClBC,GAAmB,GACvB,SAASC,IAAqB,CAC5B,OAAOD,EACT,CACA,SAASE,IAAqB,CAC5BF,GAAmB,GACnBD,GAAkB,EACpB,CACA,SAASI,GAAoB1N,EAAGoK,EAAS,CACvC,KAAM,CACJ,IAAA5C,EACA,OAAA6C,EACA,WAAAtB,EACA,cAAAC,EACA,cAAAM,EACA,iBAAAC,EACA,UAAAoE,EAAY,GACZ,iBAAApD,EAAmB,GACnB,iBAAA/G,EAAmB,CAAA,EACnB,WAAAgH,EACA,YAAA7G,EACA,eAAAyJ,EACA,eAAA3E,EAAiB,CAAA,EACjB,aAAAgC,EAAe,GACf,aAAAC,EAAe,GACf,YAAAkD,EACA,aAAAC,EACA,kBAAAnE,EAAoB,IACpB,iBAAAoE,EACA,sBAAAC,EAAwB,IACxB,gBAAApD,EAAkB,IAAM,GACxB,kBAAAC,EAAoB,GACpB,MAAAoD,EAAQ,EACR,SAAAC,EAAWZ,EACf,EAAMjD,EACJ,GAAI,CAAE,UAAAE,CAAS,EAAKF,EAChB,CAAE,mBAAA8D,EAAqB,EAAI,EAAK9D,EACpC,GAAI4D,GAASC,EACX,OAAAV,GAAmB,GACdD,KACHA,GAAkB,GAClB,QAAQ,KACN,yDAAyDW,CAAQ,oGACzE,GAEW,KAEJ3D,IAEHA,EAAYjB,GACVrJ,EACAsJ,EACAC,EAJqBe,IAAc,MAMzC,GAEE,MAAM6D,EAAkBhE,GAAcnK,EAAG,CACvC,IAAAwH,EACA,OAAA6C,EACA,WAAAtB,EACA,cAAAC,EACA,UAAAsB,EACA,iBAAAC,EACA,iBAAA/G,EACA,WAAAgH,EACA,YAAA7G,EACA,eAAA8E,EACA,aAAAgC,EACA,aAAAC,EACA,gBAAAC,EACA,kBAAAC,CACJ,CAAG,EACD,GAAI,CAACuD,EACH,eAAQ,KAAKnO,EAAG,gBAAgB,EACzB,KAET,IAAI+C,GACAsH,EAAO,QAAQrK,CAAC,EAClB+C,GAAKsH,EAAO,MAAMrK,CAAC,EACVkN,GAAgBiB,EAAiBf,CAAc,GAAK,CAACc,GAAsBC,EAAgB,OAASpD,EAAS,MAAQ,CAACoD,EAAgB,SAAW,CAACA,EAAgB,YAAY,QAAQ,cAAe,EAAE,EAAE,OAClNpL,GAAKgE,GAELhE,GAAKiE,GAAK,EAEZ,MAAMoH,EAAiB,OAAO,OAAOD,EAAiB,CAAE,GAAApL,EAAE,CAAE,EAE5D,GADAsH,EAAO,IAAIrK,EAAGoO,CAAc,EACxBrL,KAAOgE,GACT,OAAO,KAEL6G,GACFA,EAAY5N,CAAC,EAEf,IAAIqO,EAAc,CAACV,EACnB,GAAIS,EAAe,OAASrD,EAAS,QAAS,CAC5CsD,EAAcA,GAAe,CAACD,EAAe,UAC7C,OAAOA,EAAe,UACtB,MAAMnL,EAAe7B,GAAM,WAAWpB,CAAC,EACnCiD,GAAgBzB,GAAkByB,CAAY,IAChDmL,EAAe,aAAe,GAClC,CACA,IAAKA,EAAe,OAASrD,EAAS,UAAYqD,EAAe,OAASrD,EAAS,UAAYsD,EAAa,CACtGjB,EAAe,gBAAkBgB,EAAe,OAASrD,EAAS,SAAWqD,EAAe,UAAY,SAC1GF,EAAqB,IAEvB,MAAMI,EAAgB,CACpB,IAAA9G,EACA,OAAA6C,EACA,WAAAtB,EACA,cAAAC,EACA,UAAAsB,EACA,cAAAhB,EACA,iBAAAC,EACA,UAAAoE,EACA,iBAAApD,EACA,iBAAA/G,EACA,WAAAgH,EACA,YAAA7G,EACA,eAAAyJ,EACA,eAAA3E,EACA,aAAAgC,EACA,aAAAC,EACA,mBAAAwD,EACA,YAAAN,EACA,aAAAC,EACA,kBAAAnE,EACA,iBAAAoE,EACA,sBAAAC,EACA,gBAAApD,EACA,MAAOqD,EAAQ,EACf,SAAAC,CACN,EACI,GAAI,EAAAG,EAAe,OAASrD,EAAS,SAAWqD,EAAe,UAAY,YAAcA,EAAe,WAAW,QAAU,QAE3H,UAAWG,KAAU,MAAM,KAAKnN,GAAM,WAAWpB,CAAC,CAAC,EAAG,CACpD,MAAMwO,EAAsBd,GAAoBa,EAAQD,CAAa,EACjEE,GACFJ,EAAe,WAAW,KAAKI,CAAmB,CAEtD,CAEF,IAAIvL,EAAe,KACnB,GAAI5B,GAAUrB,CAAC,IAAMiD,EAAe7B,GAAM,WAAWpB,CAAC,GACpD,UAAWuO,KAAU,MAAM,KAAKnN,GAAM,WAAW6B,CAAY,CAAC,EAAG,CAC/D,MAAMuL,EAAsBd,GAAoBa,EAAQD,CAAa,EACjEE,IACFhN,GAAkByB,CAAY,IAAMuL,EAAoB,SAAW,IACnEJ,EAAe,WAAW,KAAKI,CAAmB,EAEtD,CAEJ,CACA,MAAMrD,GAAS/J,GAAM,WAAWpB,CAAC,EACjC,OAAImL,IAAU7J,GAAa6J,EAAM,GAAK3J,GAAkB2J,EAAM,IAC5DiD,EAAe,SAAW,IAExBA,EAAe,OAASrD,EAAS,SAAWqD,EAAe,UAAY,UACzE5E,GACExJ,EACA,IAAM,CACJ,MAAMyO,EAAYzO,EAAE,gBACpB,GAAIyO,GAAaZ,EAAc,CAC7B,MAAMa,EAAuBhB,GAAoBe,EAAW,CAC1D,IAAKA,EACL,OAAApE,EACA,WAAAtB,EACA,cAAAC,EACA,UAAAsB,EACA,cAAAhB,EACA,iBAAAC,EACA,UAAW,GACX,iBAAAgB,EACA,iBAAA/G,EACA,WAAAgH,EACA,YAAA7G,EACA,eAAAyJ,EACA,eAAA3E,EACA,aAAAgC,EACA,aAAAC,EACA,mBAAAwD,EACA,YAAAN,EACA,aAAAC,EACA,kBAAAnE,EACA,iBAAAoE,EACA,sBAAAC,EACA,gBAAApD,EACA,MAAOqD,EAAQ,EACf,SAAAC,CACZ,CAAW,EACGS,GACFb,EACE7N,EACA0O,CACd,CAEQ,CACF,EACAhF,CACN,EAEM0E,EAAe,OAASrD,EAAS,SAAWqD,EAAe,UAAY,QAAU,OAAOA,EAAe,WAAW,KAAQ,WAAaA,EAAe,WAAW,MAAQ,cAAgBA,EAAe,WAAW,MAAQ,WAAa,OAAOA,EAAe,WAAW,MAAS,UAAYtJ,GAAqBsJ,EAAe,WAAW,IAAI,IAAM,QACzVrE,GACE/J,EACA,IAAM,CACJ,GAAI8N,EAAkB,CACpB,MAAMa,EAAqBjB,GAAoB1N,EAAG,CAChD,IAAAwH,EACA,OAAA6C,EACA,WAAAtB,EACA,cAAAC,EACA,UAAAsB,EACA,cAAAhB,EACA,iBAAAC,EACA,UAAW,GACX,iBAAAgB,EACA,iBAAA/G,EACA,WAAAgH,EACA,YAAA7G,EACA,eAAAyJ,EACA,eAAA3E,EACA,aAAAgC,EACA,aAAAC,EACA,mBAAAwD,EACA,YAAAN,EACA,aAAAC,EACA,kBAAAnE,EACA,iBAAAoE,EACA,sBAAAC,EACA,gBAAApD,EACA,MAAAqD,EACA,SAAAC,CACZ,CAAW,EACGU,GACFb,EACE9N,EACA2O,CACd,CAEQ,CACF,EACAZ,CACN,EAESK,CACT,CACA,SAASQ,GAAS5O,EAAGoK,EAAS,CAC5B,KAAM,CACJ,OAAAC,EAAS,IAAIvH,GACb,WAAAiG,EAAa,WACb,cAAAC,EAAgB,KAChB,cAAAM,EAAgB,UAChB,iBAAAC,EAAmB,KACnB,iBAAAgB,EAAmB,GACnB,aAAAE,EAAe,GACf,aAAAC,EAAe,GACf,cAAAmE,EAAgB,GAChB,WAAArE,EACA,YAAA7G,EACA,QAAAmL,EAAU,GACV,eAAArG,EACA,mBAAAyF,EACA,YAAAN,EACA,aAAAC,EACA,kBAAAnE,EACA,iBAAAoE,EACA,sBAAAC,EACA,gBAAApD,EAAkB,IAAM,GACxB,SAAAsD,CACJ,EAAM7D,GAAW,CAAA,EAqCf,OAAOsD,GAAoB1N,EAAG,CAC5B,IAAKA,EACL,OAAAqK,EACA,WAAAtB,EACA,cAAAC,EACA,cAAAM,EACA,iBAAAC,EACA,UAAW,GACX,iBAAAgB,EACA,iBA7CuBsE,IAAkB,GAAO,CAChD,MAAO,GACP,KAAM,GACN,iBAAkB,GAClB,MAAO,GACP,MAAO,GACP,OAAQ,GACR,MAAO,GACP,OAAQ,GACR,IAAK,GACL,KAAM,GACN,KAAM,GACN,IAAK,GACL,KAAM,GACN,SAAU,GACV,OAAQ,GACR,SAAU,EACd,EAAMA,IAAkB,GAAQ,CAC5B,SAAU,EACd,EAAMA,EA2BF,WAAArE,EACA,YAAA7G,EACA,eA5BqBmL,IAAY,IAAQA,IAAY,MAErD,CACE,OAAQ,GACR,QAAS,GACT,YAAa,GACb,eAAgB,GAChB,qBAAsBA,IAAY,MAElC,eAAgB,GAChB,eAAgB,GAChB,kBAAmB,GACnB,mBAAoB,GACpB,qBAAsB,EAC5B,EACMA,IAAY,GAAQ,CAAA,EAAKA,EAc3B,eAAArG,EACA,aAAAgC,EACA,aAAAC,EACA,mBAAAwD,EACA,YAAAN,EACA,aAAAC,EACA,kBAAAnE,EACA,iBAAAoE,EACA,sBAAAC,EACA,gBAAApD,EACA,kBAAmB,GACnB,SAAAsD,CACJ,CAAG,CACH,CCp8BA,MAAMc,GAAiB,kCACjBC,GAAwB,IAAI,OAAOD,GAAe,OAAQ,GAAG,EAC7DE,GAAsB,CAC1B,cAAe,2BACf,SAAU,CACR,MAAO,CACL,cAAe,2BACf,OAAQ,SAASC,EAAQ,CACnBA,EAAO,OAAO,MAAMF,EAAqB,IAC3CE,EAAO,OAASA,EAAO,OAAO,QAAQF,GAAuB,OAAO,EAExE,CACN,CACE,CACF,EACMG,GAAoB,CACxB,cAAe,wBACf,QAAS,UAAW,CAClB,MAAMC,EAAQ,CAAA,EACd,MAAO,CACL,KAAM,SAASC,EAAO,CAChBD,EAAM,QAAQC,CAAK,IAAM,KAG7BD,EAAM,KAAKC,CAAK,EAChBA,EAAM,UAAU,QAAQ,SAASC,EAAU,CACrCA,EAAS,SAAS,QAAQ,IAC5BD,EAAM,UAAY;EAAQC,EAAS,QAAQ,UAAW,WAAW,EAErE,CAAC,EACH,CACN,CACE,CACF,EACA,SAASC,GAAwBlL,EAAG,CAClC,OAAOA,GAAKA,EAAE,YAAc,OAAO,UAAU,eAAe,KAAKA,EAAG,SAAS,EAAIA,EAAE,QAAaA,CAClG,CACA,SAASmL,GAAsBxP,EAAG,CAChC,GAAI,OAAO,UAAU,eAAe,KAAKA,EAAG,YAAY,EAAG,OAAOA,EAClE,IAAIyP,EAAKzP,EAAE,QACX,GAAI,OAAOyP,GAAM,WAAY,CAC3B,IAAIC,EAAK,SAASC,GAAK,CACrB,OAAI,gBAAgBA,EACX,QAAQ,UAAUF,EAAI,UAAW,KAAK,WAAW,EAEnDA,EAAG,MAAM,KAAM,SAAS,CACjC,EACAC,EAAG,UAAYD,EAAG,SACpB,MAAOC,EAAK,CAAA,EACZ,cAAO,eAAeA,EAAI,aAAc,CAAE,MAAO,EAAA,CAAM,EACvD,OAAO,KAAK1P,CAAC,EAAE,QAAQ,SAAS4P,EAAG,CACjC,IAAIC,EAAK,OAAO,yBAAyB7P,EAAG4P,CAAC,EAC7C,OAAO,eAAeF,EAAIE,EAAGC,EAAG,IAAMA,EAAK,CACzC,WAAY,GACZ,IAAK,UAAW,CACd,OAAO7P,EAAE4P,CAAC,CACZ,CACN,CAAK,CACH,CAAC,EACMF,CACT,CACA,IAAII,GAAqB,CAAE,QAAS,CAAA,CAAE,EAClCC,GACJ,SAASC,IAA4B,CACnC,GAAID,GAA+B,OAAOD,GAAmB,QAC7DC,GAAgC,EAChC,IAAI1L,EAAI,OACJ4L,EAAS,UAAW,CACtB,MAAO,CAAE,iBAAkB,GAAO,MAAO5L,EAAG,KAAMA,EAAG,IAAKA,EAAG,OAAQA,EAAG,UAAWA,EAAG,QAASA,EAAG,OAAQA,EAAG,cAAeA,EAAG,MAAOA,EAAG,IAAKA,EAAG,MAAOA,EAAG,OAAQA,EAAG,KAAMA,EAAG,QAASA,EAAG,KAAMA,EAAG,MAAOA,EAAG,KAAMA,EAAG,QAASA,EAAG,MAAOA,EAAG,QAASA,EAAG,SAAUA,EAAG,OAAQA,EAAG,UAAWA,EAAG,OAAQA,EAAG,QAASA,EAAG,YAAaA,EAAG,UAAWA,EAAG,YAAaA,EAAG,aAAcA,EAAG,WAAYA,EAAG,cAAeA,EAAG,WAAYA,EAAG,YAAaA,EAAG,cAAeA,EAAG,YAAaA,EAAG,cAAeA,EAAG,eAAgBA,EAAG,aAAcA,EAAG,gBAAiBA,EAAG,aAAcA,EAAG,cAAeA,CAAC,CACpkB,EACAyL,OAAAA,GAAmB,QAAUG,EAAM,EACnCH,GAAmB,QAAQ,aAAeG,EACnCH,GAAmB,OAC5B,CACA,MAAMI,GAAwB,CAAA,EACxBC,GAA0C,OAAO,OAAuB,OAAO,eAAe,CAClG,UAAW,KACX,QAASD,EACX,EAAG,OAAO,YAAa,CAAE,MAAO,QAAQ,CAAE,CAAC,EACrCE,GAA6BZ,GAAsBW,EAAuB,EAChF,IAAIE,GACAC,GACJ,SAASC,IAAwB,CAC/B,GAAID,GAA2B,OAAOD,GACtCC,GAA4B,EAC5B,IAAIE,EAAuBR,GAAyB,EAChDS,EAAoBL,GACxB,MAAMM,UAAuB,KAAM,CACjC,YAAYC,EAASC,EAAMC,EAAQ9P,EAAQ+P,EAAMC,EAAQ,CACvD,MAAMJ,CAAO,EACb,KAAK,KAAO,iBACZ,KAAK,OAASA,EACVG,IACF,KAAK,KAAOA,GAEV/P,IACF,KAAK,OAASA,GAEZgQ,IACF,KAAK,OAASA,GAEZ,OAAOH,GAAS,aAAe,OAAOC,GAAW,cAC/C,OAAOD,GAAS,UAClB,KAAK,KAAOA,EACZ,KAAK,OAASC,IAEd,KAAK,KAAOD,EAAK,KACjB,KAAK,OAASA,EAAK,OACnB,KAAK,QAAUC,EAAO,KACtB,KAAK,UAAYA,EAAO,SAG5B,KAAK,WAAU,EACX,MAAM,mBACR,MAAM,kBAAkB,KAAMH,CAAc,CAEhD,CACA,YAAa,CACX,KAAK,QAAU,KAAK,OAAS,KAAK,OAAS,KAAO,GAClD,KAAK,SAAW,KAAK,KAAO,KAAK,KAAO,cACpC,OAAO,KAAK,MAAS,cACvB,KAAK,SAAW,IAAM,KAAK,KAAO,IAAM,KAAK,QAE/C,KAAK,SAAW,KAAO,KAAK,MAC9B,CACA,eAAeM,EAAO,CACpB,GAAI,CAAC,KAAK,OAAQ,MAAO,GACzB,IAAIC,EAAM,KAAK,OACXD,GAAS,OAAMA,EAAQR,EAAK,kBAChC,IAAIU,EAAStN,GAASA,EAClBuN,EAAQvN,GAASA,EACjBwN,EAAaxN,GAASA,EAC1B,GAAIoN,EAAO,CACT,GAAI,CAAE,KAAAK,EAAM,KAAAC,EAAM,IAAAC,CAAG,EAAKf,EAAK,aAAa,EAAI,EAChDW,EAAQvN,GAASyN,EAAKE,EAAI3N,CAAI,CAAC,EAC/BsN,EAAStN,GAAS0N,EAAK1N,CAAI,EACvB6M,IACFW,EAAaxN,GAAS6M,EAAkB7M,CAAI,EAEhD,CACA,IAAI4N,EAAQP,EAAI,MAAM,OAAO,EACzBQ,EAAQ,KAAK,IAAI,KAAK,KAAO,EAAG,CAAC,EACjCC,EAAM,KAAK,IAAI,KAAK,KAAO,EAAGF,EAAM,MAAM,EAC1CG,EAAW,OAAOD,CAAG,EAAE,OAC3B,OAAOF,EAAM,MAAMC,EAAOC,CAAG,EAAE,IAAI,CAACd,EAAMxP,IAAU,CAClD,IAAIwQ,EAASH,EAAQ,EAAIrQ,EACrByQ,EAAS,KAAO,IAAMD,GAAQ,MAAM,CAACD,CAAQ,EAAI,MACrD,GAAIC,IAAW,KAAK,KAAM,CACxB,GAAIhB,EAAK,OAAS,IAAK,CACrB,IAAIkB,EAAU,GACVC,EAAe,KAAK,IAAI,EAAG,KAAK,OAASD,CAAO,EAChDE,EAAa,KAAK,IACpB,KAAK,OAASF,EACd,KAAK,UAAYA,CAC/B,EACgBG,EAAUrB,EAAK,MAAMmB,EAAcC,CAAU,EAC7CE,EAAWhB,EAAMW,EAAO,QAAQ,MAAO,GAAG,CAAC,EAAIjB,EAAK,MAAM,EAAG,KAAK,IAAI,KAAK,OAAS,EAAGkB,EAAU,CAAC,CAAC,EAAE,QAAQ,SAAU,GAAG,EAC9H,OAAOX,EAAK,GAAG,EAAID,EAAMW,CAAM,EAAIT,EAAUa,CAAO,EAAI;GAAQC,EAAWf,EAAK,GAAG,CACrF,CACA,IAAIgB,EAAUjB,EAAMW,EAAO,QAAQ,MAAO,GAAG,CAAC,EAAIjB,EAAK,MAAM,EAAG,KAAK,OAAS,CAAC,EAAE,QAAQ,SAAU,GAAG,EACtG,OAAOO,EAAK,GAAG,EAAID,EAAMW,CAAM,EAAIT,EAAUR,CAAI,EAAI;GAAQuB,EAAUhB,EAAK,GAAG,CACjF,CACA,MAAO,IAAMD,EAAMW,CAAM,EAAIT,EAAUR,CAAI,CAC7C,CAAC,EAAE,KAAK;CAAI,CACd,CACA,UAAW,CACT,IAAIwB,EAAO,KAAK,eAAc,EAC9B,OAAIA,IACFA,EAAO;;EAASA,EAAO;GAElB,KAAK,KAAO,KAAO,KAAK,QAAUA,CAC3C,CACJ,CACE/B,OAAAA,GAAiBK,EACjBA,EAAe,QAAUA,EAClBL,EACT,CACA,IAAIgC,GACAC,GACJ,SAASC,IAAqB,CAC5B,GAAID,GAAwB,OAAOD,GACnCC,GAAyB,EACzB,MAAME,EAAc,CAClB,MAAO;EACP,YAAa;EACb,cAAe;EACf,WAAY;EACZ,WAAY,IACZ,WAAY;EACZ,MAAO,KACP,YAAa,IACb,aAAc,IACd,UAAW,GACX,OAAQ,OACR,UAAW,EACf,EACE,SAASC,EAAW1O,EAAK,CACvB,OAAOA,EAAI,CAAC,EAAE,YAAW,EAAKA,EAAI,MAAM,CAAC,CAC3C,CACA,MAAM2O,CAAY,CAChB,YAAYC,EAAS,CACnB,KAAK,QAAUA,CACjB,CACA,OAAOC,EAAOC,EAAW,CACvB,IAAI7R,EAAO,IAAM4R,EAAM,KACnBE,EAASF,EAAM,OAAS,KAAK,SAASA,EAAO,QAAQ,EAAI,GAM7D,GALI,OAAOA,EAAM,KAAK,WAAc,YAClC5R,GAAQ4R,EAAM,KAAK,UACVE,IACT9R,GAAQ,KAEN4R,EAAM,MACR,KAAK,MAAMA,EAAO5R,EAAO8R,CAAM,MAC1B,CACL,IAAIpB,GAAOkB,EAAM,KAAK,SAAW,KAAOC,EAAY,IAAM,IAC1D,KAAK,QAAQ7R,EAAO8R,EAASpB,EAAKkB,CAAK,CACzC,CACF,CACA,YAAYA,EAAOG,EAAQ,CACzB,IAAIjV,EACA8U,EAAM,OAAS,OACjB9U,EAAQ,KAAK,IAAI8U,EAAO,KAAM,YAAY,EACjCA,EAAM,OAAS,UACxB9U,EAAQ,KAAK,IAAI8U,EAAO,KAAM,eAAe,EACpCG,IAAW,SACpBjV,EAAQ,KAAK,IAAI8U,EAAO,KAAM,YAAY,EAE1C9U,EAAQ,KAAK,IAAI8U,EAAO,KAAM,aAAa,EAE7C,IAAII,EAAMJ,EAAM,OACZ5E,EAAQ,EACZ,KAAOgF,GAAOA,EAAI,OAAS,QACzBhF,GAAS,EACTgF,EAAMA,EAAI,OAEZ,GAAIlV,EAAM,SAAS;CAAI,EAAG,CACxB,IAAImV,EAAS,KAAK,IAAIL,EAAO,KAAM,QAAQ,EAC3C,GAAIK,EAAO,OACT,QAASC,EAAO,EAAGA,EAAOlF,EAAOkF,IAAQpV,GAASmV,CAEtD,CACA,OAAOnV,CACT,CACA,MAAM8U,EAAOnB,EAAO,CAClB,IAAI0B,EAAU,KAAK,IAAIP,EAAO,UAAW,YAAY,EACrD,KAAK,QAAQnB,EAAQ0B,EAAU,IAAKP,EAAO,OAAO,EAClD,IAAIQ,EACAR,EAAM,OAASA,EAAM,MAAM,QAC7B,KAAK,KAAKA,CAAK,EACfQ,EAAQ,KAAK,IAAIR,EAAO,OAAO,GAE/BQ,EAAQ,KAAK,IAAIR,EAAO,QAAS,WAAW,EAE1CQ,GAAO,KAAK,QAAQA,CAAK,EAC7B,KAAK,QAAQ,IAAKR,EAAO,KAAK,CAChC,CACA,KAAKA,EAAO,CACV,IAAIS,EAAOT,EAAM,MAAM,OAAS,EAChC,KAAOS,EAAO,GACRT,EAAM,MAAMS,CAAI,EAAE,OAAS,WAC/BA,GAAQ,EAEV,IAAIR,EAAY,KAAK,IAAID,EAAO,WAAW,EAC3C,QAAShH,EAAI,EAAGA,EAAIgH,EAAM,MAAM,OAAQhH,IAAK,CAC3C,IAAI0H,EAAQV,EAAM,MAAMhH,CAAC,EACrB2H,EAAS,KAAK,IAAID,EAAO,QAAQ,EACjCC,GAAQ,KAAK,QAAQA,CAAM,EAC/B,KAAK,UAAUD,EAAOD,IAASzH,GAAKiH,CAAS,CAC/C,CACF,CACA,QAAQD,EAAO,CACb,IAAI/F,EAAO,KAAK,IAAI+F,EAAO,OAAQ,aAAa,EAC5CY,EAAQ,KAAK,IAAIZ,EAAO,QAAS,cAAc,EACnD,KAAK,QAAQ,KAAO/F,EAAO+F,EAAM,KAAOY,EAAQ,KAAMZ,CAAK,CAC7D,CACA,KAAKA,EAAOC,EAAW,CACrB,IAAIM,EAAU,KAAK,IAAIP,EAAO,UAAW,OAAO,EAC5Ca,EAASb,EAAM,KAAOO,EAAU,KAAK,SAASP,EAAO,OAAO,EAC5DA,EAAM,YACRa,GAAUb,EAAM,KAAK,WAAa,eAEhCC,IAAWY,GAAU,KACzB,KAAK,QAAQA,EAAQb,CAAK,CAC5B,CACA,SAASA,EAAO,CACd,KAAK,KAAKA,CAAK,CACjB,CACA,IAAIA,EAAOc,EAAKX,EAAQ,CACtB,IAAIjV,EAEJ,GADKiV,IAAQA,EAASW,GAClBA,IACF5V,EAAQ8U,EAAM,KAAKc,CAAG,EAClB,OAAO5V,GAAU,aAAa,OAAOA,EAE3C,IAAIqN,EAASyH,EAAM,OACnB,GAAIG,IAAW,WACT,CAAC5H,GAAUA,EAAO,OAAS,QAAUA,EAAO,QAAUyH,GAGtDzH,GAAUA,EAAO,OAAS,YAC5B,MAAO,GAGX,GAAI,CAACA,EAAQ,OAAOqH,EAAYO,CAAM,EACtC,IAAIY,EAAQf,EAAM,KAAI,EAEtB,GADKe,EAAM,WAAUA,EAAM,SAAW,CAAA,GAClC,OAAOA,EAAM,SAASZ,CAAM,GAAM,YACpC,OAAOY,EAAM,SAASZ,CAAM,EAE9B,GAAIA,IAAW,UAAYA,IAAW,QACpC,OAAO,KAAK,YAAYH,EAAOG,CAAM,EAChC,CACL,IAAI9T,EAAS,MAAQwT,EAAWM,CAAM,EAClC,KAAK9T,CAAM,EACbnB,EAAQ,KAAKmB,CAAM,EAAE0U,EAAOf,CAAK,EAEjCe,EAAM,KAAM/H,GAAM,CAEhB,GADA9N,EAAQ8N,EAAE,KAAK8H,CAAG,EACd,OAAO5V,GAAU,YAAa,MAAO,EAC3C,CAAC,CAEL,CACA,OAAI,OAAOA,GAAU,cAAaA,EAAQ0U,EAAYO,CAAM,GAC5DY,EAAM,SAASZ,CAAM,EAAIjV,EAClBA,CACT,CACA,eAAe6V,EAAO,CACpB,IAAI7V,EACJ,OAAA6V,EAAM,KAAM/H,GAAM,CAChB,GAAIA,EAAE,OAASA,EAAE,MAAM,OAAS,GAC1B,OAAOA,EAAE,KAAK,OAAU,YAC1B,OAAA9N,EAAQ8N,EAAE,KAAK,MACX9N,EAAM,SAAS;CAAI,IACrBA,EAAQA,EAAM,QAAQ,UAAW,EAAE,GAE9B,EAGb,CAAC,EACGA,IAAOA,EAAQA,EAAM,QAAQ,MAAO,EAAE,GACnCA,CACT,CACA,iBAAiB6V,EAAOf,EAAO,CAC7B,IAAI9U,EACJ,OAAA6V,EAAM,aAAc/H,GAAM,CACxB,GAAI,OAAOA,EAAE,KAAK,QAAW,YAC3B,OAAA9N,EAAQ8N,EAAE,KAAK,OACX9N,EAAM,SAAS;CAAI,IACrBA,EAAQA,EAAM,QAAQ,UAAW,EAAE,GAE9B,EAEX,CAAC,EACG,OAAOA,GAAU,YACnBA,EAAQ,KAAK,IAAI8U,EAAO,KAAM,YAAY,EACjC9U,IACTA,EAAQA,EAAM,QAAQ,MAAO,EAAE,GAE1BA,CACT,CACA,cAAc6V,EAAOf,EAAO,CAC1B,IAAI9U,EACJ,OAAA6V,EAAM,UAAW/H,GAAM,CACrB,GAAI,OAAOA,EAAE,KAAK,QAAW,YAC3B,OAAA9N,EAAQ8N,EAAE,KAAK,OACX9N,EAAM,SAAS;CAAI,IACrBA,EAAQA,EAAM,QAAQ,UAAW,EAAE,GAE9B,EAEX,CAAC,EACG,OAAOA,GAAU,YACnBA,EAAQ,KAAK,IAAI8U,EAAO,KAAM,YAAY,EACjC9U,IACTA,EAAQA,EAAM,QAAQ,MAAO,EAAE,GAE1BA,CACT,CACA,cAAc6V,EAAO,CACnB,IAAI7V,EACJ,OAAA6V,EAAM,KAAM/H,GAAM,CAChB,GAAIA,EAAE,OAAS,SACb9N,EAAQ8N,EAAE,KAAK,QACX,OAAO9N,GAAU,aAAa,MAAO,EAE7C,CAAC,EACMA,CACT,CACA,cAAc6V,EAAO,CACnB,IAAI7V,EACJ,OAAA6V,EAAM,KAAM/H,GAAM,CAChB,GAAIA,EAAE,QAAUA,EAAE,SAAW+H,GAASA,EAAM,QAAU/H,IAChD,OAAOA,EAAE,KAAK,QAAW,YAC3B,OAAA9N,EAAQ8N,EAAE,KAAK,OACX9N,EAAM,SAAS;CAAI,IACrBA,EAAQA,EAAM,QAAQ,UAAW,EAAE,GAE9B,EAGb,CAAC,EACGA,IAAOA,EAAQA,EAAM,QAAQ,MAAO,EAAE,GACnCA,CACT,CACA,SAAS6V,EAAO,CACd,IAAI7V,EACJ,OAAA6V,EAAM,UAAW/H,GAAM,CACrB,GAAI,OAAOA,EAAE,KAAK,SAAY,YAC5B,OAAA9N,EAAQ8N,EAAE,KAAK,QAAQ,QAAQ,UAAW,EAAE,EACrC,EAEX,CAAC,EACM9N,CACT,CACA,aAAa6V,EAAO,CAClB,IAAI7V,EACJ,OAAA6V,EAAM,KAAM/H,GAAM,CAChB,GAAIA,EAAE,OAASA,EAAE,MAAM,SAAW,IAChC9N,EAAQ8N,EAAE,KAAK,MACX,OAAO9N,GAAU,aAAa,MAAO,EAE7C,CAAC,EACMA,CACT,CACA,UAAU6V,EAAO,CACf,GAAIA,EAAM,KAAK,OAAQ,OAAOA,EAAM,KAAK,OACzC,IAAI7V,EACJ,OAAA6V,EAAM,KAAM/H,GAAM,CAChB,IAAIgI,EAAKhI,EAAE,OACX,GAAIgI,GAAMA,IAAOD,GAASC,EAAG,QAAUA,EAAG,SAAWD,GAC/C,OAAO/H,EAAE,KAAK,QAAW,YAAa,CACxC,IAAIzF,EAAQyF,EAAE,KAAK,OAAO,MAAM;CAAI,EACpC,OAAA9N,EAAQqI,EAAMA,EAAM,OAAS,CAAC,EAC9BrI,EAAQA,EAAM,QAAQ,MAAO,EAAE,EACxB,EACT,CAEJ,CAAC,EACMA,CACT,CACA,aAAa6V,EAAO,CAClB,IAAI7V,EACJ,OAAA6V,EAAM,KAAM/H,GAAM,CAChB,GAAIA,EAAE,OAASA,EAAE,MAAM,QAAUA,EAAE,KAAK,OAAS,SAC/C9N,EAAQ8N,EAAE,KAAK,UACX,OAAO9N,GAAU,aAAa,MAAO,EAE7C,CAAC,EACMA,CACT,CACA,SAAS8U,EAAOiB,EAAM,CACpB,IAAI/V,EAAQ8U,EAAMiB,CAAI,EAClBC,EAAMlB,EAAM,KAAKiB,CAAI,EACzB,OAAIC,GAAOA,EAAI,QAAUhW,EAChBgW,EAAI,IAENhW,CACT,CACA,KAAK8U,EAAO,CACV,KAAK,KAAKA,CAAK,EACXA,EAAM,KAAK,OAAO,KAAK,QAAQA,EAAM,KAAK,KAAK,CACrD,CACA,KAAKA,EAAO,CACV,KAAK,MAAMA,EAAO,KAAK,SAASA,EAAO,UAAU,CAAC,EAC9CA,EAAM,KAAK,cACb,KAAK,QAAQA,EAAM,KAAK,aAAcA,EAAO,KAAK,CAEtD,CACA,UAAUA,EAAOC,EAAW,CAC1B,GAAI,CAAC,KAAKD,EAAM,IAAI,EAClB,MAAM,IAAI,MACR,yBAA2BA,EAAM,KAAO,iDAClD,EAEM,KAAKA,EAAM,IAAI,EAAEA,EAAOC,CAAS,CACnC,CACJ,CACER,OAAAA,GAAcK,EACdA,EAAY,QAAUA,EACfL,EACT,CACA,IAAI0B,GACAC,GACJ,SAASC,IAAmB,CAC1B,GAAID,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,IAAItB,EAAcH,GAAkB,EACpC,SAAS2B,EAAUtB,EAAOD,EAAS,CACvB,IAAID,EAAYC,CAAO,EAC7B,UAAUC,CAAK,CACrB,CACAmB,OAAAA,GAAcG,EACdA,EAAU,QAAUA,EACbH,EACT,CACA,IAAII,GAAU,CAAA,EACVC,GACJ,SAASC,IAAiB,CACxB,OAAID,KACJA,GAAqB,EACrBD,GAAQ,QAAU,OAAO,SAAS,EAClCA,GAAQ,GAAK,OAAO,IAAI,GACjBA,EACT,CACA,IAAIjR,GACAoR,GACJ,SAASC,IAAc,CACrB,GAAID,GAAiB,OAAOpR,GAC5BoR,GAAkB,EAClB,IAAI5D,EAAiBH,GAAqB,EACtCmC,EAAcH,GAAkB,EAChC2B,EAAYD,GAAgB,EAC5B,CAAE,QAAAO,EAAS,GAAAC,CAAE,EAAKJ,GAAc,EACpC,SAASK,EAAU9W,EAAKuN,EAAQ,CAC9B,IAAIwJ,EAAS,IAAI/W,EAAI,YACrB,QAASgO,KAAKhO,EAAK,CAIjB,GAHI,CAAC,OAAO,UAAU,eAAe,KAAKA,EAAKgO,CAAC,GAG5CA,IAAM,aAAc,SACxB,IAAI9N,EAAQF,EAAIgO,CAAC,EACblI,EAAO,OAAO5F,EACd8N,IAAM,UAAYlI,IAAS,SACzByH,IAAQwJ,EAAO/I,CAAC,EAAIT,GACfS,IAAM,SACf+I,EAAO/I,CAAC,EAAI9N,EACH,MAAM,QAAQA,CAAK,EAC5B6W,EAAO/I,CAAC,EAAI9N,EAAM,IAAK8W,GAAOF,EAAUE,EAAID,CAAM,CAAC,GAE/CjR,IAAS,UAAY5F,IAAU,OAAMA,EAAQ4W,EAAU5W,CAAK,GAChE6W,EAAO/I,CAAC,EAAI9N,EAEhB,CACA,OAAO6W,CACT,CACA,SAASE,EAAaC,EAAUC,EAAU,CACxC,GAAIA,GAAY,OAAOA,EAAS,QAAW,YACzC,OAAOA,EAAS,OAElB,IAAIlE,EAAS,EACTD,EAAO,EACPoE,EAAS,EACb,QAASpJ,EAAI,EAAGA,EAAIkJ,EAAS,OAAQlJ,IAAK,CACxC,GAAIgF,IAASmE,EAAS,MAAQlE,IAAWkE,EAAS,OAAQ,CACxDC,EAASpJ,EACT,KACF,CACIkJ,EAASlJ,CAAC,IAAM;GAClBiF,EAAS,EACTD,GAAQ,GAERC,GAAU,CAEd,CACA,OAAOmE,CACT,CACA,MAAMC,CAAK,CACT,IAAI,SAAU,CACZ,OAAO,IACT,CACA,YAAYC,EAAW,CAAA,EAAI,CACzB,KAAK,KAAO,CAAA,EACZ,KAAKV,CAAO,EAAI,GAChB,KAAKC,CAAE,EAAI,GACX,QAASzT,KAAQkU,EACf,GAAIlU,IAAS,QAAS,CACpB,KAAK,MAAQ,CAAA,EACb,QAAS4R,KAASsC,EAASlU,CAAI,EACzB,OAAO4R,EAAM,OAAU,WACzB,KAAK,OAAOA,EAAM,MAAA,CAAO,EAEzB,KAAK,OAAOA,CAAK,CAGvB,MACE,KAAK5R,CAAI,EAAIkU,EAASlU,CAAI,CAGhC,CACA,WAAWqB,EAAO,CAEhB,GADAA,EAAM,YAAc,KAChBA,EAAM,OAAS,KAAK,QAAU,aAAa,KAAKA,EAAM,KAAK,EAAG,CAChE,IAAI8S,EAAK,KAAK,OACd9S,EAAM,MAAQA,EAAM,MAAM,QACxB,aACA,KAAK8S,EAAG,MAAM,IAAI,IAAIA,EAAG,MAAM,IAAI,IAAIA,EAAG,MAAM,MAAM,IAChE,CACM,CACA,OAAO9S,CACT,CACA,MAAM+S,EAAK,CACT,YAAK,OAAO,YAAY,KAAMA,CAAG,EAC1B,IACT,CACA,OAAOC,EAAY,CAAA,EAAI,CACrB,QAASrU,KAAQqU,EACf,KAAKrU,CAAI,EAAIqU,EAAUrU,CAAI,EAE7B,OAAO,IACT,CACA,OAAOoU,EAAK,CACV,YAAK,OAAO,aAAa,KAAMA,CAAG,EAC3B,IACT,CACA,UAAUE,EAAa,CACrB,OAAO,KAAK,KAAK,OACjB,OAAO,KAAK,KAAK,MACZA,GAAa,OAAO,KAAK,KAAK,OACrC,CACA,MAAMD,EAAY,CAAA,EAAI,CACpB,IAAIV,EAASD,EAAU,IAAI,EAC3B,QAAS1T,KAAQqU,EACfV,EAAO3T,CAAI,EAAIqU,EAAUrU,CAAI,EAE/B,OAAO2T,CACT,CACA,WAAWU,EAAY,CAAA,EAAI,CACzB,IAAIV,EAAS,KAAK,MAAMU,CAAS,EACjC,YAAK,OAAO,YAAY,KAAMV,CAAM,EAC7BA,CACT,CACA,YAAYU,EAAY,CAAA,EAAI,CAC1B,IAAIV,EAAS,KAAK,MAAMU,CAAS,EACjC,YAAK,OAAO,aAAa,KAAMV,CAAM,EAC9BA,CACT,CACA,MAAMhE,EAAS4E,EAAO,CAAA,EAAI,CACxB,GAAI,KAAK,OAAQ,CACf,GAAI,CAAE,IAAA7D,EAAK,MAAAD,CAAK,EAAK,KAAK,QAAQ8D,CAAI,EACtC,OAAO,KAAK,OAAO,MAAM,MACvB5E,EACA,CAAE,OAAQc,EAAM,OAAQ,KAAMA,EAAM,IAAI,EACxC,CAAE,OAAQC,EAAI,OAAQ,KAAMA,EAAI,IAAI,EACpC6D,CACV,CACM,CACA,OAAO,IAAI7E,EAAeC,CAAO,CACnC,CACA,mBAAoB,CAClB,MAAO,CACL,IAAIiC,EAAOiB,EAAM,CACf,OAAIA,IAAS,UACJjB,EACEiB,IAAS,OACX,IAAMjB,EAAM,KAAI,EAAG,QAAO,EAE1BA,EAAMiB,CAAI,CAErB,EACA,IAAIjB,EAAOiB,EAAM/V,EAAO,CACtB,OAAI8U,EAAMiB,CAAI,IAAM/V,IACpB8U,EAAMiB,CAAI,EAAI/V,GACV+V,IAAS,QAAUA,IAAS,SAAWA,IAAS,QAAUA,IAAS,UAAYA,IAAS,aAC5FA,IAAS,SACPjB,EAAM,UAAS,GAEV,EACT,CACR,CACI,CAEA,WAAY,CACV,KAAK4B,CAAO,EAAI,EAClB,CACA,WAAY,CACV,GAAI,KAAKA,CAAO,EAAG,CACjB,KAAKA,CAAO,EAAI,GAChB,IAAIgB,EAAO,KACX,KAAOA,EAAOA,EAAK,QACjBA,EAAKhB,CAAO,EAAI,EAEpB,CACF,CACA,MAAO,CACL,GAAI,CAAC,KAAK,OAAQ,OAClB,IAAIpT,EAAQ,KAAK,OAAO,MAAM,IAAI,EAClC,OAAO,KAAK,OAAO,MAAMA,EAAQ,CAAC,CACpC,CACA,WAAWmU,EAAO,CAAA,EAAI,CACpB,IAAI7N,EAAM,KAAK,OAAO,MACtB,GAAI6N,EAAK,MACP7N,EAAM,KAAK,eAAe6N,EAAK,KAAK,UAC3BA,EAAK,KAAM,CACpB,IAAIE,EAAc,aAAc,KAAK,OAAO,MAAQ,KAAK,OAAO,MAAM,SAAW,KAAK,OAAO,MAAM,IAK/FrU,EAJuBqU,EAAY,MACrCZ,EAAaY,EAAa,KAAK,OAAO,KAAK,EAC3CZ,EAAaY,EAAa,KAAK,OAAO,GAAG,CACnD,EACyC,QAAQF,EAAK,IAAI,EAC9CnU,IAAU,KAAIsG,EAAM,KAAK,eAAetG,CAAK,EACnD,CACA,OAAOsG,CACT,CACA,eAAetG,EAAO,CACpB,IAAIyP,EAAS,KAAK,OAAO,MAAM,OAC3BD,EAAO,KAAK,OAAO,MAAM,KACzB6E,EAAc,aAAc,KAAK,OAAO,MAAQ,KAAK,OAAO,MAAM,SAAW,KAAK,OAAO,MAAM,IAC/FT,EAASH,EAAaY,EAAa,KAAK,OAAO,KAAK,EACpD/D,EAAMsD,EAAS5T,EACnB,QAASwK,EAAIoJ,EAAQpJ,EAAI8F,EAAK9F,IACxB6J,EAAY7J,CAAC,IAAM;GACrBiF,EAAS,EACTD,GAAQ,GAERC,GAAU,EAGd,MAAO,CAAE,OAAAA,EAAQ,KAAAD,EAAM,OAAQc,CAAG,CACpC,CACA,MAAO,CACL,GAAI,CAAC,KAAK,OAAQ,OAClB,IAAItQ,EAAQ,KAAK,OAAO,MAAM,IAAI,EAClC,OAAO,KAAK,OAAO,MAAMA,EAAQ,CAAC,CACpC,CACA,QAAQmU,EAAO,CAAA,EAAI,CACjB,IAAIE,EAAc,aAAc,KAAK,OAAO,MAAQ,KAAK,OAAO,MAAM,SAAW,KAAK,OAAO,MAAM,IAC/FhE,EAAQ,CACV,OAAQ,KAAK,OAAO,MAAM,OAC1B,KAAM,KAAK,OAAO,MAAM,KACxB,OAAQoD,EAAaY,EAAa,KAAK,OAAO,KAAK,CAC3D,EACU/D,EAAM,KAAK,OAAO,IAAM,CAC1B,OAAQ,KAAK,OAAO,IAAI,OAAS,EACjC,KAAM,KAAK,OAAO,IAAI,KACtB,OAAQ,OAAO,KAAK,OAAO,IAAI,QAAW,SAExC,KAAK,OAAO,IAAI,OAKhBmD,EAAaY,EAAa,KAAK,OAAO,GAAG,EAAI,CAEvD,EAAU,CACF,OAAQhE,EAAM,OAAS,EACvB,KAAMA,EAAM,KACZ,OAAQA,EAAM,OAAS,CAC/B,EACM,GAAI8D,EAAK,KAAM,CAKb,IAAInU,EAJuBqU,EAAY,MACrCZ,EAAaY,EAAa,KAAK,OAAO,KAAK,EAC3CZ,EAAaY,EAAa,KAAK,OAAO,GAAG,CACnD,EACyC,QAAQF,EAAK,IAAI,EAC9CnU,IAAU,KACZqQ,EAAQ,KAAK,eAAerQ,CAAK,EACjCsQ,EAAM,KAAK,eAAetQ,EAAQmU,EAAK,KAAK,MAAM,EAEtD,MACMA,EAAK,MACP9D,EAAQ,CACN,OAAQ8D,EAAK,MAAM,OACnB,KAAMA,EAAK,MAAM,KACjB,OAAQV,EAAaY,EAAaF,EAAK,KAAK,CACxD,EACmBA,EAAK,QACd9D,EAAQ,KAAK,eAAe8D,EAAK,KAAK,GAEpCA,EAAK,IACP7D,EAAM,CACJ,OAAQ6D,EAAK,IAAI,OACjB,KAAMA,EAAK,IAAI,KACf,OAAQV,EAAaY,EAAaF,EAAK,GAAG,CACtD,EACmB,OAAOA,EAAK,UAAa,SAClC7D,EAAM,KAAK,eAAe6D,EAAK,QAAQ,EAC9BA,EAAK,QACd7D,EAAM,KAAK,eAAe6D,EAAK,MAAQ,CAAC,GAG5C,OAAI7D,EAAI,KAAOD,EAAM,MAAQC,EAAI,OAASD,EAAM,MAAQC,EAAI,QAAUD,EAAM,UAC1EC,EAAM,CACJ,OAAQD,EAAM,OAAS,EACvB,KAAMA,EAAM,KACZ,OAAQA,EAAM,OAAS,CACjC,GAEa,CAAE,IAAAC,EAAK,MAAAD,CAAK,CACrB,CACA,IAAIoC,EAAM6B,EAAa,CAErB,OADU,IAAIhD,EAAW,EACd,IAAI,KAAMmB,EAAM6B,CAAW,CACxC,CACA,QAAS,CACP,OAAI,KAAK,QACP,KAAK,OAAO,YAAY,IAAI,EAE9B,KAAK,OAAS,OACP,IACT,CACA,eAAeC,EAAO,CACpB,GAAI,KAAK,OAAQ,CACf,IAAIC,EAAW,KACXC,EAAY,GAChB,QAASjD,KAAS+C,EACZ/C,IAAU,KACZiD,EAAY,GACHA,GACT,KAAK,OAAO,YAAYD,EAAUhD,CAAK,EACvCgD,EAAWhD,GAEX,KAAK,OAAO,aAAagD,EAAUhD,CAAK,EAGvCiD,GACH,KAAK,OAAM,CAEf,CACA,OAAO,IACT,CACA,MAAO,CACL,IAAIC,EAAU,KACd,KAAOA,EAAQ,QAAUA,EAAQ,OAAO,OAAS,YAC/CA,EAAUA,EAAQ,OAEpB,OAAOA,CACT,CACA,OAAOC,EAAGC,EAAQ,CAChB,IAAI5G,EAAQ,CAAA,EACR6G,EAAaD,GAAU,KAC3BA,EAASA,GAA0B,IAAI,IACvC,IAAIE,EAAkB,EACtB,QAASlV,KAAQ,KAAM,CAIrB,GAHI,CAAC,OAAO,UAAU,eAAe,KAAK,KAAMA,CAAI,GAGhDA,IAAS,UAAYA,IAAS,aAAc,SAChD,IAAIlD,EAAQ,KAAKkD,CAAI,EACrB,GAAI,MAAM,QAAQlD,CAAK,EACrBsR,EAAMpO,CAAI,EAAIlD,EAAM,IAAK8N,GACnB,OAAOA,GAAM,UAAYA,EAAE,OACtBA,EAAE,OAAO,KAAMoK,CAAM,EAErBpK,CAEV,UACQ,OAAO9N,GAAU,UAAYA,EAAM,OAC5CsR,EAAMpO,CAAI,EAAIlD,EAAM,OAAO,KAAMkY,CAAM,UAC9BhV,IAAS,SAAU,CAC5B,GAAIlD,GAAS,KAAM,SACnB,IAAIqY,EAAUH,EAAO,IAAIlY,EAAM,KAAK,EAChCqY,GAAW,OACbA,EAAUD,EACVF,EAAO,IAAIlY,EAAM,MAAOoY,CAAe,EACvCA,KAEF9G,EAAMpO,CAAI,EAAI,CACZ,IAAKlD,EAAM,IACX,QAAAqY,EACA,MAAOrY,EAAM,KACzB,CACQ,MACEsR,EAAMpO,CAAI,EAAIlD,CAElB,CACA,OAAImY,IACF7G,EAAM,OAAS,CAAC,GAAG4G,EAAO,KAAI,CAAE,EAAE,IAAKI,GAAWA,EAAO,OAAM,CAAE,GAE5DhH,CACT,CACA,SAAU,CACR,OAAK,KAAK,aACR,KAAK,WAAa,IAAI,MAAM,KAAM,KAAK,kBAAA,CAAmB,GAErD,KAAK,UACd,CACA,SAASiH,EAAenC,EAAW,CAC7BmC,EAAa,YAAWA,EAAeA,EAAa,WACxD,IAAIP,EAAU,GACd,OAAAO,EAAa,KAAOzK,GAAM,CACxBkK,GAAWlK,CACb,CAAC,EACMkK,CACT,CACA,KAAKA,EAASlS,EAAM2R,EAAO,CAAA,EAAI,CAC7B,IAAIe,EAAO,CAAE,KAAM,IAAI,EACvB,QAAS1K,KAAK2J,EAAMe,EAAK1K,CAAC,EAAI2J,EAAK3J,CAAC,EACpC,OAAOkK,EAAQ,KAAKlS,EAAM0S,CAAI,CAChC,CACJ,CACEpT,OAAAA,GAAO+R,EACPA,EAAK,QAAUA,EACR/R,EACT,CACA,IAAIqT,GACAC,GACJ,SAASC,IAAiB,CACxB,GAAID,GAAoB,OAAOD,GAC/BC,GAAqB,EACrB,IAAIvB,EAAOV,GAAW,EACtB,MAAMmC,UAAgBzB,CAAK,CACzB,YAAYC,EAAU,CACpB,MAAMA,CAAQ,EACd,KAAK,KAAO,SACd,CACJ,CACEqB,OAAAA,GAAUG,EACVA,EAAQ,QAAUA,EACXH,EACT,CACA,IAAII,GACAC,GACJ,SAASC,IAAqB,CAC5B,GAAID,GAAwB,OAAOD,GACnCC,GAAyB,EACzB,IAAI3B,EAAOV,GAAW,EACtB,MAAMuC,UAAoB7B,CAAK,CAC7B,IAAI,UAAW,CACb,OAAO,KAAK,KAAK,WAAW,IAAI,GAAK,KAAK,KAAK,CAAC,IAAM,GACxD,CACA,YAAYC,EAAU,CAChBA,GAAY,OAAOA,EAAS,OAAU,aAAe,OAAOA,EAAS,OAAU,WACjFA,EAAW6B,GAAAC,EAAA,GAAK9B,GAAL,CAAe,MAAO,OAAOA,EAAS,KAAK,CAAC,IAEzD,MAAMA,CAAQ,EACd,KAAK,KAAO,MACd,CACJ,CACEyB,OAAAA,GAAcG,EACdA,EAAY,QAAUA,EACfH,EACT,CACA,IAAIM,GACAC,GACJ,SAASC,IAAmB,CAC1B,GAAID,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,IAAIR,EAAUD,GAAc,EACxBK,EAAcD,GAAkB,EAChC5B,EAAOV,GAAW,EAClB,CAAE,QAAAC,EAAS,GAAAC,CAAE,EAAKJ,GAAc,EAChC+C,EAAQC,EAAOC,EAAMC,EACzB,SAASC,EAAY7B,EAAO,CAC1B,OAAOA,EAAM,IAAK/J,IACZA,EAAE,QAAOA,EAAE,MAAQ4L,EAAY5L,EAAE,KAAK,GAC1C,OAAOA,EAAE,OACFA,EACR,CACH,CACA,SAAS6L,EAAc7E,EAAO,CAE5B,GADAA,EAAM4B,CAAO,EAAI,GACb5B,EAAM,QAAQ,MAChB,QAAShH,KAAKgH,EAAM,QAAQ,MAC1B6E,EAAc7L,CAAC,CAGrB,CACA,MAAM8L,UAAkBzC,CAAK,CAC3B,IAAI,OAAQ,CACV,GAAK,KAAK,QAAQ,MAClB,OAAO,KAAK,QAAQ,MAAM,CAAC,CAC7B,CACA,IAAI,MAAO,CACT,GAAK,KAAK,QAAQ,MAClB,OAAO,KAAK,QAAQ,MAAM,KAAK,QAAQ,MAAM,OAAS,CAAC,CACzD,CACA,UAAU0C,EAAU,CAClB,QAASrE,KAASqE,EAAU,CAC1B,IAAIhC,EAAQ,KAAK,UAAUrC,EAAO,KAAK,IAAI,EAC3C,QAASV,KAAS+C,EAAO,KAAK,QAAQ,MAAM,KAAK/C,CAAK,CACxD,CACA,YAAK,UAAS,EACP,IACT,CACA,UAAU0C,EAAa,CAErB,GADA,MAAM,UAAUA,CAAW,EACvB,KAAK,MACP,QAAS1C,KAAS,KAAK,MAAOA,EAAM,UAAU0C,CAAW,CAE7D,CACA,KAAKsC,EAAU,CACb,GAAI,CAAC,KAAK,QAAQ,MAAO,OACzB,IAAIC,EAAW,KAAK,YAAW,EAC3BzW,EAAO0U,EACX,KAAO,KAAK,QAAQ+B,CAAQ,EAAI,KAAK,QAAQ,MAAM,SACjDzW,EAAQ,KAAK,QAAQyW,CAAQ,EAC7B/B,EAAU8B,EAAS,KAAK,QAAQ,MAAMxW,CAAK,EAAGA,CAAK,EAC/C0U,IAAY,KAChB,KAAK,QAAQ+B,CAAQ,GAAK,EAE5B,cAAO,KAAK,QAAQA,CAAQ,EACrB/B,CACT,CACA,MAAMgC,EAAW,CACf,OAAO,KAAK,MAAM,MAAMA,CAAS,CACnC,CACA,aAAc,CACP,KAAK,WAAU,KAAK,SAAW,GAC/B,KAAK,UAAS,KAAK,QAAU,CAAA,GAClC,KAAK,UAAY,EACjB,IAAID,EAAW,KAAK,SACpB,YAAK,QAAQA,CAAQ,EAAI,EAClBA,CACT,CACA,mBAAoB,CAClB,MAAO,CACL,IAAIjF,EAAOiB,EAAM,CACf,OAAIA,IAAS,UACJjB,EACGA,EAAMiB,CAAI,EAEXA,IAAS,QAAU,OAAOA,GAAS,UAAYA,EAAK,WAAW,MAAM,EACvE,IAAIkE,IACFnF,EAAMiB,CAAI,EACf,GAAGkE,EAAK,IAAKnM,GACP,OAAOA,GAAM,WACR,CAAC0H,EAAOlS,IAAUwK,EAAE0H,EAAM,QAAO,EAAIlS,CAAK,EAE1CwK,CAEV,CACjB,EAEqBiI,IAAS,SAAWA,IAAS,OAC9BmE,GACCpF,EAAMiB,CAAI,EACf,CAACP,KAAUjT,IAAU2X,EAAG1E,EAAM,QAAO,EAAI,GAAGjT,CAAK,CACjE,EAEqBwT,IAAS,OACX,IAAMjB,EAAM,KAAI,EAAG,QAAO,EACxBiB,IAAS,QACXjB,EAAM,MAAM,IAAKhH,GAAMA,EAAE,QAAA,CAAS,EAChCiI,IAAS,SAAWA,IAAS,OAC/BjB,EAAMiB,CAAI,EAAE,QAAO,EAEnBjB,EAAMiB,CAAI,EA1BVjB,EAAMiB,CAAI,CA4BrB,EACA,IAAIjB,EAAOiB,EAAM/V,EAAO,CACtB,OAAI8U,EAAMiB,CAAI,IAAM/V,IACpB8U,EAAMiB,CAAI,EAAI/V,GACV+V,IAAS,QAAUA,IAAS,UAAYA,IAAS,aACnDjB,EAAM,UAAS,GAEV,EACT,CACR,CACI,CACA,MAAMU,EAAO,CACX,OAAI,OAAOA,GAAU,SAAiBA,GAClCA,EAAM,UAASA,EAAQA,EAAM,SAC1B,KAAK,QAAQ,MAAM,QAAQA,CAAK,EACzC,CACA,YAAY2E,EAAO7C,EAAK,CACtB,IAAI8C,EAAa,KAAK,MAAMD,CAAK,EAC7BtC,EAAQ,KAAK,UAAUP,EAAK,KAAK,QAAQ,MAAM8C,CAAU,CAAC,EAAE,QAAO,EACvEA,EAAa,KAAK,MAAMD,CAAK,EAC7B,QAASrF,KAAS+C,EAAO,KAAK,QAAQ,MAAM,OAAOuC,EAAa,EAAG,EAAGtF,CAAK,EAC3E,IAAIxR,EACJ,QAAS2B,KAAM,KAAK,QAClB3B,EAAQ,KAAK,QAAQ2B,CAAE,EACnBmV,EAAa9W,IACf,KAAK,QAAQ2B,CAAE,EAAI3B,EAAQuU,EAAM,QAGrC,YAAK,UAAS,EACP,IACT,CACA,aAAasC,EAAO7C,EAAK,CACvB,IAAI8C,EAAa,KAAK,MAAMD,CAAK,EAC7BvU,EAAOwU,IAAe,EAAI,UAAY,GACtCvC,EAAQ,KAAK,UACfP,EACA,KAAK,QAAQ,MAAM8C,CAAU,EAC7BxU,CACR,EAAQ,QAAO,EACTwU,EAAa,KAAK,MAAMD,CAAK,EAC7B,QAASrF,KAAS+C,EAAO,KAAK,QAAQ,MAAM,OAAOuC,EAAY,EAAGtF,CAAK,EACvE,IAAIxR,EACJ,QAAS2B,KAAM,KAAK,QAClB3B,EAAQ,KAAK,QAAQ2B,CAAE,EACnBmV,GAAc9W,IAChB,KAAK,QAAQ2B,CAAE,EAAI3B,EAAQuU,EAAM,QAGrC,YAAK,UAAS,EACP,IACT,CACA,UAAUA,EAAOwC,EAAQ,CACvB,GAAI,OAAOxC,GAAU,SACnBA,EAAQ6B,EAAYH,EAAM1B,CAAK,EAAE,KAAK,UAC7B,OAAOA,GAAU,YAC1BA,EAAQ,CAAA,UACC,MAAM,QAAQA,CAAK,EAAG,CAC/BA,EAAQA,EAAM,MAAM,CAAC,EACrB,QAAS/J,KAAK+J,EACR/J,EAAE,QAAQA,EAAE,OAAO,YAAYA,EAAG,QAAQ,CAElD,SAAW+J,EAAM,OAAS,QAAU,KAAK,OAAS,WAAY,CAC5DA,EAAQA,EAAM,MAAM,MAAM,CAAC,EAC3B,QAAS/J,KAAK+J,EACR/J,EAAE,QAAQA,EAAE,OAAO,YAAYA,EAAG,QAAQ,CAElD,SAAW+J,EAAM,KACfA,EAAQ,CAACA,CAAK,UACLA,EAAM,KAAM,CACrB,GAAI,OAAOA,EAAM,OAAU,YACzB,MAAM,IAAI,MAAM,wCAAwC,EAC/C,OAAOA,EAAM,OAAU,WAChCA,EAAM,MAAQ,OAAOA,EAAM,KAAK,GAElCA,EAAQ,CAAC,IAAImB,EAAYnB,CAAK,CAAC,CACjC,SAAWA,EAAM,UAAYA,EAAM,UACjCA,EAAQ,CAAC,IAAI4B,EAAK5B,CAAK,CAAC,UACfA,EAAM,KACfA,EAAQ,CAAC,IAAIyB,EAAOzB,CAAK,CAAC,UACjBA,EAAM,KACfA,EAAQ,CAAC,IAAIe,EAAQf,CAAK,CAAC,MAE3B,OAAM,IAAI,MAAM,oCAAoC,EAgBtD,OAdgBA,EAAM,IAAK/J,IACpBA,EAAE6I,CAAE,GAAGiD,EAAU,QAAQ9L,CAAC,EAC/BA,EAAIA,EAAE,QACFA,EAAE,QAAQA,EAAE,OAAO,YAAYA,CAAC,EAChCA,EAAE4I,CAAO,GAAGiD,EAAc7L,CAAC,EAC1BA,EAAE,OAAMA,EAAE,KAAO,CAAA,GAClB,OAAOA,EAAE,KAAK,QAAW,aACvBuM,GAAU,OAAOA,EAAO,KAAK,QAAW,cAC1CvM,EAAE,KAAK,OAASuM,EAAO,KAAK,OAAO,QAAQ,MAAO,EAAE,GAGxDvM,EAAE,OAAS,KAAK,QACTA,EACR,CAEH,CACA,WAAW+L,EAAU,CACnBA,EAAWA,EAAS,QAAO,EAC3B,QAASrE,KAASqE,EAAU,CAC1B,IAAIhC,EAAQ,KAAK,UAAUrC,EAAO,KAAK,MAAO,SAAS,EAAE,QAAO,EAChE,QAASV,KAAS+C,EAAO,KAAK,QAAQ,MAAM,QAAQ/C,CAAK,EACzD,QAAS7P,KAAM,KAAK,QAClB,KAAK,QAAQA,CAAE,EAAI,KAAK,QAAQA,CAAE,EAAI4S,EAAM,MAEhD,CACA,YAAK,UAAS,EACP,IACT,CACA,KAAKrC,EAAO,CACV,OAAAA,EAAM,OAAS,KACf,KAAK,QAAQ,MAAM,KAAKA,CAAK,EACtB,IACT,CACA,WAAY,CACV,QAASV,KAAS,KAAK,QAAQ,MAAOA,EAAM,OAAS,OACrD,YAAK,QAAQ,MAAQ,CAAA,EACrB,KAAK,UAAS,EACP,IACT,CACA,YAAYU,EAAO,CACjBA,EAAQ,KAAK,MAAMA,CAAK,EACxB,KAAK,QAAQ,MAAMA,CAAK,EAAE,OAAS,OACnC,KAAK,QAAQ,MAAM,OAAOA,EAAO,CAAC,EAClC,IAAIlS,EACJ,QAAS2B,KAAM,KAAK,QAClB3B,EAAQ,KAAK,QAAQ2B,CAAE,EACnB3B,GAASkS,IACX,KAAK,QAAQvQ,CAAE,EAAI3B,EAAQ,GAG/B,YAAK,UAAS,EACP,IACT,CACA,cAAcgX,EAAS7C,EAAMqC,EAAU,CACrC,OAAKA,IACHA,EAAWrC,EACXA,EAAO,CAAA,GAET,KAAK,UAAW8C,GAAS,CACnB9C,EAAK,OAAS,CAACA,EAAK,MAAM,SAAS8C,EAAK,IAAI,GAC5C9C,EAAK,MAAQ,CAAC8C,EAAK,MAAM,SAAS9C,EAAK,IAAI,IAC/C8C,EAAK,MAAQA,EAAK,MAAM,QAAQD,EAASR,CAAQ,EACnD,CAAC,EACD,KAAK,UAAS,EACP,IACT,CACA,KAAKE,EAAW,CACd,OAAO,KAAK,MAAM,KAAKA,CAAS,CAClC,CACA,KAAKF,EAAU,CACb,OAAO,KAAK,KAAK,CAACtE,EAAO1H,IAAM,CAC7B,IAAIkK,EACJ,GAAI,CACFA,EAAU8B,EAAStE,EAAO1H,CAAC,CAC7B,OAAS0M,EAAI,CACX,MAAMhF,EAAM,WAAWgF,CAAE,CAC3B,CACA,OAAIxC,IAAY,IAASxC,EAAM,OAC7BwC,EAAUxC,EAAM,KAAKsE,CAAQ,GAExB9B,CACT,CAAC,CACH,CACA,YAAY9U,EAAM4W,EAAU,CAC1B,OAAKA,EAQD5W,aAAgB,OACX,KAAK,KAAK,CAACsS,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,UAAYtS,EAAK,KAAKsS,EAAM,IAAI,EACjD,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,EAEI,KAAK,KAAK,CAAC0H,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,UAAYA,EAAM,OAAStS,EAC5C,OAAO4W,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,GAlBCgM,EAAW5W,EACJ,KAAK,KAAK,CAACsS,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,SACjB,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,EAcL,CACA,aAAagM,EAAU,CACrB,OAAO,KAAK,KAAK,CAACtE,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,UACjB,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,CACH,CACA,UAAUiI,EAAM+D,EAAU,CACxB,OAAKA,EAQD/D,aAAgB,OACX,KAAK,KAAK,CAACP,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,QAAUO,EAAK,KAAKP,EAAM,IAAI,EAC/C,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,EAEI,KAAK,KAAK,CAAC0H,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,QAAUA,EAAM,OAASO,EAC1C,OAAO+D,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,GAlBCgM,EAAW/D,EACJ,KAAK,KAAK,CAACP,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,OACjB,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,EAcL,CACA,UAAU0D,EAAUsI,EAAU,CAC5B,OAAKA,EAQDtI,aAAoB,OACf,KAAK,KAAK,CAACgE,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,QAAUhE,EAAS,KAAKgE,EAAM,QAAQ,EACvD,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,EAEI,KAAK,KAAK,CAAC0H,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,QAAUA,EAAM,WAAahE,EAC9C,OAAOsI,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,GAlBCgM,EAAWtI,EACJ,KAAK,KAAK,CAACgE,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,OACjB,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,EAcL,CACJ,CACE,OAAA8L,EAAU,cAAiBa,GAAc,CACvClB,EAAQkB,CACV,EACAb,EAAU,aAAgBa,GAAc,CACtChB,EAAOgB,CACT,EACAb,EAAU,eAAkBa,GAAc,CACxCnB,EAASmB,CACX,EACAb,EAAU,aAAgBa,GAAc,CACtCjB,EAAOiB,CACT,EACAtB,GAAYS,EACZA,EAAU,QAAUA,EACpBA,EAAU,QAAW9E,GAAU,CACzBA,EAAM,OAAS,SACjB,OAAO,eAAeA,EAAOwE,EAAO,SAAS,EACpCxE,EAAM,OAAS,OACxB,OAAO,eAAeA,EAAO2E,EAAK,SAAS,EAClC3E,EAAM,OAAS,OACxB,OAAO,eAAeA,EAAOkE,EAAY,SAAS,EACzClE,EAAM,OAAS,UACxB,OAAO,eAAeA,EAAO8D,EAAQ,SAAS,EACrC9D,EAAM,OAAS,QACxB,OAAO,eAAeA,EAAO0E,EAAK,SAAS,EAE7C1E,EAAM6B,CAAE,EAAI,GACR7B,EAAM,OACRA,EAAM,MAAM,QAASU,GAAU,CAC7BoE,EAAU,QAAQpE,CAAK,CACzB,CAAC,CAEL,EACO2D,EACT,CACA,IAAIuB,GACAC,GACJ,SAASC,IAAgB,CACvB,GAAID,GAAmB,OAAOD,GAC9BC,GAAoB,EACpB,IAAIf,EAAYP,GAAgB,EAChC,MAAMC,UAAeM,CAAU,CAC7B,YAAYxC,EAAU,CACpB,MAAMA,CAAQ,EACd,KAAK,KAAO,QACd,CACA,UAAUyC,EAAU,CAClB,OAAK,KAAK,QAAQ,QAAO,KAAK,MAAQ,CAAA,GAC/B,MAAM,OAAO,GAAGA,CAAQ,CACjC,CACA,WAAWA,EAAU,CACnB,OAAK,KAAK,QAAQ,QAAO,KAAK,MAAQ,CAAA,GAC/B,MAAM,QAAQ,GAAGA,CAAQ,CAClC,CACJ,CACEa,OAAAA,GAASpB,EACTA,EAAO,QAAUA,EACjBM,EAAU,eAAeN,CAAM,EACxBoB,EACT,CACA,IAAIG,GACAC,GACJ,SAASC,IAAkB,CACzB,GAAID,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,IAAIlB,EAAYP,GAAgB,EAC5B2B,EAAYC,EAChB,MAAMC,UAAiBtB,CAAU,CAC/B,YAAYxC,EAAU,CACpB,MAAM8B,EAAA,CAAE,KAAM,YAAe9B,EAAU,EAClC,KAAK,QACR,KAAK,MAAQ,CAAA,EAEjB,CACA,SAASK,EAAO,CAAA,EAAI,CAElB,OADW,IAAIuD,EAAW,IAAIC,EAAa,KAAMxD,CAAI,EACzC,UAAS,CACvB,CACJ,CACEyD,OAAAA,EAAS,mBAAsBT,GAAc,CAC3CO,EAAaP,CACf,EACAS,EAAS,kBAAqBT,GAAc,CAC1CQ,EAAYR,CACd,EACAI,GAAWK,EACXA,EAAS,QAAUA,EACZL,EACT,CACA,IAAIM,GACAC,GACJ,SAASC,IAAmB,CAC1B,GAAID,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,IAAIE,EAAc,mEAmBlBH,OAAAA,GAAY,CAAE,OARD,CAACI,EAAO,KAAO,CAC1B,IAAItW,EAAK,GACL6I,EAAIyN,EAAO,EACf,KAAOzN,KACL7I,GAAMqW,EAAY,KAAK,OAAM,EAAK,GAAK,CAAC,EAE1C,OAAOrW,CACT,EACsB,eAlBD,CAACuW,EAAUC,EAAc,KACrC,CAACF,EAAOE,IAAgB,CAC7B,IAAIxW,EAAK,GACL6I,EAAIyN,EAAO,EACf,KAAOzN,KACL7I,GAAMuW,EAAS,KAAK,OAAM,EAAKA,EAAS,OAAS,CAAC,EAEpD,OAAOvW,CACT,CAUkC,EAC7BkW,EACT,CACA,IAAIO,GACAC,GACJ,SAASC,IAAqB,CAC5B,GAAID,GAAwB,OAAOD,GACnCC,GAAyB,EACzB,GAAI,CAAE,WAAAE,EAAY,aAAAC,CAAY,EAAKxJ,GAC/B,CAAE,QAAAyJ,EAAS,KAAAC,CAAI,EAAK1J,GACpB,CAAE,kBAAA2J,EAAmB,mBAAAC,CAAkB,EAAK5J,GAChD,SAAS6J,EAAWlW,EAAK,CACvB,OAAI,OACK,OAAO,KAAKA,EAAK,QAAQ,EAAE,SAAQ,EAEnC,OAAO,KAAKA,CAAG,CAE1B,CACA,MAAMmW,CAAY,CAChB,YAAYjJ,EAAKsE,EAAM,CACrB,GAAIA,EAAK,MAAQ,GAAO,OACxB,KAAK,eAAetE,CAAG,EACvB,KAAK,OAAS,KAAK,UAAU,KAAK,WAAY,OAAO,EACrD,IAAIkJ,EAAO5E,EAAK,IAAMA,EAAK,IAAI,KAAO,OAClC3R,EAAO,KAAK,QAAQ2R,EAAK,KAAM4E,CAAI,EACnC,CAAC,KAAK,SAAW5E,EAAK,OACxB,KAAK,QAAUA,EAAK,MAElB,KAAK,UAAS,KAAK,KAAOsE,EAAQ,KAAK,OAAO,GAC9CjW,IAAM,KAAK,KAAOA,EACxB,CACA,UAAW,CACT,OAAK,KAAK,gBACR,KAAK,cAAgB,IAAImW,EAAkB,KAAK,IAAI,GAE/C,KAAK,aACd,CACA,aAAanW,EAAM,CACjB,IAAIwW,EAAiB,iDACjBC,EAAU,kCACVC,EAAa,0CACbC,EAAM,2BACNC,EAAW5W,EAAK,MAAM0W,CAAU,GAAK1W,EAAK,MAAM2W,CAAG,EACvD,GAAIC,EACF,OAAO,mBAAmB5W,EAAK,OAAO4W,EAAS,CAAC,EAAE,MAAM,CAAC,EAE3D,IAAIC,EAAe7W,EAAK,MAAMwW,CAAc,GAAKxW,EAAK,MAAMyW,CAAO,EACnE,GAAII,EACF,OAAOR,EAAWrW,EAAK,OAAO6W,EAAa,CAAC,EAAE,MAAM,CAAC,EAEvD,IAAIC,EAAW9W,EAAK,MAAM,iCAAiC,EAAE,CAAC,EAC9D,MAAM,IAAI,MAAM,mCAAqC8W,CAAQ,CAC/D,CACA,iBAAiBC,EAAiB,CAChC,OAAOA,EAAgB,QAAQ,8BAA+B,EAAE,EAAE,KAAI,CACxE,CACA,MAAMC,EAAK,CACT,OAAI,OAAOA,GAAQ,SAAiB,GAC7B,OAAOA,EAAI,UAAa,UAAY,OAAOA,EAAI,WAAc,UAAY,MAAM,QAAQA,EAAI,QAAQ,CAC5G,CACA,eAAe3J,EAAK,CAClB,IAAI4J,EAAW5J,EAAI,MAAM,6BAA6B,EACtD,GAAI,CAAC4J,EAAU,OACf,IAAIpJ,EAAQR,EAAI,YAAY4J,EAAS,IAAG,CAAE,EACtCnJ,EAAMT,EAAI,QAAQ,KAAMQ,CAAK,EAC7BA,EAAQ,IAAMC,EAAM,KACtB,KAAK,WAAa,KAAK,iBAAiBT,EAAI,UAAUQ,EAAOC,CAAG,CAAC,EAErE,CACA,SAAS3M,EAAM,CAEb,GADA,KAAK,KAAO8U,EAAQ9U,CAAI,EACpB4U,EAAW5U,CAAI,EACjB,YAAK,QAAUA,EACR6U,EAAa7U,EAAM,OAAO,EAAE,SAAQ,EAAG,KAAI,CAEtD,CACA,QAAQ+L,EAAMqJ,EAAM,CAClB,GAAIA,IAAS,GAAO,MAAO,GAC3B,GAAIA,EAAM,CACR,GAAI,OAAOA,GAAS,SAClB,OAAOA,EACT,GAAW,OAAOA,GAAS,WAAY,CACrC,IAAIW,EAAWX,EAAKrJ,CAAI,EACxB,GAAIgK,EAAU,CACZ,IAAIF,EAAM,KAAK,SAASE,CAAQ,EAChC,GAAI,CAACF,EACH,MAAM,IAAI,MACR,uCAAyCE,EAAS,SAAQ,CAC1E,EAEY,OAAOF,CACT,CACF,KAAA,IAAWT,aAAgBJ,EACzB,OAAOC,EAAmB,cAAcG,CAAI,EAAE,SAAQ,EACxD,GAAWA,aAAgBH,EACzB,OAAOG,EAAK,SAAQ,EACtB,GAAW,KAAK,MAAMA,CAAI,EACxB,OAAO,KAAK,UAAUA,CAAI,EAE1B,MAAM,IAAI,MACR,2CAA6CA,EAAK,SAAQ,CACtE,EAEM,KAAA,IAAW,KAAK,OACd,OAAO,KAAK,aAAa,KAAK,UAAU,EAC1C,GAAW,KAAK,WAAY,CAC1B,IAAIS,EAAM,KAAK,WACf,OAAI9J,IAAM8J,EAAMd,EAAKD,EAAQ/I,CAAI,EAAG8J,CAAG,GAChC,KAAK,SAASA,CAAG,CAC1B,EACF,CACA,UAAUnH,EAAQhC,EAAO,CACvB,OAAKgC,EACEA,EAAO,OAAO,EAAGhC,EAAM,MAAM,IAAMA,EADtB,EAEtB,CACA,aAAc,CACZ,MAAO,CAAC,EAAE,KAAK,SAAQ,EAAG,gBAAkB,KAAK,SAAA,EAAW,eAAe,OAAS,EACtF,CACJ,CACE+H,OAAAA,GAAcU,EACdA,EAAY,QAAUA,EACfV,EACT,CACA,IAAIuB,GACAC,GACJ,SAASC,IAAe,CACtB,GAAID,GAAkB,OAAOD,GAC7BC,GAAmB,EACnB,GAAI,CAAE,OAAAE,CAAM,EAAqB/B,GAAgB,EAC7C,CAAE,WAAAgC,EAAY,QAAAC,CAAO,EAAKhL,GAC1B,CAAE,kBAAA2J,EAAmB,mBAAAC,CAAkB,EAAK5J,GAC5C,CAAE,cAAAiL,EAAe,cAAAC,CAAa,EAAKlL,GACnCM,EAAiBH,GAAqB,EACtC2J,EAAcR,GAAkB,EAChCjJ,EAAoBL,GACpBmL,EAAmB,OAAO,kBAAkB,EAC5CC,EAAqB,GAAQzB,GAAqBC,GAClDyB,EAAgB,GAAQL,GAAWD,GACvC,SAASO,EAAetF,EAAQ,CAC9B,GAAIA,EAAOmF,CAAgB,EAAG,OAAOnF,EAAOmF,CAAgB,EAC5D,IAAI/J,EAAQ4E,EAAO,IAAI,MAAM;CAAI,EAC7BuF,EAAc,IAAI,MAAMnK,EAAM,MAAM,EACpCoK,EAAY,EAChB,QAAShQ,EAAI,EAAGiQ,EAAKrK,EAAM,OAAQ5F,EAAIiQ,EAAIjQ,IACzC+P,EAAY/P,CAAC,EAAIgQ,EACjBA,GAAapK,EAAM5F,CAAC,EAAE,OAAS,EAEjC,OAAAwK,EAAOmF,CAAgB,EAAII,EACpBA,CACT,CACA,MAAMG,CAAM,CACV,IAAI,MAAO,CACT,OAAO,KAAK,MAAQ,KAAK,EAC3B,CACA,YAAY7K,EAAKsE,EAAO,CAAA,EAAI,CAC1B,GAAItE,IAAQ,MAAQ,OAAOA,GAAQ,aAAe,OAAOA,GAAQ,UAAY,CAACA,EAAI,SAChF,MAAM,IAAI,MAAM,oBAAoBA,CAAG,wBAAwB,EAkBjE,GAhBA,KAAK,IAAMA,EAAI,SAAQ,EACnB,KAAK,IAAI,CAAC,IAAM,UAAY,KAAK,IAAI,CAAC,IAAM,UAC9C,KAAK,OAAS,GACd,KAAK,IAAM,KAAK,IAAI,MAAM,CAAC,GAE3B,KAAK,OAAS,GAEhB,KAAK,SAAW,KAAK,IACjBsE,EAAK,WAAU,KAAK,SAAWA,EAAK,SAAS,SAAQ,GACrDA,EAAK,OACH,CAACkG,GAAiB,YAAY,KAAKlG,EAAK,IAAI,GAAK4F,EAAW5F,EAAK,IAAI,EACvE,KAAK,KAAOA,EAAK,KAEjB,KAAK,KAAO6F,EAAQ7F,EAAK,IAAI,GAG7BkG,GAAiBD,EAAoB,CACvC,IAAIZ,EAAM,IAAIV,EAAY,KAAK,IAAK3E,CAAI,EACxC,GAAIqF,EAAI,KAAM,CACZ,KAAK,IAAMA,EACX,IAAI9J,EAAO8J,EAAI,SAAQ,EAAG,KACtB,CAAC,KAAK,MAAQ9J,IAAM,KAAK,KAAO,KAAK,WAAWA,CAAI,EAC1D,CACF,CACK,KAAK,OACR,KAAK,GAAK,cAAgBoK,EAAO,CAAC,EAAI,KAEpC,KAAK,MAAK,KAAK,IAAI,KAAO,KAAK,KACrC,CACA,MAAMvK,EAASC,EAAMC,EAAQ0E,EAAO,CAAA,EAAI,CACtC,IAAIwG,EAAWC,EAASC,EAAWjH,EAAQc,EAC3C,GAAIlF,GAAQ,OAAOA,GAAS,SAAU,CACpC,IAAIa,EAAQb,EACRc,EAAMb,EACV,GAAI,OAAOY,EAAM,QAAW,SAAU,CACpCuD,EAASvD,EAAM,OACf,IAAI/J,EAAM,KAAK,WAAWsN,CAAM,EAChCpE,EAAOlJ,EAAI,KACXmJ,EAASnJ,EAAI,GACf,MACEkJ,EAAOa,EAAM,KACbZ,EAASY,EAAM,OACfuD,EAAS,KAAK,kBAAkBpE,EAAMC,CAAM,EAE9C,GAAI,OAAOa,EAAI,QAAW,SAAU,CAClCuK,EAAYvK,EAAI,OAChB,IAAIhK,EAAM,KAAK,WAAWuU,CAAS,EACnCD,EAAUtU,EAAI,KACdqU,EAAYrU,EAAI,GAClB,MACEsU,EAAUtK,EAAI,KACdqK,EAAYrK,EAAI,OAChBuK,EAAY,KAAK,kBAAkBvK,EAAI,KAAMA,EAAI,MAAM,CAE3D,SAAYb,EAMVmE,EAAS,KAAK,kBAAkBpE,EAAMC,CAAM,MAN1B,CAClBmE,EAASpE,EACT,IAAIlJ,EAAM,KAAK,WAAWsN,CAAM,EAChCpE,EAAOlJ,EAAI,KACXmJ,EAASnJ,EAAI,GACf,CAGA,IAAIrC,EAAS,KAAK,OAAOuL,EAAMC,EAAQmL,EAASD,CAAS,EACzD,OAAI1W,EACFyQ,EAAU,IAAIpF,EACZC,EACAtL,EAAO,UAAY,OAASA,EAAO,KAAO,CAAE,OAAQA,EAAO,OAAQ,KAAMA,EAAO,IAAI,EACpFA,EAAO,UAAY,OAASA,EAAO,OAAS,CAAE,OAAQA,EAAO,UAAW,KAAMA,EAAO,OAAO,EAC5FA,EAAO,OACPA,EAAO,KACPkQ,EAAK,MACf,EAEQO,EAAU,IAAIpF,EACZC,EACAqL,IAAY,OAASpL,EAAO,CAAE,OAAAC,EAAQ,KAAAD,CAAI,EAC1CoL,IAAY,OAASnL,EAAS,CAAE,OAAQkL,EAAW,KAAMC,CAAO,EAChE,KAAK,IACL,KAAK,KACLzG,EAAK,MACf,EAEMO,EAAQ,MAAQ,CAAE,OAAAjF,EAAQ,UAAAkL,EAAW,QAAAC,EAAS,UAAAC,EAAW,KAAArL,EAAM,OAAAoE,EAAQ,OAAQ,KAAK,GAAG,EACnF,KAAK,OACHsG,IACFxF,EAAQ,MAAM,IAAMwF,EAAc,KAAK,IAAI,EAAE,SAAQ,GAEvDxF,EAAQ,MAAM,KAAO,KAAK,MAErBA,CACT,CACA,kBAAkBlF,EAAMC,EAAQ,CAG9B,OAFkB6K,EAAe,IAAI,EACb9K,EAAO,CAAC,EACjBC,EAAS,CAC1B,CACA,WAAWmE,EAAQ,CACjB,IAAI2G,EAAcD,EAAe,IAAI,EACjCQ,EAAWP,EAAYA,EAAY,OAAS,CAAC,EAC7CQ,EAAM,EACV,GAAInH,GAAUkH,EACZC,EAAMR,EAAY,OAAS,MACtB,CACL,IAAIS,EAAMT,EAAY,OAAS,EAC3BU,EACJ,KAAOF,EAAMC,GAEX,GADAC,EAAMF,GAAOC,EAAMD,GAAO,GACtBnH,EAAS2G,EAAYU,CAAG,EAC1BD,EAAMC,EAAM,UACHrH,GAAU2G,EAAYU,EAAM,CAAC,EACtCF,EAAME,EAAM,MACP,CACLF,EAAME,EACN,KACF,CAEJ,CACA,MAAO,CACL,IAAKrH,EAAS2G,EAAYQ,CAAG,EAAI,EACjC,KAAMA,EAAM,CACpB,CACI,CACA,WAAWrL,EAAM,CACf,MAAI,YAAY,KAAKA,CAAI,EAChBA,EAEFsK,EAAQ,KAAK,IAAI,SAAQ,EAAG,YAAc,KAAK,IAAI,MAAQ,IAAKtK,CAAI,CAC7E,CACA,OAAOF,EAAMC,EAAQmL,EAASD,EAAW,CACvC,GAAI,CAAC,KAAK,IAAK,MAAO,GACtB,IAAIO,EAAW,KAAK,IAAI,SAAQ,EAC5BC,EAAOD,EAAS,oBAAoB,CAAE,OAAAzL,EAAQ,KAAAD,CAAI,CAAE,EACxD,GAAI,CAAC2L,EAAK,OAAQ,MAAO,GACzB,IAAIC,EACA,OAAOR,GAAY,WACrBQ,EAAKF,EAAS,oBAAoB,CAAE,OAAQP,EAAW,KAAMC,CAAA,CAAS,GAExE,IAAIS,EACAtB,EAAWoB,EAAK,MAAM,EACxBE,EAAUnB,EAAciB,EAAK,MAAM,EAEnCE,EAAU,IAAI,IACZF,EAAK,OACL,KAAK,IAAI,SAAQ,EAAG,YAAcjB,EAAc,KAAK,IAAI,OAAO,CAC1E,EAEM,IAAIxF,EAAU,CACZ,OAAQyG,EAAK,OACb,UAAWC,GAAMA,EAAG,OACpB,QAASA,GAAMA,EAAG,KAClB,KAAMD,EAAK,KACX,IAAKE,EAAQ,SAAQ,CAC7B,EACM,GAAIA,EAAQ,WAAa,QACvB,GAAIpB,EACFvF,EAAQ,KAAOuF,EAAcoB,CAAO,MAEpC,OAAM,IAAI,MAAM,uDAAuD,EAG3E,IAAI1b,EAASub,EAAS,iBAAiBC,EAAK,MAAM,EAClD,OAAIxb,IAAQ+U,EAAQ,OAAS/U,GACtB+U,CACT,CACA,QAAS,CACP,IAAI4G,EAAO,CAAA,EACX,QAAS1b,IAAQ,CAAC,SAAU,MAAO,OAAQ,IAAI,EACzC,KAAKA,CAAI,GAAK,OAChB0b,EAAK1b,CAAI,EAAI,KAAKA,CAAI,GAG1B,OAAI,KAAK,MACP0b,EAAK,IAAM1F,EAAA,GAAK,KAAK,KACjB0F,EAAK,IAAI,gBACXA,EAAK,IAAI,cAAgB,SAGtBA,CACT,CACJ,CACE3B,OAAAA,GAAQe,EACRA,EAAM,QAAUA,EACZrL,GAAqBA,EAAkB,eACzCA,EAAkB,cAAcqL,CAAK,EAEhCf,EACT,CACA,IAAI4B,GACAC,GACJ,SAASC,IAAc,CACrB,GAAID,GAAiB,OAAOD,GAC5BC,GAAkB,EAClB,IAAIlF,EAAYP,GAAgB,EAC5B2B,EAAYC,EAChB,MAAMzB,UAAaI,CAAU,CAC3B,YAAYxC,EAAU,CACpB,MAAMA,CAAQ,EACd,KAAK,KAAO,OACP,KAAK,QAAO,KAAK,MAAQ,CAAA,EAChC,CACA,UAAU5B,EAAO6E,EAAQzU,EAAM,CAC7B,IAAIiS,EAAQ,MAAM,UAAUrC,CAAK,EACjC,GAAI6E,GACF,GAAIzU,IAAS,UACP,KAAK,MAAM,OAAS,EACtByU,EAAO,KAAK,OAAS,KAAK,MAAM,CAAC,EAAE,KAAK,OAExC,OAAOA,EAAO,KAAK,eAEZ,KAAK,QAAUA,EACxB,QAASvF,KAAS+C,EAChB/C,EAAM,KAAK,OAASuF,EAAO,KAAK,OAItC,OAAOxC,CACT,CACA,YAAYrC,EAAOwJ,EAAQ,CACzB,IAAI1b,EAAQ,KAAK,MAAMkS,CAAK,EAC5B,MAAI,CAACwJ,GAAU1b,IAAU,GAAK,KAAK,MAAM,OAAS,IAChD,KAAK,MAAM,CAAC,EAAE,KAAK,OAAS,KAAK,MAAMA,CAAK,EAAE,KAAK,QAE9C,MAAM,YAAYkS,CAAK,CAChC,CACA,SAASiC,EAAO,CAAA,EAAI,CAElB,OADW,IAAIuD,EAAW,IAAIC,EAAa,KAAMxD,CAAI,EACzC,UAAS,CACvB,CACJ,CACE,OAAA+B,EAAK,mBAAsBiB,GAAc,CACvCO,EAAaP,CACf,EACAjB,EAAK,kBAAqBiB,GAAc,CACtCQ,EAAYR,CACd,EACAoE,GAAOrF,EACPA,EAAK,QAAUA,EACfI,EAAU,aAAaJ,CAAI,EACpBqF,EACT,CACA,IAAII,GACAC,GACJ,SAASC,IAAc,CACrB,GAAID,GAAiB,OAAOD,GAC5BC,GAAkB,EAClB,IAAIE,EAAO,CACT,MAAMzJ,EAAQ,CACZ,OAAOyJ,EAAK,MAAMzJ,EAAQ,CAAC,GAAG,EAAG,EAAI,CACvC,EACA,MAAMA,EAAQ,CACZ,IAAI0J,EAAS,CAAC,IAAK;EAAM,GAAG,EAC5B,OAAOD,EAAK,MAAMzJ,EAAQ0J,CAAM,CAClC,EACA,MAAM1J,EAAQ2J,EAAY/J,EAAM,CAC9B,IAAIgK,EAAQ,CAAA,EACRC,EAAU,GACVC,EAAQ,GACRC,EAAO,EACPC,EAAU,GACVC,EAAY,GACZC,EAAS,GACb,QAASC,KAAUnK,EACbkK,EACFA,EAAS,GACAC,IAAW,KACpBD,EAAS,GACAF,EACLG,IAAWF,IACbD,EAAU,IAEHG,IAAW,KAAOA,IAAW,KACtCH,EAAU,GACVC,EAAYE,GACHA,IAAW,IACpBJ,GAAQ,EACCI,IAAW,IAChBJ,EAAO,IAAGA,GAAQ,GACbA,IAAS,GACdJ,EAAW,SAASQ,CAAM,IAAGL,EAAQ,IAEvCA,GACED,IAAY,IAAID,EAAM,KAAKC,EAAQ,KAAA,CAAM,EAC7CA,EAAU,GACVC,EAAQ,IAERD,GAAWM,EAGf,OAAIvK,GAAQiK,IAAY,KAAID,EAAM,KAAKC,EAAQ,KAAA,CAAM,EAC9CD,CACT,CACJ,EACEN,OAAAA,GAASG,EACTA,EAAK,QAAUA,EACRH,EACT,CACA,IAAIlb,GACAgc,GACJ,SAASC,IAAc,CACrB,GAAID,GAAiB,OAAOhc,GAC5Bgc,GAAkB,EAClB,IAAInG,EAAYP,GAAgB,EAC5B+F,EAAOD,GAAW,EACtB,MAAM1F,UAAaG,CAAU,CAC3B,IAAI,WAAY,CACd,OAAOwF,EAAK,MAAM,KAAK,QAAQ,CACjC,CACA,IAAI,UAAUa,EAAQ,CACpB,IAAI5Y,EAAQ,KAAK,SAAW,KAAK,SAAS,MAAM,MAAM,EAAI,KACtD6Y,EAAM7Y,EAAQA,EAAM,CAAC,EAAI,IAAM,KAAK,IAAI,UAAW,YAAY,EACnE,KAAK,SAAW4Y,EAAO,KAAKC,CAAG,CACjC,CACA,YAAY9I,EAAU,CACpB,MAAMA,CAAQ,EACd,KAAK,KAAO,OACP,KAAK,QAAO,KAAK,MAAQ,CAAA,EAChC,CACJ,CACErT,OAAAA,GAAO0V,EACPA,EAAK,QAAUA,EACfG,EAAU,aAAaH,CAAI,EACpB1V,EACT,CACA,IAAIoc,GACAC,GACJ,SAASC,IAAkB,CACzB,GAAID,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,IAAI9G,EAASsB,GAAa,EACtBhC,EAAUD,GAAc,EACxBK,EAAcD,GAAkB,EAChCiF,EAAQb,GAAY,EACpBf,EAAcR,GAAkB,EAChCpC,EAAOuF,GAAW,EAClBtF,EAAOuG,GAAW,EACtB,SAASM,EAAS1B,EAAM1G,EAAQ,CAC9B,GAAI,MAAM,QAAQ0G,CAAI,EAAG,OAAOA,EAAK,IAAK1c,GAAMoe,EAASpe,CAAC,CAAC,EAC3D,IAAyC1B,EAAAoe,EAAnC,QAAQ2B,GAA2B/f,EAAb4W,EAAAoJ,GAAahgB,EAAb,CAAtB,WACN,GAAI+f,EAAW,CACbrI,EAAS,CAAA,EACT,QAASI,KAAUiI,EAAW,CAC5B,IAAIE,EAAgBxH,GAAAC,EAAA,GAAKZ,GAAL,CAAa,UAAW0F,EAAM,SAAS,GACvDyC,EAAc,MAChBA,EAAc,IAAMxH,GAAAC,EAAA,GACfuH,EAAc,KADC,CAElB,UAAWrE,EAAY,SACnC,IAEQlE,EAAO,KAAKuI,CAAa,CAC3B,CACF,CAIA,GAHIrJ,EAAS,QACXA,EAAS,MAAQwH,EAAK,MAAM,IAAK1c,GAAMoe,EAASpe,EAAGgW,CAAM,CAAC,GAExDd,EAAS,OAAQ,CACnB,IAA6B3W,EAAA2W,EAAS,OAAhC,SAAAiB,GAAuB5X,EAAXwC,EAAAud,GAAW/f,EAAX,CAAZ,YACN2W,EAAS,OAASnU,EACdoV,GAAW,OACbjB,EAAS,OAAO,MAAQc,EAAOG,CAAO,EAE1C,CACA,GAAIjB,EAAS,OAAS,OACpB,OAAO,IAAIoC,EAAKpC,CAAQ,EAC1B,GAAWA,EAAS,OAAS,OAC3B,OAAO,IAAI4B,EAAY5B,CAAQ,EACjC,GAAWA,EAAS,OAAS,OAC3B,OAAO,IAAIqC,EAAKrC,CAAQ,EAC1B,GAAWA,EAAS,OAAS,UAC3B,OAAO,IAAIwB,EAAQxB,CAAQ,EAC7B,GAAWA,EAAS,OAAS,SAC3B,OAAO,IAAIkC,EAAOlC,CAAQ,EAE1B,MAAM,IAAI,MAAM,sBAAwBwH,EAAK,IAAI,CAErD,CACAuB,OAAAA,GAAaG,EACbA,EAAS,QAAUA,EACZH,EACT,CACA,IAAIO,GACAC,GACJ,SAASC,IAAsB,CAC7B,GAAID,GAAyB,OAAOD,GACpCC,GAA0B,EAC1B,GAAI,CAAE,QAAA5E,EAAS,SAAA8E,EAAU,QAAAvD,EAAS,IAAA4C,CAAG,EAAK5N,GACtC,CAAE,kBAAA2J,EAAmB,mBAAAC,CAAkB,EAAK5J,GAC5C,CAAE,cAAAkL,CAAa,EAAKlL,GACpB0L,EAAQb,GAAY,EACpBO,EAAqB,GAAQzB,GAAqBC,GAClDyB,EAAgB,GAAQ5B,GAAWuB,GAAWuD,GAAYX,GAC9D,MAAMY,CAAa,CACjB,YAAY1K,EAAWP,EAAO4B,EAAMsJ,EAAW,CAC7C,KAAK,UAAY3K,EACjB,KAAK,QAAUqB,EAAK,KAAO,CAAA,EAC3B,KAAK,KAAO5B,EACZ,KAAK,KAAO4B,EACZ,KAAK,IAAMsJ,EACX,KAAK,YAAcA,EACnB,KAAK,aAAe,CAAC,KAAK,QAAQ,MAAQ,KAAK,QAAQ,SACvD,KAAK,iBAAmC,IAAI,IAC5C,KAAK,cAAgC,IAAI,IACzC,KAAK,aAA+B,IAAI,GAC1C,CACA,eAAgB,CACd,IAAIC,EACA,KAAK,SAAA,EACPA,EAAU,gCAAkC,KAAK,SAAS,KAAK,IAAI,SAAA,CAAU,EACpE,OAAO,KAAK,QAAQ,YAAe,SAC5CA,EAAU,KAAK,QAAQ,WACd,OAAO,KAAK,QAAQ,YAAe,WAC5CA,EAAU,KAAK,QAAQ,WAAW,KAAK,KAAK,GAAI,KAAK,IAAI,EAEzDA,EAAU,KAAK,WAAU,EAAK,OAEhC,IAAIC,EAAM;EACN,KAAK,IAAI,SAAS;CAAM,IAAGA,EAAM;GACrC,KAAK,KAAOA,EAAM,wBAA0BD,EAAU,KACxD,CACA,eAAgB,CACd,QAAS3E,KAAQ,KAAK,SAAA,EAAY,CAChC,IAAIoC,EAAO,KAAK,MAAM,KAAK,KAAKpC,EAAK,IAAI,CAAC,EACtCxG,EAAQwG,EAAK,MAAQN,EAAQM,EAAK,IAAI,EACtCS,EACA,KAAK,QAAQ,iBAAmB,IAClCA,EAAM,IAAIb,EAAkBI,EAAK,IAAI,EACjCS,EAAI,iBACNA,EAAI,eAAiB,OAGvBA,EAAMT,EAAK,SAAQ,EAErB,KAAK,IAAI,eAAeS,EAAK2B,EAAM,KAAK,MAAM,KAAK,KAAK5I,CAAK,CAAC,CAAC,CACjE,CACF,CACA,iBAAkB,CAChB,GAAI,KAAK,QAAQ,aAAe,GAChC,GAAI,KAAK,KAAM,CACb,IAAIf,EACJ,QAAShH,EAAI,KAAK,KAAK,MAAM,OAAS,EAAGA,GAAK,EAAGA,IAC/CgH,EAAQ,KAAK,KAAK,MAAMhH,CAAC,EACrBgH,EAAM,OAAS,WACfA,EAAM,KAAK,WAAW,qBAAqB,GAC7C,KAAK,KAAK,YAAYhH,CAAC,CAG7B,MAAW,KAAK,MACd,KAAK,IAAM,KAAK,IAAI,QAAQ,0BAA2B,EAAE,EAE7D,CACA,UAAW,CAET,GADA,KAAK,gBAAe,EAChB6P,GAAiBD,GAAsB,KAAK,MAAK,EACnD,OAAO,KAAK,YAAW,EAClB,CACL,IAAI1F,EAAU,GACd,YAAK,UAAU,KAAK,KAAOlK,GAAM,CAC/BkK,GAAWlK,CACb,CAAC,EACM,CAACkK,CAAO,CACjB,CACF,CACA,aAAc,CACZ,GAAI,KAAK,KACP,KAAK,eAAc,UACV,KAAK,SAAQ,EAAG,SAAW,EAAG,CACvC,IAAIqE,EAAO,KAAK,SAAQ,EAAG,CAAC,EAAE,SAAQ,EACtCA,EAAK,KAAO,KAAK,WAAU,EAC3B,KAAK,IAAMH,EAAmB,cAAcG,EAAM,CAChD,qBAAsB,EAChC,CAAS,CACH,MACE,KAAK,IAAM,IAAIH,EAAmB,CAChC,KAAM,KAAK,WAAU,EACrB,qBAAsB,EAChC,CAAS,EACD,KAAK,IAAI,WAAW,CAClB,UAAW,CAAE,OAAQ,EAAG,KAAM,CAAC,EAC/B,SAAU,CAAE,OAAQ,EAAG,KAAM,CAAC,EAC9B,OAAQ,KAAK,KAAK,KAAO,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,EAAI,aAC3E,CAAS,EAKH,OAHI,KAAK,iBAAA,GAAoB,KAAK,kBAAiB,EAC/C,KAAK,MAAQ,KAAK,SAAQ,EAAG,OAAS,GAAG,KAAK,cAAa,EAC3D,KAAK,aAAA,GAAgB,KAAK,cAAa,EACvC,KAAK,SAAA,EACA,CAAC,KAAK,GAAG,EAET,CAAC,KAAK,IAAK,KAAK,GAAG,CAE9B,CACA,gBAAiB,CACf,KAAK,IAAM,GACX,KAAK,IAAM,IAAIA,EAAmB,CAChC,KAAM,KAAK,WAAU,EACrB,qBAAsB,EAC9B,CAAO,EACD,IAAIpJ,EAAO,EACPC,EAAS,EACTmO,EAAW,cACXC,EAAU,CACZ,UAAW,CAAE,OAAQ,EAAG,KAAM,CAAC,EAC/B,SAAU,CAAE,OAAQ,EAAG,KAAM,CAAC,EAC9B,OAAQ,EAChB,EACU5L,EAAM7B,EACV,KAAK,UAAU,KAAK,KAAM,CAACzN,EAAK6O,EAAOlP,IAAS,CAyB9C,GAxBA,KAAK,KAAOK,EACR6O,GAASlP,IAAS,QACpBub,EAAQ,UAAU,KAAOrO,EACzBqO,EAAQ,UAAU,OAASpO,EAAS,EAChC+B,EAAM,QAAUA,EAAM,OAAO,OAC/BqM,EAAQ,OAAS,KAAK,WAAWrM,CAAK,EACtCqM,EAAQ,SAAS,KAAOrM,EAAM,OAAO,MAAM,KAC3CqM,EAAQ,SAAS,OAASrM,EAAM,OAAO,MAAM,OAAS,EACtD,KAAK,IAAI,WAAWqM,CAAO,IAE3BA,EAAQ,OAASD,EACjBC,EAAQ,SAAS,KAAO,EACxBA,EAAQ,SAAS,OAAS,EAC1B,KAAK,IAAI,WAAWA,CAAO,IAG/BzN,EAAQzN,EAAI,MAAM,KAAK,EACnByN,GACFZ,GAAQY,EAAM,OACd6B,EAAOtP,EAAI,YAAY;CAAI,EAC3B8M,EAAS9M,EAAI,OAASsP,GAEtBxC,GAAU9M,EAAI,OAEZ6O,GAASlP,IAAS,QAAS,CAC7B,IAAIkQ,EAAKhB,EAAM,QAAU,CAAE,KAAM,CAAA,CAAE,GAE/B,EADYA,EAAM,OAAS,QAAUA,EAAM,OAAS,UAAY,CAACA,EAAM,QACzDA,IAAUgB,EAAG,MAAQA,EAAG,KAAK,aACzChB,EAAM,QAAUA,EAAM,OAAO,KAC/BqM,EAAQ,OAAS,KAAK,WAAWrM,CAAK,EACtCqM,EAAQ,SAAS,KAAOrM,EAAM,OAAO,IAAI,KACzCqM,EAAQ,SAAS,OAASrM,EAAM,OAAO,IAAI,OAAS,EACpDqM,EAAQ,UAAU,KAAOrO,EACzBqO,EAAQ,UAAU,OAASpO,EAAS,EACpC,KAAK,IAAI,WAAWoO,CAAO,IAE3BA,EAAQ,OAASD,EACjBC,EAAQ,SAAS,KAAO,EACxBA,EAAQ,SAAS,OAAS,EAC1BA,EAAQ,UAAU,KAAOrO,EACzBqO,EAAQ,UAAU,OAASpO,EAAS,EACpC,KAAK,IAAI,WAAWoO,CAAO,GAGjC,CACF,CAAC,CACH,CACA,cAAe,CACb,OAAI,KAAK,SAAA,EACA,GAEL,OAAO,KAAK,QAAQ,YAAe,YAC9B,KAAK,QAAQ,WAElB,KAAK,SAAQ,EAAG,OACX,KAAK,SAAA,EAAW,KAAMrT,GAAMA,EAAE,UAAU,EAE1C,EACT,CACA,UAAW,CACT,GAAI,OAAO,KAAK,QAAQ,QAAW,YACjC,OAAO,KAAK,QAAQ,OAEtB,IAAIsT,EAAa,KAAK,QAAQ,WAC9B,OAAI,OAAOA,GAAe,aAAeA,IAAe,GAC/C,GAEL,KAAK,SAAQ,EAAG,OACX,KAAK,SAAA,EAAW,KAAMtT,GAAMA,EAAE,MAAM,EAEtC,EACT,CACA,OAAQ,CACN,OAAI,OAAO,KAAK,KAAK,KAAQ,YACpB,CAAC,CAAC,KAAK,KAAK,IAEd,KAAK,SAAA,EAAW,OAAS,CAClC,CACA,kBAAmB,CACjB,OAAI,OAAO,KAAK,QAAQ,gBAAmB,YAClC,KAAK,QAAQ,eAElB,KAAK,SAAQ,EAAG,OACX,KAAK,SAAA,EAAW,KAAMA,GAAMA,EAAE,YAAA,CAAa,EAE7C,EACT,CACA,YAAa,CACX,OAAI,KAAK,KAAK,GACL,KAAK,KAAK,KAAK,KAAK,EAAE,EACpB,KAAK,KAAK,KACZ,KAAK,KAAK,KAAK,KAAK,IAAI,EAExB,QAEX,CACA,KAAKkF,EAAM,CAGT,GAFI,KAAK,QAAQ,UACbA,EAAK,WAAW,CAAC,IAAM,IACvB,YAAY,KAAKA,CAAI,EAAG,OAAOA,EACnC,IAAIqO,EAAS,KAAK,cAAc,IAAIrO,CAAI,EACxC,GAAIqO,EAAQ,OAAOA,EACnB,IAAI5C,EAAO,KAAK,KAAK,GAAK1C,EAAQ,KAAK,KAAK,EAAE,EAAI,IAC9C,OAAO,KAAK,QAAQ,YAAe,WACrC0C,EAAO1C,EAAQuB,EAAQmB,EAAM,KAAK,QAAQ,UAAU,CAAC,GAEvD,IAAIxX,EAAO4Z,EAASpC,EAAMzL,CAAI,EAC9B,YAAK,cAAc,IAAIA,EAAM/L,CAAI,EAC1BA,CACT,CACA,UAAW,CACT,GAAI,CAAC,KAAK,aAER,GADA,KAAK,aAAe,CAAA,EAChB,KAAK,KACP,KAAK,KAAK,KAAM6N,GAAU,CACxB,GAAIA,EAAM,QAAUA,EAAM,OAAO,MAAM,IAAK,CAC1C,IAAIgI,EAAMhI,EAAM,OAAO,MAAM,IACxB,KAAK,aAAa,SAASgI,CAAG,GACjC,KAAK,aAAa,KAAKA,CAAG,CAE9B,CACF,CAAC,MACI,CACL,IAAIxE,EAAS,IAAI0F,EAAM,KAAK,YAAa,KAAK,IAAI,EAC9C1F,EAAO,KAAK,KAAK,aAAa,KAAKA,EAAO,GAAG,CACnD,CAEF,OAAO,KAAK,YACd,CACA,mBAAoB,CAClB,IAAIgJ,EAAU,CAAA,EACd,GAAI,KAAK,KACP,KAAK,KAAK,KAAMxM,GAAU,CACxB,GAAIA,EAAM,OAAQ,CAChB,IAAI2J,EAAO3J,EAAM,OAAO,MAAM,KAC9B,GAAI2J,GAAQ,CAAC6C,EAAQ7C,CAAI,EAAG,CAC1B6C,EAAQ7C,CAAI,EAAI,GAChB,IAAIE,EAAU,KAAK,aAAe,KAAK,UAAUF,CAAI,EAAI,KAAK,MAAM,KAAK,KAAKA,CAAI,CAAC,EACnF,KAAK,IAAI,iBAAiBE,EAAS7J,EAAM,OAAO,MAAM,GAAG,CAC3D,CACF,CACF,CAAC,UACQ,KAAK,IAAK,CACnB,IAAI2J,EAAO,KAAK,KAAK,KAAO,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,EAAI,cACpE,KAAK,IAAI,iBAAiBA,EAAM,KAAK,GAAG,CAC1C,CACF,CACA,WAAW3J,EAAO,CAChB,OAAI,KAAK,QAAQ,KACR,KAAK,MAAM,KAAK,QAAQ,IAAI,EAC1B,KAAK,aACP,KAAK,UAAUA,EAAM,OAAO,MAAM,IAAI,EAEtC,KAAK,MAAM,KAAK,KAAKA,EAAM,OAAO,MAAM,IAAI,CAAC,CAExD,CACA,SAAS7O,EAAK,CACZ,OAAI,OACK,OAAO,KAAKA,CAAG,EAAE,SAAS,QAAQ,EAElC,OAAO,KAAK,SAAS,mBAAmBA,CAAG,CAAC,CAAC,CAExD,CACA,UAAUgB,EAAM,CACd,IAAIoa,EAAS,KAAK,iBAAiB,IAAIpa,CAAI,EAC3C,GAAIoa,EAAQ,OAAOA,EACnB,GAAI7D,EAAe,CACjB,IAAI+D,EAAU/D,EAAcvW,CAAI,EAAE,SAAQ,EAC1C,YAAK,iBAAiB,IAAIA,EAAMsa,CAAO,EAChCA,CACT,KACE,OAAM,IAAI,MACR,8DACV,CAEI,CACA,MAAMta,EAAM,CACV,IAAIoa,EAAS,KAAK,aAAa,IAAIpa,CAAI,EACvC,GAAIoa,EAAQ,OAAOA,EACfnB,IAAQ,OACVjZ,EAAOA,EAAK,QAAQ,MAAO,GAAG,GAEhC,IAAIE,EAAM,UAAUF,CAAI,EAAE,QAAQ,QAAS,kBAAkB,EAC7D,YAAK,aAAa,IAAIA,EAAME,CAAG,EACxBA,CACT,CACJ,CACEuZ,OAAAA,GAAeI,EACRJ,EACT,CACA,IAAIc,GACAC,GACJ,SAASC,IAAkB,CACzB,GAAID,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,MAAME,EAAe,GACfC,EAAe,GACfC,EAAY,GACZC,EAAQ,GACRC,EAAU,GACVC,EAAQ,GACRC,EAAO,GACPC,EAAM,EACNC,EAAK,GACLC,EAAc,GACdC,EAAe,GACfC,EAAmB,GACnBC,EAAoB,GACpBC,EAAa,IACbC,EAAc,IACdC,EAAY,GACZC,EAAW,GACXC,EAAQ,GACRC,EAAK,GACLC,EAAY,6BACZC,EAAc,wCACdC,EAAiB,gBACjBC,EAAgB,WACtBzB,OAAAA,GAAW,SAAmBlJ,EAAQhM,EAAU,CAAA,EAAI,CAClD,IAAI6G,EAAMmF,EAAO,IAAI,QAAO,EACxB0G,EAAS1S,EAAQ,aACjBgI,EAAM0M,GAASnB,EAAQnI,EAAMwL,GAC7BC,EAAcC,EAASC,EAAWnhB,EAAGma,GACrCiH,GAASnQ,EAAI,OACbvJ,EAAM,EACN2Z,GAAS,CAAA,EACTC,GAAW,CAAA,EACf,SAASvM,IAAW,CAClB,OAAOrN,CACT,CACA,SAAS6Z,GAASC,GAAM,CACtB,MAAMpL,EAAO,MAAM,YAAcoL,GAAM9Z,CAAG,CAC5C,CACA,SAAS+Z,IAAY,CACnB,OAAOH,GAAS,SAAW,GAAK5Z,GAAO0Z,EACzC,CACA,SAASM,GAAUnM,GAAM,CACvB,GAAI+L,GAAS,OAAQ,OAAOA,GAAS,IAAG,EACxC,GAAI5Z,GAAO0Z,GAAQ,OACnB,IAAIO,EAAiBpM,GAAOA,GAAK,eAAiB,GAElD,OADAnD,EAAOnB,EAAI,WAAWvJ,CAAG,EACjB0K,EAAI,CACV,KAAKyN,EACL,KAAKC,EACL,KAAKE,EACL,KAAKC,EACL,KAAKF,EAAM,CACTvK,EAAO9N,EACP,GACE8N,GAAQ,EACRpD,EAAOnB,EAAI,WAAWuE,CAAI,QACnBpD,IAAS0N,GAAS1N,IAASyN,GAAWzN,IAAS4N,GAAO5N,IAAS6N,GAAM7N,IAAS2N,GACvFkB,EAAe,CAAC,QAAShQ,EAAI,MAAMvJ,EAAK8N,CAAI,CAAC,EAC7C9N,EAAM8N,EAAO,EACb,KACF,CACA,KAAK0K,EACL,KAAKC,EACL,KAAKG,EACL,KAAKC,EACL,KAAKG,EACL,KAAKF,EACL,KAAKH,EAAmB,CACtB,IAAIuB,GAAc,OAAO,aAAaxP,CAAI,EAC1C6O,EAAe,CAACW,GAAaA,GAAala,CAAG,EAC7C,KACF,CACA,KAAK0Y,EAAkB,CAGrB,GAFAjG,GAAOkH,GAAO,OAASA,GAAO,IAAG,EAAG,CAAC,EAAI,GACzCrhB,EAAIiR,EAAI,WAAWvJ,EAAM,CAAC,EACtByS,KAAS,OAASna,IAAMyf,GAAgBzf,IAAM0f,GAAgB1f,IAAM8f,GAAS9f,IAAM6f,GAAW7f,IAAMggB,GAAOhgB,IAAM+f,GAAQ/f,IAAMigB,EAAI,CACrIzK,EAAO9N,EACP,EAAG,CAGD,GAFAwZ,EAAU,GACV1L,EAAOvE,EAAI,QAAQ,IAAKuE,EAAO,CAAC,EAC5BA,IAAS,GACX,GAAIsH,GAAU6E,EAAgB,CAC5BnM,EAAO9N,EACP,KACF,MACE6Z,GAAS,SAAS,EAItB,IADAJ,EAAY3L,EACLvE,EAAI,WAAWkQ,EAAY,CAAC,IAAMxB,GACvCwB,GAAa,EACbD,EAAU,CAACA,CAEf,OAASA,GACTD,EAAe,CAAC,WAAYhQ,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAAG9N,EAAK8N,CAAI,EAC/D9N,EAAM8N,CACR,MACEA,EAAOvE,EAAI,QAAQ,IAAKvJ,EAAM,CAAC,EAC/BoX,GAAU7N,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAC7BA,IAAS,IAAMsL,EAAe,KAAKhC,EAAO,EAC5CmC,EAAe,CAAC,IAAK,IAAKvZ,CAAG,GAE7BuZ,EAAe,CAAC,WAAYnC,GAASpX,EAAK8N,CAAI,EAC9C9N,EAAM8N,GAGV,KACF,CACA,KAAKiK,EACL,KAAKC,EAAc,CACjBsB,GAAQ5O,IAASqN,EAAe,IAAM,IACtCjK,EAAO9N,EACP,EAAG,CAGD,GAFAwZ,EAAU,GACV1L,EAAOvE,EAAI,QAAQ+P,GAAOxL,EAAO,CAAC,EAC9BA,IAAS,GACX,GAAIsH,GAAU6E,EAAgB,CAC5BnM,EAAO9N,EAAM,EACb,KACF,MACE6Z,GAAS,QAAQ,EAIrB,IADAJ,EAAY3L,EACLvE,EAAI,WAAWkQ,EAAY,CAAC,IAAMxB,GACvCwB,GAAa,EACbD,EAAU,CAACA,CAEf,OAASA,GACTD,EAAe,CAAC,SAAUhQ,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAAG9N,EAAK8N,CAAI,EAC7D9N,EAAM8N,EACN,KACF,CACA,KAAKmL,EAAI,CACPC,EAAU,UAAYlZ,EAAM,EAC5BkZ,EAAU,KAAK3P,CAAG,EACd2P,EAAU,YAAc,EAC1BpL,EAAOvE,EAAI,OAAS,EAEpBuE,EAAOoL,EAAU,UAAY,EAE/BK,EAAe,CAAC,UAAWhQ,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAAG9N,EAAK8N,CAAI,EAC9D9N,EAAM8N,EACN,KACF,CACA,KAAKmK,EAAW,CAGd,IAFAnK,EAAO9N,EACPiW,EAAS,GACF1M,EAAI,WAAWuE,EAAO,CAAC,IAAMmK,GAClCnK,GAAQ,EACRmI,EAAS,CAACA,EAGZ,GADAvL,EAAOnB,EAAI,WAAWuE,EAAO,CAAC,EAC1BmI,GAAUvL,IAASwN,GAASxN,IAAS0N,GAAS1N,IAASyN,GAAWzN,IAAS4N,GAAO5N,IAAS6N,GAAM7N,IAAS2N,IAC5GvK,GAAQ,EACJuL,EAAc,KAAK9P,EAAI,OAAOuE,CAAI,CAAC,GAAG,CACxC,KAAOuL,EAAc,KAAK9P,EAAI,OAAOuE,EAAO,CAAC,CAAC,GAC5CA,GAAQ,EAENvE,EAAI,WAAWuE,EAAO,CAAC,IAAMsK,IAC/BtK,GAAQ,EAEZ,CAEFyL,EAAe,CAAC,OAAQhQ,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAAG9N,EAAK8N,CAAI,EAC3D9N,EAAM8N,EACN,KACF,CACA,QAAS,CACHpD,IAASwN,GAAS3O,EAAI,WAAWvJ,EAAM,CAAC,IAAM+Y,GAChDjL,EAAOvE,EAAI,QAAQ,KAAMvJ,EAAM,CAAC,EAAI,EAChC8N,IAAS,IACPsH,GAAU6E,EACZnM,EAAOvE,EAAI,OAEXsQ,GAAS,SAAS,GAGtBN,EAAe,CAAC,UAAWhQ,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAAG9N,EAAK8N,CAAI,EAC9D9N,EAAM8N,IAENqL,EAAY,UAAYnZ,EAAM,EAC9BmZ,EAAY,KAAK5P,CAAG,EAChB4P,EAAY,YAAc,EAC5BrL,EAAOvE,EAAI,OAAS,EAEpBuE,EAAOqL,EAAY,UAAY,EAEjCI,EAAe,CAAC,OAAQhQ,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAAG9N,EAAK8N,CAAI,EAC3D6L,GAAO,KAAKJ,CAAY,EACxBvZ,EAAM8N,GAER,KACF,CACR,CACM,OAAA9N,IACOuZ,CACT,CACA,SAASY,GAAKC,GAAO,CACnBR,GAAS,KAAKQ,EAAK,CACrB,CACA,MAAO,CACL,KAAAD,GACA,UAAAJ,GACA,UAAAC,GACA,SAAA3M,EACN,CACE,EACOuK,EACT,CACA,IAAIyC,GACAC,GACJ,SAASC,IAAgB,CACvB,GAAID,GAAmB,OAAOD,GAC9BC,GAAoB,EACpB,IAAI5K,EAASsB,GAAa,EACtBhC,EAAUD,GAAc,EACxBK,EAAcD,GAAkB,EAChCS,EAAOuF,GAAW,EAClBtF,EAAOuG,GAAW,EAClBoE,EAAY1C,GAAe,EAC/B,MAAM2C,EAAwB,CAC5B,MAAO,GACP,MAAO,EACX,EACE,SAASC,EAAqBC,EAAQ,CACpC,QAASzW,EAAIyW,EAAO,OAAS,EAAGzW,GAAK,EAAGA,IAAK,CAC3C,IAAIkW,EAAQO,EAAOzW,CAAC,EAChBlE,EAAMoa,EAAM,CAAC,GAAKA,EAAM,CAAC,EAC7B,GAAIpa,EAAK,OAAOA,CAClB,CACF,CACA,MAAM4a,CAAO,CACX,YAAYlM,EAAQ,CAClB,KAAK,MAAQA,EACb,KAAK,KAAO,IAAIkB,EAChB,KAAK,QAAU,KAAK,KACpB,KAAK,OAAS,GACd,KAAK,UAAY,GACjB,KAAK,gBAAe,EACpB,KAAK,KAAK,OAAS,CAAE,MAAOlB,EAAQ,MAAO,CAAE,OAAQ,EAAG,KAAM,EAAG,OAAQ,CAAC,CAAE,CAC9E,CACA,OAAO0L,EAAO,CACZ,IAAIlP,EAAQ,IAAIwE,EAChBxE,EAAM,KAAOkP,EAAM,CAAC,EAAE,MAAM,CAAC,EACzBlP,EAAM,OAAS,IACjB,KAAK,cAAcA,EAAOkP,CAAK,EAEjC,KAAK,KAAKlP,EAAOkP,EAAM,CAAC,CAAC,EACzB,IAAIpe,EACAyW,EACAoI,EACAlP,EAAO,GACPmP,EAAO,GACP1P,EAAS,CAAA,EACT2P,EAAW,CAAA,EACf,KAAO,CAAC,KAAK,UAAU,UAAA,GAAa,CAUlC,GATAX,EAAQ,KAAK,UAAU,UAAS,EAChCpe,EAAOoe,EAAM,CAAC,EACVpe,IAAS,KAAOA,IAAS,IAC3B+e,EAAS,KAAK/e,IAAS,IAAM,IAAM,GAAG,EAC7BA,IAAS,KAAO+e,EAAS,OAAS,EAC3CA,EAAS,KAAK,GAAG,EACR/e,IAAS+e,EAASA,EAAS,OAAS,CAAC,GAC9CA,EAAS,IAAG,EAEVA,EAAS,SAAW,EACtB,GAAI/e,IAAS,IAAK,CAChBkP,EAAM,OAAO,IAAM,KAAK,YAAYkP,EAAM,CAAC,CAAC,EAC5ClP,EAAM,OAAO,IAAI,SACjB,KAAK,UAAY,GACjB,KACF,SAAWlP,IAAS,IAAK,CACvB8e,EAAO,GACP,KACF,SAAW9e,IAAS,IAAK,CACvB,GAAIoP,EAAO,OAAS,EAAG,CAGrB,IAFAyP,EAAQzP,EAAO,OAAS,EACxBqH,EAAOrH,EAAOyP,CAAK,EACZpI,GAAQA,EAAK,CAAC,IAAM,SACzBA,EAAOrH,EAAO,EAAEyP,CAAK,EAEnBpI,IACFvH,EAAM,OAAO,IAAM,KAAK,YAAYuH,EAAK,CAAC,GAAKA,EAAK,CAAC,CAAC,EACtDvH,EAAM,OAAO,IAAI,SAErB,CACA,KAAK,IAAIkP,CAAK,EACd,KACF,MACEhP,EAAO,KAAKgP,CAAK,OAGnBhP,EAAO,KAAKgP,CAAK,EAEnB,GAAI,KAAK,UAAU,UAAA,EAAa,CAC9BzO,EAAO,GACP,KACF,CACF,CACAT,EAAM,KAAK,QAAU,KAAK,yBAAyBE,CAAM,EACrDA,EAAO,QACTF,EAAM,KAAK,UAAY,KAAK,2BAA2BE,CAAM,EAC7D,KAAK,IAAIF,EAAO,SAAUE,CAAM,EAC5BO,IACFyO,EAAQhP,EAAOA,EAAO,OAAS,CAAC,EAChCF,EAAM,OAAO,IAAM,KAAK,YAAYkP,EAAM,CAAC,GAAKA,EAAM,CAAC,CAAC,EACxDlP,EAAM,OAAO,IAAI,SACjB,KAAK,OAASA,EAAM,KAAK,QACzBA,EAAM,KAAK,QAAU,MAGvBA,EAAM,KAAK,UAAY,GACvBA,EAAM,OAAS,IAEb4P,IACF5P,EAAM,MAAQ,CAAA,EACd,KAAK,QAAUA,EAEnB,CACA,qBAAqByP,EAAQ,CAC3B,IAAIK,EAAQ,KAAK,MAAML,CAAM,EAC7B,GAAIK,IAAU,GAAO,OACrB,IAAIC,EAAU,EACVb,EACJ,QAASlN,EAAK8N,EAAQ,EAAG9N,GAAM,IAC7BkN,EAAQO,EAAOzN,CAAE,EACb,EAAAkN,EAAM,CAAC,IAAM,UACfa,GAAW,EACPA,IAAY,KAJc/N,IAEhC,CAKF,MAAM,KAAK,MAAM,MACf,mBACAkN,EAAM,CAAC,IAAM,OAASA,EAAM,CAAC,EAAI,EAAIA,EAAM,CAAC,CACpD,CACI,CACA,MAAMO,EAAQ,CACZ,IAAII,EAAW,EACXtI,EAAM2H,EAAOpe,EACjB,OAAS,CAACkI,EAAGrI,CAAO,IAAK8e,EAAO,QAAO,EAAI,CASzC,GARAP,EAAQve,EACRG,EAAOoe,EAAM,CAAC,EACVpe,IAAS,MACX+e,GAAY,GAEV/e,IAAS,MACX+e,GAAY,GAEVA,IAAa,GAAK/e,IAAS,IAC7B,GAAI,CAACyW,EACH,KAAK,YAAY2H,CAAK,MACxB,IAAW3H,EAAK,CAAC,IAAM,QAAUA,EAAK,CAAC,IAAM,SAC3C,SAEA,OAAOvO,EAGXuO,EAAO2H,CACT,CACA,MAAO,EACT,CACA,QAAQA,EAAO,CACb,IAAIlP,EAAQ,IAAI8D,EAChB,KAAK,KAAK9D,EAAOkP,EAAM,CAAC,CAAC,EACzBlP,EAAM,OAAO,IAAM,KAAK,YAAYkP,EAAM,CAAC,GAAKA,EAAM,CAAC,CAAC,EACxDlP,EAAM,OAAO,IAAI,SACjB,IAAIhP,EAAOke,EAAM,CAAC,EAAE,MAAM,EAAG,EAAE,EAC/B,GAAI,QAAQ,KAAKle,CAAI,EACnBgP,EAAM,KAAO,GACbA,EAAM,KAAK,KAAOhP,EAClBgP,EAAM,KAAK,MAAQ,OACd,CACL,IAAIzN,EAAQvB,EAAK,MAAM,sBAAsB,EAC7CgP,EAAM,KAAOzN,EAAM,CAAC,EACpByN,EAAM,KAAK,KAAOzN,EAAM,CAAC,EACzByN,EAAM,KAAK,MAAQzN,EAAM,CAAC,CAC5B,CACF,CACA,iBAAkB,CAChB,KAAK,UAAY+c,EAAU,KAAK,KAAK,CACvC,CACA,KAAKG,EAAQO,EAAgB,CAC3B,IAAIhQ,EAAQ,IAAIkE,EAChB,KAAK,KAAKlE,EAAOyP,EAAO,CAAC,EAAE,CAAC,CAAC,EAC7B,IAAIhP,EAAOgP,EAAOA,EAAO,OAAS,CAAC,EASnC,IARIhP,EAAK,CAAC,IAAM,MACd,KAAK,UAAY,GACjBgP,EAAO,IAAG,GAEZzP,EAAM,OAAO,IAAM,KAAK,YACtBS,EAAK,CAAC,GAAKA,EAAK,CAAC,GAAK+O,EAAqBC,CAAM,CACzD,EACMzP,EAAM,OAAO,IAAI,SACVyP,EAAO,CAAC,EAAE,CAAC,IAAM,QAClBA,EAAO,SAAW,GAAG,KAAK,YAAYA,CAAM,EAChDzP,EAAM,KAAK,QAAUyP,EAAO,MAAK,EAAG,CAAC,EAIvC,IAFAzP,EAAM,OAAO,MAAQ,KAAK,YAAYyP,EAAO,CAAC,EAAE,CAAC,CAAC,EAClDzP,EAAM,KAAO,GACNyP,EAAO,QAAQ,CACpB,IAAI3e,EAAO2e,EAAO,CAAC,EAAE,CAAC,EACtB,GAAI3e,IAAS,KAAOA,IAAS,SAAWA,IAAS,UAC/C,MAEFkP,EAAM,MAAQyP,EAAO,MAAK,EAAG,CAAC,CAChC,CACAzP,EAAM,KAAK,QAAU,GACrB,IAAIkP,EACJ,KAAOO,EAAO,QAEZ,GADAP,EAAQO,EAAO,MAAK,EAChBP,EAAM,CAAC,IAAM,IAAK,CACpBlP,EAAM,KAAK,SAAWkP,EAAM,CAAC,EAC7B,KACF,MACMA,EAAM,CAAC,IAAM,QAAU,KAAK,KAAKA,EAAM,CAAC,CAAC,GAC3C,KAAK,YAAY,CAACA,CAAK,CAAC,EAE1BlP,EAAM,KAAK,SAAWkP,EAAM,CAAC,GAG7BlP,EAAM,KAAK,CAAC,IAAM,KAAOA,EAAM,KAAK,CAAC,IAAM,OAC7CA,EAAM,KAAK,QAAUA,EAAM,KAAK,CAAC,EACjCA,EAAM,KAAOA,EAAM,KAAK,MAAM,CAAC,GAEjC,IAAIiQ,EAAc,CAAA,EACdrN,EACJ,KAAO6M,EAAO,SACZ7M,EAAO6M,EAAO,CAAC,EAAE,CAAC,EACd,EAAA7M,IAAS,SAAWA,IAAS,aACjCqN,EAAY,KAAKR,EAAO,MAAA,CAAO,EAEjC,KAAK,wBAAwBA,CAAM,EACnC,QAASzW,EAAIyW,EAAO,OAAS,EAAGzW,GAAK,EAAGA,IAAK,CAE3C,GADAkW,EAAQO,EAAOzW,CAAC,EACZkW,EAAM,CAAC,EAAE,YAAW,IAAO,aAAc,CAC3ClP,EAAM,UAAY,GAClB,IAAIa,EAAS,KAAK,WAAW4O,EAAQzW,CAAC,EACtC6H,EAAS,KAAK,cAAc4O,CAAM,EAAI5O,EAClCA,IAAW,gBAAeb,EAAM,KAAK,UAAYa,GACrD,KACF,SAAWqO,EAAM,CAAC,EAAE,YAAW,IAAO,YAAa,CACjD,IAAIgB,EAAQT,EAAO,MAAM,CAAC,EACtBte,EAAM,GACV,QAAS6Q,EAAKhJ,EAAGgJ,EAAK,EAAGA,IAAM,CAC7B,IAAIlR,EAAOof,EAAMlO,CAAE,EAAE,CAAC,EACtB,GAAI7Q,EAAI,KAAA,EAAO,WAAW,GAAG,GAAKL,IAAS,QACzC,MAEFK,EAAM+e,EAAM,IAAA,EAAM,CAAC,EAAI/e,CACzB,CACIA,EAAI,KAAI,EAAG,WAAW,GAAG,IAC3B6O,EAAM,UAAY,GAClBA,EAAM,KAAK,UAAY7O,EACvBse,EAASS,EAEb,CACA,GAAIhB,EAAM,CAAC,IAAM,SAAWA,EAAM,CAAC,IAAM,UACvC,KAEJ,CACcO,EAAO,KAAMzW,GAAMA,EAAE,CAAC,IAAM,SAAWA,EAAE,CAAC,IAAM,SAAS,IAErEgH,EAAM,KAAK,SAAWiQ,EAAY,IAAKjX,GAAMA,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAC1DiX,EAAc,CAAA,GAEhB,KAAK,IAAIjQ,EAAO,QAASiQ,EAAY,OAAOR,CAAM,EAAGO,CAAc,EAC/DhQ,EAAM,MAAM,SAAS,GAAG,GAAK,CAACgQ,GAChC,KAAK,qBAAqBP,CAAM,CAEpC,CACA,YAAYP,EAAO,CACjB,MAAM,KAAK,MAAM,MACf,eACA,CAAE,OAAQA,EAAM,CAAC,CAAC,EAClB,CAAE,OAAQA,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAE,MAAM,CAC5C,CACI,CACA,UAAUA,EAAO,CACf,IAAIlP,EAAQ,IAAI2E,EAChB,KAAK,KAAK3E,EAAOkP,EAAM,CAAC,CAAC,EACzBlP,EAAM,SAAW,GACjBA,EAAM,KAAK,QAAU,GACrB,KAAK,QAAUA,CACjB,CACA,IAAIkP,EAAO,CACL,KAAK,QAAQ,OAAS,KAAK,QAAQ,MAAM,SAC3C,KAAK,QAAQ,KAAK,UAAY,KAAK,WAErC,KAAK,UAAY,GACjB,KAAK,QAAQ,KAAK,OAAS,KAAK,QAAQ,KAAK,OAAS,IAAM,KAAK,OACjE,KAAK,OAAS,GACV,KAAK,QAAQ,QACf,KAAK,QAAQ,OAAO,IAAM,KAAK,YAAYA,EAAM,CAAC,CAAC,EACnD,KAAK,QAAQ,OAAO,IAAI,SACxB,KAAK,QAAU,KAAK,QAAQ,QAE5B,KAAK,gBAAgBA,CAAK,CAE9B,CACA,SAAU,CACJ,KAAK,QAAQ,QAAQ,KAAK,cAAa,EACvC,KAAK,QAAQ,OAAS,KAAK,QAAQ,MAAM,SAC3C,KAAK,QAAQ,KAAK,UAAY,KAAK,WAErC,KAAK,QAAQ,KAAK,OAAS,KAAK,QAAQ,KAAK,OAAS,IAAM,KAAK,OACjE,KAAK,KAAK,OAAO,IAAM,KAAK,YAAY,KAAK,UAAU,SAAA,CAAU,CACnE,CACA,cAAcA,EAAO,CAEnB,GADA,KAAK,QAAUA,EAAM,CAAC,EAClB,KAAK,QAAQ,MAAO,CACtB,IAAI3H,EAAO,KAAK,QAAQ,MAAM,KAAK,QAAQ,MAAM,OAAS,CAAC,EACvDA,GAAQA,EAAK,OAAS,QAAU,CAACA,EAAK,KAAK,eAC7CA,EAAK,KAAK,aAAe,KAAK,OAC9B,KAAK,OAAS,GACdA,EAAK,OAAO,IAAM,KAAK,YAAY2H,EAAM,CAAC,CAAC,EAC3C3H,EAAK,OAAO,IAAI,QAAUA,EAAK,KAAK,aAAa,OAErD,CACF,CAEA,YAAYnF,EAAQ,CAClB,IAAItN,EAAM,KAAK,MAAM,WAAWsN,CAAM,EACtC,MAAO,CACL,OAAQtN,EAAI,IACZ,KAAMA,EAAI,KACV,OAAAsN,CACR,CACI,CACA,KAAKpC,EAAOoC,EAAQ,CAClB,KAAK,QAAQ,KAAKpC,CAAK,EACvBA,EAAM,OAAS,CACb,MAAO,KAAK,MACZ,MAAO,KAAK,YAAYoC,CAAM,CACtC,EACMpC,EAAM,KAAK,OAAS,KAAK,OACzB,KAAK,OAAS,GACVA,EAAM,OAAS,YAAW,KAAK,UAAY,GACjD,CACA,MAAMnB,EAAO,CACX,IAAIC,EAAM,GACNhO,EAAO,KACPgf,EAAQ,GACRK,EAAU,KACVN,EAAW,CAAA,EACXG,EAAiBnR,EAAM,CAAC,EAAE,WAAW,IAAI,EACzC4Q,EAAS,CAAA,EACTP,EAAQrQ,EACZ,KAAOqQ,GAAO,CAGZ,GAFApe,EAAOoe,EAAM,CAAC,EACdO,EAAO,KAAKP,CAAK,EACbpe,IAAS,KAAOA,IAAS,IACtBqf,IAASA,EAAUjB,GACxBW,EAAS,KAAK/e,IAAS,IAAM,IAAM,GAAG,UAC7Bkf,GAAkBF,GAAShf,IAAS,IACxCqf,IAASA,EAAUjB,GACxBW,EAAS,KAAK,GAAG,UACRA,EAAS,SAAW,EAC7B,GAAI/e,IAAS,IACX,GAAIgf,EAAO,CACT,KAAK,KAAKL,EAAQO,CAAc,EAChC,MACF,KACE,eAEOlf,IAAS,IAAK,CACvB,KAAK,KAAK2e,CAAM,EAChB,MACF,SAAW3e,IAAS,IAAK,CACvB,KAAK,UAAU,KAAK2e,EAAO,IAAG,CAAE,EAChC3Q,EAAM,GACN,KACF,MAAWhO,IAAS,MAClBgf,EAAQ,SAEDhf,IAAS+e,EAASA,EAAS,OAAS,CAAC,IAC9CA,EAAS,IAAG,EACRA,EAAS,SAAW,IAAGM,EAAU,OAEvCjB,EAAQ,KAAK,UAAU,UAAS,CAClC,CAGA,GAFI,KAAK,UAAU,UAAS,IAAIpQ,EAAM,IAClC+Q,EAAS,OAAS,GAAG,KAAK,gBAAgBM,CAAO,EACjDrR,GAAOgR,EAAO,CAChB,GAAI,CAACE,EACH,KAAOP,EAAO,SACZP,EAAQO,EAAOA,EAAO,OAAS,CAAC,EAAE,CAAC,EAC/B,EAAAP,IAAU,SAAWA,IAAU,aACnC,KAAK,UAAU,KAAKO,EAAO,IAAG,CAAE,EAGpC,KAAK,KAAKA,EAAQO,CAAc,CAClC,MACE,KAAK,YAAYP,CAAM,CAE3B,CACA,OAAQ,CACN,IAAIP,EACJ,KAAO,CAAC,KAAK,UAAU,UAAA,GAErB,OADAA,EAAQ,KAAK,UAAU,UAAS,EACxBA,EAAM,CAAC,EAAC,CACd,IAAK,QACH,KAAK,QAAUA,EAAM,CAAC,EACtB,MACF,IAAK,IACH,KAAK,cAAcA,CAAK,EACxB,MACF,IAAK,IACH,KAAK,IAAIA,CAAK,EACd,MACF,IAAK,UACH,KAAK,QAAQA,CAAK,EAClB,MACF,IAAK,UACH,KAAK,OAAOA,CAAK,EACjB,MACF,IAAK,IACH,KAAK,UAAUA,CAAK,EACpB,MACF,QACE,KAAK,MAAMA,CAAK,EAChB,KACZ,CAEM,KAAK,QAAO,CACd,CACA,yBAA0B,CAC1B,CACA,IAAIlP,EAAOiB,EAAMwO,EAAQO,EAAgB,CACvC,IAAId,EAAOpe,EACP0d,EAASiB,EAAO,OAChBvkB,EAAQ,GACRklB,EAAQ,GACRxN,EAAM2E,EACV,QAASvO,EAAI,EAAGA,EAAIwV,EAAQxV,GAAK,EAC/BkW,EAAQO,EAAOzW,CAAC,EAChBlI,EAAOoe,EAAM,CAAC,EACVpe,IAAS,SAAWkI,IAAMwV,EAAS,GAAK,CAACwB,EAC3CI,EAAQ,GACCtf,IAAS,WAClByW,EAAOkI,EAAOzW,EAAI,CAAC,EAAIyW,EAAOzW,EAAI,CAAC,EAAE,CAAC,EAAI,QAC1C4J,EAAO6M,EAAOzW,EAAI,CAAC,EAAIyW,EAAOzW,EAAI,CAAC,EAAE,CAAC,EAAI,QACtC,CAACuW,EAAsBhI,CAAI,GAAK,CAACgI,EAAsB3M,CAAI,EACzD1X,EAAM,MAAM,EAAE,IAAM,IACtBklB,EAAQ,GAERllB,GAASgkB,EAAM,CAAC,EAGlBkB,EAAQ,IAGVllB,GAASgkB,EAAM,CAAC,EAGpB,GAAI,CAACkB,EAAO,CACV,IAAIlP,EAAMuO,EAAO,OAAO,CAACY,EAAKrX,IAAMqX,EAAMrX,EAAE,CAAC,EAAG,EAAE,EAClDgH,EAAM,KAAKiB,CAAI,EAAI,CAAE,IAAAC,EAAK,MAAAhW,CAAK,CACjC,CACA8U,EAAMiB,CAAI,EAAI/V,CAChB,CACA,KAAKukB,EAAQ,CACXA,EAAO,IAAG,EACV,IAAIzP,EAAQ,IAAI2E,EAChB,KAAK,KAAK3E,EAAOyP,EAAO,CAAC,EAAE,CAAC,CAAC,EAC7BzP,EAAM,KAAK,QAAU,KAAK,yBAAyByP,CAAM,EACzD,KAAK,IAAIzP,EAAO,WAAYyP,CAAM,EAClC,KAAK,QAAUzP,CACjB,CACA,yBAAyByP,EAAQ,CAC/B,IAAIa,EACA/F,EAAS,GACb,KAAOkF,EAAO,SACZa,EAAgBb,EAAOA,EAAO,OAAS,CAAC,EAAE,CAAC,EACvC,EAAAa,IAAkB,SAAWA,IAAkB,aACnD/F,EAASkF,EAAO,IAAA,EAAM,CAAC,EAAIlF,EAE7B,OAAOA,CACT,CAEA,2BAA2BkF,EAAQ,CACjC,IAAI7M,EACA2H,EAAS,GACb,KAAOkF,EAAO,SACZ7M,EAAO6M,EAAO,CAAC,EAAE,CAAC,EACd,EAAA7M,IAAS,SAAWA,IAAS,aACjC2H,GAAUkF,EAAO,MAAK,EAAG,CAAC,EAE5B,OAAOlF,CACT,CACA,cAAckF,EAAQ,CACpB,IAAIa,EACA/F,EAAS,GACb,KAAOkF,EAAO,SACZa,EAAgBb,EAAOA,EAAO,OAAS,CAAC,EAAE,CAAC,EACvCa,IAAkB,UACtB/F,EAASkF,EAAO,IAAA,EAAM,CAAC,EAAIlF,EAE7B,OAAOA,CACT,CACA,WAAWkF,EAAQ9F,EAAM,CACvB,IAAIzG,EAAU,GACd,QAASlK,EAAI2Q,EAAM3Q,EAAIyW,EAAO,OAAQzW,IACpCkK,GAAWuM,EAAOzW,CAAC,EAAE,CAAC,EAExB,OAAAyW,EAAO,OAAO9F,EAAM8F,EAAO,OAAS9F,CAAI,EACjCzG,CACT,CACA,eAAgB,CACd,IAAIpO,EAAM,KAAK,QAAQ,OAAO,MAC9B,MAAM,KAAK,MAAM,MAAM,iBAAkBA,EAAI,KAAMA,EAAI,MAAM,CAC/D,CACA,gBAAgBqb,EAAS,CACvB,MAAM,KAAK,MAAM,MACf,mBACA,CAAE,OAAQA,EAAQ,CAAC,CAAC,EACpB,CAAE,OAAQA,EAAQ,CAAC,EAAI,CAAC,CAChC,CACI,CACA,gBAAgBjB,EAAO,CACrB,MAAM,KAAK,MAAM,MACf,eACA,CAAE,OAAQA,EAAM,CAAC,CAAC,EAClB,CAAE,OAAQA,EAAM,CAAC,EAAI,CAAC,CAC9B,CACI,CACA,YAAYO,EAAQ,CAClB,MAAM,KAAK,MAAM,MACf,gBAAkBA,EAAO,CAAC,EAAE,CAAC,EAC7B,CAAE,OAAQA,EAAO,CAAC,EAAE,CAAC,CAAC,EACtB,CAAE,OAAQA,EAAO,CAAC,EAAE,CAAC,EAAIA,EAAO,CAAC,EAAE,CAAC,EAAE,MAAM,CACpD,CACI,CACA,cAAczP,EAAOkP,EAAO,CAC1B,MAAM,KAAK,MAAM,MACf,uBACA,CAAE,OAAQA,EAAM,CAAC,CAAC,EAClB,CAAE,OAAQA,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAE,MAAM,CAC5C,CACI,CACJ,CACEC,OAAAA,GAASO,EACFP,EACT,CACA,IAAIoB,GACAC,GACJ,SAASC,IAAe,CACtB,GAAID,GAAkB,OAAOD,GAC7BC,GAAmB,EACnB,IAAI1L,EAAYP,GAAgB,EAC5B2E,EAAQb,GAAY,EACpBqH,EAASL,GAAa,EAC1B,SAAS5K,EAAMpG,EAAKsE,EAAM,CACxB,IAAIa,EAAS,IAAI0F,EAAM7K,EAAKsE,CAAI,EAC5B+N,EAAU,IAAIhB,EAAOlM,CAAM,EAC/B,GAAI,CACFkN,EAAQ,MAAK,CACf,OAAShL,EAAI,CAYX,MAAMA,CACR,CACA,OAAOgL,EAAQ,IACjB,CACAH,OAAAA,GAAU9L,EACVA,EAAM,QAAUA,EAChBK,EAAU,cAAcL,CAAK,EACtB8L,EACT,CACA,IAAII,GACAC,GACJ,SAASC,IAAiB,CACxB,GAAID,GAAoB,OAAOD,GAC/BC,GAAqB,EACrB,MAAME,CAAQ,CACZ,YAAY9f,EAAM2R,EAAO,CAAA,EAAI,CAG3B,GAFA,KAAK,KAAO,UACZ,KAAK,KAAO3R,EACR2R,EAAK,MAAQA,EAAK,KAAK,OAAQ,CACjC,IAAIoO,EAAQpO,EAAK,KAAK,QAAQA,CAAI,EAClC,KAAK,KAAOoO,EAAM,MAAM,KACxB,KAAK,OAASA,EAAM,MAAM,OAC1B,KAAK,QAAUA,EAAM,IAAI,KACzB,KAAK,UAAYA,EAAM,IAAI,MAC7B,CACA,QAASC,KAAOrO,EAAM,KAAKqO,CAAG,EAAIrO,EAAKqO,CAAG,CAC5C,CACA,UAAW,CACT,OAAI,KAAK,KACA,KAAK,KAAK,MAAM,KAAK,KAAM,CAChC,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,KAAM,KAAK,IACrB,CAAS,EAAE,QAED,KAAK,OACA,KAAK,OAAS,KAAO,KAAK,KAE5B,KAAK,IACd,CACJ,CACEL,OAAAA,GAAUG,EACVA,EAAQ,QAAUA,EACXH,EACT,CACA,IAAIM,GACAC,GACJ,SAASC,IAAgB,CACvB,GAAID,GAAmB,OAAOD,GAC9BC,GAAoB,EACpB,IAAIJ,EAAUD,GAAc,EAC5B,MAAMO,CAAO,CACX,IAAI,SAAU,CACZ,OAAO,KAAK,GACd,CACA,YAAYC,EAAYtQ,EAAO4B,EAAM,CACnC,KAAK,UAAY0O,EACjB,KAAK,SAAW,CAAA,EAChB,KAAK,KAAOtQ,EACZ,KAAK,KAAO4B,EACZ,KAAK,IAAM,GACX,KAAK,IAAM,MACb,CACA,UAAW,CACT,OAAO,KAAK,GACd,CACA,KAAK3R,EAAM2R,EAAO,CAAA,EAAI,CACfA,EAAK,QACJ,KAAK,YAAc,KAAK,WAAW,gBACrCA,EAAK,OAAS,KAAK,WAAW,eAGlC,IAAI2O,EAAW,IAAIR,EAAQ9f,EAAM2R,CAAI,EACrC,YAAK,SAAS,KAAK2O,CAAQ,EACpBA,CACT,CACA,UAAW,CACT,OAAO,KAAK,SAAS,OAAQtY,GAAMA,EAAE,OAAS,SAAS,CACzD,CACJ,CACEiY,OAAAA,GAASG,EACTA,EAAO,QAAUA,EACVH,EACT,CACA,IAAIM,GACAC,GACJ,SAASC,IAAkB,CACzB,GAAID,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,IAAIE,EAAU,CAAA,EACdH,OAAAA,GAAW,SAAmBxT,EAAS,CACjC2T,EAAQ3T,CAAO,IACnB2T,EAAQ3T,CAAO,EAAI,GACf,OAAO,SAAY,aAAe,QAAQ,MAC5C,QAAQ,KAAKA,CAAO,EAExB,EACOwT,EACT,CACA,IAAII,GACAC,GACJ,SAASC,IAAoB,CAC3B,GAAID,GAAuB,OAAOD,GAClCC,GAAwB,EACxB,IAAI9M,EAAYP,GAAgB,EAC5B6B,EAAWH,GAAe,EAC1B+F,EAAeF,GAAmB,EAClCrH,EAAQgM,GAAY,EACpBW,EAASD,GAAa,EACtBzM,EAAOuF,GAAW,EAClB3I,EAAYD,GAAgB,EAC5B,CAAE,QAAAO,EAAS,GAAAC,CAAE,EAAKJ,GAAc,EAChCqQ,EAAYL,GAAe,EAC/B,MAAMM,EAAqB,CACzB,OAAQ,SACR,QAAS,UACT,KAAM,cACN,SAAU,WACV,KAAM,OACN,KAAM,MACV,EACQC,EAAe,CACnB,OAAQ,GACR,WAAY,GACZ,QAAS,GACT,YAAa,GACb,YAAa,GACb,gBAAiB,GACjB,SAAU,GACV,aAAc,GACd,KAAM,GACN,SAAU,GACV,cAAe,GACf,QAAS,GACT,KAAM,GACN,SAAU,GACV,KAAM,GACN,SAAU,EACd,EACQC,EAAe,CACnB,KAAM,GACN,cAAe,GACf,QAAS,EACb,EACQC,EAAW,EACjB,SAASC,EAAUnnB,EAAK,CACtB,OAAO,OAAOA,GAAQ,UAAY,OAAOA,EAAI,MAAS,UACxD,CACA,SAASonB,EAAUpS,EAAO,CACxB,IAAI/U,EAAM,GACN6F,EAAOihB,EAAmB/R,EAAM,IAAI,EAMxC,OALIA,EAAM,OAAS,OACjB/U,EAAM+U,EAAM,KAAK,YAAW,EACnBA,EAAM,OAAS,WACxB/U,EAAM+U,EAAM,KAAK,YAAW,GAE1B/U,GAAO+U,EAAM,OACR,CACLlP,EACAA,EAAO,IAAM7F,EACbinB,EACAphB,EAAO,OACPA,EAAO,QAAU7F,CACzB,EACeA,EACF,CAAC6F,EAAMA,EAAO,IAAM7F,EAAK6F,EAAO,OAAQA,EAAO,QAAU7F,CAAG,EAC1D+U,EAAM,OACR,CAAClP,EAAMohB,EAAUphB,EAAO,MAAM,EAE9B,CAACA,EAAMA,EAAO,MAAM,CAE/B,CACA,SAASuhB,EAAQrS,EAAO,CACtB,IAAIsS,EACJ,OAAItS,EAAM,OAAS,WACjBsS,EAAS,CAAC,WAAYJ,EAAU,cAAc,EACrClS,EAAM,OAAS,OACxBsS,EAAS,CAAC,OAAQJ,EAAU,UAAU,EAEtCI,EAASF,EAAUpS,CAAK,EAEnB,CACL,WAAY,EACZ,OAAAsS,EACA,SAAU,EACV,KAAMtS,EACN,aAAc,EACd,SAAU,CAAA,CAChB,CACE,CACA,SAASuS,EAAWvS,EAAO,CACzB,OAAAA,EAAM4B,CAAO,EAAI,GACb5B,EAAM,OAAOA,EAAM,MAAM,QAAShH,GAAMuZ,EAAWvZ,CAAC,CAAC,EAClDgH,CACT,CACA,IAAIwS,EAAW,CAAA,EACf,MAAMtM,CAAW,CACf,IAAI,SAAU,CACZ,OAAO,KAAK,UAAS,EAAG,OAC1B,CACA,IAAI,KAAM,CACR,OAAO,KAAK,UAAS,EAAG,GAC1B,CACA,IAAI,KAAM,CACR,OAAO,KAAK,UAAS,EAAG,GAC1B,CACA,IAAI,UAAW,CACb,OAAO,KAAK,KAAI,EAAG,QACrB,CACA,IAAI,MAAO,CACT,OAAO,KAAK,OAAO,IACrB,CACA,IAAI,WAAY,CACd,OAAO,KAAK,OAAO,SACrB,CACA,IAAI,MAAO,CACT,OAAO,KAAK,KAAI,EAAG,IACrB,CACA,IAAK,OAAO,WAAW,GAAI,CACzB,MAAO,YACT,CACA,YAAYmL,EAAYhT,EAAKsE,EAAM,CACjC,KAAK,YAAc,GACnB,KAAK,UAAY,GACjB,IAAI5B,EACJ,GAAI,OAAO1C,GAAQ,UAAYA,IAAQ,OAASA,EAAI,OAAS,QAAUA,EAAI,OAAS,YAClF0C,EAAQwR,EAAWlU,CAAG,UACbA,aAAe6H,GAAc7H,aAAe+S,EACrDrQ,EAAQwR,EAAWlU,EAAI,IAAI,EACvBA,EAAI,MACF,OAAOsE,EAAK,KAAQ,cAAaA,EAAK,IAAM,CAAA,GAC3CA,EAAK,IAAI,SAAQA,EAAK,IAAI,OAAS,IACxCA,EAAK,IAAI,KAAOtE,EAAI,SAEjB,CACL,IAAIqS,EAAUjM,EACV9B,EAAK,SAAQ+N,EAAU/N,EAAK,OAAO,OACnCA,EAAK,SAAQ+N,EAAU/N,EAAK,QAC5B+N,EAAQ,QAAOA,EAAUA,EAAQ,OACrC,GAAI,CACF3P,EAAQ2P,EAAQrS,EAAKsE,CAAI,CAC3B,OAASlT,EAAO,CACd,KAAK,UAAY,GACjB,KAAK,MAAQA,CACf,CACIsR,GAAS,CAACA,EAAMc,CAAE,GACpBiD,EAAU,QAAQ/D,CAAK,CAE3B,CACA,KAAK,OAAS,IAAIqQ,EAAOC,EAAYtQ,EAAO4B,CAAI,EAChD,KAAK,QAAUwB,GAAAC,EAAA,GAAKoO,GAAL,CAAe,QAASA,EAAU,OAAQ,KAAK,MAAM,GACpE,KAAK,QAAU,KAAK,UAAU,QAAQ,IAAKrU,GACrC,OAAOA,GAAW,UAAYA,EAAO,QAChCiG,IAAA,GAAKjG,GAAWA,EAAO,QAAQ,KAAK,MAAM,GAE1CA,CAEV,CACH,CACA,OAAQ,CACN,OAAI,KAAK,MAAc,QAAQ,OAAO,KAAK,KAAK,EAC5C,KAAK,UAAkB,QAAQ,QAAQ,KAAK,MAAM,GACjD,KAAK,aACR,KAAK,WAAa,KAAK,SAAQ,GAE1B,KAAK,WACd,CACA,MAAMsU,EAAY,CAChB,OAAO,KAAK,MAAA,EAAQ,MAAMA,CAAU,CACtC,CACA,QAAQC,EAAW,CACjB,OAAO,KAAK,MAAK,EAAG,KAAKA,EAAWA,CAAS,CAC/C,CACA,eAAgB,CACd,MAAM,IAAI,MAAM,sDAAsD,CACxE,CACA,YAAYjjB,EAAOuQ,EAAO,CACxB,IAAI7B,EAAS,KAAK,OAAO,WACzB,GAAI,CACE6B,GAAOA,EAAM,WAAWvQ,CAAK,EACjC,KAAK,MAAQA,EACTA,EAAM,OAAS,kBAAoB,CAACA,EAAM,QAC5CA,EAAM,OAAS0O,EAAO,cACtB1O,EAAM,WAAU,GACP0O,EAAO,cAcpB,OAAS7L,EAAK,CACR,SAAW,QAAQ,OAAO,QAAQ,MAAMA,CAAG,CACjD,CACA,OAAO7C,CACT,CACA,iBAAkB,CAChB,KAAK,UAAY,CAAA,EACjB,IAAI+S,EAAM,CAACrE,EAAQrN,EAAMsU,IAAO,CACzB,KAAK,UAAUtU,CAAI,IAAG,KAAK,UAAUA,CAAI,EAAI,CAAA,GAClD,KAAK,UAAUA,CAAI,EAAE,KAAK,CAACqN,EAAQiH,CAAE,CAAC,CACxC,EACA,QAASjH,KAAU,KAAK,QACtB,GAAI,OAAOA,GAAW,SACpB,QAASwU,KAASxU,EAAQ,CACxB,GAAI,CAAC6T,EAAaW,CAAK,GAAK,SAAS,KAAKA,CAAK,EAC7C,MAAM,IAAI,MACR,iBAAiBA,CAAK,OAAOxU,EAAO,aAAa,4BAA4B,KAAK,UAAU,OAAO,QACnH,EAEY,GAAI,CAAC8T,EAAaU,CAAK,EACrB,GAAI,OAAOxU,EAAOwU,CAAK,GAAM,SAC3B,QAASC,KAAUzU,EAAOwU,CAAK,EACzBC,IAAW,IACbpQ,EAAIrE,EAAQwU,EAAOxU,EAAOwU,CAAK,EAAEC,CAAM,CAAC,EAExCpQ,EACErE,EACAwU,EAAQ,IAAMC,EAAO,YAAW,EAChCzU,EAAOwU,CAAK,EAAEC,CAAM,CAC1C,OAGyB,OAAOzU,EAAOwU,CAAK,GAAM,YAClCnQ,EAAIrE,EAAQwU,EAAOxU,EAAOwU,CAAK,CAAC,CAGtC,CAGJ,KAAK,YAAc,OAAO,KAAK,KAAK,SAAS,EAAE,OAAS,CAC1D,CACA,MAAM,UAAW,CACf,KAAK,OAAS,EACd,QAAS3Z,EAAI,EAAGA,EAAI,KAAK,QAAQ,OAAQA,IAAK,CAC5C,IAAImF,EAAS,KAAK,QAAQnF,CAAC,EACvB6Z,EAAU,KAAK,UAAU1U,CAAM,EACnC,GAAIgU,EAAUU,CAAO,EACnB,GAAI,CACF,MAAMA,CACR,OAASpjB,EAAO,CACd,MAAM,KAAK,YAAYA,CAAK,CAC9B,CAEJ,CAEA,GADA,KAAK,gBAAe,EAChB,KAAK,YAAa,CACpB,IAAIsR,EAAQ,KAAK,OAAO,KACxB,KAAO,CAACA,EAAMa,CAAO,GAAG,CACtBb,EAAMa,CAAO,EAAI,GACjB,IAAItO,EAAQ,CAAC+e,EAAQtR,CAAK,CAAC,EAC3B,KAAOzN,EAAM,OAAS,GAAG,CACvB,IAAIuf,EAAU,KAAK,UAAUvf,CAAK,EAClC,GAAI6e,EAAUU,CAAO,EACnB,GAAI,CACF,MAAMA,CACR,OAASnN,EAAI,CACX,IAAI1F,EAAQ1M,EAAMA,EAAM,OAAS,CAAC,EAAE,KACpC,MAAM,KAAK,YAAYoS,EAAI1F,CAAK,CAClC,CAEJ,CACF,CACA,GAAI,KAAK,UAAU,SACjB,OAAS,CAAC7B,EAAQ2U,CAAO,IAAK,KAAK,UAAU,SAAU,CACrD,KAAK,OAAO,WAAa3U,EACzB,GAAI,CACF,GAAI4C,EAAM,OAAS,WAAY,CAC7B,IAAIgS,EAAQhS,EAAM,MAAM,IACrBiS,GAAYF,EAAQE,EAAS,KAAK,OAAO,CAC5D,EACgB,MAAM,QAAQ,IAAID,CAAK,CACzB,MACE,MAAMD,EAAQ/R,EAAO,KAAK,OAAO,CAErC,OAAS2E,EAAI,CACX,MAAM,KAAK,YAAYA,CAAE,CAC3B,CACF,CAEJ,CACA,YAAK,UAAY,GACV,KAAK,UAAS,CACvB,CACA,UAAUvH,EAAQ,CAChB,KAAK,OAAO,WAAaA,EACzB,GAAI,CACF,GAAI,OAAOA,GAAW,UAAYA,EAAO,KAAM,CAC7C,GAAI,KAAK,OAAO,KAAK,OAAS,WAAY,CACxC,IAAI4U,EAAQ,KAAK,OAAO,KAAK,MAAM,IAChChS,GAAU5C,EAAO,KAAK4C,EAAO,KAAK,OAAO,CACxD,EACY,OAAIoR,EAAUY,EAAM,CAAC,CAAC,EACb,QAAQ,IAAIA,CAAK,EAEnBA,CACT,CACA,OAAO5U,EAAO,KAAK,KAAK,OAAO,KAAM,KAAK,OAAO,CACnD,SAAW,OAAOA,GAAW,WAC3B,OAAOA,EAAO,KAAK,OAAO,KAAM,KAAK,MAAM,CAE/C,OAAS1O,EAAO,CACd,MAAM,KAAK,YAAYA,CAAK,CAC9B,CACF,CACA,WAAY,CACV,GAAI,KAAK,MAAO,MAAM,KAAK,MAC3B,GAAI,KAAK,YAAa,OAAO,KAAK,OAClC,KAAK,YAAc,GACnB,KAAK,KAAI,EACT,IAAIkT,EAAO,KAAK,OAAO,KACnBxR,EAAMmQ,EACNqB,EAAK,SAAQxR,EAAMwR,EAAK,OAAO,WAC/BA,EAAK,cAAaxR,EAAMwR,EAAK,aAC7BxR,EAAI,YAAWA,EAAMA,EAAI,WAE7B,IAAIuS,EADM,IAAIsI,EAAa7a,EAAK,KAAK,OAAO,KAAM,KAAK,OAAO,IAAI,EACnD,SAAQ,EACvB,YAAK,OAAO,IAAMuS,EAAK,CAAC,EACxB,KAAK,OAAO,IAAMA,EAAK,CAAC,EACjB,KAAK,MACd,CACA,MAAO,CACL,GAAI,KAAK,MAAO,MAAM,KAAK,MAC3B,GAAI,KAAK,UAAW,OAAO,KAAK,OAEhC,GADA,KAAK,UAAY,GACb,KAAK,WACP,MAAM,KAAK,cAAa,EAE1B,QAASvF,KAAU,KAAK,QAAS,CAC/B,IAAI0U,EAAU,KAAK,UAAU1U,CAAM,EACnC,GAAIgU,EAAUU,CAAO,EACnB,MAAM,KAAK,cAAa,CAE5B,CAEA,GADA,KAAK,gBAAe,EAChB,KAAK,YAAa,CACpB,IAAI9R,EAAQ,KAAK,OAAO,KACxB,KAAO,CAACA,EAAMa,CAAO,GACnBb,EAAMa,CAAO,EAAI,GACjB,KAAK,SAASb,CAAK,EAErB,GAAI,KAAK,UAAU,SACjB,GAAIA,EAAM,OAAS,WACjB,QAASiS,KAAWjS,EAAM,MACxB,KAAK,UAAU,KAAK,UAAU,SAAUiS,CAAO,OAGjD,KAAK,UAAU,KAAK,UAAU,SAAUjS,CAAK,CAGnD,CACA,OAAO,KAAK,MACd,CACA,KAAKkS,EAAaR,EAAY,CAQ5B,OAAO,KAAK,MAAK,EAAG,KAAKQ,EAAaR,CAAU,CAClD,CACA,UAAW,CACT,OAAO,KAAK,GACd,CACA,UAAUS,EAAUlT,EAAO,CACzB,OAAS,CAAC7B,EAAQ2U,CAAO,IAAKI,EAAU,CACtC,KAAK,OAAO,WAAa/U,EACzB,IAAI0U,EACJ,GAAI,CACFA,EAAUC,EAAQ9S,EAAO,KAAK,OAAO,CACvC,OAAS0F,EAAI,CACX,MAAM,KAAK,YAAYA,EAAI1F,EAAM,OAAO,CAC1C,CACA,GAAIA,EAAM,OAAS,QAAUA,EAAM,OAAS,YAAc,CAACA,EAAM,OAC/D,MAAO,GAET,GAAImS,EAAUU,CAAO,EACnB,MAAM,KAAK,cAAa,CAE5B,CACF,CACA,UAAUvf,EAAO,CACf,IAAI6f,EAAS7f,EAAMA,EAAM,OAAS,CAAC,EAC/B,CAAE,KAAM0M,EAAO,SAAAkT,CAAQ,EAAKC,EAChC,GAAInT,EAAM,OAAS,QAAUA,EAAM,OAAS,YAAc,CAACA,EAAM,OAAQ,CACvE1M,EAAM,IAAG,EACT,MACF,CACA,GAAI4f,EAAS,OAAS,GAAKC,EAAO,aAAeD,EAAS,OAAQ,CAChE,GAAI,CAAC/U,EAAQ2U,CAAO,EAAII,EAASC,EAAO,YAAY,EACpDA,EAAO,cAAgB,EACnBA,EAAO,eAAiBD,EAAS,SACnCC,EAAO,SAAW,CAAA,EAClBA,EAAO,aAAe,GAExB,KAAK,OAAO,WAAahV,EACzB,GAAI,CACF,OAAO2U,EAAQ9S,EAAM,QAAO,EAAI,KAAK,OAAO,CAC9C,OAAS0F,EAAI,CACX,MAAM,KAAK,YAAYA,EAAI1F,CAAK,CAClC,CACF,CACA,GAAImT,EAAO,WAAa,EAAG,CACzB,IAAIlO,EAAWkO,EAAO,SAClBzS,EACJ,KAAOA,EAAQV,EAAM,MAAMA,EAAM,QAAQiF,CAAQ,CAAC,GAEhD,GADAjF,EAAM,QAAQiF,CAAQ,GAAK,EACvB,CAACvE,EAAMkB,CAAO,EAAG,CACnBlB,EAAMkB,CAAO,EAAI,GACjBtO,EAAM,KAAK+e,EAAQ3R,CAAK,CAAC,EACzB,MACF,CAEFyS,EAAO,SAAW,EAClB,OAAOnT,EAAM,QAAQiF,CAAQ,CAC/B,CACA,IAAIqN,EAASa,EAAO,OACpB,KAAOA,EAAO,WAAab,EAAO,QAAQ,CACxC,IAAIK,EAAQL,EAAOa,EAAO,UAAU,EAEpC,GADAA,EAAO,YAAc,EACjBR,IAAUT,EAAU,CAClBlS,EAAM,OAASA,EAAM,MAAM,SAC7BA,EAAM4B,CAAO,EAAI,GACjBuR,EAAO,SAAWnT,EAAM,YAAW,GAErC,MACF,SAAW,KAAK,UAAU2S,CAAK,EAAG,CAChCQ,EAAO,SAAW,KAAK,UAAUR,CAAK,EACtC,MACF,CACF,CACArf,EAAM,IAAG,CACX,CACA,SAAS0M,EAAO,CACdA,EAAM4B,CAAO,EAAI,GACjB,IAAI0Q,EAASF,EAAUpS,CAAK,EAC5B,QAAS2S,KAASL,EAChB,GAAIK,IAAUT,EACRlS,EAAM,OACRA,EAAM,KAAMU,GAAU,CACfA,EAAMkB,CAAO,GAAG,KAAK,SAASlB,CAAK,CAC1C,CAAC,MAEE,CACL,IAAIwS,EAAW,KAAK,UAAUP,CAAK,EACnC,GAAIO,GACE,KAAK,UAAUA,EAAUlT,EAAM,QAAO,CAAE,EAAG,MAEnD,CAEJ,CACA,UAAW,CACT,OAAO,KAAK,KAAI,EAAG,SAAQ,CAC7B,CACJ,CACE,OAAAkG,EAAW,gBAAmBP,GAAc,CAC1C6M,EAAW7M,CACb,EACAgM,GAAazL,EACbA,EAAW,QAAUA,EACrBxB,EAAK,mBAAmBwB,CAAU,EAClCE,EAAS,mBAAmBF,CAAU,EAC/ByL,EACT,CACA,IAAIyB,GACAC,GACJ,SAASC,IAAsB,CAC7B,GAAID,GAAyB,OAAOD,GACpCC,GAA0B,EAC1B,IAAIrH,EAAeF,GAAmB,EAClCrH,EAAQgM,GAAY,EACxB,MAAMW,EAASD,GAAa,EAC5B,IAAI7P,EAAYD,GAAgB,EAC5ByQ,EAAYL,GAAe,EAC/B,MAAM8B,CAAa,CACjB,IAAI,SAAU,CACZ,OAAO,KAAK,OAAO,GACrB,CACA,IAAI,KAAM,CACR,OAAO,KAAK,OAAO,GACrB,CACA,IAAI,KAAM,CACR,OAAO,KAAK,OAAO,GACrB,CACA,IAAI,UAAW,CACb,MAAO,CAAA,CACT,CACA,IAAI,MAAO,CACT,OAAO,KAAK,OAAO,IACrB,CACA,IAAI,WAAY,CACd,OAAO,KAAK,OAAO,SACrB,CACA,IAAI,MAAO,CACT,GAAI,KAAK,MACP,OAAO,KAAK,MAEd,IAAIxS,EACA2P,EAAUjM,EACd,GAAI,CACF1D,EAAQ2P,EAAQ,KAAK,KAAM,KAAK,KAAK,CACvC,OAASjhB,EAAO,CACd,KAAK,MAAQA,CACf,CACA,GAAI,KAAK,MACP,MAAM,KAAK,MAEX,YAAK,MAAQsR,EACNA,CAEX,CACA,IAAK,OAAO,WAAW,GAAI,CACzB,MAAO,cACT,CACA,YAAYsQ,EAAYhT,EAAKsE,EAAM,CACjCtE,EAAMA,EAAI,SAAQ,EAClB,KAAK,YAAc,GACnB,KAAK,WAAagT,EAClB,KAAK,KAAOhT,EACZ,KAAK,MAAQsE,EACb,KAAK,KAAO,OACZ,IAAI5B,EACA5P,EAAMmQ,EACV,KAAK,OAAS,IAAI8P,EAAO,KAAK,WAAYrQ,EAAO,KAAK,KAAK,EAC3D,KAAK,OAAO,IAAM1C,EAClB,IAAImV,EAAO,KACX,OAAO,eAAe,KAAK,OAAQ,OAAQ,CACzC,KAAM,CACJ,OAAOA,EAAK,IACd,CACR,CAAO,EACD,IAAIxL,EAAM,IAAIgE,EAAa7a,EAAK4P,EAAO,KAAK,MAAO1C,CAAG,EACtD,GAAI2J,EAAI,MAAA,EAAS,CACf,GAAI,CAACyL,EAAcC,CAAY,EAAI1L,EAAI,SAAQ,EAC3CyL,IACF,KAAK,OAAO,IAAMA,GAEhBC,IACF,KAAK,OAAO,IAAMA,EAEtB,MACE1L,EAAI,gBAAe,EACnB,KAAK,OAAO,IAAMA,EAAI,GAE1B,CACA,OAAQ,CACN,OAAI,KAAK,MAAc,QAAQ,OAAO,KAAK,KAAK,EACzC,QAAQ,QAAQ,KAAK,MAAM,CACpC,CACA,MAAMyK,EAAY,CAChB,OAAO,KAAK,MAAA,EAAQ,MAAMA,CAAU,CACtC,CACA,QAAQC,EAAW,CACjB,OAAO,KAAK,MAAK,EAAG,KAAKA,EAAWA,CAAS,CAC/C,CACA,MAAO,CACL,GAAI,KAAK,MAAO,MAAM,KAAK,MAC3B,OAAO,KAAK,MACd,CACA,KAAKO,EAAaR,EAAY,CAQ5B,OAAO,KAAK,MAAK,EAAG,KAAKQ,EAAaR,CAAU,CAClD,CACA,UAAW,CACT,OAAO,KAAK,IACd,CACA,UAAW,CACT,MAAO,CAAA,CACT,CACJ,CACEW,OAAAA,GAAeG,EACfA,EAAa,QAAUA,EAChBH,EACT,CACA,IAAIO,GACAC,GACJ,SAASC,IAAmB,CAC1B,GAAID,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,IAAIxN,EAAWH,GAAe,EAC1BC,EAAa2L,GAAiB,EAC9B0B,EAAeD,GAAmB,EAClC5O,EAAOuF,GAAW,EACtB,MAAM9D,CAAU,CACd,YAAY2N,EAAU,CAAA,EAAI,CACxB,KAAK,QAAU,QACf,KAAK,QAAU,KAAK,UAAUA,CAAO,CACvC,CACA,UAAUA,EAAS,CACjB,IAAIC,EAAa,CAAA,EACjB,QAAS/a,KAAK8a,EAMZ,GALI9a,EAAE,UAAY,GAChBA,EAAIA,EAAC,EACIA,EAAE,UACXA,EAAIA,EAAE,SAEJ,OAAOA,GAAM,UAAY,MAAM,QAAQA,EAAE,OAAO,EAClD+a,EAAaA,EAAW,OAAO/a,EAAE,OAAO,UAC/B,OAAOA,GAAM,UAAYA,EAAE,cACpC+a,EAAW,KAAK/a,CAAC,UACR,OAAOA,GAAM,WACtB+a,EAAW,KAAK/a,CAAC,UACR,SAAOA,GAAM,WAAaA,EAAE,OAASA,EAAE,YAOhD,MAAM,IAAI,MAAMA,EAAI,0BAA0B,EAGlD,OAAO+a,CACT,CACA,QAAQ1V,EAAKsE,EAAO,CAAA,EAAI,CACtB,MAAI,CAAC,KAAK,QAAQ,QAAU,CAACA,EAAK,QAAU,CAACA,EAAK,aAAe,CAACA,EAAK,OAC9D,IAAI4Q,EAAa,KAAMlV,EAAKsE,CAAI,EAEhC,IAAIuD,EAAW,KAAM7H,EAAKsE,CAAI,CAEzC,CACA,IAAIxE,EAAQ,CACV,YAAK,QAAU,KAAK,QAAQ,OAAO,KAAK,UAAU,CAACA,CAAM,CAAC,CAAC,EACpD,IACT,CACJ,CACEwV,OAAAA,GAAYxN,EACZA,EAAU,QAAUA,EACpBzB,EAAK,kBAAkByB,CAAS,EAChCC,EAAS,kBAAkBD,CAAS,EAC7BwN,EACT,CACA,IAAIK,GACAC,GACJ,SAASC,IAAiB,CACxB,GAAID,GAAoB,OAAOD,GAC/BC,GAAqB,EACrB,IAAIzP,EAASsB,GAAa,EACtBhC,EAAUD,GAAc,EACxBiB,EAAYP,GAAgB,EAC5BzG,EAAiBH,GAAqB,EACtCuG,EAAcD,GAAkB,EAChCmC,EAAWH,GAAe,EAC1BuF,EAAWD,GAAe,EAC1BrC,EAAQb,GAAY,EACpBnC,EAAa2L,GAAiB,EAC9BvH,EAAOD,GAAW,EAClBhI,EAAOV,GAAW,EAClB8C,EAAQgM,GAAY,EACpBtK,EAAY0N,GAAgB,EAC5BzC,EAASD,GAAa,EACtBzM,EAAOuF,GAAW,EAClBtF,EAAOuG,GAAW,EAClB5J,EAAYD,GAAgB,EAC5ByP,EAAUD,GAAc,EAC5B,SAAS2B,KAAYsB,EAAS,CAC5B,OAAIA,EAAQ,SAAW,GAAK,MAAM,QAAQA,EAAQ,CAAC,CAAC,IAClDA,EAAUA,EAAQ,CAAC,GAEd,IAAI3N,EAAU2N,CAAO,CAC9B,CACA,OAAAtB,EAAS,OAAS,SAAgBpkB,EAAM+lB,EAAa,CACnD,IAAIC,EAAiB,GACrB,SAASC,KAAWlP,EAAM,CACpB,SAAW,QAAQ,MAAQ,CAACiP,IAC9BA,EAAiB,GACjB,QAAQ,KACNhmB,EAAO;+DACjB,EACY,QAAQ,IAAI,MAAQ,QAAQ,IAAI,KAAK,WAAW,IAAI,GACtD,QAAQ,KACNA,EAAO;mCACnB,GAGM,IAAIkmB,EAAcH,EAAY,GAAGhP,CAAI,EACrC,OAAAmP,EAAY,cAAgBlmB,EAC5BkmB,EAAY,eAAiB,IAAInO,EAAS,EAAG,QACtCmO,CACT,CACA,IAAIpE,EACJ,cAAO,eAAemE,EAAS,UAAW,CACxC,KAAM,CACJ,OAAKnE,IAAOA,EAAQmE,EAAO,GACpBnE,CACT,CACN,CAAK,EACDmE,EAAQ,QAAU,SAAShW,EAAKkW,EAAaC,EAAY,CACvD,OAAOhC,EAAS,CAAC6B,EAAQG,CAAU,CAAC,CAAC,EAAE,QAAQnW,EAAKkW,CAAW,CACjE,EACOF,CACT,EACA7B,EAAS,UAAYlR,EACrBkR,EAAS,MAAQ/N,EACjB+N,EAAS,SAAWhH,EACpBgH,EAAS,KAAOlI,EAChBkI,EAAS,QAAWlQ,GAAa,IAAIwB,EAAQxB,CAAQ,EACrDkQ,EAAS,OAAUlQ,GAAa,IAAIkC,EAAOlC,CAAQ,EACnDkQ,EAAS,KAAQlQ,GAAa,IAAI4B,EAAY5B,CAAQ,EACtDkQ,EAAS,KAAQlQ,GAAa,IAAIqC,EAAKrC,CAAQ,EAC/CkQ,EAAS,KAAQlQ,GAAa,IAAIoC,EAAKpC,CAAQ,EAC/CkQ,EAAS,SAAYlQ,GAAa,IAAI8D,EAAS9D,CAAQ,EACvDkQ,EAAS,eAAiB1U,EAC1B0U,EAAS,YAActO,EACvBsO,EAAS,UAAY1N,EACrB0N,EAAS,UAAYrM,EACrBqM,EAAS,SAAWpM,EACpBoM,EAAS,QAAU1O,EACnB0O,EAAS,QAAU1B,EACnB0B,EAAS,OAAShO,EAClBgO,EAAS,OAASpB,EAClBoB,EAAS,MAAQtJ,EACjBsJ,EAAS,KAAO7N,EAChB6N,EAAS,KAAO9N,EAChB8N,EAAS,KAAOnQ,EAChB6D,EAAW,gBAAgBsM,CAAQ,EACnCwB,GAAYxB,EACZA,EAAS,QAAUA,EACZwB,EACT,CACA,IAAIS,GACAC,GACJ,SAASC,IAAoB,CAC3B,GAAID,GAAuB,OAAOD,GAClCC,GAAwB,EACxB,IAAI5Q,EAAUD,GAAc,EACxB6L,EAASL,GAAa,EACtBC,EAAY1C,GAAe,EAC/B,MAAMgI,UAAmBlF,CAAO,CAC9B,sBAAuB,CACvB,CACA,QAAQR,EAAO,CACb,IAAIlP,EAAQ,IAAI8D,EAChB,KAAK,KAAK9D,EAAOkP,EAAM,CAAC,CAAC,EACzB,IAAIpa,EAAM,KAAK,MAAM,WAAWoa,EAAM,CAAC,CAAC,GAAK,KAAK,MAAM,WAAW,KAAK,MAAM,IAAI,OAAS,CAAC,EAC5FlP,EAAM,OAAO,IAAM,CACjB,OAAQlL,EAAI,IACZ,KAAMA,EAAI,KACV,OAAQoa,EAAM,CAAC,EAAI,CAC3B,EACM,IAAIle,EAAOke,EAAM,CAAC,EAAE,MAAM,CAAC,EAE3B,GADIle,EAAK,MAAM,EAAE,IAAM,OAAMA,EAAOA,EAAK,MAAM,EAAG,EAAE,GAChD,QAAQ,KAAKA,CAAI,EACnBgP,EAAM,KAAO,GACbA,EAAM,KAAK,KAAOhP,EAClBgP,EAAM,KAAK,MAAQ,OACd,CACL,IAAIzN,EAAQvB,EAAK,MAAM,sBAAsB,EAC7CgP,EAAM,KAAOzN,EAAM,CAAC,EACpByN,EAAM,KAAK,KAAOzN,EAAM,CAAC,EACzByN,EAAM,KAAK,MAAQzN,EAAM,CAAC,CAC5B,CACF,CACA,iBAAkB,CAChB,KAAK,UAAY+c,EAAU,KAAK,MAAO,CAAE,aAAc,EAAA,CAAM,CAC/D,CACA,KAAKG,EAAQ,CACPA,EAAO,OAAS,GAAKA,EAAO,KAAMzW,GAAMA,EAAE,CAAC,IAAM,MAAM,GACzD,MAAM,KAAKyW,CAAM,CAErB,CACA,aAAc,CACd,CACA,SAAU,CAKR,IAJI,KAAK,QAAQ,OAAS,KAAK,QAAQ,MAAM,SAC3C,KAAK,QAAQ,KAAK,UAAY,KAAK,WAErC,KAAK,QAAQ,KAAK,OAAS,KAAK,QAAQ,KAAK,OAAS,IAAM,KAAK,OAC1D,KAAK,QAAQ,QAClB,KAAK,QAAU,KAAK,QAAQ,OAC5B,KAAK,QAAQ,KAAK,MAAQ,GAE5B,KAAK,KAAK,OAAO,IAAM,KAAK,YAAY,KAAK,UAAU,SAAA,CAAU,CACnE,CACA,wBAAwBA,EAAQ,CAC9B,IAAIK,EAAQ,KAAK,MAAML,CAAM,EAC7B,GAAIK,IAAU,GAAO,OACrB,IAAI+E,EAAWC,EACf,IAAKD,EAAY/E,EAAQ,EAAG+E,GAAa,GACnCpF,EAAOoF,CAAS,EAAE,CAAC,IAAM,OADaA,IAC1C,CAEF,GAAIA,IAAc,GAAKA,EAAY,EAAG,OACtC,IAAKC,EAAUD,EAAY,EAAGC,GAAW,EAAGA,IAC1C,GAAIrF,EAAOqF,CAAO,EAAE,CAAC,IAAM,QAAS,CAClCA,GAAW,EACX,KACF,CAEF,IAAIrnB,EAAQgiB,EAAO,MAAMoF,CAAS,EAC9BtK,EAASkF,EAAO,MAAMqF,EAASD,CAAS,EAC5CpF,EAAO,OAAOqF,EAASrF,EAAO,OAASqF,CAAO,EAC9C,KAAK,OAASvK,EAAO,IAAKvR,GAAMA,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAC7C,KAAK,KAAKvL,CAAK,CACjB,CACA,iBAAkB,CAClB,CACA,iBAAkB,CAChB,KAAK,QAAQ,KAAK,OAAS,GAC7B,CACA,YAAYgiB,EAAQ,CAClB,KAAK,QAAUA,EAAO,IAAKzW,GAAMA,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAChD,CACA,cAAcgH,EAAO,CACnBA,EAAM,KAAO,EACf,CACJ,CACEyU,OAAAA,GAAeG,EACRH,EACT,CACA,IAAIM,GACAC,GACJ,SAASC,IAAmB,CAC1B,GAAID,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,GAAI,CAAE,MAAA9L,CAAK,EAAKgL,GAAc,EAC1BU,EAAaD,GAAiB,EAClCI,OAAAA,GAAY,SAAoB1W,EAAKsE,EAAM,CACzC,IAAIa,EAAS,IAAI0F,EAAM7K,EAAKsE,CAAI,EAC5B+N,EAAU,IAAIkE,EAAWpR,CAAM,EACnC,OAAAkN,EAAQ,MAAK,EACNA,EAAQ,IACjB,EACOqE,EACT,CACA,IAAIG,GAAmBD,GAAgB,EACvC,MAAME,GAA6BxY,GAAwBuY,EAAgB,EAC3E,IAAIE,GAAiBlB,GAAc,EACnC,MAAMmB,EAA0B1Y,GAAwByY,EAAc,EACtEC,EAAQ,UACRA,EAAQ,SACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,SACRA,EAAQ,QACRA,EAAQ,OACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,eACRA,EAAQ,YACRA,EAAQ,UACRA,EAAQ,UACRA,EAAQ,SACRA,EAAQ,QACRA,EAAQ,QACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACR,MAAMC,GAAS,CACb,OAAQ,WAER,SAAU,WACV,YAAa,cACb,aAAc,eACd,aAAc,eACd,cAAe,gBACf,iBAAkB,mBAClB,SAAU,WACV,QAAS,UACT,cAAe,gBACf,oBAAqB,sBACrB,YAAa,cACb,iBAAkB,mBAClB,kBAAmB,oBACnB,kBAAmB,oBACnB,eAAgB,iBAChB,aAAc,eACd,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,eAAgB,iBAChB,QAAS,UACT,QAAS,UACT,YAAa,cACb,aAAc,eACd,SAAU,WACV,aAAc,eACd,mBAAoB,qBACpB,YAAa,cACb,OAAQ,SACR,aAAc,eACd,cAAe,gBACf,SAAU,WACV,eAAgB,iBAChB,eAAgB,gBAClB,EACA,SAASC,GAAWnoB,EAAG,CACrB,IAAIyD,EAAUykB,GAAOloB,EAAE,OAAO,EAAIkoB,GAAOloB,EAAE,OAAO,EAAIA,EAAE,QACxD,OAAIyD,IAAY,QAAUzD,EAAE,WAAW,WACrCyD,EAAU,SAELA,CACT,CACA,SAAS2kB,GAAkBzmB,EAASmhB,EAAO,CACzC,MAAMuF,EAAcvF,GAAS,KAAO,OAASA,EAAM,qBAAqB,IAAInhB,CAAO,EACnF,GAAI0mB,EAAa,OAAOA,EACxB,IAAIvS,EAAUnU,EACd,GAAI,CAKFmU,EAJYmS,EAAQ,CAClBhZ,GACAE,EACN,CAAK,EAAE,QAAQxN,EAAS,CAAE,OAAQomB,EAAU,CAAE,EAC5B,GAChB,OAAS1lB,EAAO,CACd,QAAQ,KAAK,iCAAkCA,CAAK,CACtD,CACA,OAAAygB,GAAS,MAAgBA,EAAM,qBAAqB,IAAInhB,EAASmU,CAAO,EACjEA,CACT,CACA,SAASwS,IAAc,CAErB,MAAO,CACL,qBAF2C,IAAI,GAGnD,CACA,CACA,SAASC,GAAYvoB,EAAGoK,EAAS,CAC/B,IAAIoe,EAAgBxoB,EAAE,YACtB,GAAIA,EAAE,SAAWoK,EAAQ,QACvB,GAAI,CACFoe,EAAgBJ,GAAkBpoB,EAAE,YAAaoK,EAAQ,KAAK,CAChE,OAAQ/K,EAAA,CACR,CAEF,OAAO+K,EAAQ,IAAI,eAAeoe,CAAa,CACjD,CACA,SAASC,GAAUzoB,EAAGoK,EAAS,CAC7B,IAAI9L,EACJ,KAAM,CAAE,IAAAkJ,EAAK,QAAAkhB,EAAS,MAAA5F,CAAK,EAAK1Y,EAChC,OAAQpK,EAAE,KAAI,CACZ,KAAK+K,EAAS,SACZ,OAAOvD,EAAI,eAAe,eAAe,KAAM,GAAI,IAAI,EACzD,KAAKuD,EAAS,aACZ,OAAOvD,EAAI,eAAe,mBACxBxH,EAAE,MAAQ,OACVA,EAAE,SACFA,EAAE,QACV,EACI,KAAK+K,EAAS,QAAS,CACrB,MAAMtH,EAAU0kB,GAAWnoB,CAAC,EAC5B,IAAI4S,EACA5S,EAAE,MACJ4S,EAAQpL,EAAI,gBAAgB,6BAA8B/D,CAAO,GAI/DzD,EAAE,YACA1B,EAAKkJ,EAAI,cAAgB,MAAgBlJ,EAAG,iBAC9C,CAACkJ,EAAI,YAAY,eAAe,IAAIxH,EAAE,OAAO,GAE7CwH,EAAI,YAAY,eAAe,OAC7BxH,EAAE,QACF,cAAcwH,EAAI,YAAY,WAAY,CACtD,CACA,EACQoL,EAAQpL,EAAI,cAAc/D,CAAO,GAEnC,MAAMklB,EAAoB,CAAA,EAC1B,UAAW3nB,KAAQhB,EAAE,WAAY,CAC/B,GAAI,CAAC,OAAO,UAAU,eAAe,KAAKA,EAAE,WAAYgB,CAAI,EAC1D,SAEF,IAAIlD,EAAQkC,EAAE,WAAWgB,CAAI,EAI7B,GAHIyC,IAAY,UAAYzC,IAAS,YAAclD,IAAU,IAGzDA,IAAU,KACZ,SAGF,GADIA,IAAU,KAAMA,EAAQ,IACxBkD,EAAK,WAAW,KAAK,EAAG,CAC1B2nB,EAAkB3nB,CAAI,EAAIlD,EAC1B,QACF,CACA,MAAM8qB,EAAanlB,IAAY,YAAczC,IAAS,QAChD6nB,EAAuBplB,IAAY,SAAWzC,IAAS,WAI7D,GAHI6nB,GAAwBH,GAAW,OAAO5qB,GAAU,WACtDA,EAAQsqB,GAAkBtqB,EAAOglB,CAAK,IAEnC8F,GAAcC,IAAyB,OAAO/qB,GAAU,SAAU,CACrE8U,EAAM,YAAYpL,EAAI,eAAe1J,CAAK,CAAC,EAC3CkC,EAAE,WAAa,CAAA,EACf,QACF,CACA,GAAI,CACF,GAAIA,EAAE,OAASgB,IAAS,aACtB4R,EAAM,eACJ,+BACA5R,EACAlD,EAAM,SAAQ,CAC5B,UACqBkD,IAAS,UAAYA,IAAS,WAAaA,EAAK,UAAU,EAAG,CAAC,IAAM,UAC7E4R,EAAM,aAAa,IAAM5R,EAAMlD,EAAM,SAAQ,CAAE,UACtC2F,IAAY,QAAUzD,EAAE,WAAW,YAAY,IAAM,2BAA6BgB,IAAS,UAAW,CAC/G4R,EAAM,aAAa,cAAe9U,EAAM,SAAQ,CAAE,EAClD,QACF,MAAW2F,IAAY,SAAWzD,EAAE,WAAW,MAAQ,WAAaA,EAAE,WAAW,KAAO,UAAYA,EAAE,WAAW,MAAQ,kBAC9GyD,IAAY,QAAUzD,EAAE,WAAW,MAAQ,YAAc,OAAOA,EAAE,WAAW,MAAS,UAAY8E,GAAqB9E,EAAE,WAAW,IAAI,IAAM,OAC9IyD,IAAY,OAASzD,EAAE,WAAW,QAAUA,EAAE,WAAW,WAClE4S,EAAM,aACJ,wBACA5S,EAAE,WAAW,MAC3B,EAEY4S,EAAM,aAAa5R,EAAMlD,EAAM,SAAQ,CAAE,EAE7C,OAASuE,EAAO,CAChB,CACF,CACA,UAAWrB,KAAQ2nB,EAAmB,CACpC,MAAM7qB,EAAQ6qB,EAAkB3nB,CAAI,EACpC,GAAIyC,IAAY,UAAYzC,IAAS,aAAc,CACjD,MAAMsL,EAAQ9E,EAAI,cAAc,KAAK,EACrC8E,EAAM,OAAS,IAAM,CACnB,MAAMnI,EAAMyO,EAAM,WAAW,IAAI,EAC7BzO,GACFA,EAAI,UAAUmI,EAAO,EAAG,EAAGA,EAAM,MAAOA,EAAM,MAAM,CAExD,EACAA,EAAM,IAAMxO,EAAM,SAAQ,EACtB8U,EAAM,aACRA,EAAM,WAAa9U,EAAM,SAAQ,EACrC,SAAW2F,IAAY,OAASzC,IAAS,aAAc,CACrD,MAAMsL,EAAQsG,EACTtG,EAAM,WAAW,WAAW,OAAO,IACtCA,EAAM,aACJ,qBACAtM,EAAE,WAAW,GAC3B,EACYsM,EAAM,IAAMxO,EAAM,SAAQ,EAE9B,CACA,GAAIkD,IAAS,WACX4R,EAAM,MAAM,YAAY,QAAS9U,EAAM,SAAQ,CAAE,UACxCkD,IAAS,YAClB4R,EAAM,MAAM,YAAY,SAAU9U,EAAM,SAAQ,CAAE,UACzCkD,IAAS,UAClB4R,EAAM,MAAM,YAAY,OAAQ9U,EAAM,SAAQ,CAAE,EAChD8U,EAAM,MAAM,YAAY,WAAY,UAAU,UACrC5R,IAAS,SAClB4R,EAAM,MAAM,YAAY,MAAO9U,EAAM,SAAQ,CAAE,EAC/C8U,EAAM,MAAM,YAAY,WAAY,UAAU,UACrC5R,IAAS,uBAAyB,OAAOlD,GAAU,SAC5D8U,EAAM,YAAc9U,UACXkD,IAAS,gBAClB,OAAQlD,EAAK,CACX,IAAK,SACH8U,EAAM,KAAA,EAAO,MAAO0F,GAAO,QAAQ,KAAK,uBAAwBA,CAAE,CAAC,EACnE,MACF,IAAK,SACH1F,EAAM,MAAK,EACX,KACd,MACmB5R,IAAS,wBAA0B,OAAOlD,GAAU,SAC7D8U,EAAM,aAAe9U,EACZkD,IAAS,iBAAmB,OAAOlD,GAAU,UACtD8U,EAAM,MAAQ9U,EACLkD,IAAS,gBAAkB,OAAOlD,GAAU,UACrD8U,EAAM,KAAO9U,EACJkD,IAAS,kBAAoB,OAAOlD,GAAU,SACvD8U,EAAM,OAAS9U,EACNkD,IAAS,gBAClB4R,EAAM,aACJ,eACA9U,CACZ,CAEM,CACA,GAAIkC,EAAE,aACJ,GAAI,CAAC4S,EAAM,WACTA,EAAM,aAAa,CAAE,KAAM,MAAM,CAAE,MAEnC,MAAOA,EAAM,WAAW,YACtBA,EAAM,WAAW,YAAYA,EAAM,WAAW,UAAU,EAI9D,OAAOA,CACT,CACA,KAAK7H,EAAS,KACZ,OAAOwd,GAAYvoB,EAAG,CACpB,MAAA8iB,EACA,IAAAtb,EACA,QAAAkhB,CACR,CAAO,EACH,KAAK3d,EAAS,MACZ,OAAI/K,EAAE,YAAY,KAAI,IAAO,GACpB,KAEFwH,EAAI,mBAAmBxH,EAAE,WAAW,EAC7C,KAAK+K,EAAS,QACZ,OAAOvD,EAAI,cAAcxH,EAAE,WAAW,EACxC,QACE,OAAO,IACb,CACA,CACA,SAAS8oB,GAAgB9oB,EAAGoK,EAAS,CACnC,KAAM,CACJ,IAAA5C,EACA,OAAA6C,EACA,UAAAsD,EAAY,GACZ,QAAA+a,EAAU,GACV,YAAAK,EACA,MAAAjG,CACJ,EAAM1Y,EACJ,GAAIC,EAAO,IAAIrK,EAAE,EAAE,EAAG,CACpB,MAAMgpB,EAAe3e,EAAO,QAAQrK,EAAE,EAAE,EAClCmD,EAAOkH,EAAO,QAAQ2e,CAAY,EACxC,GAAItkB,GAAgBvB,EAAMnD,CAAC,EAAG,OAAOqK,EAAO,QAAQrK,EAAE,EAAE,CAC1D,CACA,IAAI4S,EAAQ6V,GAAUzoB,EAAG,CAAE,IAAAwH,EAAK,QAAAkhB,EAAS,MAAA5F,CAAA,CAAO,EAChD,GAAI,CAAClQ,EACH,OAAO,KAsBT,GApBI5S,EAAE,QAAUqK,EAAO,QAAQrK,EAAE,MAAM,IAAMwH,GAC3C6C,EAAO,QAAQrK,EAAE,OAAQwH,CAAG,EAE1BxH,EAAE,OAAS+K,EAAS,WACtBvD,EAAI,MAAK,EACTA,EAAI,KAAI,EACJxH,EAAE,aAAe,cAAgBA,EAAE,YAAcA,EAAE,WAAW,CAAC,EAAE,OAAS+K,EAAS,eACjF/K,EAAE,WAAW,CAAC,EAAE,OAAS+K,EAAS,SAAW,UAAW/K,EAAE,WAAW,CAAC,EAAE,YAAcA,EAAE,WAAW,CAAC,EAAE,WAAW,QAAU,+BAC7HwH,EAAI,MACF,oEACV,EAEQA,EAAI,MACF,mEACV,GAGIoL,EAAQpL,GAEV6C,EAAO,IAAIuI,EAAO5S,CAAC,GACdA,EAAE,OAAS+K,EAAS,UAAY/K,EAAE,OAAS+K,EAAS,UAAY,CAAC4C,EACpE,UAAWY,KAAUvO,EAAE,WAAY,CACjC,MAAMgD,EAAY8lB,GAAgBva,EAAQ,CACxC,IAAA/G,EACA,OAAA6C,EACA,UAAW,GACX,QAAAqe,EACA,YAAAK,EACA,MAAAjG,CACR,CAAO,EACD,GAAI,CAAC9f,EAAW,CACd,QAAQ,KAAK,oBAAqBuL,CAAM,EACxC,QACF,CACA,GAAIA,EAAO,UAAYlN,GAAUuR,CAAK,GAAKA,EAAM,WAC/CA,EAAM,WAAW,YAAY5P,CAAS,UAC7BhD,EAAE,OAAS+K,EAAS,UAAYwD,EAAO,MAAQxD,EAAS,QAAS,CAC1E,MAAMke,EAAcjmB,EACpB,IAAIkmB,EAAO,KACXD,EAAY,WAAW,QAAS3V,GAAU,CACpCA,EAAM,WAAa,SAAQ4V,EAAO5V,EACxC,CAAC,EACG4V,GACFD,EAAY,YAAYC,CAAI,EAC5BtW,EAAM,YAAY5P,CAAS,EAC3BimB,EAAY,YAAYC,CAAI,GAE5BtW,EAAM,YAAY5P,CAAS,CAE/B,MAAWhD,EAAE,OAAS+K,EAAS,UAAYwD,EAAO,OAASxD,EAAS,cAC9D6H,EAAM,YAAcA,EAAM,WAAW,WAAa,EACpDA,EAAM,aAAa5P,EAAW4P,EAAM,UAAU,EAKhDA,EAAM,YAAY5P,CAAS,EAEzB+lB,GACFA,EAAY/lB,EAAWuL,EAAO,EAAE,CAEpC,CAEF,OAAOqE,CACT,CACA,SAASuW,GAAM9e,EAAQ+e,EAAS,CAC9B,SAASC,EAAKzW,EAAO,CACnBwW,EAAQxW,CAAK,CACf,CACA,UAAW7P,KAAMsH,EAAO,OAAA,EAClBA,EAAO,IAAItH,CAAE,GACfsmB,EAAKhf,EAAO,QAAQtH,CAAE,CAAC,CAG7B,CACA,SAASumB,GAAa1W,EAAOvI,EAAQ,CACnC,MAAMrK,EAAIqK,EAAO,QAAQuI,CAAK,EAC9B,IAAK5S,GAAK,KAAO,OAASA,EAAE,QAAU+K,EAAS,QAC7C,OAEF,MAAMzC,EAAKsK,EACX,UAAW5R,KAAQhB,EAAE,WAAY,CAC/B,GAAI,EAAE,OAAO,UAAU,eAAe,KAAKA,EAAE,WAAYgB,CAAI,GAAKA,EAAK,WAAW,KAAK,GACrF,SAEF,MAAMlD,EAAQkC,EAAE,WAAWgB,CAAI,EAC3BA,IAAS,kBACXsH,EAAG,WAAaxK,GAEdkD,IAAS,iBACXsH,EAAG,UAAYxK,EAEnB,CACF,CACA,SAASyrB,GAAQvpB,EAAGoK,EAAS,CAC3B,KAAM,CACJ,IAAA5C,EACA,QAAA4hB,EACA,QAAAV,EAAU,GACV,YAAAK,EACA,MAAAjG,EACA,OAAAzY,EAAS,IAAIvH,EACjB,EAAMsH,EACEwI,EAAQkW,GAAgB9oB,EAAG,CAC/B,IAAAwH,EACA,OAAA6C,EACA,UAAW,GACX,QAAAqe,EACA,YAAAK,EACA,MAAAjG,CACJ,CAAG,EACD,OAAAqG,GAAM9e,EAASmf,GAAgB,CACzBJ,GACFA,EAAQI,CAAW,EAErBF,GAAaE,EAAanf,CAAM,CAClC,CAAC,EACMuI,CACT,CC5wIA,IAAIlV,GAAY,OAAO,eACnBC,GAAkB,CAACC,EAAKC,EAAKC,IAAUD,KAAOD,EAAMF,GAAUE,EAAKC,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAC,CAAK,CAAE,EAAIF,EAAIC,CAAG,EAAIC,EACtJC,EAAgB,CAACH,EAAKC,EAAKC,IAAUH,GAAgBC,EAAK,OAAOC,GAAQ,SAAWA,EAAM,GAAKA,EAAKC,CAAK,EACzG2rB,GAAa,OAAO,eACpBC,GAAmB,CAAC9rB,EAAKC,EAAKC,IAAUD,KAAOD,EAAM6rB,GAAW7rB,EAAKC,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAC,CAAK,CAAE,EAAIF,EAAIC,CAAG,EAAIC,EACxJ6rB,GAAiB,CAAC/rB,EAAKC,EAAKC,IAAU4rB,GAAiB9rB,EAAK,OAAOC,GAAQ,SAAWA,EAAM,GAAKA,EAAKC,CAAK,EAC/G,MAAMI,GAAoB,CACxB,KAAM,CAAC,aAAc,aAAc,gBAAiB,aAAa,EACjE,WAAY,CAAC,OAAQ,aAAa,EAClC,QAAS,CAAC,aAAc,gBAAiB,kBAAkB,EAC3D,iBAAkB,CAAA,CACpB,EACMC,GAAkB,CACtB,KAAM,CAAC,WAAY,aAAa,EAChC,WAAY,CAAC,cAAc,EAC3B,QAAS,CAAA,EACT,iBAAkB,CAAC,aAAa,CAClC,EACMC,GAAyB,CAAA,EAC/B,SAASC,GAAgCR,EAAK,CAC5C,IAAIS,EAAIC,EACR,MAAMC,GAAiCD,GAAMD,EAAK,YAAc,KAAO,OAAS,WAAW,OAAS,KAAO,OAASA,EAAG,aAAe,KAAO,OAASC,EAAG,KAAKD,EAAIT,CAAG,EACrK,GAAIW,GAAiC,WAAWA,CAA6B,EAC3E,OAAO,WAAWA,CAA6B,CAInD,CACA,SAASC,GAAsBZ,EAAK,CAClC,GAAIO,GAAuBP,CAAG,EAC5B,OAAOO,GAAuBP,CAAG,EACnC,MAAMa,EAAYL,GAAgCR,CAAG,GAAK,WAAWA,CAAG,EAClEc,EAAmBD,EAAU,UAC7BE,EAAgBf,KAAOK,GAAoBA,GAAkBL,CAAG,EAAI,OACpEgB,EAAuB,GAC3BD,GACAA,EAAc,MACXE,GAAa,CACZ,IAAIR,EAAIC,EACR,MAAO,IACJA,GAAMD,EAAK,OAAO,yBAAyBK,EAAkBG,CAAQ,IAAM,KAAO,OAASR,EAAG,MAAQ,MAAgBC,EAAG,SAAQ,EAAG,SAAS,eAAe,EAEjK,CACN,GAEQQ,EAAclB,KAAOM,GAAkBA,GAAgBN,CAAG,EAAI,OAC9DmB,EAAqB,GACzBD,GAAeA,EAAY,MAExBE,GAAW,CACV,IAAIX,EACJ,OAAO,OAAOK,EAAiBM,CAAM,GAAM,cAAgBX,EAAKK,EAAiBM,CAAM,IAAM,KAAO,OAASX,EAAG,SAAQ,EAAG,SAAS,eAAe,EACrJ,CACN,GAEE,GAAIO,GAAwBG,EAC1BZ,OAAAA,GAAuBP,CAAG,EAAIa,EAAU,UACjCA,EAAU,UAEnB,GAAI,CACF,MAAMQ,EAAW,SAAS,cAAc,QAAQ,EAChD,SAAS,KAAK,YAAYA,CAAQ,EAClC,MAAMC,EAAMD,EAAS,cACrB,GAAI,CAACC,EAAK,OAAOT,EAAU,UAC3B,MAAMU,EAAkBD,EAAItB,CAAG,EAAE,UAEjC,OADA,SAAS,KAAK,YAAYqB,CAAQ,EAC7BE,EACEhB,GAAuBP,CAAG,EAAIuB,EADRT,CAE/B,OAAQU,EAAA,CACN,OAAOV,CACT,CACF,CACA,MAAMW,GAAyB,CAAA,EAC/B,SAASC,GAAqB1B,EAAK2B,EAAUV,EAAU,CACrD,IAAIR,EACJ,MAAMmB,EAAW,GAAG5B,CAAG,IAAI,OAAOiB,CAAQ,CAAC,GAC3C,GAAIQ,GAAuBG,CAAQ,EACjC,OAAOH,GAAuBG,CAAQ,EAAE,KACtCD,CACN,EACE,MAAME,EAAqBjB,GAAsBZ,CAAG,EAC9C8B,GAAqBrB,EAAK,OAAO,yBACrCoB,EACAZ,CACJ,IAAQ,KAAO,OAASR,EAAG,IACzB,OAAKqB,GACLL,GAAuBG,CAAQ,EAAIE,EAC5BA,EAAkB,KAAKH,CAAQ,GAFPA,EAASV,CAAQ,CAGlD,CACA,MAAMc,GAAuB,CAAA,EAC7B,SAASC,GAAmBhC,EAAK2B,EAAUP,EAAQ,CACjD,MAAMQ,EAAW,GAAG5B,CAAG,IAAI,OAAOoB,CAAM,CAAC,GACzC,GAAIW,GAAqBH,CAAQ,EAC/B,OAAOG,GAAqBH,CAAQ,EAAE,KACpCD,CACN,EAEE,MAAMM,EADqBrB,GAAsBZ,CAAG,EACToB,CAAM,EACjD,OAAI,OAAOa,GAAoB,WAAmBN,EAASP,CAAM,GACjEW,GAAqBH,CAAQ,EAAIK,EAC1BA,EAAgB,KAAKN,CAAQ,EACtC,CACA,SAASO,GAAWC,EAAG,CACrB,OAAOT,GAAqB,OAAQS,EAAG,YAAY,CACrD,CACA,SAASC,GAAWD,EAAG,CACrB,OAAOT,GAAqB,OAAQS,EAAG,YAAY,CACrD,CACA,SAASE,GAAcF,EAAG,CACxB,OAAOT,GAAqB,OAAQS,EAAG,eAAe,CACxD,CACA,SAASG,GAAYH,EAAG,CACtB,OAAOT,GAAqB,OAAQS,EAAG,aAAa,CACtD,CACA,SAASI,GAASJ,EAAGK,EAAO,CAC1B,OAAOR,GAAmB,OAAQG,EAAG,UAAU,EAAEK,CAAK,CACxD,CACA,SAASC,GAAYN,EAAG,CACtB,OAAOH,GAAmB,OAAQG,EAAG,aAAa,EAAC,CACrD,CACA,SAASO,GAAKP,EAAG,CACf,MAAI,CAACA,GAAK,EAAE,SAAUA,GAAW,KAC1BT,GAAqB,aAAcS,EAAG,MAAM,CACrD,CACA,SAASQ,GAAYR,EAAG,CACtB,OAAOA,EAAE,WACX,CACA,SAASS,GAAWT,EAAG,CACrB,MAAI,CAACA,GAAK,EAAE,eAAgBA,GAAW,KAChCT,GAAqB,UAAWS,EAAG,YAAY,CACxD,CACA,SAASU,GAAcV,EAAGW,EAAW,CACnC,OAAOpB,GAAqB,UAAWS,EAAG,eAAe,EAAEW,CAAS,CACtE,CACA,SAASC,GAAiBZ,EAAGW,EAAW,CACtC,OAAOpB,GAAqB,UAAWS,EAAG,kBAAkB,EAAEW,CAAS,CACzE,CACA,SAASE,IAAuB,CAC9B,OAAOpC,GAAsB,kBAAkB,EAAE,WACnD,CACA,SAASqC,GAAMC,EAAQC,EAAMC,EAAa,CACxC,GAAI,CACF,GAAI,EAAED,KAAQD,GACZ,MAAO,IAAM,CACb,EAEF,MAAMG,EAAWH,EAAOC,CAAI,EACtBG,EAAUF,EAAYC,CAAQ,EACpC,OAAI,OAAOC,GAAY,aACrBA,EAAQ,UAAYA,EAAQ,WAAa,CAAA,EACzC,OAAO,iBAAiBA,EAAS,CAC/B,mBAAoB,CAClB,WAAY,GACZ,MAAOD,CACjB,CACA,CAAO,GAEHH,EAAOC,CAAI,EAAIG,EACR,IAAM,CACXJ,EAAOC,CAAI,EAAIE,CACjB,CACF,OAAQ7B,EAAA,CACN,MAAO,IAAM,CACb,CACF,CACF,CACA,MAAM+B,GAAQ,CACd,WAAErB,GACF,WAAEE,GACF,cAAEC,GACF,YAAEC,GACF,SAAEC,GACF,YAAEE,GACF,KAAEC,GACF,YAAEC,GACF,WAAEC,GACF,cAAEC,GACF,iBAAEE,GACA,iBAAkBC,GACpB,MAAEC,EACF,EACA,SAASO,GAAUrB,EAAG,CACpB,OAAOA,EAAE,WAAaA,EAAE,YAC1B,CACA,IAAI4pB,GAAW,KAAa,CAC1B,aAAc,CACZD,GAAe,KAAM,YAA6B,IAAI,GAAK,EAC3DA,GAAe,KAAM,cAA+B,IAAI,OAAS,CACnE,CACA,MAAM3pB,EAAG,CACP,IAAI1B,EACJ,GAAI,CAAC0B,EAAG,MAAO,GACf,MAAM+C,GAAMzE,EAAK,KAAK,QAAQ0B,CAAC,IAAM,KAAO,OAAS1B,EAAG,GACxD,OAAOyE,GAAA,KAAAA,EAAM,EACf,CACA,QAAQA,EAAI,CACV,OAAO,KAAK,UAAU,IAAIA,CAAE,GAAK,IACnC,CACA,QAAS,CACP,OAAO,MAAM,KAAK,KAAK,UAAU,KAAI,CAAE,CACzC,CACA,QAAQ/C,EAAG,CACT,OAAO,KAAK,YAAY,IAAIA,CAAC,GAAK,IACpC,CAGA,kBAAkBA,EAAG,CACnB,MAAM+C,EAAK,KAAK,MAAM/C,CAAC,EAOvB,GANA,KAAK,UAAU,OAAO+C,CAAE,EACpB/C,EAAE,YACJA,EAAE,WAAW,QACVgD,GAAc,KAAK,kBAAkBA,CAAS,CACvD,EAEQ3B,GAAUrB,CAAC,EAAG,CAChB,MAAMiD,EAAe7B,GAAM,WAAWpB,CAAC,EACnCiD,GACF,KAAK,kBAAkBA,CAAY,EAEjCjD,EAAE,WAAa,UAAYA,EAAE,iBAC/B,KAAK,kBACHA,EAAE,eACZ,CAEI,CACF,CACA,IAAI+C,EAAI,CACN,OAAO,KAAK,UAAU,IAAIA,CAAE,CAC9B,CACA,QAAQ6P,EAAO,CACb,OAAO,KAAK,YAAY,IAAIA,CAAK,CACnC,CACA,IAAI5S,EAAGmD,EAAM,CACX,MAAMJ,EAAKI,EAAK,GAChB,KAAK,UAAU,IAAIJ,EAAI/C,CAAC,EACxB,KAAK,YAAY,IAAIA,EAAGmD,CAAI,CAC9B,CACA,QAAQJ,EAAI/C,EAAG,CACb,MAAMoD,EAAU,KAAK,QAAQL,CAAE,EAC/B,GAAIK,EAAS,CACX,MAAMD,EAAO,KAAK,YAAY,IAAIC,CAAO,EACrCD,GAAM,KAAK,YAAY,IAAInD,EAAGmD,CAAI,CACxC,CACA,KAAK,UAAU,IAAIJ,EAAI/C,CAAC,CAC1B,CACA,OAAQ,CACN,KAAK,UAA4B,IAAI,IACrC,KAAK,YAA8B,IAAI,OACzC,CACF,EACA,SAAS6pB,IAAiB,CACxB,OAAO,IAAID,EACb,CACA,SAASra,GAAwBlL,EAAG,CAClC,OAAOA,GAAKA,EAAE,YAAc,OAAO,UAAU,eAAe,KAAKA,EAAG,SAAS,EAAIA,EAAE,QAAaA,CAClG,CACA,SAASmL,GAAsBxP,EAAG,CAChC,GAAI,OAAO,UAAU,eAAe,KAAKA,EAAG,YAAY,EAAG,OAAOA,EAClE,IAAIyP,EAAKzP,EAAE,QACX,GAAI,OAAOyP,GAAM,WAAY,CAC3B,IAAIC,EAAK,SAASC,GAAK,CACrB,OAAI,gBAAgBA,EACX,QAAQ,UAAUF,EAAI,UAAW,KAAK,WAAW,EAEnDA,EAAG,MAAM,KAAM,SAAS,CACjC,EACAC,EAAG,UAAYD,EAAG,SACpB,MAAOC,EAAK,CAAA,EACZ,cAAO,eAAeA,EAAI,aAAc,CAAE,MAAO,EAAA,CAAM,EACvD,OAAO,KAAK1P,CAAC,EAAE,QAAQ,SAAS4P,EAAG,CACjC,IAAIC,EAAK,OAAO,yBAAyB7P,EAAG4P,CAAC,EAC7C,OAAO,eAAeF,EAAIE,EAAGC,EAAG,IAAMA,EAAK,CACzC,WAAY,GACZ,IAAK,UAAW,CACd,OAAO7P,EAAE4P,CAAC,CACZ,CACN,CAAK,CACH,CAAC,EACMF,CACT,CACA,IAAII,GAAqB,CAAE,QAAS,CAAA,CAAE,EAClCC,GACJ,SAASC,IAA4B,CACnC,GAAID,GAA+B,OAAOD,GAAmB,QAC7DC,GAAgC,EAChC,IAAI1L,EAAI,OACJ4L,EAAS,UAAW,CACtB,MAAO,CAAE,iBAAkB,GAAO,MAAO5L,EAAG,KAAMA,EAAG,IAAKA,EAAG,OAAQA,EAAG,UAAWA,EAAG,QAASA,EAAG,OAAQA,EAAG,cAAeA,EAAG,MAAOA,EAAG,IAAKA,EAAG,MAAOA,EAAG,OAAQA,EAAG,KAAMA,EAAG,QAASA,EAAG,KAAMA,EAAG,MAAOA,EAAG,KAAMA,EAAG,QAASA,EAAG,MAAOA,EAAG,QAASA,EAAG,SAAUA,EAAG,OAAQA,EAAG,UAAWA,EAAG,OAAQA,EAAG,QAASA,EAAG,YAAaA,EAAG,UAAWA,EAAG,YAAaA,EAAG,aAAcA,EAAG,WAAYA,EAAG,cAAeA,EAAG,WAAYA,EAAG,YAAaA,EAAG,cAAeA,EAAG,YAAaA,EAAG,cAAeA,EAAG,eAAgBA,EAAG,aAAcA,EAAG,gBAAiBA,EAAG,aAAcA,EAAG,cAAeA,CAAC,CACpkB,EACA,OAAAyL,GAAmB,QAAUG,EAAM,EACnCH,GAAmB,QAAQ,aAAeG,EACnCH,GAAmB,OAC5B,CACA,MAAMI,GAAwB,CAAA,EACxBC,GAA0C,OAAO,OAAuB,OAAO,eAAe,CAClG,UAAW,KACX,QAASD,EACX,EAAG,OAAO,YAAa,CAAE,MAAO,QAAQ,CAAE,CAAC,EACrCE,GAA6BZ,GAAsBW,EAAuB,EAChF,IAAIE,GACAC,GACJ,SAASC,IAAwB,CAC/B,GAAID,GAA2B,OAAOD,GACtCC,GAA4B,EAC5B,IAAIE,EAAuBR,GAAyB,EAChDS,EAAoBL,GACxB,MAAMM,UAAuB,KAAM,CACjC,YAAYC,EAASC,EAAMC,EAAQ9P,EAAQ+P,EAAMC,EAAQ,CACvD,MAAMJ,CAAO,EACb,KAAK,KAAO,iBACZ,KAAK,OAASA,EACVG,IACF,KAAK,KAAOA,GAEV/P,IACF,KAAK,OAASA,GAEZgQ,IACF,KAAK,OAASA,GAEZ,OAAOH,GAAS,aAAe,OAAOC,GAAW,cAC/C,OAAOD,GAAS,UAClB,KAAK,KAAOA,EACZ,KAAK,OAASC,IAEd,KAAK,KAAOD,EAAK,KACjB,KAAK,OAASA,EAAK,OACnB,KAAK,QAAUC,EAAO,KACtB,KAAK,UAAYA,EAAO,SAG5B,KAAK,WAAU,EACX,MAAM,mBACR,MAAM,kBAAkB,KAAMH,CAAc,CAEhD,CACA,YAAa,CACX,KAAK,QAAU,KAAK,OAAS,KAAK,OAAS,KAAO,GAClD,KAAK,SAAW,KAAK,KAAO,KAAK,KAAO,cACpC,OAAO,KAAK,MAAS,cACvB,KAAK,SAAW,IAAM,KAAK,KAAO,IAAM,KAAK,QAE/C,KAAK,SAAW,KAAO,KAAK,MAC9B,CACA,eAAeM,EAAO,CACpB,GAAI,CAAC,KAAK,OAAQ,MAAO,GACzB,IAAIC,EAAM,KAAK,OACXD,GAAS,OAAMA,EAAQR,EAAK,kBAChC,IAAIU,EAAStN,GAASA,EAClBuN,EAAQvN,GAASA,EACjBwN,EAAaxN,GAASA,EAC1B,GAAIoN,EAAO,CACT,GAAI,CAAE,KAAAK,EAAM,KAAAC,EAAM,IAAAC,CAAG,EAAKf,EAAK,aAAa,EAAI,EAChDW,EAAQvN,GAASyN,EAAKE,EAAI3N,CAAI,CAAC,EAC/BsN,EAAStN,GAAS0N,EAAK1N,CAAI,EACvB6M,IACFW,EAAaxN,GAAS6M,EAAkB7M,CAAI,EAEhD,CACA,IAAI4N,EAAQP,EAAI,MAAM,OAAO,EACzBQ,EAAQ,KAAK,IAAI,KAAK,KAAO,EAAG,CAAC,EACjCC,EAAM,KAAK,IAAI,KAAK,KAAO,EAAGF,EAAM,MAAM,EAC1CG,EAAW,OAAOD,CAAG,EAAE,OAC3B,OAAOF,EAAM,MAAMC,EAAOC,CAAG,EAAE,IAAI,CAACd,EAAMkZ,IAAW,CACnD,IAAIlY,EAASH,EAAQ,EAAIqY,EACrBjY,EAAS,KAAO,IAAMD,GAAQ,MAAM,CAACD,CAAQ,EAAI,MACrD,GAAIC,IAAW,KAAK,KAAM,CACxB,GAAIhB,EAAK,OAAS,IAAK,CACrB,IAAIkB,EAAU,GACVC,EAAe,KAAK,IAAI,EAAG,KAAK,OAASD,CAAO,EAChDE,EAAa,KAAK,IACpB,KAAK,OAASF,EACd,KAAK,UAAYA,CAC/B,EACgBG,EAAUrB,EAAK,MAAMmB,EAAcC,CAAU,EAC7CE,EAAWhB,EAAMW,EAAO,QAAQ,MAAO,GAAG,CAAC,EAAIjB,EAAK,MAAM,EAAG,KAAK,IAAI,KAAK,OAAS,EAAGkB,EAAU,CAAC,CAAC,EAAE,QAAQ,SAAU,GAAG,EAC9H,OAAOX,EAAK,GAAG,EAAID,EAAMW,CAAM,EAAIT,EAAUa,CAAO,EAAI;GAAQC,EAAWf,EAAK,GAAG,CACrF,CACA,IAAIgB,EAAUjB,EAAMW,EAAO,QAAQ,MAAO,GAAG,CAAC,EAAIjB,EAAK,MAAM,EAAG,KAAK,OAAS,CAAC,EAAE,QAAQ,SAAU,GAAG,EACtG,OAAOO,EAAK,GAAG,EAAID,EAAMW,CAAM,EAAIT,EAAUR,CAAI,EAAI;GAAQuB,EAAUhB,EAAK,GAAG,CACjF,CACA,MAAO,IAAMD,EAAMW,CAAM,EAAIT,EAAUR,CAAI,CAC7C,CAAC,EAAE,KAAK;CAAI,CACd,CACA,UAAW,CACT,IAAIwB,EAAO,KAAK,eAAc,EAC9B,OAAIA,IACFA,EAAO;;EAASA,EAAO;GAElB,KAAK,KAAO,KAAO,KAAK,QAAUA,CAC3C,CACJ,CACE,OAAA/B,GAAiBK,EACjBA,EAAe,QAAUA,EAClBL,EACT,CACA,IAAIgC,GACAC,GACJ,SAASC,IAAqB,CAC5B,GAAID,GAAwB,OAAOD,GACnCC,GAAyB,EACzB,MAAME,EAAc,CAClB,MAAO;EACP,YAAa;EACb,cAAe;EACf,WAAY;EACZ,WAAY,IACZ,WAAY;EACZ,MAAO,KACP,YAAa,IACb,aAAc,IACd,UAAW,GACX,OAAQ,OACR,UAAW,EACf,EACE,SAASC,EAAW1O,EAAK,CACvB,OAAOA,EAAI,CAAC,EAAE,YAAW,EAAKA,EAAI,MAAM,CAAC,CAC3C,CACA,MAAM2O,CAAY,CAChB,YAAYC,EAAS,CACnB,KAAK,QAAUA,CACjB,CACA,OAAOC,EAAOC,EAAW,CACvB,IAAI7R,EAAO,IAAM4R,EAAM,KACnBE,EAASF,EAAM,OAAS,KAAK,SAASA,EAAO,QAAQ,EAAI,GAM7D,GALI,OAAOA,EAAM,KAAK,WAAc,YAClC5R,GAAQ4R,EAAM,KAAK,UACVE,IACT9R,GAAQ,KAEN4R,EAAM,MACR,KAAK,MAAMA,EAAO5R,EAAO8R,CAAM,MAC1B,CACL,IAAIpB,GAAOkB,EAAM,KAAK,SAAW,KAAOC,EAAY,IAAM,IAC1D,KAAK,QAAQ7R,EAAO8R,EAASpB,EAAKkB,CAAK,CACzC,CACF,CACA,YAAYA,EAAOG,EAAQ,CACzB,IAAIjV,EACA8U,EAAM,OAAS,OACjB9U,EAAQ,KAAK,IAAI8U,EAAO,KAAM,YAAY,EACjCA,EAAM,OAAS,UACxB9U,EAAQ,KAAK,IAAI8U,EAAO,KAAM,eAAe,EACpCG,IAAW,SACpBjV,EAAQ,KAAK,IAAI8U,EAAO,KAAM,YAAY,EAE1C9U,EAAQ,KAAK,IAAI8U,EAAO,KAAM,aAAa,EAE7C,IAAII,EAAMJ,EAAM,OACZ5E,EAAQ,EACZ,KAAOgF,GAAOA,EAAI,OAAS,QACzBhF,GAAS,EACTgF,EAAMA,EAAI,OAEZ,GAAIlV,EAAM,SAAS;CAAI,EAAG,CACxB,IAAImV,EAAS,KAAK,IAAIL,EAAO,KAAM,QAAQ,EAC3C,GAAIK,EAAO,OACT,QAASC,EAAO,EAAGA,EAAOlF,EAAOkF,IAAQpV,GAASmV,CAEtD,CACA,OAAOnV,CACT,CACA,MAAM8U,EAAOnB,EAAO,CAClB,IAAI0B,EAAU,KAAK,IAAIP,EAAO,UAAW,YAAY,EACrD,KAAK,QAAQnB,EAAQ0B,EAAU,IAAKP,EAAO,OAAO,EAClD,IAAIQ,EACAR,EAAM,OAASA,EAAM,MAAM,QAC7B,KAAK,KAAKA,CAAK,EACfQ,EAAQ,KAAK,IAAIR,EAAO,OAAO,GAE/BQ,EAAQ,KAAK,IAAIR,EAAO,QAAS,WAAW,EAE1CQ,GAAO,KAAK,QAAQA,CAAK,EAC7B,KAAK,QAAQ,IAAKR,EAAO,KAAK,CAChC,CACA,KAAKA,EAAO,CACV,IAAIS,EAAOT,EAAM,MAAM,OAAS,EAChC,KAAOS,EAAO,GACRT,EAAM,MAAMS,CAAI,EAAE,OAAS,WAC/BA,GAAQ,EAEV,IAAIR,EAAY,KAAK,IAAID,EAAO,WAAW,EAC3C,QAAShH,EAAI,EAAGA,EAAIgH,EAAM,MAAM,OAAQhH,IAAK,CAC3C,IAAI0H,EAAQV,EAAM,MAAMhH,CAAC,EACrB2H,EAAS,KAAK,IAAID,EAAO,QAAQ,EACjCC,GAAQ,KAAK,QAAQA,CAAM,EAC/B,KAAK,UAAUD,EAAOD,IAASzH,GAAKiH,CAAS,CAC/C,CACF,CACA,QAAQD,EAAO,CACb,IAAI/F,EAAO,KAAK,IAAI+F,EAAO,OAAQ,aAAa,EAC5CY,EAAQ,KAAK,IAAIZ,EAAO,QAAS,cAAc,EACnD,KAAK,QAAQ,KAAO/F,EAAO+F,EAAM,KAAOY,EAAQ,KAAMZ,CAAK,CAC7D,CACA,KAAKA,EAAOC,EAAW,CACrB,IAAIM,EAAU,KAAK,IAAIP,EAAO,UAAW,OAAO,EAC5Ca,EAASb,EAAM,KAAOO,EAAU,KAAK,SAASP,EAAO,OAAO,EAC5DA,EAAM,YACRa,GAAUb,EAAM,KAAK,WAAa,eAEhCC,IAAWY,GAAU,KACzB,KAAK,QAAQA,EAAQb,CAAK,CAC5B,CACA,SAASA,EAAO,CACd,KAAK,KAAKA,CAAK,CACjB,CACA,IAAIA,EAAOc,EAAKX,EAAQ,CACtB,IAAIjV,EAEJ,GADKiV,IAAQA,EAASW,GAClBA,IACF5V,EAAQ8U,EAAM,KAAKc,CAAG,EAClB,OAAO5V,GAAU,aAAa,OAAOA,EAE3C,IAAIqN,EAASyH,EAAM,OACnB,GAAIG,IAAW,WACT,CAAC5H,GAAUA,EAAO,OAAS,QAAUA,EAAO,QAAUyH,GAGtDzH,GAAUA,EAAO,OAAS,YAC5B,MAAO,GAGX,GAAI,CAACA,EAAQ,OAAOqH,EAAYO,CAAM,EACtC,IAAIY,EAAQf,EAAM,KAAI,EAEtB,GADKe,EAAM,WAAUA,EAAM,SAAW,CAAA,GAClC,OAAOA,EAAM,SAASZ,CAAM,GAAM,YACpC,OAAOY,EAAM,SAASZ,CAAM,EAE9B,GAAIA,IAAW,UAAYA,IAAW,QACpC,OAAO,KAAK,YAAYH,EAAOG,CAAM,EAChC,CACL,IAAI9T,EAAS,MAAQwT,EAAWM,CAAM,EAClC,KAAK9T,CAAM,EACbnB,EAAQ,KAAKmB,CAAM,EAAE0U,EAAOf,CAAK,EAEjCe,EAAM,KAAM/H,GAAM,CAEhB,GADA9N,EAAQ8N,EAAE,KAAK8H,CAAG,EACd,OAAO5V,GAAU,YAAa,MAAO,EAC3C,CAAC,CAEL,CACA,OAAI,OAAOA,GAAU,cAAaA,EAAQ0U,EAAYO,CAAM,GAC5DY,EAAM,SAASZ,CAAM,EAAIjV,EAClBA,CACT,CACA,eAAe6V,EAAO,CACpB,IAAI7V,EACJ,OAAA6V,EAAM,KAAM/H,GAAM,CAChB,GAAIA,EAAE,OAASA,EAAE,MAAM,OAAS,GAC1B,OAAOA,EAAE,KAAK,OAAU,YAC1B,OAAA9N,EAAQ8N,EAAE,KAAK,MACX9N,EAAM,SAAS;CAAI,IACrBA,EAAQA,EAAM,QAAQ,UAAW,EAAE,GAE9B,EAGb,CAAC,EACGA,IAAOA,EAAQA,EAAM,QAAQ,MAAO,EAAE,GACnCA,CACT,CACA,iBAAiB6V,EAAOf,EAAO,CAC7B,IAAI9U,EACJ,OAAA6V,EAAM,aAAc/H,GAAM,CACxB,GAAI,OAAOA,EAAE,KAAK,QAAW,YAC3B,OAAA9N,EAAQ8N,EAAE,KAAK,OACX9N,EAAM,SAAS;CAAI,IACrBA,EAAQA,EAAM,QAAQ,UAAW,EAAE,GAE9B,EAEX,CAAC,EACG,OAAOA,GAAU,YACnBA,EAAQ,KAAK,IAAI8U,EAAO,KAAM,YAAY,EACjC9U,IACTA,EAAQA,EAAM,QAAQ,MAAO,EAAE,GAE1BA,CACT,CACA,cAAc6V,EAAOf,EAAO,CAC1B,IAAI9U,EACJ,OAAA6V,EAAM,UAAW/H,GAAM,CACrB,GAAI,OAAOA,EAAE,KAAK,QAAW,YAC3B,OAAA9N,EAAQ8N,EAAE,KAAK,OACX9N,EAAM,SAAS;CAAI,IACrBA,EAAQA,EAAM,QAAQ,UAAW,EAAE,GAE9B,EAEX,CAAC,EACG,OAAOA,GAAU,YACnBA,EAAQ,KAAK,IAAI8U,EAAO,KAAM,YAAY,EACjC9U,IACTA,EAAQA,EAAM,QAAQ,MAAO,EAAE,GAE1BA,CACT,CACA,cAAc6V,EAAO,CACnB,IAAI7V,EACJ,OAAA6V,EAAM,KAAM/H,GAAM,CAChB,GAAIA,EAAE,OAAS,SACb9N,EAAQ8N,EAAE,KAAK,QACX,OAAO9N,GAAU,aAAa,MAAO,EAE7C,CAAC,EACMA,CACT,CACA,cAAc6V,EAAO,CACnB,IAAI7V,EACJ,OAAA6V,EAAM,KAAM/H,GAAM,CAChB,GAAIA,EAAE,QAAUA,EAAE,SAAW+H,GAASA,EAAM,QAAU/H,IAChD,OAAOA,EAAE,KAAK,QAAW,YAC3B,OAAA9N,EAAQ8N,EAAE,KAAK,OACX9N,EAAM,SAAS;CAAI,IACrBA,EAAQA,EAAM,QAAQ,UAAW,EAAE,GAE9B,EAGb,CAAC,EACGA,IAAOA,EAAQA,EAAM,QAAQ,MAAO,EAAE,GACnCA,CACT,CACA,SAAS6V,EAAO,CACd,IAAI7V,EACJ,OAAA6V,EAAM,UAAW/H,GAAM,CACrB,GAAI,OAAOA,EAAE,KAAK,SAAY,YAC5B,OAAA9N,EAAQ8N,EAAE,KAAK,QAAQ,QAAQ,UAAW,EAAE,EACrC,EAEX,CAAC,EACM9N,CACT,CACA,aAAa6V,EAAO,CAClB,IAAI7V,EACJ,OAAA6V,EAAM,KAAM/H,GAAM,CAChB,GAAIA,EAAE,OAASA,EAAE,MAAM,SAAW,IAChC9N,EAAQ8N,EAAE,KAAK,MACX,OAAO9N,GAAU,aAAa,MAAO,EAE7C,CAAC,EACMA,CACT,CACA,UAAU6V,EAAO,CACf,GAAIA,EAAM,KAAK,OAAQ,OAAOA,EAAM,KAAK,OACzC,IAAI7V,EACJ,OAAA6V,EAAM,KAAM/H,GAAM,CAChB,IAAIgI,EAAKhI,EAAE,OACX,GAAIgI,GAAMA,IAAOD,GAASC,EAAG,QAAUA,EAAG,SAAWD,GAC/C,OAAO/H,EAAE,KAAK,QAAW,YAAa,CACxC,IAAIzF,EAAQyF,EAAE,KAAK,OAAO,MAAM;CAAI,EACpC,OAAA9N,EAAQqI,EAAMA,EAAM,OAAS,CAAC,EAC9BrI,EAAQA,EAAM,QAAQ,MAAO,EAAE,EACxB,EACT,CAEJ,CAAC,EACMA,CACT,CACA,aAAa6V,EAAO,CAClB,IAAI7V,EACJ,OAAA6V,EAAM,KAAM/H,GAAM,CAChB,GAAIA,EAAE,OAASA,EAAE,MAAM,QAAUA,EAAE,KAAK,OAAS,SAC/C9N,EAAQ8N,EAAE,KAAK,UACX,OAAO9N,GAAU,aAAa,MAAO,EAE7C,CAAC,EACMA,CACT,CACA,SAAS8U,EAAOiB,EAAM,CACpB,IAAI/V,EAAQ8U,EAAMiB,CAAI,EAClBC,EAAMlB,EAAM,KAAKiB,CAAI,EACzB,OAAIC,GAAOA,EAAI,QAAUhW,EAChBgW,EAAI,IAENhW,CACT,CACA,KAAK8U,EAAO,CACV,KAAK,KAAKA,CAAK,EACXA,EAAM,KAAK,OAAO,KAAK,QAAQA,EAAM,KAAK,KAAK,CACrD,CACA,KAAKA,EAAO,CACV,KAAK,MAAMA,EAAO,KAAK,SAASA,EAAO,UAAU,CAAC,EAC9CA,EAAM,KAAK,cACb,KAAK,QAAQA,EAAM,KAAK,aAAcA,EAAO,KAAK,CAEtD,CACA,UAAUA,EAAOC,EAAW,CAC1B,GAAI,CAAC,KAAKD,EAAM,IAAI,EAClB,MAAM,IAAI,MACR,yBAA2BA,EAAM,KAAO,iDAClD,EAEM,KAAKA,EAAM,IAAI,EAAEA,EAAOC,CAAS,CACnC,CACJ,CACE,OAAAR,GAAcK,EACdA,EAAY,QAAUA,EACfL,EACT,CACA,IAAI0B,GACAC,GACJ,SAASC,IAAmB,CAC1B,GAAID,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,IAAItB,EAAcH,GAAkB,EACpC,SAAS2B,EAAUtB,EAAOD,EAAS,CACvB,IAAID,EAAYC,CAAO,EAC7B,UAAUC,CAAK,CACrB,CACA,OAAAmB,GAAcG,EACdA,EAAU,QAAUA,EACbH,EACT,CACA,IAAII,GAAU,CAAA,EACVC,GACJ,SAASC,IAAiB,CACxB,OAAID,KACJA,GAAqB,EACrBD,GAAQ,QAAU,OAAO,SAAS,EAClCA,GAAQ,GAAK,OAAO,IAAI,GACjBA,EACT,CACA,IAAIjR,GACAoR,GACJ,SAASC,IAAc,CACrB,GAAID,GAAiB,OAAOpR,GAC5BoR,GAAkB,EAClB,IAAI5D,EAAiBH,GAAqB,EACtCmC,EAAcH,GAAkB,EAChC2B,EAAYD,GAAgB,EAC5B,CAAE,QAAAO,EAAS,GAAAC,CAAE,EAAKJ,GAAc,EACpC,SAASK,EAAU9W,EAAKuN,EAAQ,CAC9B,IAAIwJ,EAAS,IAAI/W,EAAI,YACrB,QAASgO,KAAKhO,EAAK,CAIjB,GAHI,CAAC,OAAO,UAAU,eAAe,KAAKA,EAAKgO,CAAC,GAG5CA,IAAM,aAAc,SACxB,IAAI9N,EAAQF,EAAIgO,CAAC,EACblI,EAAO,OAAO5F,EACd8N,IAAM,UAAYlI,IAAS,SACzByH,IAAQwJ,EAAO/I,CAAC,EAAIT,GACfS,IAAM,SACf+I,EAAO/I,CAAC,EAAI9N,EACH,MAAM,QAAQA,CAAK,EAC5B6W,EAAO/I,CAAC,EAAI9N,EAAM,IAAK8W,GAAOF,EAAUE,EAAID,CAAM,CAAC,GAE/CjR,IAAS,UAAY5F,IAAU,OAAMA,EAAQ4W,EAAU5W,CAAK,GAChE6W,EAAO/I,CAAC,EAAI9N,EAEhB,CACA,OAAO6W,CACT,CACA,SAASE,EAAaC,EAAUC,EAAU,CACxC,GAAIA,GAAY,OAAOA,EAAS,QAAW,YACzC,OAAOA,EAAS,OAElB,IAAIlE,EAAS,EACTD,EAAO,EACPoE,EAAS,EACb,QAASpJ,EAAI,EAAGA,EAAIkJ,EAAS,OAAQlJ,IAAK,CACxC,GAAIgF,IAASmE,EAAS,MAAQlE,IAAWkE,EAAS,OAAQ,CACxDC,EAASpJ,EACT,KACF,CACIkJ,EAASlJ,CAAC,IAAM;GAClBiF,EAAS,EACTD,GAAQ,GAERC,GAAU,CAEd,CACA,OAAOmE,CACT,CACA,MAAMC,CAAK,CACT,IAAI,SAAU,CACZ,OAAO,IACT,CACA,YAAYC,EAAW,CAAA,EAAI,CACzB,KAAK,KAAO,CAAA,EACZ,KAAKV,CAAO,EAAI,GAChB,KAAKC,CAAE,EAAI,GACX,QAASzT,KAAQkU,EACf,GAAIlU,IAAS,QAAS,CACpB,KAAK,MAAQ,CAAA,EACb,QAAS4R,KAASsC,EAASlU,CAAI,EACzB,OAAO4R,EAAM,OAAU,WACzB,KAAK,OAAOA,EAAM,MAAA,CAAO,EAEzB,KAAK,OAAOA,CAAK,CAGvB,MACE,KAAK5R,CAAI,EAAIkU,EAASlU,CAAI,CAGhC,CACA,WAAWqB,EAAO,CAEhB,GADAA,EAAM,YAAc,KAChBA,EAAM,OAAS,KAAK,QAAU,aAAa,KAAKA,EAAM,KAAK,EAAG,CAChE,IAAI8S,EAAK,KAAK,OACd9S,EAAM,MAAQA,EAAM,MAAM,QACxB,aACA,KAAK8S,EAAG,MAAM,IAAI,IAAIA,EAAG,MAAM,IAAI,IAAIA,EAAG,MAAM,MAAM,IAChE,CACM,CACA,OAAO9S,CACT,CACA,MAAM+S,EAAK,CACT,YAAK,OAAO,YAAY,KAAMA,CAAG,EAC1B,IACT,CACA,OAAOC,EAAY,CAAA,EAAI,CACrB,QAASrU,KAAQqU,EACf,KAAKrU,CAAI,EAAIqU,EAAUrU,CAAI,EAE7B,OAAO,IACT,CACA,OAAOoU,EAAK,CACV,YAAK,OAAO,aAAa,KAAMA,CAAG,EAC3B,IACT,CACA,UAAUE,EAAa,CACrB,OAAO,KAAK,KAAK,OACjB,OAAO,KAAK,KAAK,MACZA,GAAa,OAAO,KAAK,KAAK,OACrC,CACA,MAAMD,EAAY,CAAA,EAAI,CACpB,IAAIV,EAASD,EAAU,IAAI,EAC3B,QAAS1T,KAAQqU,EACfV,EAAO3T,CAAI,EAAIqU,EAAUrU,CAAI,EAE/B,OAAO2T,CACT,CACA,WAAWU,EAAY,CAAA,EAAI,CACzB,IAAIV,EAAS,KAAK,MAAMU,CAAS,EACjC,YAAK,OAAO,YAAY,KAAMV,CAAM,EAC7BA,CACT,CACA,YAAYU,EAAY,CAAA,EAAI,CAC1B,IAAIV,EAAS,KAAK,MAAMU,CAAS,EACjC,YAAK,OAAO,aAAa,KAAMV,CAAM,EAC9BA,CACT,CACA,MAAMhE,EAAS4E,EAAO,CAAA,EAAI,CACxB,GAAI,KAAK,OAAQ,CACf,GAAI,CAAE,IAAA7D,EAAK,MAAAD,CAAK,EAAK,KAAK,QAAQ8D,CAAI,EACtC,OAAO,KAAK,OAAO,MAAM,MACvB5E,EACA,CAAE,OAAQc,EAAM,OAAQ,KAAMA,EAAM,IAAI,EACxC,CAAE,OAAQC,EAAI,OAAQ,KAAMA,EAAI,IAAI,EACpC6D,CACV,CACM,CACA,OAAO,IAAI7E,EAAeC,CAAO,CACnC,CACA,mBAAoB,CAClB,MAAO,CACL,IAAIiC,EAAOiB,EAAM,CACf,OAAIA,IAAS,UACJjB,EACEiB,IAAS,OACX,IAAMjB,EAAM,KAAI,EAAG,QAAO,EAE1BA,EAAMiB,CAAI,CAErB,EACA,IAAIjB,EAAOiB,EAAM/V,EAAO,CACtB,OAAI8U,EAAMiB,CAAI,IAAM/V,IACpB8U,EAAMiB,CAAI,EAAI/V,GACV+V,IAAS,QAAUA,IAAS,SAAWA,IAAS,QAAUA,IAAS,UAAYA,IAAS,aAC5FA,IAAS,SACPjB,EAAM,UAAS,GAEV,EACT,CACR,CACI,CAEA,WAAY,CACV,KAAK4B,CAAO,EAAI,EAClB,CACA,WAAY,CACV,GAAI,KAAKA,CAAO,EAAG,CACjB,KAAKA,CAAO,EAAI,GAChB,IAAIgB,EAAO,KACX,KAAOA,EAAOA,EAAK,QACjBA,EAAKhB,CAAO,EAAI,EAEpB,CACF,CACA,MAAO,CACL,GAAI,CAAC,KAAK,OAAQ,OAClB,IAAIsV,EAAS,KAAK,OAAO,MAAM,IAAI,EACnC,OAAO,KAAK,OAAO,MAAMA,EAAS,CAAC,CACrC,CACA,WAAWvU,EAAO,CAAA,EAAI,CACpB,IAAI7N,EAAM,KAAK,OAAO,MACtB,GAAI6N,EAAK,MACP7N,EAAM,KAAK,eAAe6N,EAAK,KAAK,UAC3BA,EAAK,KAAM,CACpB,IAAIE,EAAc,aAAc,KAAK,OAAO,MAAQ,KAAK,OAAO,MAAM,SAAW,KAAK,OAAO,MAAM,IAK/FqU,EAJuBrU,EAAY,MACrCZ,EAAaY,EAAa,KAAK,OAAO,KAAK,EAC3CZ,EAAaY,EAAa,KAAK,OAAO,GAAG,CACnD,EAC0C,QAAQF,EAAK,IAAI,EAC/CuU,IAAW,KAAIpiB,EAAM,KAAK,eAAeoiB,CAAM,EACrD,CACA,OAAOpiB,CACT,CACA,eAAeoiB,EAAQ,CACrB,IAAIjZ,EAAS,KAAK,OAAO,MAAM,OAC3BD,EAAO,KAAK,OAAO,MAAM,KACzB6E,EAAc,aAAc,KAAK,OAAO,MAAQ,KAAK,OAAO,MAAM,SAAW,KAAK,OAAO,MAAM,IAC/FT,EAASH,EAAaY,EAAa,KAAK,OAAO,KAAK,EACpD/D,EAAMsD,EAAS8U,EACnB,QAASle,EAAIoJ,EAAQpJ,EAAI8F,EAAK9F,IACxB6J,EAAY7J,CAAC,IAAM;GACrBiF,EAAS,EACTD,GAAQ,GAERC,GAAU,EAGd,MAAO,CAAE,OAAAA,EAAQ,KAAAD,EAAM,OAAQc,CAAG,CACpC,CACA,MAAO,CACL,GAAI,CAAC,KAAK,OAAQ,OAClB,IAAIoY,EAAS,KAAK,OAAO,MAAM,IAAI,EACnC,OAAO,KAAK,OAAO,MAAMA,EAAS,CAAC,CACrC,CACA,QAAQvU,EAAO,CAAA,EAAI,CACjB,IAAIE,EAAc,aAAc,KAAK,OAAO,MAAQ,KAAK,OAAO,MAAM,SAAW,KAAK,OAAO,MAAM,IAC/FhE,EAAQ,CACV,OAAQ,KAAK,OAAO,MAAM,OAC1B,KAAM,KAAK,OAAO,MAAM,KACxB,OAAQoD,EAAaY,EAAa,KAAK,OAAO,KAAK,CAC3D,EACU/D,EAAM,KAAK,OAAO,IAAM,CAC1B,OAAQ,KAAK,OAAO,IAAI,OAAS,EACjC,KAAM,KAAK,OAAO,IAAI,KACtB,OAAQ,OAAO,KAAK,OAAO,IAAI,QAAW,SAExC,KAAK,OAAO,IAAI,OAKhBmD,EAAaY,EAAa,KAAK,OAAO,GAAG,EAAI,CAEvD,EAAU,CACF,OAAQhE,EAAM,OAAS,EACvB,KAAMA,EAAM,KACZ,OAAQA,EAAM,OAAS,CAC/B,EACM,GAAI8D,EAAK,KAAM,CAKb,IAAIuU,EAJuBrU,EAAY,MACrCZ,EAAaY,EAAa,KAAK,OAAO,KAAK,EAC3CZ,EAAaY,EAAa,KAAK,OAAO,GAAG,CACnD,EAC0C,QAAQF,EAAK,IAAI,EAC/CuU,IAAW,KACbrY,EAAQ,KAAK,eAAeqY,CAAM,EAClCpY,EAAM,KAAK,eAAeoY,EAASvU,EAAK,KAAK,MAAM,EAEvD,MACMA,EAAK,MACP9D,EAAQ,CACN,OAAQ8D,EAAK,MAAM,OACnB,KAAMA,EAAK,MAAM,KACjB,OAAQV,EAAaY,EAAaF,EAAK,KAAK,CACxD,EACmBA,EAAK,QACd9D,EAAQ,KAAK,eAAe8D,EAAK,KAAK,GAEpCA,EAAK,IACP7D,EAAM,CACJ,OAAQ6D,EAAK,IAAI,OACjB,KAAMA,EAAK,IAAI,KACf,OAAQV,EAAaY,EAAaF,EAAK,GAAG,CACtD,EACmB,OAAOA,EAAK,UAAa,SAClC7D,EAAM,KAAK,eAAe6D,EAAK,QAAQ,EAC9BA,EAAK,QACd7D,EAAM,KAAK,eAAe6D,EAAK,MAAQ,CAAC,GAG5C,OAAI7D,EAAI,KAAOD,EAAM,MAAQC,EAAI,OAASD,EAAM,MAAQC,EAAI,QAAUD,EAAM,UAC1EC,EAAM,CACJ,OAAQD,EAAM,OAAS,EACvB,KAAMA,EAAM,KACZ,OAAQA,EAAM,OAAS,CACjC,GAEa,CAAE,IAAAC,EAAK,MAAAD,CAAK,CACrB,CACA,IAAIoC,EAAM6B,EAAa,CAErB,OADU,IAAIhD,EAAW,EACd,IAAI,KAAMmB,EAAM6B,CAAW,CACxC,CACA,QAAS,CACP,OAAI,KAAK,QACP,KAAK,OAAO,YAAY,IAAI,EAE9B,KAAK,OAAS,OACP,IACT,CACA,eAAeC,EAAO,CACpB,GAAI,KAAK,OAAQ,CACf,IAAIC,EAAW,KACXC,EAAY,GAChB,QAASjD,KAAS+C,EACZ/C,IAAU,KACZiD,EAAY,GACHA,GACT,KAAK,OAAO,YAAYD,EAAUhD,CAAK,EACvCgD,EAAWhD,GAEX,KAAK,OAAO,aAAagD,EAAUhD,CAAK,EAGvCiD,GACH,KAAK,OAAM,CAEf,CACA,OAAO,IACT,CACA,MAAO,CACL,IAAIC,EAAU,KACd,KAAOA,EAAQ,QAAUA,EAAQ,OAAO,OAAS,YAC/CA,EAAUA,EAAQ,OAEpB,OAAOA,CACT,CACA,OAAOC,EAAGC,EAAQ,CAChB,IAAI5G,EAAQ,CAAA,EACR6G,EAAaD,GAAU,KAC3BA,EAASA,GAA0B,IAAI,IACvC,IAAIE,EAAkB,EACtB,QAASlV,KAAQ,KAAM,CAIrB,GAHI,CAAC,OAAO,UAAU,eAAe,KAAK,KAAMA,CAAI,GAGhDA,IAAS,UAAYA,IAAS,aAAc,SAChD,IAAIlD,EAAQ,KAAKkD,CAAI,EACrB,GAAI,MAAM,QAAQlD,CAAK,EACrBsR,EAAMpO,CAAI,EAAIlD,EAAM,IAAK8N,GACnB,OAAOA,GAAM,UAAYA,EAAE,OACtBA,EAAE,OAAO,KAAMoK,CAAM,EAErBpK,CAEV,UACQ,OAAO9N,GAAU,UAAYA,EAAM,OAC5CsR,EAAMpO,CAAI,EAAIlD,EAAM,OAAO,KAAMkY,CAAM,UAC9BhV,IAAS,SAAU,CAC5B,GAAIlD,GAAS,KAAM,SACnB,IAAIqY,EAAUH,EAAO,IAAIlY,EAAM,KAAK,EAChCqY,GAAW,OACbA,EAAUD,EACVF,EAAO,IAAIlY,EAAM,MAAOoY,CAAe,EACvCA,KAEF9G,EAAMpO,CAAI,EAAI,CACZ,IAAKlD,EAAM,IACX,QAAAqY,EACA,MAAOrY,EAAM,KACzB,CACQ,MACEsR,EAAMpO,CAAI,EAAIlD,CAElB,CACA,OAAImY,IACF7G,EAAM,OAAS,CAAC,GAAG4G,EAAO,KAAI,CAAE,EAAE,IAAKI,GAAWA,EAAO,OAAM,CAAE,GAE5DhH,CACT,CACA,SAAU,CACR,OAAK,KAAK,aACR,KAAK,WAAa,IAAI,MAAM,KAAM,KAAK,kBAAA,CAAmB,GAErD,KAAK,UACd,CACA,SAASiH,EAAenC,EAAW,CAC7BmC,EAAa,YAAWA,EAAeA,EAAa,WACxD,IAAIP,EAAU,GACd,OAAAO,EAAa,KAAOzK,GAAM,CACxBkK,GAAWlK,CACb,CAAC,EACMkK,CACT,CACA,KAAKA,EAASlS,EAAM2R,EAAO,CAAA,EAAI,CAC7B,IAAIe,EAAO,CAAE,KAAM,IAAI,EACvB,QAAS1K,KAAK2J,EAAMe,EAAK1K,CAAC,EAAI2J,EAAK3J,CAAC,EACpC,OAAOkK,EAAQ,KAAKlS,EAAM0S,CAAI,CAChC,CACJ,CACE,OAAApT,GAAO+R,EACPA,EAAK,QAAUA,EACR/R,EACT,CACA,IAAIqT,GACAC,GACJ,SAASC,IAAiB,CACxB,GAAID,GAAoB,OAAOD,GAC/BC,GAAqB,EACrB,IAAIvB,EAAOV,GAAW,EACtB,MAAMmC,UAAgBzB,CAAK,CACzB,YAAYC,EAAU,CACpB,MAAMA,CAAQ,EACd,KAAK,KAAO,SACd,CACJ,CACE,OAAAqB,GAAUG,EACVA,EAAQ,QAAUA,EACXH,EACT,CACA,IAAII,GACAC,GACJ,SAASC,IAAqB,CAC5B,GAAID,GAAwB,OAAOD,GACnCC,GAAyB,EACzB,IAAI3B,EAAOV,GAAW,EACtB,MAAMuC,UAAoB7B,CAAK,CAC7B,IAAI,UAAW,CACb,OAAO,KAAK,KAAK,WAAW,IAAI,GAAK,KAAK,KAAK,CAAC,IAAM,GACxD,CACA,YAAYC,EAAU,CAChBA,GAAY,OAAOA,EAAS,OAAU,aAAe,OAAOA,EAAS,OAAU,WACjFA,EAAW6B,GAAAC,EAAA,GAAK9B,GAAL,CAAe,MAAO,OAAOA,EAAS,KAAK,CAAC,IAEzD,MAAMA,CAAQ,EACd,KAAK,KAAO,MACd,CACJ,CACE,OAAAyB,GAAcG,EACdA,EAAY,QAAUA,EACfH,EACT,CACA,IAAIM,GACAC,GACJ,SAASC,IAAmB,CAC1B,GAAID,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,IAAIR,EAAUD,GAAc,EACxBK,EAAcD,GAAkB,EAChC5B,EAAOV,GAAW,EAClB,CAAE,QAAAC,EAAS,GAAAC,CAAE,EAAKJ,GAAc,EAChC+C,EAAQC,EAAOC,EAAMC,EACzB,SAASC,EAAY7B,EAAO,CAC1B,OAAOA,EAAM,IAAK/J,IACZA,EAAE,QAAOA,EAAE,MAAQ4L,EAAY5L,EAAE,KAAK,GAC1C,OAAOA,EAAE,OACFA,EACR,CACH,CACA,SAAS6L,EAAc7E,EAAO,CAE5B,GADAA,EAAM4B,CAAO,EAAI,GACb5B,EAAM,QAAQ,MAChB,QAAShH,KAAKgH,EAAM,QAAQ,MAC1B6E,EAAc7L,CAAC,CAGrB,CACA,MAAM8L,UAAkBzC,CAAK,CAC3B,IAAI,OAAQ,CACV,GAAK,KAAK,QAAQ,MAClB,OAAO,KAAK,QAAQ,MAAM,CAAC,CAC7B,CACA,IAAI,MAAO,CACT,GAAK,KAAK,QAAQ,MAClB,OAAO,KAAK,QAAQ,MAAM,KAAK,QAAQ,MAAM,OAAS,CAAC,CACzD,CACA,UAAU0C,EAAU,CAClB,QAASrE,KAASqE,EAAU,CAC1B,IAAIhC,EAAQ,KAAK,UAAUrC,EAAO,KAAK,IAAI,EAC3C,QAASV,KAAS+C,EAAO,KAAK,QAAQ,MAAM,KAAK/C,CAAK,CACxD,CACA,YAAK,UAAS,EACP,IACT,CACA,UAAU0C,EAAa,CAErB,GADA,MAAM,UAAUA,CAAW,EACvB,KAAK,MACP,QAAS1C,KAAS,KAAK,MAAOA,EAAM,UAAU0C,CAAW,CAE7D,CACA,KAAKsC,EAAU,CACb,GAAI,CAAC,KAAK,QAAQ,MAAO,OACzB,IAAIC,EAAW,KAAK,YAAW,EAC3BiS,EAAQhU,EACZ,KAAO,KAAK,QAAQ+B,CAAQ,EAAI,KAAK,QAAQ,MAAM,SACjDiS,EAAS,KAAK,QAAQjS,CAAQ,EAC9B/B,EAAU8B,EAAS,KAAK,QAAQ,MAAMkS,CAAM,EAAGA,CAAM,EACjDhU,IAAY,KAChB,KAAK,QAAQ+B,CAAQ,GAAK,EAE5B,cAAO,KAAK,QAAQA,CAAQ,EACrB/B,CACT,CACA,MAAMgC,EAAW,CACf,OAAO,KAAK,MAAM,MAAMA,CAAS,CACnC,CACA,aAAc,CACP,KAAK,WAAU,KAAK,SAAW,GAC/B,KAAK,UAAS,KAAK,QAAU,CAAA,GAClC,KAAK,UAAY,EACjB,IAAID,EAAW,KAAK,SACpB,YAAK,QAAQA,CAAQ,EAAI,EAClBA,CACT,CACA,mBAAoB,CAClB,MAAO,CACL,IAAIjF,EAAOiB,EAAM,CACf,OAAIA,IAAS,UACJjB,EACGA,EAAMiB,CAAI,EAEXA,IAAS,QAAU,OAAOA,GAAS,UAAYA,EAAK,WAAW,MAAM,EACvE,IAAIkE,IACFnF,EAAMiB,CAAI,EACf,GAAGkE,EAAK,IAAKnM,GACP,OAAOA,GAAM,WACR,CAAC0H,EAAOwW,IAAWle,EAAE0H,EAAM,QAAO,EAAIwW,CAAM,EAE5Cle,CAEV,CACjB,EAEqBiI,IAAS,SAAWA,IAAS,OAC9BmE,GACCpF,EAAMiB,CAAI,EACf,CAACP,KAAUjT,IAAU2X,EAAG1E,EAAM,QAAO,EAAI,GAAGjT,CAAK,CACjE,EAEqBwT,IAAS,OACX,IAAMjB,EAAM,KAAI,EAAG,QAAO,EACxBiB,IAAS,QACXjB,EAAM,MAAM,IAAKhH,GAAMA,EAAE,QAAA,CAAS,EAChCiI,IAAS,SAAWA,IAAS,OAC/BjB,EAAMiB,CAAI,EAAE,QAAO,EAEnBjB,EAAMiB,CAAI,EA1BVjB,EAAMiB,CAAI,CA4BrB,EACA,IAAIjB,EAAOiB,EAAM/V,EAAO,CACtB,OAAI8U,EAAMiB,CAAI,IAAM/V,IACpB8U,EAAMiB,CAAI,EAAI/V,GACV+V,IAAS,QAAUA,IAAS,UAAYA,IAAS,aACnDjB,EAAM,UAAS,GAEV,EACT,CACR,CACI,CACA,MAAMU,EAAO,CACX,OAAI,OAAOA,GAAU,SAAiBA,GAClCA,EAAM,UAASA,EAAQA,EAAM,SAC1B,KAAK,QAAQ,MAAM,QAAQA,CAAK,EACzC,CACA,YAAY2E,EAAO7C,EAAK,CACtB,IAAI8C,EAAa,KAAK,MAAMD,CAAK,EAC7BtC,EAAQ,KAAK,UAAUP,EAAK,KAAK,QAAQ,MAAM8C,CAAU,CAAC,EAAE,QAAO,EACvEA,EAAa,KAAK,MAAMD,CAAK,EAC7B,QAASrF,KAAS+C,EAAO,KAAK,QAAQ,MAAM,OAAOuC,EAAa,EAAG,EAAGtF,CAAK,EAC3E,IAAIkX,EACJ,QAAS/mB,KAAM,KAAK,QAClB+mB,EAAS,KAAK,QAAQ/mB,CAAE,EACpBmV,EAAa4R,IACf,KAAK,QAAQ/mB,CAAE,EAAI+mB,EAASnU,EAAM,QAGtC,YAAK,UAAS,EACP,IACT,CACA,aAAasC,EAAO7C,EAAK,CACvB,IAAI8C,EAAa,KAAK,MAAMD,CAAK,EAC7BvU,EAAOwU,IAAe,EAAI,UAAY,GACtCvC,EAAQ,KAAK,UACfP,EACA,KAAK,QAAQ,MAAM8C,CAAU,EAC7BxU,CACR,EAAQ,QAAO,EACTwU,EAAa,KAAK,MAAMD,CAAK,EAC7B,QAASrF,KAAS+C,EAAO,KAAK,QAAQ,MAAM,OAAOuC,EAAY,EAAGtF,CAAK,EACvE,IAAIkX,EACJ,QAAS/mB,KAAM,KAAK,QAClB+mB,EAAS,KAAK,QAAQ/mB,CAAE,EACpBmV,GAAc4R,IAChB,KAAK,QAAQ/mB,CAAE,EAAI+mB,EAASnU,EAAM,QAGtC,YAAK,UAAS,EACP,IACT,CACA,UAAUA,EAAOwC,EAAQ,CACvB,GAAI,OAAOxC,GAAU,SACnBA,EAAQ6B,EAAYH,EAAM1B,CAAK,EAAE,KAAK,UAC7B,OAAOA,GAAU,YAC1BA,EAAQ,CAAA,UACC,MAAM,QAAQA,CAAK,EAAG,CAC/BA,EAAQA,EAAM,MAAM,CAAC,EACrB,QAAS/J,KAAK+J,EACR/J,EAAE,QAAQA,EAAE,OAAO,YAAYA,EAAG,QAAQ,CAElD,SAAW+J,EAAM,OAAS,QAAU,KAAK,OAAS,WAAY,CAC5DA,EAAQA,EAAM,MAAM,MAAM,CAAC,EAC3B,QAAS/J,KAAK+J,EACR/J,EAAE,QAAQA,EAAE,OAAO,YAAYA,EAAG,QAAQ,CAElD,SAAW+J,EAAM,KACfA,EAAQ,CAACA,CAAK,UACLA,EAAM,KAAM,CACrB,GAAI,OAAOA,EAAM,OAAU,YACzB,MAAM,IAAI,MAAM,wCAAwC,EAC/C,OAAOA,EAAM,OAAU,WAChCA,EAAM,MAAQ,OAAOA,EAAM,KAAK,GAElCA,EAAQ,CAAC,IAAImB,EAAYnB,CAAK,CAAC,CACjC,SAAWA,EAAM,UAAYA,EAAM,UACjCA,EAAQ,CAAC,IAAI4B,EAAK5B,CAAK,CAAC,UACfA,EAAM,KACfA,EAAQ,CAAC,IAAIyB,EAAOzB,CAAK,CAAC,UACjBA,EAAM,KACfA,EAAQ,CAAC,IAAIe,EAAQf,CAAK,CAAC,MAE3B,OAAM,IAAI,MAAM,oCAAoC,EAgBtD,OAdgBA,EAAM,IAAK/J,IACpBA,EAAE6I,CAAE,GAAGiD,EAAU,QAAQ9L,CAAC,EAC/BA,EAAIA,EAAE,QACFA,EAAE,QAAQA,EAAE,OAAO,YAAYA,CAAC,EAChCA,EAAE4I,CAAO,GAAGiD,EAAc7L,CAAC,EAC1BA,EAAE,OAAMA,EAAE,KAAO,CAAA,GAClB,OAAOA,EAAE,KAAK,QAAW,aACvBuM,GAAU,OAAOA,EAAO,KAAK,QAAW,cAC1CvM,EAAE,KAAK,OAASuM,EAAO,KAAK,OAAO,QAAQ,MAAO,EAAE,GAGxDvM,EAAE,OAAS,KAAK,QACTA,EACR,CAEH,CACA,WAAW+L,EAAU,CACnBA,EAAWA,EAAS,QAAO,EAC3B,QAASrE,KAASqE,EAAU,CAC1B,IAAIhC,EAAQ,KAAK,UAAUrC,EAAO,KAAK,MAAO,SAAS,EAAE,QAAO,EAChE,QAASV,KAAS+C,EAAO,KAAK,QAAQ,MAAM,QAAQ/C,CAAK,EACzD,QAAS7P,KAAM,KAAK,QAClB,KAAK,QAAQA,CAAE,EAAI,KAAK,QAAQA,CAAE,EAAI4S,EAAM,MAEhD,CACA,YAAK,UAAS,EACP,IACT,CACA,KAAKrC,EAAO,CACV,OAAAA,EAAM,OAAS,KACf,KAAK,QAAQ,MAAM,KAAKA,CAAK,EACtB,IACT,CACA,WAAY,CACV,QAASV,KAAS,KAAK,QAAQ,MAAOA,EAAM,OAAS,OACrD,YAAK,QAAQ,MAAQ,CAAA,EACrB,KAAK,UAAS,EACP,IACT,CACA,YAAYU,EAAO,CACjBA,EAAQ,KAAK,MAAMA,CAAK,EACxB,KAAK,QAAQ,MAAMA,CAAK,EAAE,OAAS,OACnC,KAAK,QAAQ,MAAM,OAAOA,EAAO,CAAC,EAClC,IAAIwW,EACJ,QAAS/mB,KAAM,KAAK,QAClB+mB,EAAS,KAAK,QAAQ/mB,CAAE,EACpB+mB,GAAUxW,IACZ,KAAK,QAAQvQ,CAAE,EAAI+mB,EAAS,GAGhC,YAAK,UAAS,EACP,IACT,CACA,cAAc1R,EAAS7C,EAAMqC,EAAU,CACrC,OAAKA,IACHA,EAAWrC,EACXA,EAAO,CAAA,GAET,KAAK,UAAW8C,GAAS,CACnB9C,EAAK,OAAS,CAACA,EAAK,MAAM,SAAS8C,EAAK,IAAI,GAC5C9C,EAAK,MAAQ,CAAC8C,EAAK,MAAM,SAAS9C,EAAK,IAAI,IAC/C8C,EAAK,MAAQA,EAAK,MAAM,QAAQD,EAASR,CAAQ,EACnD,CAAC,EACD,KAAK,UAAS,EACP,IACT,CACA,KAAKE,EAAW,CACd,OAAO,KAAK,MAAM,KAAKA,CAAS,CAClC,CACA,KAAKF,EAAU,CACb,OAAO,KAAK,KAAK,CAACtE,EAAO1H,IAAM,CAC7B,IAAIkK,EACJ,GAAI,CACFA,EAAU8B,EAAStE,EAAO1H,CAAC,CAC7B,OAAS0M,EAAI,CACX,MAAMhF,EAAM,WAAWgF,CAAE,CAC3B,CACA,OAAIxC,IAAY,IAASxC,EAAM,OAC7BwC,EAAUxC,EAAM,KAAKsE,CAAQ,GAExB9B,CACT,CAAC,CACH,CACA,YAAY9U,EAAM4W,EAAU,CAC1B,OAAKA,EAQD5W,aAAgB,OACX,KAAK,KAAK,CAACsS,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,UAAYtS,EAAK,KAAKsS,EAAM,IAAI,EACjD,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,EAEI,KAAK,KAAK,CAAC0H,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,UAAYA,EAAM,OAAStS,EAC5C,OAAO4W,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,GAlBCgM,EAAW5W,EACJ,KAAK,KAAK,CAACsS,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,SACjB,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,EAcL,CACA,aAAagM,EAAU,CACrB,OAAO,KAAK,KAAK,CAACtE,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,UACjB,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,CACH,CACA,UAAUiI,EAAM+D,EAAU,CACxB,OAAKA,EAQD/D,aAAgB,OACX,KAAK,KAAK,CAACP,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,QAAUO,EAAK,KAAKP,EAAM,IAAI,EAC/C,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,EAEI,KAAK,KAAK,CAAC0H,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,QAAUA,EAAM,OAASO,EAC1C,OAAO+D,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,GAlBCgM,EAAW/D,EACJ,KAAK,KAAK,CAACP,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,OACjB,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,EAcL,CACA,UAAU0D,EAAUsI,EAAU,CAC5B,OAAKA,EAQDtI,aAAoB,OACf,KAAK,KAAK,CAACgE,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,QAAUhE,EAAS,KAAKgE,EAAM,QAAQ,EACvD,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,EAEI,KAAK,KAAK,CAAC0H,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,QAAUA,EAAM,WAAahE,EAC9C,OAAOsI,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,GAlBCgM,EAAWtI,EACJ,KAAK,KAAK,CAACgE,EAAO1H,IAAM,CAC7B,GAAI0H,EAAM,OAAS,OACjB,OAAOsE,EAAStE,EAAO1H,CAAC,CAE5B,CAAC,EAcL,CACJ,CACE,OAAA8L,EAAU,cAAiBa,GAAc,CACvClB,EAAQkB,CACV,EACAb,EAAU,aAAgBa,GAAc,CACtChB,EAAOgB,CACT,EACAb,EAAU,eAAkBa,GAAc,CACxCnB,EAASmB,CACX,EACAb,EAAU,aAAgBa,GAAc,CACtCjB,EAAOiB,CACT,EACAtB,GAAYS,EACZA,EAAU,QAAUA,EACpBA,EAAU,QAAW9E,GAAU,CACzBA,EAAM,OAAS,SACjB,OAAO,eAAeA,EAAOwE,EAAO,SAAS,EACpCxE,EAAM,OAAS,OACxB,OAAO,eAAeA,EAAO2E,EAAK,SAAS,EAClC3E,EAAM,OAAS,OACxB,OAAO,eAAeA,EAAOkE,EAAY,SAAS,EACzClE,EAAM,OAAS,UACxB,OAAO,eAAeA,EAAO8D,EAAQ,SAAS,EACrC9D,EAAM,OAAS,QACxB,OAAO,eAAeA,EAAO0E,EAAK,SAAS,EAE7C1E,EAAM6B,CAAE,EAAI,GACR7B,EAAM,OACRA,EAAM,MAAM,QAASU,GAAU,CAC7BoE,EAAU,QAAQpE,CAAK,CACzB,CAAC,CAEL,EACO2D,EACT,CACA,IAAIuB,GACAC,GACJ,SAASC,IAAgB,CACvB,GAAID,GAAmB,OAAOD,GAC9BC,GAAoB,EACpB,IAAIf,EAAYP,GAAgB,EAChC,MAAMC,UAAeM,CAAU,CAC7B,YAAYxC,EAAU,CACpB,MAAMA,CAAQ,EACd,KAAK,KAAO,QACd,CACA,UAAUyC,EAAU,CAClB,OAAK,KAAK,QAAQ,QAAO,KAAK,MAAQ,CAAA,GAC/B,MAAM,OAAO,GAAGA,CAAQ,CACjC,CACA,WAAWA,EAAU,CACnB,OAAK,KAAK,QAAQ,QAAO,KAAK,MAAQ,CAAA,GAC/B,MAAM,QAAQ,GAAGA,CAAQ,CAClC,CACJ,CACE,OAAAa,GAASpB,EACTA,EAAO,QAAUA,EACjBM,EAAU,eAAeN,CAAM,EACxBoB,EACT,CACA,IAAIuR,GACAnR,GACJ,SAASC,IAAkB,CACzB,GAAID,GAAqB,OAAOmR,GAChCnR,GAAsB,EACtB,IAAIlB,EAAYP,GAAgB,EAC5B2B,EAAYC,EAChB,MAAMiR,UAAkBtS,CAAU,CAChC,YAAYxC,EAAU,CACpB,MAAM8B,EAAA,CAAE,KAAM,YAAe9B,EAAU,EAClC,KAAK,QACR,KAAK,MAAQ,CAAA,EAEjB,CACA,SAASK,EAAO,CAAA,EAAI,CAElB,OADW,IAAIuD,EAAW,IAAIC,EAAa,KAAMxD,CAAI,EACzC,UAAS,CACvB,CACJ,CACE,OAAAyU,EAAU,mBAAsBzR,GAAc,CAC5CO,EAAaP,CACf,EACAyR,EAAU,kBAAqBzR,GAAc,CAC3CQ,EAAYR,CACd,EACAwR,GAAaC,EACbA,EAAU,QAAUA,EACbD,EACT,CACA,IAAI9Q,GACAC,GACJ,SAASC,IAAmB,CAC1B,GAAID,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,IAAIE,EAAc,mEAmBlB,OAAAH,GAAY,CAAE,OARD,CAACI,EAAO,KAAO,CAC1B,IAAItW,EAAK,GACL6I,EAAIyN,EAAO,EACf,KAAOzN,KACL7I,GAAMqW,EAAY,KAAK,OAAM,EAAK,GAAK,CAAC,EAE1C,OAAOrW,CACT,EACsB,eAlBD,CAACuW,EAAUC,EAAc,KACrC,CAACF,EAAOE,IAAgB,CAC7B,IAAIxW,EAAK,GACL6I,EAAIyN,EAAO,EACf,KAAOzN,KACL7I,GAAMuW,EAAS,KAAK,OAAM,EAAKA,EAAS,OAAS,CAAC,EAEpD,OAAOvW,CACT,CAUkC,EAC7BkW,EACT,CACA,IAAIO,GACAC,GACJ,SAASC,IAAqB,CAC5B,GAAID,GAAwB,OAAOD,GACnCC,GAAyB,EACzB,GAAI,CAAE,WAAAE,EAAY,aAAAC,CAAY,EAAKxJ,GAC/B,CAAE,QAAAyJ,EAAS,KAAAC,CAAI,EAAK1J,GACpB,CAAE,kBAAA2J,EAAmB,mBAAAC,CAAkB,EAAK5J,GAChD,SAAS6J,EAAWlW,EAAK,CACvB,OAAI,OACK,OAAO,KAAKA,EAAK,QAAQ,EAAE,SAAQ,EAEnC,OAAO,KAAKA,CAAG,CAE1B,CACA,MAAMmW,CAAY,CAChB,YAAYjJ,EAAKsE,EAAM,CACrB,GAAIA,EAAK,MAAQ,GAAO,OACxB,KAAK,eAAetE,CAAG,EACvB,KAAK,OAAS,KAAK,UAAU,KAAK,WAAY,OAAO,EACrD,IAAIkJ,EAAO5E,EAAK,IAAMA,EAAK,IAAI,KAAO,OAClC3R,EAAO,KAAK,QAAQ2R,EAAK,KAAM4E,CAAI,EACnC,CAAC,KAAK,SAAW5E,EAAK,OACxB,KAAK,QAAUA,EAAK,MAElB,KAAK,UAAS,KAAK,KAAOsE,EAAQ,KAAK,OAAO,GAC9CjW,IAAM,KAAK,KAAOA,EACxB,CACA,UAAW,CACT,OAAK,KAAK,gBACR,KAAK,cAAgB,IAAImW,EAAkB,KAAK,IAAI,GAE/C,KAAK,aACd,CACA,aAAanW,EAAM,CACjB,IAAIwW,EAAiB,iDACjBC,EAAU,kCACVC,EAAa,0CACbC,EAAM,2BACNC,EAAW5W,EAAK,MAAM0W,CAAU,GAAK1W,EAAK,MAAM2W,CAAG,EACvD,GAAIC,EACF,OAAO,mBAAmB5W,EAAK,OAAO4W,EAAS,CAAC,EAAE,MAAM,CAAC,EAE3D,IAAIC,EAAe7W,EAAK,MAAMwW,CAAc,GAAKxW,EAAK,MAAMyW,CAAO,EACnE,GAAII,EACF,OAAOR,EAAWrW,EAAK,OAAO6W,EAAa,CAAC,EAAE,MAAM,CAAC,EAEvD,IAAIC,EAAW9W,EAAK,MAAM,iCAAiC,EAAE,CAAC,EAC9D,MAAM,IAAI,MAAM,mCAAqC8W,CAAQ,CAC/D,CACA,iBAAiBC,EAAiB,CAChC,OAAOA,EAAgB,QAAQ,8BAA+B,EAAE,EAAE,KAAI,CACxE,CACA,MAAMC,EAAK,CACT,OAAI,OAAOA,GAAQ,SAAiB,GAC7B,OAAOA,EAAI,UAAa,UAAY,OAAOA,EAAI,WAAc,UAAY,MAAM,QAAQA,EAAI,QAAQ,CAC5G,CACA,eAAe3J,EAAK,CAClB,IAAI4J,EAAW5J,EAAI,MAAM,6BAA6B,EACtD,GAAI,CAAC4J,EAAU,OACf,IAAIpJ,EAAQR,EAAI,YAAY4J,EAAS,IAAG,CAAE,EACtCnJ,EAAMT,EAAI,QAAQ,KAAMQ,CAAK,EAC7BA,EAAQ,IAAMC,EAAM,KACtB,KAAK,WAAa,KAAK,iBAAiBT,EAAI,UAAUQ,EAAOC,CAAG,CAAC,EAErE,CACA,SAAS3M,EAAM,CAEb,GADA,KAAK,KAAO8U,EAAQ9U,CAAI,EACpB4U,EAAW5U,CAAI,EACjB,YAAK,QAAUA,EACR6U,EAAa7U,EAAM,OAAO,EAAE,SAAQ,EAAG,KAAI,CAEtD,CACA,QAAQ+L,EAAMqJ,EAAM,CAClB,GAAIA,IAAS,GAAO,MAAO,GAC3B,GAAIA,EAAM,CACR,GAAI,OAAOA,GAAS,SAClB,OAAOA,EACT,GAAW,OAAOA,GAAS,WAAY,CACrC,IAAIW,EAAWX,EAAKrJ,CAAI,EACxB,GAAIgK,EAAU,CACZ,IAAIF,EAAM,KAAK,SAASE,CAAQ,EAChC,GAAI,CAACF,EACH,MAAM,IAAI,MACR,uCAAyCE,EAAS,SAAQ,CAC1E,EAEY,OAAOF,CACT,CACF,KAAA,IAAWT,aAAgBJ,EACzB,OAAOC,EAAmB,cAAcG,CAAI,EAAE,SAAQ,EACxD,GAAWA,aAAgBH,EACzB,OAAOG,EAAK,SAAQ,EACtB,GAAW,KAAK,MAAMA,CAAI,EACxB,OAAO,KAAK,UAAUA,CAAI,EAE1B,MAAM,IAAI,MACR,2CAA6CA,EAAK,SAAQ,CACtE,EAEM,KAAA,IAAW,KAAK,OACd,OAAO,KAAK,aAAa,KAAK,UAAU,EAC1C,GAAW,KAAK,WAAY,CAC1B,IAAIS,EAAM,KAAK,WACf,OAAI9J,IAAM8J,EAAMd,EAAKD,EAAQ/I,CAAI,EAAG8J,CAAG,GAChC,KAAK,SAASA,CAAG,CAC1B,EACF,CACA,UAAUnH,EAAQhC,EAAO,CACvB,OAAKgC,EACEA,EAAO,OAAO,EAAGhC,EAAM,MAAM,IAAMA,EADtB,EAEtB,CACA,aAAc,CACZ,MAAO,CAAC,EAAE,KAAK,SAAQ,EAAG,gBAAkB,KAAK,SAAA,EAAW,eAAe,OAAS,EACtF,CACJ,CACE,OAAA+H,GAAcU,EACdA,EAAY,QAAUA,EACfV,EACT,CACA,IAAIuB,GACAC,GACJ,SAASC,IAAe,CACtB,GAAID,GAAkB,OAAOD,GAC7BC,GAAmB,EACnB,GAAI,CAAE,OAAAE,CAAM,EAAqB/B,GAAgB,EAC7C,CAAE,WAAAgC,EAAY,QAAAC,CAAO,EAAKhL,GAC1B,CAAE,kBAAA2J,EAAmB,mBAAAC,CAAkB,EAAK5J,GAC5C,CAAE,cAAAiL,EAAe,cAAAC,CAAa,EAAKlL,GACnCM,EAAiBH,GAAqB,EACtC2J,EAAcR,GAAkB,EAChCjJ,EAAoBL,GACpBmL,EAAmB,OAAO,kBAAkB,EAC5CC,EAAqB,GAAQzB,GAAqBC,GAClDyB,EAAgB,GAAQL,GAAWD,GACvC,SAASO,EAAetF,EAAQ,CAC9B,GAAIA,EAAOmF,CAAgB,EAAG,OAAOnF,EAAOmF,CAAgB,EAC5D,IAAI/J,EAAQ4E,EAAO,IAAI,MAAM;CAAI,EAC7BuF,EAAc,IAAI,MAAMnK,EAAM,MAAM,EACpCoK,EAAY,EAChB,QAAShQ,EAAI,EAAGiQ,EAAKrK,EAAM,OAAQ5F,EAAIiQ,EAAIjQ,IACzC+P,EAAY/P,CAAC,EAAIgQ,EACjBA,GAAapK,EAAM5F,CAAC,EAAE,OAAS,EAEjC,OAAAwK,EAAOmF,CAAgB,EAAII,EACpBA,CACT,CACA,MAAMG,CAAM,CACV,IAAI,MAAO,CACT,OAAO,KAAK,MAAQ,KAAK,EAC3B,CACA,YAAY7K,EAAKsE,EAAO,CAAA,EAAI,CAC1B,GAAItE,IAAQ,MAAQ,OAAOA,GAAQ,aAAe,OAAOA,GAAQ,UAAY,CAACA,EAAI,SAChF,MAAM,IAAI,MAAM,oBAAoBA,CAAG,wBAAwB,EAkBjE,GAhBA,KAAK,IAAMA,EAAI,SAAQ,EACnB,KAAK,IAAI,CAAC,IAAM,UAAY,KAAK,IAAI,CAAC,IAAM,UAC9C,KAAK,OAAS,GACd,KAAK,IAAM,KAAK,IAAI,MAAM,CAAC,GAE3B,KAAK,OAAS,GAEhB,KAAK,SAAW,KAAK,IACjBsE,EAAK,WAAU,KAAK,SAAWA,EAAK,SAAS,SAAQ,GACrDA,EAAK,OACH,CAACkG,GAAiB,YAAY,KAAKlG,EAAK,IAAI,GAAK4F,EAAW5F,EAAK,IAAI,EACvE,KAAK,KAAOA,EAAK,KAEjB,KAAK,KAAO6F,EAAQ7F,EAAK,IAAI,GAG7BkG,GAAiBD,EAAoB,CACvC,IAAIZ,EAAM,IAAIV,EAAY,KAAK,IAAK3E,CAAI,EACxC,GAAIqF,EAAI,KAAM,CACZ,KAAK,IAAMA,EACX,IAAI9J,EAAO8J,EAAI,SAAQ,EAAG,KACtB,CAAC,KAAK,MAAQ9J,IAAM,KAAK,KAAO,KAAK,WAAWA,CAAI,EAC1D,CACF,CACK,KAAK,OACR,KAAK,GAAK,cAAgBoK,EAAO,CAAC,EAAI,KAEpC,KAAK,MAAK,KAAK,IAAI,KAAO,KAAK,KACrC,CACA,MAAMvK,EAASC,EAAMC,EAAQ0E,EAAO,CAAA,EAAI,CACtC,IAAIwG,EAAWC,EAASC,EAAWjH,EAAQc,EAC3C,GAAIlF,GAAQ,OAAOA,GAAS,SAAU,CACpC,IAAIa,EAAQb,EACRc,EAAMb,EACV,GAAI,OAAOY,EAAM,QAAW,SAAU,CACpCuD,EAASvD,EAAM,OACf,IAAI/J,EAAM,KAAK,WAAWsN,CAAM,EAChCpE,EAAOlJ,EAAI,KACXmJ,EAASnJ,EAAI,GACf,MACEkJ,EAAOa,EAAM,KACbZ,EAASY,EAAM,OACfuD,EAAS,KAAK,kBAAkBpE,EAAMC,CAAM,EAE9C,GAAI,OAAOa,EAAI,QAAW,SAAU,CAClCuK,EAAYvK,EAAI,OAChB,IAAIhK,EAAM,KAAK,WAAWuU,CAAS,EACnCD,EAAUtU,EAAI,KACdqU,EAAYrU,EAAI,GAClB,MACEsU,EAAUtK,EAAI,KACdqK,EAAYrK,EAAI,OAChBuK,EAAY,KAAK,kBAAkBvK,EAAI,KAAMA,EAAI,MAAM,CAE3D,SAAYb,EAMVmE,EAAS,KAAK,kBAAkBpE,EAAMC,CAAM,MAN1B,CAClBmE,EAASpE,EACT,IAAIlJ,EAAM,KAAK,WAAWsN,CAAM,EAChCpE,EAAOlJ,EAAI,KACXmJ,EAASnJ,EAAI,GACf,CAGA,IAAIrC,EAAS,KAAK,OAAOuL,EAAMC,EAAQmL,EAASD,CAAS,EACzD,OAAI1W,EACFyQ,EAAU,IAAIpF,EACZC,EACAtL,EAAO,UAAY,OAASA,EAAO,KAAO,CAAE,OAAQA,EAAO,OAAQ,KAAMA,EAAO,IAAI,EACpFA,EAAO,UAAY,OAASA,EAAO,OAAS,CAAE,OAAQA,EAAO,UAAW,KAAMA,EAAO,OAAO,EAC5FA,EAAO,OACPA,EAAO,KACPkQ,EAAK,MACf,EAEQO,EAAU,IAAIpF,EACZC,EACAqL,IAAY,OAASpL,EAAO,CAAE,OAAAC,EAAQ,KAAAD,CAAI,EAC1CoL,IAAY,OAASnL,EAAS,CAAE,OAAQkL,EAAW,KAAMC,CAAO,EAChE,KAAK,IACL,KAAK,KACLzG,EAAK,MACf,EAEMO,EAAQ,MAAQ,CAAE,OAAAjF,EAAQ,UAAAkL,EAAW,QAAAC,EAAS,UAAAC,EAAW,KAAArL,EAAM,OAAAoE,EAAQ,OAAQ,KAAK,GAAG,EACnF,KAAK,OACHsG,IACFxF,EAAQ,MAAM,IAAMwF,EAAc,KAAK,IAAI,EAAE,SAAQ,GAEvDxF,EAAQ,MAAM,KAAO,KAAK,MAErBA,CACT,CACA,kBAAkBlF,EAAMC,EAAQ,CAG9B,OAFkB6K,EAAe,IAAI,EACZ9K,EAAO,CAAC,EACjBC,EAAS,CAC3B,CACA,WAAWmE,EAAQ,CACjB,IAAI2G,EAAcD,EAAe,IAAI,EACjCQ,EAAWP,EAAYA,EAAY,OAAS,CAAC,EAC7CQ,EAAM,EACV,GAAInH,GAAUkH,EACZC,EAAMR,EAAY,OAAS,MACtB,CACL,IAAIS,EAAMT,EAAY,OAAS,EAC3BU,EACJ,KAAOF,EAAMC,GAEX,GADAC,EAAMF,GAAOC,EAAMD,GAAO,GACtBnH,EAAS2G,EAAYU,CAAG,EAC1BD,EAAMC,EAAM,UACHrH,GAAU2G,EAAYU,EAAM,CAAC,EACtCF,EAAME,EAAM,MACP,CACLF,EAAME,EACN,KACF,CAEJ,CACA,MAAO,CACL,IAAKrH,EAAS2G,EAAYQ,CAAG,EAAI,EACjC,KAAMA,EAAM,CACpB,CACI,CACA,WAAWrL,EAAM,CACf,MAAI,YAAY,KAAKA,CAAI,EAChBA,EAEFsK,EAAQ,KAAK,IAAI,SAAQ,EAAG,YAAc,KAAK,IAAI,MAAQ,IAAKtK,CAAI,CAC7E,CACA,OAAOF,EAAMC,EAAQmL,EAASD,EAAW,CACvC,GAAI,CAAC,KAAK,IAAK,MAAO,GACtB,IAAIO,EAAW,KAAK,IAAI,SAAQ,EAC5BC,EAAOD,EAAS,oBAAoB,CAAE,OAAAzL,EAAQ,KAAAD,CAAI,CAAE,EACxD,GAAI,CAAC2L,EAAK,OAAQ,MAAO,GACzB,IAAIC,EACA,OAAOR,GAAY,WACrBQ,EAAKF,EAAS,oBAAoB,CAAE,OAAQP,EAAW,KAAMC,CAAA,CAAS,GAExE,IAAIS,EACAtB,EAAWoB,EAAK,MAAM,EACxBE,EAAUnB,EAAciB,EAAK,MAAM,EAEnCE,EAAU,IAAI,IACZF,EAAK,OACL,KAAK,IAAI,SAAQ,EAAG,YAAcjB,EAAc,KAAK,IAAI,OAAO,CAC1E,EAEM,IAAIxF,EAAU,CACZ,OAAQyG,EAAK,OACb,UAAWC,GAAMA,EAAG,OACpB,QAASA,GAAMA,EAAG,KAClB,KAAMD,EAAK,KACX,IAAKE,EAAQ,SAAQ,CAC7B,EACM,GAAIA,EAAQ,WAAa,QACvB,GAAIpB,EACFvF,EAAQ,KAAOuF,EAAcoB,CAAO,MAEpC,OAAM,IAAI,MAAM,uDAAuD,EAG3E,IAAI1b,EAASub,EAAS,iBAAiBC,EAAK,MAAM,EAClD,OAAIxb,IAAQ+U,EAAQ,OAAS/U,GACtB+U,CACT,CACA,QAAS,CACP,IAAI4G,EAAO,CAAA,EACX,QAAS1b,IAAQ,CAAC,SAAU,MAAO,OAAQ,IAAI,EACzC,KAAKA,CAAI,GAAK,OAChB0b,EAAK1b,CAAI,EAAI,KAAKA,CAAI,GAG1B,OAAI,KAAK,MACP0b,EAAK,IAAM1F,EAAA,GAAK,KAAK,KACjB0F,EAAK,IAAI,gBACXA,EAAK,IAAI,cAAgB,SAGtBA,CACT,CACJ,CACE,OAAA3B,GAAQe,EACRA,EAAM,QAAUA,EACZrL,GAAqBA,EAAkB,eACzCA,EAAkB,cAAcqL,CAAK,EAEhCf,EACT,CACA,IAAI4B,GACAC,GACJ,SAASC,IAAc,CACrB,GAAID,GAAiB,OAAOD,GAC5BC,GAAkB,EAClB,IAAIlF,EAAYP,GAAgB,EAC5B2B,EAAYC,EAChB,MAAMzB,UAAaI,CAAU,CAC3B,YAAYxC,EAAU,CACpB,MAAMA,CAAQ,EACd,KAAK,KAAO,OACP,KAAK,QAAO,KAAK,MAAQ,CAAA,EAChC,CACA,UAAU5B,EAAO6E,EAAQzU,EAAM,CAC7B,IAAIiS,EAAQ,MAAM,UAAUrC,CAAK,EACjC,GAAI6E,GACF,GAAIzU,IAAS,UACP,KAAK,MAAM,OAAS,EACtByU,EAAO,KAAK,OAAS,KAAK,MAAM,CAAC,EAAE,KAAK,OAExC,OAAOA,EAAO,KAAK,eAEZ,KAAK,QAAUA,EACxB,QAASvF,KAAS+C,EAChB/C,EAAM,KAAK,OAASuF,EAAO,KAAK,OAItC,OAAOxC,CACT,CACA,YAAYrC,EAAOwJ,EAAQ,CACzB,IAAIgN,EAAS,KAAK,MAAMxW,CAAK,EAC7B,MAAI,CAACwJ,GAAUgN,IAAW,GAAK,KAAK,MAAM,OAAS,IACjD,KAAK,MAAM,CAAC,EAAE,KAAK,OAAS,KAAK,MAAMA,CAAM,EAAE,KAAK,QAE/C,MAAM,YAAYxW,CAAK,CAChC,CACA,SAASiC,EAAO,CAAA,EAAI,CAElB,OADW,IAAIuD,EAAW,IAAIC,EAAa,KAAMxD,CAAI,EACzC,UAAS,CACvB,CACJ,CACE,OAAA+B,EAAK,mBAAsBiB,GAAc,CACvCO,EAAaP,CACf,EACAjB,EAAK,kBAAqBiB,GAAc,CACtCQ,EAAYR,CACd,EACAoE,GAAOrF,EACPA,EAAK,QAAUA,EACfI,EAAU,aAAaJ,CAAI,EACpBqF,EACT,CACA,IAAII,GACAC,GACJ,SAASC,IAAc,CACrB,GAAID,GAAiB,OAAOD,GAC5BC,GAAkB,EAClB,IAAIE,EAAO,CACT,MAAMzJ,EAAQ,CACZ,OAAOyJ,EAAK,MAAMzJ,EAAQ,CAAC,GAAG,EAAG,EAAI,CACvC,EACA,MAAMA,EAAQ,CACZ,IAAI0J,EAAS,CAAC,IAAK;EAAM,GAAG,EAC5B,OAAOD,EAAK,MAAMzJ,EAAQ0J,CAAM,CAClC,EACA,MAAM1J,EAAQ2J,EAAY/J,EAAM,CAC9B,IAAIgK,EAAQ,CAAA,EACRC,EAAU,GACVC,EAAQ,GACRC,EAAO,EACPC,EAAU,GACVC,EAAY,GACZC,EAAS,GACb,QAASC,KAAUnK,EACbkK,EACFA,EAAS,GACAC,IAAW,KACpBD,EAAS,GACAF,EACLG,IAAWF,IACbD,EAAU,IAEHG,IAAW,KAAOA,IAAW,KACtCH,EAAU,GACVC,EAAYE,GACHA,IAAW,IACpBJ,GAAQ,EACCI,IAAW,IAChBJ,EAAO,IAAGA,GAAQ,GACbA,IAAS,GACdJ,EAAW,SAASQ,CAAM,IAAGL,EAAQ,IAEvCA,GACED,IAAY,IAAID,EAAM,KAAKC,EAAQ,KAAA,CAAM,EAC7CA,EAAU,GACVC,EAAQ,IAERD,GAAWM,EAGf,OAAIvK,GAAQiK,IAAY,KAAID,EAAM,KAAKC,EAAQ,KAAA,CAAM,EAC9CD,CACT,CACJ,EACE,OAAAN,GAASG,EACTA,EAAK,QAAUA,EACRH,EACT,CACA,IAAIlb,GACAgc,GACJ,SAASC,IAAc,CACrB,GAAID,GAAiB,OAAOhc,GAC5Bgc,GAAkB,EAClB,IAAInG,EAAYP,GAAgB,EAC5B+F,EAAOD,GAAW,EACtB,MAAM1F,UAAaG,CAAU,CAC3B,IAAI,WAAY,CACd,OAAOwF,EAAK,MAAM,KAAK,QAAQ,CACjC,CACA,IAAI,UAAUa,EAAQ,CACpB,IAAI5Y,EAAQ,KAAK,SAAW,KAAK,SAAS,MAAM,MAAM,EAAI,KACtD6Y,EAAM7Y,EAAQA,EAAM,CAAC,EAAI,IAAM,KAAK,IAAI,UAAW,YAAY,EACnE,KAAK,SAAW4Y,EAAO,KAAKC,CAAG,CACjC,CACA,YAAY9I,EAAU,CACpB,MAAMA,CAAQ,EACd,KAAK,KAAO,OACP,KAAK,QAAO,KAAK,MAAQ,CAAA,EAChC,CACJ,CACE,OAAArT,GAAO0V,EACPA,EAAK,QAAUA,EACfG,EAAU,aAAaH,CAAI,EACpB1V,EACT,CACA,IAAIoc,GACAC,GACJ,SAASC,IAAkB,CACzB,GAAID,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,IAAI9G,EAASsB,GAAa,EACtBhC,EAAUD,GAAc,EACxBK,EAAcD,GAAkB,EAChCiF,EAAQb,GAAY,EACpBf,EAAcR,GAAkB,EAChCpC,EAAOuF,GAAW,EAClBtF,EAAOuG,GAAW,EACtB,SAASM,EAAS1B,EAAM1G,EAAQ,CAC9B,GAAI,MAAM,QAAQ0G,CAAI,EAAG,OAAOA,EAAK,IAAK1c,GAAMoe,EAASpe,CAAC,CAAC,EAC3D,IAAyC1B,EAAAoe,EAAnC,QAAQ2B,GAA2B/f,EAAb4W,EAAAoJ,GAAahgB,EAAb,CAAtB,WACN,GAAI+f,EAAW,CACbrI,EAAS,CAAA,EACT,QAASI,KAAUiI,EAAW,CAC5B,IAAIE,EAAgBxH,GAAAC,EAAA,GAAKZ,GAAL,CAAa,UAAW0F,EAAM,SAAS,GACvDyC,EAAc,MAChBA,EAAc,IAAMxH,GAAAC,EAAA,GACfuH,EAAc,KADC,CAElB,UAAWrE,EAAY,SACnC,IAEQlE,EAAO,KAAKuI,CAAa,CAC3B,CACF,CAIA,GAHIrJ,EAAS,QACXA,EAAS,MAAQwH,EAAK,MAAM,IAAK1c,GAAMoe,EAASpe,EAAGgW,CAAM,CAAC,GAExDd,EAAS,OAAQ,CACnB,IAA6B3W,EAAA2W,EAAS,OAAhC,SAAAiB,GAAuB5X,EAAXwC,EAAAud,GAAW/f,EAAX,CAAZ,YACN2W,EAAS,OAASnU,EACdoV,GAAW,OACbjB,EAAS,OAAO,MAAQc,EAAOG,CAAO,EAE1C,CACA,GAAIjB,EAAS,OAAS,OACpB,OAAO,IAAIoC,EAAKpC,CAAQ,EAC1B,GAAWA,EAAS,OAAS,OAC3B,OAAO,IAAI4B,EAAY5B,CAAQ,EACjC,GAAWA,EAAS,OAAS,OAC3B,OAAO,IAAIqC,EAAKrC,CAAQ,EAC1B,GAAWA,EAAS,OAAS,UAC3B,OAAO,IAAIwB,EAAQxB,CAAQ,EAC7B,GAAWA,EAAS,OAAS,SAC3B,OAAO,IAAIkC,EAAOlC,CAAQ,EAE1B,MAAM,IAAI,MAAM,sBAAwBwH,EAAK,IAAI,CAErD,CACA,OAAAuB,GAAaG,EACbA,EAAS,QAAUA,EACZH,EACT,CACA,IAAIO,GACAC,GACJ,SAASC,IAAsB,CAC7B,GAAID,GAAyB,OAAOD,GACpCC,GAA0B,EAC1B,GAAI,CAAE,QAAA5E,EAAS,SAAA8E,EAAU,QAAAvD,EAAS,IAAA4C,CAAG,EAAK5N,GACtC,CAAE,kBAAA2J,EAAmB,mBAAAC,CAAkB,EAAK5J,GAC5C,CAAE,cAAAkL,CAAa,EAAKlL,GACpB0L,EAAQb,GAAY,EACpBO,EAAqB,GAAQzB,GAAqBC,GAClDyB,EAAgB,GAAQ5B,GAAWuB,GAAWuD,GAAYX,GAC9D,MAAMY,CAAa,CACjB,YAAY1K,EAAWP,EAAO4B,EAAMsJ,EAAW,CAC7C,KAAK,UAAY3K,EACjB,KAAK,QAAUqB,EAAK,KAAO,CAAA,EAC3B,KAAK,KAAO5B,EACZ,KAAK,KAAO4B,EACZ,KAAK,IAAMsJ,EACX,KAAK,YAAcA,EACnB,KAAK,aAAe,CAAC,KAAK,QAAQ,MAAQ,KAAK,QAAQ,SACvD,KAAK,iBAAmC,IAAI,IAC5C,KAAK,cAAgC,IAAI,IACzC,KAAK,aAA+B,IAAI,GAC1C,CACA,eAAgB,CACd,IAAIC,EACA,KAAK,SAAA,EACPA,EAAU,gCAAkC,KAAK,SAAS,KAAK,IAAI,SAAA,CAAU,EACpE,OAAO,KAAK,QAAQ,YAAe,SAC5CA,EAAU,KAAK,QAAQ,WACd,OAAO,KAAK,QAAQ,YAAe,WAC5CA,EAAU,KAAK,QAAQ,WAAW,KAAK,KAAK,GAAI,KAAK,IAAI,EAEzDA,EAAU,KAAK,WAAU,EAAK,OAEhC,IAAIC,EAAM;EACN,KAAK,IAAI,SAAS;CAAM,IAAGA,EAAM;GACrC,KAAK,KAAOA,EAAM,wBAA0BD,EAAU,KACxD,CACA,eAAgB,CACd,QAAS3E,KAAQ,KAAK,SAAA,EAAY,CAChC,IAAIoC,EAAO,KAAK,MAAM,KAAK,KAAKpC,EAAK,IAAI,CAAC,EACtCxG,EAAQwG,EAAK,MAAQN,EAAQM,EAAK,IAAI,EACtCS,EACA,KAAK,QAAQ,iBAAmB,IAClCA,EAAM,IAAIb,EAAkBI,EAAK,IAAI,EACjCS,EAAI,iBACNA,EAAI,eAAiB,OAGvBA,EAAMT,EAAK,SAAQ,EAErB,KAAK,IAAI,eAAeS,EAAK2B,EAAM,KAAK,MAAM,KAAK,KAAK5I,CAAK,CAAC,CAAC,CACjE,CACF,CACA,iBAAkB,CAChB,GAAI,KAAK,QAAQ,aAAe,GAChC,GAAI,KAAK,KAAM,CACb,IAAIf,EACJ,QAAShH,EAAI,KAAK,KAAK,MAAM,OAAS,EAAGA,GAAK,EAAGA,IAC/CgH,EAAQ,KAAK,KAAK,MAAMhH,CAAC,EACrBgH,EAAM,OAAS,WACfA,EAAM,KAAK,WAAW,qBAAqB,GAC7C,KAAK,KAAK,YAAYhH,CAAC,CAG7B,MAAW,KAAK,MACd,KAAK,IAAM,KAAK,IAAI,QAAQ,0BAA2B,EAAE,EAE7D,CACA,UAAW,CAET,GADA,KAAK,gBAAe,EAChB6P,GAAiBD,GAAsB,KAAK,MAAK,EACnD,OAAO,KAAK,YAAW,EAClB,CACL,IAAI1F,EAAU,GACd,YAAK,UAAU,KAAK,KAAOlK,GAAM,CAC/BkK,GAAWlK,CACb,CAAC,EACM,CAACkK,CAAO,CACjB,CACF,CACA,aAAc,CACZ,GAAI,KAAK,KACP,KAAK,eAAc,UACV,KAAK,SAAQ,EAAG,SAAW,EAAG,CACvC,IAAIqE,EAAO,KAAK,SAAQ,EAAG,CAAC,EAAE,SAAQ,EACtCA,EAAK,KAAO,KAAK,WAAU,EAC3B,KAAK,IAAMH,EAAmB,cAAcG,EAAM,CAChD,qBAAsB,EAChC,CAAS,CACH,MACE,KAAK,IAAM,IAAIH,EAAmB,CAChC,KAAM,KAAK,WAAU,EACrB,qBAAsB,EAChC,CAAS,EACD,KAAK,IAAI,WAAW,CAClB,UAAW,CAAE,OAAQ,EAAG,KAAM,CAAC,EAC/B,SAAU,CAAE,OAAQ,EAAG,KAAM,CAAC,EAC9B,OAAQ,KAAK,KAAK,KAAO,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,EAAI,aAC3E,CAAS,EAKH,OAHI,KAAK,iBAAA,GAAoB,KAAK,kBAAiB,EAC/C,KAAK,MAAQ,KAAK,SAAQ,EAAG,OAAS,GAAG,KAAK,cAAa,EAC3D,KAAK,aAAA,GAAgB,KAAK,cAAa,EACvC,KAAK,SAAA,EACA,CAAC,KAAK,GAAG,EAET,CAAC,KAAK,IAAK,KAAK,GAAG,CAE9B,CACA,gBAAiB,CACf,KAAK,IAAM,GACX,KAAK,IAAM,IAAIA,EAAmB,CAChC,KAAM,KAAK,WAAU,EACrB,qBAAsB,EAC9B,CAAO,EACD,IAAIpJ,EAAO,EACPC,EAAS,EACTmO,EAAW,cACXC,EAAU,CACZ,UAAW,CAAE,OAAQ,EAAG,KAAM,CAAC,EAC/B,SAAU,CAAE,OAAQ,EAAG,KAAM,CAAC,EAC9B,OAAQ,EAChB,EACU5L,EAAM7B,EACV,KAAK,UAAU,KAAK,KAAM,CAACzN,EAAK6O,EAAOlP,IAAS,CAyB9C,GAxBA,KAAK,KAAOK,EACR6O,GAASlP,IAAS,QACpBub,EAAQ,UAAU,KAAOrO,EACzBqO,EAAQ,UAAU,OAASpO,EAAS,EAChC+B,EAAM,QAAUA,EAAM,OAAO,OAC/BqM,EAAQ,OAAS,KAAK,WAAWrM,CAAK,EACtCqM,EAAQ,SAAS,KAAOrM,EAAM,OAAO,MAAM,KAC3CqM,EAAQ,SAAS,OAASrM,EAAM,OAAO,MAAM,OAAS,EACtD,KAAK,IAAI,WAAWqM,CAAO,IAE3BA,EAAQ,OAASD,EACjBC,EAAQ,SAAS,KAAO,EACxBA,EAAQ,SAAS,OAAS,EAC1B,KAAK,IAAI,WAAWA,CAAO,IAG/BzN,EAAQzN,EAAI,MAAM,KAAK,EACnByN,GACFZ,GAAQY,EAAM,OACd6B,EAAOtP,EAAI,YAAY;CAAI,EAC3B8M,EAAS9M,EAAI,OAASsP,GAEtBxC,GAAU9M,EAAI,OAEZ6O,GAASlP,IAAS,QAAS,CAC7B,IAAIkQ,EAAKhB,EAAM,QAAU,CAAE,KAAM,CAAA,CAAE,GAE/B,EADYA,EAAM,OAAS,QAAUA,EAAM,OAAS,UAAY,CAACA,EAAM,QACzDA,IAAUgB,EAAG,MAAQA,EAAG,KAAK,aACzChB,EAAM,QAAUA,EAAM,OAAO,KAC/BqM,EAAQ,OAAS,KAAK,WAAWrM,CAAK,EACtCqM,EAAQ,SAAS,KAAOrM,EAAM,OAAO,IAAI,KACzCqM,EAAQ,SAAS,OAASrM,EAAM,OAAO,IAAI,OAAS,EACpDqM,EAAQ,UAAU,KAAOrO,EACzBqO,EAAQ,UAAU,OAASpO,EAAS,EACpC,KAAK,IAAI,WAAWoO,CAAO,IAE3BA,EAAQ,OAASD,EACjBC,EAAQ,SAAS,KAAO,EACxBA,EAAQ,SAAS,OAAS,EAC1BA,EAAQ,UAAU,KAAOrO,EACzBqO,EAAQ,UAAU,OAASpO,EAAS,EACpC,KAAK,IAAI,WAAWoO,CAAO,GAGjC,CACF,CAAC,CACH,CACA,cAAe,CACb,OAAI,KAAK,SAAA,EACA,GAEL,OAAO,KAAK,QAAQ,YAAe,YAC9B,KAAK,QAAQ,WAElB,KAAK,SAAQ,EAAG,OACX,KAAK,SAAA,EAAW,KAAMrT,GAAMA,EAAE,UAAU,EAE1C,EACT,CACA,UAAW,CACT,GAAI,OAAO,KAAK,QAAQ,QAAW,YACjC,OAAO,KAAK,QAAQ,OAEtB,IAAIsT,EAAa,KAAK,QAAQ,WAC9B,OAAI,OAAOA,GAAe,aAAeA,IAAe,GAC/C,GAEL,KAAK,SAAQ,EAAG,OACX,KAAK,SAAA,EAAW,KAAMtT,GAAMA,EAAE,MAAM,EAEtC,EACT,CACA,OAAQ,CACN,OAAI,OAAO,KAAK,KAAK,KAAQ,YACpB,CAAC,CAAC,KAAK,KAAK,IAEd,KAAK,SAAA,EAAW,OAAS,CAClC,CACA,kBAAmB,CACjB,OAAI,OAAO,KAAK,QAAQ,gBAAmB,YAClC,KAAK,QAAQ,eAElB,KAAK,SAAQ,EAAG,OACX,KAAK,SAAA,EAAW,KAAMA,GAAMA,EAAE,YAAA,CAAa,EAE7C,EACT,CACA,YAAa,CACX,OAAI,KAAK,KAAK,GACL,KAAK,KAAK,KAAK,KAAK,EAAE,EACpB,KAAK,KAAK,KACZ,KAAK,KAAK,KAAK,KAAK,IAAI,EAExB,QAEX,CACA,KAAKkF,EAAM,CAGT,GAFI,KAAK,QAAQ,UACbA,EAAK,WAAW,CAAC,IAAM,IACvB,YAAY,KAAKA,CAAI,EAAG,OAAOA,EACnC,IAAIqO,EAAS,KAAK,cAAc,IAAIrO,CAAI,EACxC,GAAIqO,EAAQ,OAAOA,EACnB,IAAI5C,EAAO,KAAK,KAAK,GAAK1C,EAAQ,KAAK,KAAK,EAAE,EAAI,IAC9C,OAAO,KAAK,QAAQ,YAAe,WACrC0C,EAAO1C,EAAQuB,EAAQmB,EAAM,KAAK,QAAQ,UAAU,CAAC,GAEvD,IAAIxX,EAAO4Z,EAASpC,EAAMzL,CAAI,EAC9B,YAAK,cAAc,IAAIA,EAAM/L,CAAI,EAC1BA,CACT,CACA,UAAW,CACT,GAAI,CAAC,KAAK,aAER,GADA,KAAK,aAAe,CAAA,EAChB,KAAK,KACP,KAAK,KAAK,KAAM6N,GAAU,CACxB,GAAIA,EAAM,QAAUA,EAAM,OAAO,MAAM,IAAK,CAC1C,IAAIgI,EAAMhI,EAAM,OAAO,MAAM,IACxB,KAAK,aAAa,SAASgI,CAAG,GACjC,KAAK,aAAa,KAAKA,CAAG,CAE9B,CACF,CAAC,MACI,CACL,IAAIxE,EAAS,IAAI0F,EAAM,KAAK,YAAa,KAAK,IAAI,EAC9C1F,EAAO,KAAK,KAAK,aAAa,KAAKA,EAAO,GAAG,CACnD,CAEF,OAAO,KAAK,YACd,CACA,mBAAoB,CAClB,IAAIgJ,EAAU,CAAA,EACd,GAAI,KAAK,KACP,KAAK,KAAK,KAAMxM,GAAU,CACxB,GAAIA,EAAM,OAAQ,CAChB,IAAI2J,EAAO3J,EAAM,OAAO,MAAM,KAC9B,GAAI2J,GAAQ,CAAC6C,EAAQ7C,CAAI,EAAG,CAC1B6C,EAAQ7C,CAAI,EAAI,GAChB,IAAIE,EAAU,KAAK,aAAe,KAAK,UAAUF,CAAI,EAAI,KAAK,MAAM,KAAK,KAAKA,CAAI,CAAC,EACnF,KAAK,IAAI,iBAAiBE,EAAS7J,EAAM,OAAO,MAAM,GAAG,CAC3D,CACF,CACF,CAAC,UACQ,KAAK,IAAK,CACnB,IAAI2J,EAAO,KAAK,KAAK,KAAO,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,EAAI,cACpE,KAAK,IAAI,iBAAiBA,EAAM,KAAK,GAAG,CAC1C,CACF,CACA,WAAW3J,EAAO,CAChB,OAAI,KAAK,QAAQ,KACR,KAAK,MAAM,KAAK,QAAQ,IAAI,EAC1B,KAAK,aACP,KAAK,UAAUA,EAAM,OAAO,MAAM,IAAI,EAEtC,KAAK,MAAM,KAAK,KAAKA,EAAM,OAAO,MAAM,IAAI,CAAC,CAExD,CACA,SAAS7O,EAAK,CACZ,OAAI,OACK,OAAO,KAAKA,CAAG,EAAE,SAAS,QAAQ,EAElC,OAAO,KAAK,SAAS,mBAAmBA,CAAG,CAAC,CAAC,CAExD,CACA,UAAUgB,EAAM,CACd,IAAIoa,EAAS,KAAK,iBAAiB,IAAIpa,CAAI,EAC3C,GAAIoa,EAAQ,OAAOA,EACnB,GAAI7D,EAAe,CACjB,IAAI+D,EAAU/D,EAAcvW,CAAI,EAAE,SAAQ,EAC1C,YAAK,iBAAiB,IAAIA,EAAMsa,CAAO,EAChCA,CACT,KACE,OAAM,IAAI,MACR,8DACV,CAEI,CACA,MAAMta,EAAM,CACV,IAAIoa,EAAS,KAAK,aAAa,IAAIpa,CAAI,EACvC,GAAIoa,EAAQ,OAAOA,EACfnB,IAAQ,OACVjZ,EAAOA,EAAK,QAAQ,MAAO,GAAG,GAEhC,IAAIE,EAAM,UAAUF,CAAI,EAAE,QAAQ,QAAS,kBAAkB,EAC7D,YAAK,aAAa,IAAIA,EAAME,CAAG,EACxBA,CACT,CACJ,CACE,OAAAuZ,GAAeI,EACRJ,EACT,CACA,IAAIc,GACAC,GACJ,SAASC,IAAkB,CACzB,GAAID,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,MAAME,EAAe,GACfC,EAAe,GACfC,EAAY,GACZC,EAAQ,GACRC,EAAU,GACVC,EAAQ,GACRC,EAAO,GACPC,EAAM,EACNC,EAAK,GACLC,EAAc,GACdC,EAAe,GACfC,EAAmB,GACnBC,EAAoB,GACpBC,EAAa,IACbC,EAAc,IACdC,EAAY,GACZC,EAAW,GACXC,EAAQ,GACRC,EAAK,GACLC,EAAY,6BACZC,EAAc,wCACdC,EAAiB,gBACjBC,EAAgB,WACtB,OAAAzB,GAAW,SAAmBlJ,EAAQhM,EAAU,CAAA,EAAI,CAClD,IAAI6G,EAAMmF,EAAO,IAAI,QAAO,EACxB0G,EAAS1S,EAAQ,aACjBgI,EAAM0M,GAASnB,EAAQnI,EAAMwL,GAC7BC,EAAcC,EAASC,EAAWnhB,EAAGma,GACrCiH,GAASnQ,EAAI,OACbvJ,EAAM,EACN2Z,GAAS,CAAA,EACTC,GAAW,CAAA,EACf,SAASvM,IAAW,CAClB,OAAOrN,CACT,CACA,SAAS6Z,GAASC,GAAM,CACtB,MAAMpL,EAAO,MAAM,YAAcoL,GAAM9Z,CAAG,CAC5C,CACA,SAAS+Z,IAAY,CACnB,OAAOH,GAAS,SAAW,GAAK5Z,GAAO0Z,EACzC,CACA,SAASM,GAAUnM,GAAM,CACvB,GAAI+L,GAAS,OAAQ,OAAOA,GAAS,IAAG,EACxC,GAAI5Z,GAAO0Z,GAAQ,OACnB,IAAIO,EAAiBpM,GAAOA,GAAK,eAAiB,GAElD,OADAnD,EAAOnB,EAAI,WAAWvJ,CAAG,EACjB0K,EAAI,CACV,KAAKyN,EACL,KAAKC,EACL,KAAKE,EACL,KAAKC,EACL,KAAKF,EAAM,CACTvK,EAAO9N,EACP,GACE8N,GAAQ,EACRpD,EAAOnB,EAAI,WAAWuE,CAAI,QACnBpD,IAAS0N,GAAS1N,IAASyN,GAAWzN,IAAS4N,GAAO5N,IAAS6N,GAAM7N,IAAS2N,GACvFkB,EAAe,CAAC,QAAShQ,EAAI,MAAMvJ,EAAK8N,CAAI,CAAC,EAC7C9N,EAAM8N,EAAO,EACb,KACF,CACA,KAAK0K,EACL,KAAKC,EACL,KAAKG,EACL,KAAKC,EACL,KAAKG,EACL,KAAKF,EACL,KAAKH,EAAmB,CACtB,IAAIuB,GAAc,OAAO,aAAaxP,CAAI,EAC1C6O,EAAe,CAACW,GAAaA,GAAala,CAAG,EAC7C,KACF,CACA,KAAK0Y,EAAkB,CAGrB,GAFAjG,GAAOkH,GAAO,OAASA,GAAO,IAAG,EAAG,CAAC,EAAI,GACzCrhB,EAAIiR,EAAI,WAAWvJ,EAAM,CAAC,EACtByS,KAAS,OAASna,IAAMyf,GAAgBzf,IAAM0f,GAAgB1f,IAAM8f,GAAS9f,IAAM6f,GAAW7f,IAAMggB,GAAOhgB,IAAM+f,GAAQ/f,IAAMigB,EAAI,CACrIzK,EAAO9N,EACP,EAAG,CAGD,GAFAwZ,EAAU,GACV1L,EAAOvE,EAAI,QAAQ,IAAKuE,EAAO,CAAC,EAC5BA,IAAS,GACX,GAAIsH,GAAU6E,EAAgB,CAC5BnM,EAAO9N,EACP,KACF,MACE6Z,GAAS,SAAS,EAItB,IADAJ,EAAY3L,EACLvE,EAAI,WAAWkQ,EAAY,CAAC,IAAMxB,GACvCwB,GAAa,EACbD,EAAU,CAACA,CAEf,OAASA,GACTD,EAAe,CAAC,WAAYhQ,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAAG9N,EAAK8N,CAAI,EAC/D9N,EAAM8N,CACR,MACEA,EAAOvE,EAAI,QAAQ,IAAKvJ,EAAM,CAAC,EAC/BoX,GAAU7N,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAC7BA,IAAS,IAAMsL,EAAe,KAAKhC,EAAO,EAC5CmC,EAAe,CAAC,IAAK,IAAKvZ,CAAG,GAE7BuZ,EAAe,CAAC,WAAYnC,GAASpX,EAAK8N,CAAI,EAC9C9N,EAAM8N,GAGV,KACF,CACA,KAAKiK,EACL,KAAKC,EAAc,CACjBsB,GAAQ5O,IAASqN,EAAe,IAAM,IACtCjK,EAAO9N,EACP,EAAG,CAGD,GAFAwZ,EAAU,GACV1L,EAAOvE,EAAI,QAAQ+P,GAAOxL,EAAO,CAAC,EAC9BA,IAAS,GACX,GAAIsH,GAAU6E,EAAgB,CAC5BnM,EAAO9N,EAAM,EACb,KACF,MACE6Z,GAAS,QAAQ,EAIrB,IADAJ,EAAY3L,EACLvE,EAAI,WAAWkQ,EAAY,CAAC,IAAMxB,GACvCwB,GAAa,EACbD,EAAU,CAACA,CAEf,OAASA,GACTD,EAAe,CAAC,SAAUhQ,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAAG9N,EAAK8N,CAAI,EAC7D9N,EAAM8N,EACN,KACF,CACA,KAAKmL,EAAI,CACPC,EAAU,UAAYlZ,EAAM,EAC5BkZ,EAAU,KAAK3P,CAAG,EACd2P,EAAU,YAAc,EAC1BpL,EAAOvE,EAAI,OAAS,EAEpBuE,EAAOoL,EAAU,UAAY,EAE/BK,EAAe,CAAC,UAAWhQ,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAAG9N,EAAK8N,CAAI,EAC9D9N,EAAM8N,EACN,KACF,CACA,KAAKmK,EAAW,CAGd,IAFAnK,EAAO9N,EACPiW,EAAS,GACF1M,EAAI,WAAWuE,EAAO,CAAC,IAAMmK,GAClCnK,GAAQ,EACRmI,EAAS,CAACA,EAGZ,GADAvL,EAAOnB,EAAI,WAAWuE,EAAO,CAAC,EAC1BmI,GAAUvL,IAASwN,GAASxN,IAAS0N,GAAS1N,IAASyN,GAAWzN,IAAS4N,GAAO5N,IAAS6N,GAAM7N,IAAS2N,IAC5GvK,GAAQ,EACJuL,EAAc,KAAK9P,EAAI,OAAOuE,CAAI,CAAC,GAAG,CACxC,KAAOuL,EAAc,KAAK9P,EAAI,OAAOuE,EAAO,CAAC,CAAC,GAC5CA,GAAQ,EAENvE,EAAI,WAAWuE,EAAO,CAAC,IAAMsK,IAC/BtK,GAAQ,EAEZ,CAEFyL,EAAe,CAAC,OAAQhQ,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAAG9N,EAAK8N,CAAI,EAC3D9N,EAAM8N,EACN,KACF,CACA,QAAS,CACHpD,IAASwN,GAAS3O,EAAI,WAAWvJ,EAAM,CAAC,IAAM+Y,GAChDjL,EAAOvE,EAAI,QAAQ,KAAMvJ,EAAM,CAAC,EAAI,EAChC8N,IAAS,IACPsH,GAAU6E,EACZnM,EAAOvE,EAAI,OAEXsQ,GAAS,SAAS,GAGtBN,EAAe,CAAC,UAAWhQ,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAAG9N,EAAK8N,CAAI,EAC9D9N,EAAM8N,IAENqL,EAAY,UAAYnZ,EAAM,EAC9BmZ,EAAY,KAAK5P,CAAG,EAChB4P,EAAY,YAAc,EAC5BrL,EAAOvE,EAAI,OAAS,EAEpBuE,EAAOqL,EAAY,UAAY,EAEjCI,EAAe,CAAC,OAAQhQ,EAAI,MAAMvJ,EAAK8N,EAAO,CAAC,EAAG9N,EAAK8N,CAAI,EAC3D6L,GAAO,KAAKJ,CAAY,EACxBvZ,EAAM8N,GAER,KACF,CACR,CACM,OAAA9N,IACOuZ,CACT,CACA,SAASY,GAAKC,GAAO,CACnBR,GAAS,KAAKQ,EAAK,CACrB,CACA,MAAO,CACL,KAAAD,GACA,UAAAJ,GACA,UAAAC,GACA,SAAA3M,EACN,CACE,EACOuK,EACT,CACA,IAAIyC,GACAC,GACJ,SAASC,IAAgB,CACvB,GAAID,GAAmB,OAAOD,GAC9BC,GAAoB,EACpB,IAAI5K,EAASsB,GAAa,EACtBhC,EAAUD,GAAc,EACxBK,EAAcD,GAAkB,EAChCS,EAAOuF,GAAW,EAClBtF,EAAOuG,GAAW,EAClBoE,EAAY1C,GAAe,EAC/B,MAAM2C,EAAwB,CAC5B,MAAO,GACP,MAAO,EACX,EACE,SAASC,EAAqBC,EAAQ,CACpC,QAASzW,EAAIyW,EAAO,OAAS,EAAGzW,GAAK,EAAGA,IAAK,CAC3C,IAAIkW,EAAQO,EAAOzW,CAAC,EAChBlE,EAAMoa,EAAM,CAAC,GAAKA,EAAM,CAAC,EAC7B,GAAIpa,EAAK,OAAOA,CAClB,CACF,CACA,MAAM4a,CAAO,CACX,YAAYlM,EAAQ,CAClB,KAAK,MAAQA,EACb,KAAK,KAAO,IAAIkB,EAChB,KAAK,QAAU,KAAK,KACpB,KAAK,OAAS,GACd,KAAK,UAAY,GACjB,KAAK,gBAAe,EACpB,KAAK,KAAK,OAAS,CAAE,MAAOlB,EAAQ,MAAO,CAAE,OAAQ,EAAG,KAAM,EAAG,OAAQ,CAAC,CAAE,CAC9E,CACA,OAAO0L,EAAO,CACZ,IAAIlP,EAAQ,IAAIwE,EAChBxE,EAAM,KAAOkP,EAAM,CAAC,EAAE,MAAM,CAAC,EACzBlP,EAAM,OAAS,IACjB,KAAK,cAAcA,EAAOkP,CAAK,EAEjC,KAAK,KAAKlP,EAAOkP,EAAM,CAAC,CAAC,EACzB,IAAIpe,EACAyW,EACAoI,EACAlP,EAAO,GACPmP,EAAO,GACP1P,EAAS,CAAA,EACT2P,EAAW,CAAA,EACf,KAAO,CAAC,KAAK,UAAU,UAAA,GAAa,CAUlC,GATAX,EAAQ,KAAK,UAAU,UAAS,EAChCpe,EAAOoe,EAAM,CAAC,EACVpe,IAAS,KAAOA,IAAS,IAC3B+e,EAAS,KAAK/e,IAAS,IAAM,IAAM,GAAG,EAC7BA,IAAS,KAAO+e,EAAS,OAAS,EAC3CA,EAAS,KAAK,GAAG,EACR/e,IAAS+e,EAASA,EAAS,OAAS,CAAC,GAC9CA,EAAS,IAAG,EAEVA,EAAS,SAAW,EACtB,GAAI/e,IAAS,IAAK,CAChBkP,EAAM,OAAO,IAAM,KAAK,YAAYkP,EAAM,CAAC,CAAC,EAC5ClP,EAAM,OAAO,IAAI,SACjB,KAAK,UAAY,GACjB,KACF,SAAWlP,IAAS,IAAK,CACvB8e,EAAO,GACP,KACF,SAAW9e,IAAS,IAAK,CACvB,GAAIoP,EAAO,OAAS,EAAG,CAGrB,IAFAyP,EAAQzP,EAAO,OAAS,EACxBqH,EAAOrH,EAAOyP,CAAK,EACZpI,GAAQA,EAAK,CAAC,IAAM,SACzBA,EAAOrH,EAAO,EAAEyP,CAAK,EAEnBpI,IACFvH,EAAM,OAAO,IAAM,KAAK,YAAYuH,EAAK,CAAC,GAAKA,EAAK,CAAC,CAAC,EACtDvH,EAAM,OAAO,IAAI,SAErB,CACA,KAAK,IAAIkP,CAAK,EACd,KACF,MACEhP,EAAO,KAAKgP,CAAK,OAGnBhP,EAAO,KAAKgP,CAAK,EAEnB,GAAI,KAAK,UAAU,UAAA,EAAa,CAC9BzO,EAAO,GACP,KACF,CACF,CACAT,EAAM,KAAK,QAAU,KAAK,yBAAyBE,CAAM,EACrDA,EAAO,QACTF,EAAM,KAAK,UAAY,KAAK,2BAA2BE,CAAM,EAC7D,KAAK,IAAIF,EAAO,SAAUE,CAAM,EAC5BO,IACFyO,EAAQhP,EAAOA,EAAO,OAAS,CAAC,EAChCF,EAAM,OAAO,IAAM,KAAK,YAAYkP,EAAM,CAAC,GAAKA,EAAM,CAAC,CAAC,EACxDlP,EAAM,OAAO,IAAI,SACjB,KAAK,OAASA,EAAM,KAAK,QACzBA,EAAM,KAAK,QAAU,MAGvBA,EAAM,KAAK,UAAY,GACvBA,EAAM,OAAS,IAEb4P,IACF5P,EAAM,MAAQ,CAAA,EACd,KAAK,QAAUA,EAEnB,CACA,qBAAqByP,EAAQ,CAC3B,IAAIK,EAAQ,KAAK,MAAML,CAAM,EAC7B,GAAIK,IAAU,GAAO,OACrB,IAAIC,EAAU,EACVb,EACJ,QAASlN,EAAK8N,EAAQ,EAAG9N,GAAM,IAC7BkN,EAAQO,EAAOzN,CAAE,EACb,EAAAkN,EAAM,CAAC,IAAM,UACfa,GAAW,EACPA,IAAY,KAJc/N,IAEhC,CAKF,MAAM,KAAK,MAAM,MACf,mBACAkN,EAAM,CAAC,IAAM,OAASA,EAAM,CAAC,EAAI,EAAIA,EAAM,CAAC,CACpD,CACI,CACA,MAAMO,EAAQ,CACZ,IAAII,EAAW,EACXtI,EAAM2H,EAAOpe,EACjB,OAAS,CAACkI,EAAGrI,CAAO,IAAK8e,EAAO,QAAO,EAAI,CASzC,GARAP,EAAQve,EACRG,EAAOoe,EAAM,CAAC,EACVpe,IAAS,MACX+e,GAAY,GAEV/e,IAAS,MACX+e,GAAY,GAEVA,IAAa,GAAK/e,IAAS,IAC7B,GAAI,CAACyW,EACH,KAAK,YAAY2H,CAAK,MACxB,IAAW3H,EAAK,CAAC,IAAM,QAAUA,EAAK,CAAC,IAAM,SAC3C,SAEA,OAAOvO,EAGXuO,EAAO2H,CACT,CACA,MAAO,EACT,CACA,QAAQA,EAAO,CACb,IAAIlP,EAAQ,IAAI8D,EAChB,KAAK,KAAK9D,EAAOkP,EAAM,CAAC,CAAC,EACzBlP,EAAM,OAAO,IAAM,KAAK,YAAYkP,EAAM,CAAC,GAAKA,EAAM,CAAC,CAAC,EACxDlP,EAAM,OAAO,IAAI,SACjB,IAAIhP,EAAOke,EAAM,CAAC,EAAE,MAAM,EAAG,EAAE,EAC/B,GAAI,QAAQ,KAAKle,CAAI,EACnBgP,EAAM,KAAO,GACbA,EAAM,KAAK,KAAOhP,EAClBgP,EAAM,KAAK,MAAQ,OACd,CACL,IAAIzN,EAAQvB,EAAK,MAAM,sBAAsB,EAC7CgP,EAAM,KAAOzN,EAAM,CAAC,EACpByN,EAAM,KAAK,KAAOzN,EAAM,CAAC,EACzByN,EAAM,KAAK,MAAQzN,EAAM,CAAC,CAC5B,CACF,CACA,iBAAkB,CAChB,KAAK,UAAY+c,EAAU,KAAK,KAAK,CACvC,CACA,KAAKG,EAAQO,EAAgB,CAC3B,IAAIhQ,EAAQ,IAAIkE,EAChB,KAAK,KAAKlE,EAAOyP,EAAO,CAAC,EAAE,CAAC,CAAC,EAC7B,IAAIhP,EAAOgP,EAAOA,EAAO,OAAS,CAAC,EASnC,IARIhP,EAAK,CAAC,IAAM,MACd,KAAK,UAAY,GACjBgP,EAAO,IAAG,GAEZzP,EAAM,OAAO,IAAM,KAAK,YACtBS,EAAK,CAAC,GAAKA,EAAK,CAAC,GAAK+O,EAAqBC,CAAM,CACzD,EACMzP,EAAM,OAAO,IAAI,SACVyP,EAAO,CAAC,EAAE,CAAC,IAAM,QAClBA,EAAO,SAAW,GAAG,KAAK,YAAYA,CAAM,EAChDzP,EAAM,KAAK,QAAUyP,EAAO,MAAK,EAAG,CAAC,EAIvC,IAFAzP,EAAM,OAAO,MAAQ,KAAK,YAAYyP,EAAO,CAAC,EAAE,CAAC,CAAC,EAClDzP,EAAM,KAAO,GACNyP,EAAO,QAAQ,CACpB,IAAI3e,EAAO2e,EAAO,CAAC,EAAE,CAAC,EACtB,GAAI3e,IAAS,KAAOA,IAAS,SAAWA,IAAS,UAC/C,MAEFkP,EAAM,MAAQyP,EAAO,MAAK,EAAG,CAAC,CAChC,CACAzP,EAAM,KAAK,QAAU,GACrB,IAAIkP,EACJ,KAAOO,EAAO,QAEZ,GADAP,EAAQO,EAAO,MAAK,EAChBP,EAAM,CAAC,IAAM,IAAK,CACpBlP,EAAM,KAAK,SAAWkP,EAAM,CAAC,EAC7B,KACF,MACMA,EAAM,CAAC,IAAM,QAAU,KAAK,KAAKA,EAAM,CAAC,CAAC,GAC3C,KAAK,YAAY,CAACA,CAAK,CAAC,EAE1BlP,EAAM,KAAK,SAAWkP,EAAM,CAAC,GAG7BlP,EAAM,KAAK,CAAC,IAAM,KAAOA,EAAM,KAAK,CAAC,IAAM,OAC7CA,EAAM,KAAK,QAAUA,EAAM,KAAK,CAAC,EACjCA,EAAM,KAAOA,EAAM,KAAK,MAAM,CAAC,GAEjC,IAAIiQ,EAAc,CAAA,EACdrN,EACJ,KAAO6M,EAAO,SACZ7M,EAAO6M,EAAO,CAAC,EAAE,CAAC,EACd,EAAA7M,IAAS,SAAWA,IAAS,aACjCqN,EAAY,KAAKR,EAAO,MAAA,CAAO,EAEjC,KAAK,wBAAwBA,CAAM,EACnC,QAASzW,EAAIyW,EAAO,OAAS,EAAGzW,GAAK,EAAGA,IAAK,CAE3C,GADAkW,EAAQO,EAAOzW,CAAC,EACZkW,EAAM,CAAC,EAAE,YAAW,IAAO,aAAc,CAC3ClP,EAAM,UAAY,GAClB,IAAIa,EAAS,KAAK,WAAW4O,EAAQzW,CAAC,EACtC6H,EAAS,KAAK,cAAc4O,CAAM,EAAI5O,EAClCA,IAAW,gBAAeb,EAAM,KAAK,UAAYa,GACrD,KACF,SAAWqO,EAAM,CAAC,EAAE,YAAW,IAAO,YAAa,CACjD,IAAIgB,EAAQT,EAAO,MAAM,CAAC,EACtBte,EAAM,GACV,QAAS6Q,EAAKhJ,EAAGgJ,EAAK,EAAGA,IAAM,CAC7B,IAAIlR,EAAOof,EAAMlO,CAAE,EAAE,CAAC,EACtB,GAAI7Q,EAAI,KAAA,EAAO,WAAW,GAAG,GAAKL,IAAS,QACzC,MAEFK,EAAM+e,EAAM,IAAA,EAAM,CAAC,EAAI/e,CACzB,CACIA,EAAI,KAAI,EAAG,WAAW,GAAG,IAC3B6O,EAAM,UAAY,GAClBA,EAAM,KAAK,UAAY7O,EACvBse,EAASS,EAEb,CACA,GAAIhB,EAAM,CAAC,IAAM,SAAWA,EAAM,CAAC,IAAM,UACvC,KAEJ,CACcO,EAAO,KAAMzW,GAAMA,EAAE,CAAC,IAAM,SAAWA,EAAE,CAAC,IAAM,SAAS,IAErEgH,EAAM,KAAK,SAAWiQ,EAAY,IAAKjX,GAAMA,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAC1DiX,EAAc,CAAA,GAEhB,KAAK,IAAIjQ,EAAO,QAASiQ,EAAY,OAAOR,CAAM,EAAGO,CAAc,EAC/DhQ,EAAM,MAAM,SAAS,GAAG,GAAK,CAACgQ,GAChC,KAAK,qBAAqBP,CAAM,CAEpC,CACA,YAAYP,EAAO,CACjB,MAAM,KAAK,MAAM,MACf,eACA,CAAE,OAAQA,EAAM,CAAC,CAAC,EAClB,CAAE,OAAQA,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAE,MAAM,CAC5C,CACI,CACA,UAAUA,EAAO,CACf,IAAIlP,EAAQ,IAAI2E,EAChB,KAAK,KAAK3E,EAAOkP,EAAM,CAAC,CAAC,EACzBlP,EAAM,SAAW,GACjBA,EAAM,KAAK,QAAU,GACrB,KAAK,QAAUA,CACjB,CACA,IAAIkP,EAAO,CACL,KAAK,QAAQ,OAAS,KAAK,QAAQ,MAAM,SAC3C,KAAK,QAAQ,KAAK,UAAY,KAAK,WAErC,KAAK,UAAY,GACjB,KAAK,QAAQ,KAAK,OAAS,KAAK,QAAQ,KAAK,OAAS,IAAM,KAAK,OACjE,KAAK,OAAS,GACV,KAAK,QAAQ,QACf,KAAK,QAAQ,OAAO,IAAM,KAAK,YAAYA,EAAM,CAAC,CAAC,EACnD,KAAK,QAAQ,OAAO,IAAI,SACxB,KAAK,QAAU,KAAK,QAAQ,QAE5B,KAAK,gBAAgBA,CAAK,CAE9B,CACA,SAAU,CACJ,KAAK,QAAQ,QAAQ,KAAK,cAAa,EACvC,KAAK,QAAQ,OAAS,KAAK,QAAQ,MAAM,SAC3C,KAAK,QAAQ,KAAK,UAAY,KAAK,WAErC,KAAK,QAAQ,KAAK,OAAS,KAAK,QAAQ,KAAK,OAAS,IAAM,KAAK,OACjE,KAAK,KAAK,OAAO,IAAM,KAAK,YAAY,KAAK,UAAU,SAAA,CAAU,CACnE,CACA,cAAcA,EAAO,CAEnB,GADA,KAAK,QAAUA,EAAM,CAAC,EAClB,KAAK,QAAQ,MAAO,CACtB,IAAI3H,EAAO,KAAK,QAAQ,MAAM,KAAK,QAAQ,MAAM,OAAS,CAAC,EACvDA,GAAQA,EAAK,OAAS,QAAU,CAACA,EAAK,KAAK,eAC7CA,EAAK,KAAK,aAAe,KAAK,OAC9B,KAAK,OAAS,GACdA,EAAK,OAAO,IAAM,KAAK,YAAY2H,EAAM,CAAC,CAAC,EAC3C3H,EAAK,OAAO,IAAI,QAAUA,EAAK,KAAK,aAAa,OAErD,CACF,CAEA,YAAYnF,EAAQ,CAClB,IAAItN,EAAM,KAAK,MAAM,WAAWsN,CAAM,EACtC,MAAO,CACL,OAAQtN,EAAI,IACZ,KAAMA,EAAI,KACV,OAAAsN,CACR,CACI,CACA,KAAKpC,EAAOoC,EAAQ,CAClB,KAAK,QAAQ,KAAKpC,CAAK,EACvBA,EAAM,OAAS,CACb,MAAO,KAAK,MACZ,MAAO,KAAK,YAAYoC,CAAM,CACtC,EACMpC,EAAM,KAAK,OAAS,KAAK,OACzB,KAAK,OAAS,GACVA,EAAM,OAAS,YAAW,KAAK,UAAY,GACjD,CACA,MAAMnB,EAAO,CACX,IAAIC,EAAM,GACNhO,EAAO,KACPgf,EAAQ,GACRK,EAAU,KACVN,EAAW,CAAA,EACXG,EAAiBnR,EAAM,CAAC,EAAE,WAAW,IAAI,EACzC4Q,EAAS,CAAA,EACTP,EAAQrQ,EACZ,KAAOqQ,GAAO,CAGZ,GAFApe,EAAOoe,EAAM,CAAC,EACdO,EAAO,KAAKP,CAAK,EACbpe,IAAS,KAAOA,IAAS,IACtBqf,IAASA,EAAUjB,GACxBW,EAAS,KAAK/e,IAAS,IAAM,IAAM,GAAG,UAC7Bkf,GAAkBF,GAAShf,IAAS,IACxCqf,IAASA,EAAUjB,GACxBW,EAAS,KAAK,GAAG,UACRA,EAAS,SAAW,EAC7B,GAAI/e,IAAS,IACX,GAAIgf,EAAO,CACT,KAAK,KAAKL,EAAQO,CAAc,EAChC,MACF,KACE,eAEOlf,IAAS,IAAK,CACvB,KAAK,KAAK2e,CAAM,EAChB,MACF,SAAW3e,IAAS,IAAK,CACvB,KAAK,UAAU,KAAK2e,EAAO,IAAG,CAAE,EAChC3Q,EAAM,GACN,KACF,MAAWhO,IAAS,MAClBgf,EAAQ,SAEDhf,IAAS+e,EAASA,EAAS,OAAS,CAAC,IAC9CA,EAAS,IAAG,EACRA,EAAS,SAAW,IAAGM,EAAU,OAEvCjB,EAAQ,KAAK,UAAU,UAAS,CAClC,CAGA,GAFI,KAAK,UAAU,UAAS,IAAIpQ,EAAM,IAClC+Q,EAAS,OAAS,GAAG,KAAK,gBAAgBM,CAAO,EACjDrR,GAAOgR,EAAO,CAChB,GAAI,CAACE,EACH,KAAOP,EAAO,SACZP,EAAQO,EAAOA,EAAO,OAAS,CAAC,EAAE,CAAC,EAC/B,EAAAP,IAAU,SAAWA,IAAU,aACnC,KAAK,UAAU,KAAKO,EAAO,IAAG,CAAE,EAGpC,KAAK,KAAKA,EAAQO,CAAc,CAClC,MACE,KAAK,YAAYP,CAAM,CAE3B,CACA,OAAQ,CACN,IAAIP,EACJ,KAAO,CAAC,KAAK,UAAU,UAAA,GAErB,OADAA,EAAQ,KAAK,UAAU,UAAS,EACxBA,EAAM,CAAC,EAAC,CACd,IAAK,QACH,KAAK,QAAUA,EAAM,CAAC,EACtB,MACF,IAAK,IACH,KAAK,cAAcA,CAAK,EACxB,MACF,IAAK,IACH,KAAK,IAAIA,CAAK,EACd,MACF,IAAK,UACH,KAAK,QAAQA,CAAK,EAClB,MACF,IAAK,UACH,KAAK,OAAOA,CAAK,EACjB,MACF,IAAK,IACH,KAAK,UAAUA,CAAK,EACpB,MACF,QACE,KAAK,MAAMA,CAAK,EAChB,KACZ,CAEM,KAAK,QAAO,CACd,CACA,yBAA0B,CAC1B,CACA,IAAIlP,EAAOiB,EAAMwO,EAAQO,EAAgB,CACvC,IAAId,EAAOpe,EACP0d,EAASiB,EAAO,OAChBvkB,EAAQ,GACRklB,EAAQ,GACRxN,EAAM2E,EACV,QAASvO,EAAI,EAAGA,EAAIwV,EAAQxV,GAAK,EAC/BkW,EAAQO,EAAOzW,CAAC,EAChBlI,EAAOoe,EAAM,CAAC,EACVpe,IAAS,SAAWkI,IAAMwV,EAAS,GAAK,CAACwB,EAC3CI,EAAQ,GACCtf,IAAS,WAClByW,EAAOkI,EAAOzW,EAAI,CAAC,EAAIyW,EAAOzW,EAAI,CAAC,EAAE,CAAC,EAAI,QAC1C4J,EAAO6M,EAAOzW,EAAI,CAAC,EAAIyW,EAAOzW,EAAI,CAAC,EAAE,CAAC,EAAI,QACtC,CAACuW,EAAsBhI,CAAI,GAAK,CAACgI,EAAsB3M,CAAI,EACzD1X,EAAM,MAAM,EAAE,IAAM,IACtBklB,EAAQ,GAERllB,GAASgkB,EAAM,CAAC,EAGlBkB,EAAQ,IAGVllB,GAASgkB,EAAM,CAAC,EAGpB,GAAI,CAACkB,EAAO,CACV,IAAIlP,EAAMuO,EAAO,OAAO,CAACY,EAAKrX,IAAMqX,EAAMrX,EAAE,CAAC,EAAG,EAAE,EAClDgH,EAAM,KAAKiB,CAAI,EAAI,CAAE,IAAAC,EAAK,MAAAhW,CAAK,CACjC,CACA8U,EAAMiB,CAAI,EAAI/V,CAChB,CACA,KAAKukB,EAAQ,CACXA,EAAO,IAAG,EACV,IAAIzP,EAAQ,IAAI2E,EAChB,KAAK,KAAK3E,EAAOyP,EAAO,CAAC,EAAE,CAAC,CAAC,EAC7BzP,EAAM,KAAK,QAAU,KAAK,yBAAyByP,CAAM,EACzD,KAAK,IAAIzP,EAAO,WAAYyP,CAAM,EAClC,KAAK,QAAUzP,CACjB,CACA,yBAAyByP,EAAQ,CAC/B,IAAIa,EACA/F,EAAS,GACb,KAAOkF,EAAO,SACZa,EAAgBb,EAAOA,EAAO,OAAS,CAAC,EAAE,CAAC,EACvC,EAAAa,IAAkB,SAAWA,IAAkB,aACnD/F,EAASkF,EAAO,IAAA,EAAM,CAAC,EAAIlF,EAE7B,OAAOA,CACT,CAEA,2BAA2BkF,EAAQ,CACjC,IAAI7M,EACA2H,EAAS,GACb,KAAOkF,EAAO,SACZ7M,EAAO6M,EAAO,CAAC,EAAE,CAAC,EACd,EAAA7M,IAAS,SAAWA,IAAS,aACjC2H,GAAUkF,EAAO,MAAK,EAAG,CAAC,EAE5B,OAAOlF,CACT,CACA,cAAckF,EAAQ,CACpB,IAAIa,EACA/F,EAAS,GACb,KAAOkF,EAAO,SACZa,EAAgBb,EAAOA,EAAO,OAAS,CAAC,EAAE,CAAC,EACvCa,IAAkB,UACtB/F,EAASkF,EAAO,IAAA,EAAM,CAAC,EAAIlF,EAE7B,OAAOA,CACT,CACA,WAAWkF,EAAQ9F,EAAM,CACvB,IAAIzG,EAAU,GACd,QAASlK,EAAI2Q,EAAM3Q,EAAIyW,EAAO,OAAQzW,IACpCkK,GAAWuM,EAAOzW,CAAC,EAAE,CAAC,EAExB,OAAAyW,EAAO,OAAO9F,EAAM8F,EAAO,OAAS9F,CAAI,EACjCzG,CACT,CACA,eAAgB,CACd,IAAIpO,EAAM,KAAK,QAAQ,OAAO,MAC9B,MAAM,KAAK,MAAM,MAAM,iBAAkBA,EAAI,KAAMA,EAAI,MAAM,CAC/D,CACA,gBAAgBqb,EAAS,CACvB,MAAM,KAAK,MAAM,MACf,mBACA,CAAE,OAAQA,EAAQ,CAAC,CAAC,EACpB,CAAE,OAAQA,EAAQ,CAAC,EAAI,CAAC,CAChC,CACI,CACA,gBAAgBjB,EAAO,CACrB,MAAM,KAAK,MAAM,MACf,eACA,CAAE,OAAQA,EAAM,CAAC,CAAC,EAClB,CAAE,OAAQA,EAAM,CAAC,EAAI,CAAC,CAC9B,CACI,CACA,YAAYO,EAAQ,CAClB,MAAM,KAAK,MAAM,MACf,gBAAkBA,EAAO,CAAC,EAAE,CAAC,EAC7B,CAAE,OAAQA,EAAO,CAAC,EAAE,CAAC,CAAC,EACtB,CAAE,OAAQA,EAAO,CAAC,EAAE,CAAC,EAAIA,EAAO,CAAC,EAAE,CAAC,EAAE,MAAM,CACpD,CACI,CACA,cAAczP,EAAOkP,EAAO,CAC1B,MAAM,KAAK,MAAM,MACf,uBACA,CAAE,OAAQA,EAAM,CAAC,CAAC,EAClB,CAAE,OAAQA,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAE,MAAM,CAC5C,CACI,CACJ,CACE,OAAAC,GAASO,EACFP,EACT,CACA,IAAIoB,GACAC,GACJ,SAASC,IAAe,CACtB,GAAID,GAAkB,OAAOD,GAC7BC,GAAmB,EACnB,IAAI1L,EAAYP,GAAgB,EAC5B2E,EAAQb,GAAY,EACpBqH,EAASL,GAAa,EAC1B,SAAS5K,EAAMpG,EAAKsE,EAAM,CACxB,IAAIa,EAAS,IAAI0F,EAAM7K,EAAKsE,CAAI,EAC5B+N,EAAU,IAAIhB,EAAOlM,CAAM,EAC/B,GAAI,CACFkN,EAAQ,MAAK,CACf,OAAShL,EAAI,CAYX,MAAMA,CACR,CACA,OAAOgL,EAAQ,IACjB,CACA,OAAAH,GAAU9L,EACVA,EAAM,QAAUA,EAChBK,EAAU,cAAcL,CAAK,EACtB8L,EACT,CACA,IAAII,GACAC,GACJ,SAASC,IAAiB,CACxB,GAAID,GAAoB,OAAOD,GAC/BC,GAAqB,EACrB,MAAME,CAAQ,CACZ,YAAY9f,EAAM2R,EAAO,CAAA,EAAI,CAG3B,GAFA,KAAK,KAAO,UACZ,KAAK,KAAO3R,EACR2R,EAAK,MAAQA,EAAK,KAAK,OAAQ,CACjC,IAAIoO,EAAQpO,EAAK,KAAK,QAAQA,CAAI,EAClC,KAAK,KAAOoO,EAAM,MAAM,KACxB,KAAK,OAASA,EAAM,MAAM,OAC1B,KAAK,QAAUA,EAAM,IAAI,KACzB,KAAK,UAAYA,EAAM,IAAI,MAC7B,CACA,QAASC,KAAOrO,EAAM,KAAKqO,CAAG,EAAIrO,EAAKqO,CAAG,CAC5C,CACA,UAAW,CACT,OAAI,KAAK,KACA,KAAK,KAAK,MAAM,KAAK,KAAM,CAChC,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,KAAM,KAAK,IACrB,CAAS,EAAE,QAED,KAAK,OACA,KAAK,OAAS,KAAO,KAAK,KAE5B,KAAK,IACd,CACJ,CACE,OAAAL,GAAUG,EACVA,EAAQ,QAAUA,EACXH,EACT,CACA,IAAIM,GACAC,GACJ,SAASC,IAAgB,CACvB,GAAID,GAAmB,OAAOD,GAC9BC,GAAoB,EACpB,IAAIJ,EAAUD,GAAc,EAC5B,MAAMO,CAAO,CACX,IAAI,SAAU,CACZ,OAAO,KAAK,GACd,CACA,YAAYC,EAAYtQ,EAAO4B,EAAM,CACnC,KAAK,UAAY0O,EACjB,KAAK,SAAW,CAAA,EAChB,KAAK,KAAOtQ,EACZ,KAAK,KAAO4B,EACZ,KAAK,IAAM,GACX,KAAK,IAAM,MACb,CACA,UAAW,CACT,OAAO,KAAK,GACd,CACA,KAAK3R,EAAM2R,EAAO,CAAA,EAAI,CACfA,EAAK,QACJ,KAAK,YAAc,KAAK,WAAW,gBACrCA,EAAK,OAAS,KAAK,WAAW,eAGlC,IAAI2O,EAAW,IAAIR,EAAQ9f,EAAM2R,CAAI,EACrC,YAAK,SAAS,KAAK2O,CAAQ,EACpBA,CACT,CACA,UAAW,CACT,OAAO,KAAK,SAAS,OAAQtY,GAAMA,EAAE,OAAS,SAAS,CACzD,CACJ,CACE,OAAAiY,GAASG,EACTA,EAAO,QAAUA,EACVH,EACT,CACA,IAAIM,GACAC,GACJ,SAASC,IAAkB,CACzB,GAAID,GAAqB,OAAOD,GAChCC,GAAsB,EACtB,IAAIE,EAAU,CAAA,EACd,OAAAH,GAAW,SAAmBxT,EAAS,CACjC2T,EAAQ3T,CAAO,IACnB2T,EAAQ3T,CAAO,EAAI,GACf,OAAO,SAAY,aAAe,QAAQ,MAC5C,QAAQ,KAAKA,CAAO,EAExB,EACOwT,EACT,CACA,IAAII,GACAC,GACJ,SAASC,IAAoB,CAC3B,GAAID,GAAuB,OAAOD,GAClCC,GAAwB,EACxB,IAAI9M,EAAYP,GAAgB,EAC5B6S,EAAYnR,GAAe,EAC3B+F,EAAeF,GAAmB,EAClCrH,EAAQgM,GAAY,EACpBW,EAASD,GAAa,EACtBzM,EAAOuF,GAAW,EAClB3I,EAAYD,GAAgB,EAC5B,CAAE,QAAAO,EAAS,GAAAC,CAAE,EAAKJ,GAAc,EAChCqQ,EAAYL,GAAe,EAC/B,MAAMM,EAAqB,CACzB,OAAQ,SACR,QAAS,UACT,KAAM,cACN,SAAU,WACV,KAAM,OACN,KAAM,MACV,EACQC,EAAe,CACnB,OAAQ,GACR,WAAY,GACZ,QAAS,GACT,YAAa,GACb,YAAa,GACb,gBAAiB,GACjB,SAAU,GACV,aAAc,GACd,KAAM,GACN,SAAU,GACV,cAAe,GACf,QAAS,GACT,KAAM,GACN,SAAU,GACV,KAAM,GACN,SAAU,EACd,EACQC,EAAe,CACnB,KAAM,GACN,cAAe,GACf,QAAS,EACb,EACQC,EAAW,EACjB,SAASC,EAAUnnB,EAAK,CACtB,OAAO,OAAOA,GAAQ,UAAY,OAAOA,EAAI,MAAS,UACxD,CACA,SAASonB,EAAUpS,EAAO,CACxB,IAAI/U,EAAM,GACN6F,EAAOihB,EAAmB/R,EAAM,IAAI,EAMxC,OALIA,EAAM,OAAS,OACjB/U,EAAM+U,EAAM,KAAK,YAAW,EACnBA,EAAM,OAAS,WACxB/U,EAAM+U,EAAM,KAAK,YAAW,GAE1B/U,GAAO+U,EAAM,OACR,CACLlP,EACAA,EAAO,IAAM7F,EACbinB,EACAphB,EAAO,OACPA,EAAO,QAAU7F,CACzB,EACeA,EACF,CAAC6F,EAAMA,EAAO,IAAM7F,EAAK6F,EAAO,OAAQA,EAAO,QAAU7F,CAAG,EAC1D+U,EAAM,OACR,CAAClP,EAAMohB,EAAUphB,EAAO,MAAM,EAE9B,CAACA,EAAMA,EAAO,MAAM,CAE/B,CACA,SAASuhB,EAAQrS,EAAO,CACtB,IAAIsS,EACJ,OAAItS,EAAM,OAAS,WACjBsS,EAAS,CAAC,WAAYJ,EAAU,cAAc,EACrClS,EAAM,OAAS,OACxBsS,EAAS,CAAC,OAAQJ,EAAU,UAAU,EAEtCI,EAASF,EAAUpS,CAAK,EAEnB,CACL,WAAY,EACZ,OAAAsS,EACA,SAAU,EACV,KAAMtS,EACN,aAAc,EACd,SAAU,CAAA,CAChB,CACE,CACA,SAASuS,EAAWvS,EAAO,CACzB,OAAAA,EAAM4B,CAAO,EAAI,GACb5B,EAAM,OAAOA,EAAM,MAAM,QAAShH,GAAMuZ,EAAWvZ,CAAC,CAAC,EAClDgH,CACT,CACA,IAAIwS,EAAW,CAAA,EACf,MAAMtM,CAAW,CACf,IAAI,SAAU,CACZ,OAAO,KAAK,UAAS,EAAG,OAC1B,CACA,IAAI,KAAM,CACR,OAAO,KAAK,UAAS,EAAG,GAC1B,CACA,IAAI,KAAM,CACR,OAAO,KAAK,UAAS,EAAG,GAC1B,CACA,IAAI,UAAW,CACb,OAAO,KAAK,KAAI,EAAG,QACrB,CACA,IAAI,MAAO,CACT,OAAO,KAAK,OAAO,IACrB,CACA,IAAI,WAAY,CACd,OAAO,KAAK,OAAO,SACrB,CACA,IAAI,MAAO,CACT,OAAO,KAAK,KAAI,EAAG,IACrB,CACA,IAAK,OAAO,WAAW,GAAI,CACzB,MAAO,YACT,CACA,YAAYmL,EAAYhT,EAAKsE,EAAM,CACjC,KAAK,YAAc,GACnB,KAAK,UAAY,GACjB,IAAI5B,EACJ,GAAI,OAAO1C,GAAQ,UAAYA,IAAQ,OAASA,EAAI,OAAS,QAAUA,EAAI,OAAS,YAClF0C,EAAQwR,EAAWlU,CAAG,UACbA,aAAe6H,GAAc7H,aAAe+S,EACrDrQ,EAAQwR,EAAWlU,EAAI,IAAI,EACvBA,EAAI,MACF,OAAOsE,EAAK,KAAQ,cAAaA,EAAK,IAAM,CAAA,GAC3CA,EAAK,IAAI,SAAQA,EAAK,IAAI,OAAS,IACxCA,EAAK,IAAI,KAAOtE,EAAI,SAEjB,CACL,IAAIqS,EAAUjM,EACV9B,EAAK,SAAQ+N,EAAU/N,EAAK,OAAO,OACnCA,EAAK,SAAQ+N,EAAU/N,EAAK,QAC5B+N,EAAQ,QAAOA,EAAUA,EAAQ,OACrC,GAAI,CACF3P,EAAQ2P,EAAQrS,EAAKsE,CAAI,CAC3B,OAASlT,EAAO,CACd,KAAK,UAAY,GACjB,KAAK,MAAQA,CACf,CACIsR,GAAS,CAACA,EAAMc,CAAE,GACpBiD,EAAU,QAAQ/D,CAAK,CAE3B,CACA,KAAK,OAAS,IAAIqQ,EAAOC,EAAYtQ,EAAO4B,CAAI,EAChD,KAAK,QAAUwB,GAAAC,EAAA,GAAKoO,GAAL,CAAe,QAASA,EAAU,OAAQ,KAAK,MAAM,GACpE,KAAK,QAAU,KAAK,UAAU,QAAQ,IAAKrU,GACrC,OAAOA,GAAW,UAAYA,EAAO,QAChCiG,IAAA,GAAKjG,GAAWA,EAAO,QAAQ,KAAK,MAAM,GAE1CA,CAEV,CACH,CACA,OAAQ,CACN,OAAI,KAAK,MAAc,QAAQ,OAAO,KAAK,KAAK,EAC5C,KAAK,UAAkB,QAAQ,QAAQ,KAAK,MAAM,GACjD,KAAK,aACR,KAAK,WAAa,KAAK,SAAQ,GAE1B,KAAK,WACd,CACA,MAAMsU,EAAY,CAChB,OAAO,KAAK,MAAA,EAAQ,MAAMA,CAAU,CACtC,CACA,QAAQC,EAAW,CACjB,OAAO,KAAK,MAAK,EAAG,KAAKA,EAAWA,CAAS,CAC/C,CACA,eAAgB,CACd,MAAM,IAAI,MAAM,sDAAsD,CACxE,CACA,YAAYjjB,EAAOuQ,EAAO,CACxB,IAAI7B,EAAS,KAAK,OAAO,WACzB,GAAI,CACE6B,GAAOA,EAAM,WAAWvQ,CAAK,EACjC,KAAK,MAAQA,EACTA,EAAM,OAAS,kBAAoB,CAACA,EAAM,QAC5CA,EAAM,OAAS0O,EAAO,cACtB1O,EAAM,WAAU,GACP0O,EAAO,cAcpB,OAAS7L,EAAK,CACR,SAAW,QAAQ,OAAO,QAAQ,MAAMA,CAAG,CACjD,CACA,OAAO7C,CACT,CACA,iBAAkB,CAChB,KAAK,UAAY,CAAA,EACjB,IAAI+S,EAAM,CAACrE,EAAQrN,EAAMsU,IAAO,CACzB,KAAK,UAAUtU,CAAI,IAAG,KAAK,UAAUA,CAAI,EAAI,CAAA,GAClD,KAAK,UAAUA,CAAI,EAAE,KAAK,CAACqN,EAAQiH,CAAE,CAAC,CACxC,EACA,QAASjH,KAAU,KAAK,QACtB,GAAI,OAAOA,GAAW,SACpB,QAASwU,KAASxU,EAAQ,CACxB,GAAI,CAAC6T,EAAaW,CAAK,GAAK,SAAS,KAAKA,CAAK,EAC7C,MAAM,IAAI,MACR,iBAAiBA,CAAK,OAAOxU,EAAO,aAAa,4BAA4B,KAAK,UAAU,OAAO,QACnH,EAEY,GAAI,CAAC8T,EAAaU,CAAK,EACrB,GAAI,OAAOxU,EAAOwU,CAAK,GAAM,SAC3B,QAASC,KAAUzU,EAAOwU,CAAK,EACzBC,IAAW,IACbpQ,EAAIrE,EAAQwU,EAAOxU,EAAOwU,CAAK,EAAEC,CAAM,CAAC,EAExCpQ,EACErE,EACAwU,EAAQ,IAAMC,EAAO,YAAW,EAChCzU,EAAOwU,CAAK,EAAEC,CAAM,CAC1C,OAGyB,OAAOzU,EAAOwU,CAAK,GAAM,YAClCnQ,EAAIrE,EAAQwU,EAAOxU,EAAOwU,CAAK,CAAC,CAGtC,CAGJ,KAAK,YAAc,OAAO,KAAK,KAAK,SAAS,EAAE,OAAS,CAC1D,CACA,MAAM,UAAW,CACf,KAAK,OAAS,EACd,QAAS3Z,EAAI,EAAGA,EAAI,KAAK,QAAQ,OAAQA,IAAK,CAC5C,IAAImF,EAAS,KAAK,QAAQnF,CAAC,EACvB6Z,EAAU,KAAK,UAAU1U,CAAM,EACnC,GAAIgU,EAAUU,CAAO,EACnB,GAAI,CACF,MAAMA,CACR,OAASpjB,EAAO,CACd,MAAM,KAAK,YAAYA,CAAK,CAC9B,CAEJ,CAEA,GADA,KAAK,gBAAe,EAChB,KAAK,YAAa,CACpB,IAAIsR,EAAQ,KAAK,OAAO,KACxB,KAAO,CAACA,EAAMa,CAAO,GAAG,CACtBb,EAAMa,CAAO,EAAI,GACjB,IAAItO,EAAQ,CAAC+e,EAAQtR,CAAK,CAAC,EAC3B,KAAOzN,EAAM,OAAS,GAAG,CACvB,IAAIuf,EAAU,KAAK,UAAUvf,CAAK,EAClC,GAAI6e,EAAUU,CAAO,EACnB,GAAI,CACF,MAAMA,CACR,OAASnN,EAAI,CACX,IAAI1F,EAAQ1M,EAAMA,EAAM,OAAS,CAAC,EAAE,KACpC,MAAM,KAAK,YAAYoS,EAAI1F,CAAK,CAClC,CAEJ,CACF,CACA,GAAI,KAAK,UAAU,SACjB,OAAS,CAAC7B,EAAQ2U,CAAO,IAAK,KAAK,UAAU,SAAU,CACrD,KAAK,OAAO,WAAa3U,EACzB,GAAI,CACF,GAAI4C,EAAM,OAAS,WAAY,CAC7B,IAAIgS,EAAQhS,EAAM,MAAM,IACrBiS,GAAYF,EAAQE,EAAS,KAAK,OAAO,CAC5D,EACgB,MAAM,QAAQ,IAAID,CAAK,CACzB,MACE,MAAMD,EAAQ/R,EAAO,KAAK,OAAO,CAErC,OAAS2E,EAAI,CACX,MAAM,KAAK,YAAYA,CAAE,CAC3B,CACF,CAEJ,CACA,YAAK,UAAY,GACV,KAAK,UAAS,CACvB,CACA,UAAUvH,EAAQ,CAChB,KAAK,OAAO,WAAaA,EACzB,GAAI,CACF,GAAI,OAAOA,GAAW,UAAYA,EAAO,KAAM,CAC7C,GAAI,KAAK,OAAO,KAAK,OAAS,WAAY,CACxC,IAAI4U,EAAQ,KAAK,OAAO,KAAK,MAAM,IAChChS,GAAU5C,EAAO,KAAK4C,EAAO,KAAK,OAAO,CACxD,EACY,OAAIoR,EAAUY,EAAM,CAAC,CAAC,EACb,QAAQ,IAAIA,CAAK,EAEnBA,CACT,CACA,OAAO5U,EAAO,KAAK,KAAK,OAAO,KAAM,KAAK,OAAO,CACnD,SAAW,OAAOA,GAAW,WAC3B,OAAOA,EAAO,KAAK,OAAO,KAAM,KAAK,MAAM,CAE/C,OAAS1O,EAAO,CACd,MAAM,KAAK,YAAYA,CAAK,CAC9B,CACF,CACA,WAAY,CACV,GAAI,KAAK,MAAO,MAAM,KAAK,MAC3B,GAAI,KAAK,YAAa,OAAO,KAAK,OAClC,KAAK,YAAc,GACnB,KAAK,KAAI,EACT,IAAIkT,EAAO,KAAK,OAAO,KACnBxR,EAAMmQ,EACNqB,EAAK,SAAQxR,EAAMwR,EAAK,OAAO,WAC/BA,EAAK,cAAaxR,EAAMwR,EAAK,aAC7BxR,EAAI,YAAWA,EAAMA,EAAI,WAE7B,IAAIuS,EADM,IAAIsI,EAAa7a,EAAK,KAAK,OAAO,KAAM,KAAK,OAAO,IAAI,EACnD,SAAQ,EACvB,YAAK,OAAO,IAAMuS,EAAK,CAAC,EACxB,KAAK,OAAO,IAAMA,EAAK,CAAC,EACjB,KAAK,MACd,CACA,MAAO,CACL,GAAI,KAAK,MAAO,MAAM,KAAK,MAC3B,GAAI,KAAK,UAAW,OAAO,KAAK,OAEhC,GADA,KAAK,UAAY,GACb,KAAK,WACP,MAAM,KAAK,cAAa,EAE1B,QAASvF,KAAU,KAAK,QAAS,CAC/B,IAAI0U,EAAU,KAAK,UAAU1U,CAAM,EACnC,GAAIgU,EAAUU,CAAO,EACnB,MAAM,KAAK,cAAa,CAE5B,CAEA,GADA,KAAK,gBAAe,EAChB,KAAK,YAAa,CACpB,IAAI9R,EAAQ,KAAK,OAAO,KACxB,KAAO,CAACA,EAAMa,CAAO,GACnBb,EAAMa,CAAO,EAAI,GACjB,KAAK,SAASb,CAAK,EAErB,GAAI,KAAK,UAAU,SACjB,GAAIA,EAAM,OAAS,WACjB,QAASiS,KAAWjS,EAAM,MACxB,KAAK,UAAU,KAAK,UAAU,SAAUiS,CAAO,OAGjD,KAAK,UAAU,KAAK,UAAU,SAAUjS,CAAK,CAGnD,CACA,OAAO,KAAK,MACd,CACA,KAAKkS,EAAaR,EAAY,CAQ5B,OAAO,KAAK,MAAK,EAAG,KAAKQ,EAAaR,CAAU,CAClD,CACA,UAAW,CACT,OAAO,KAAK,GACd,CACA,UAAUS,EAAUlT,EAAO,CACzB,OAAS,CAAC7B,EAAQ2U,CAAO,IAAKI,EAAU,CACtC,KAAK,OAAO,WAAa/U,EACzB,IAAI0U,EACJ,GAAI,CACFA,EAAUC,EAAQ9S,EAAO,KAAK,OAAO,CACvC,OAAS0F,EAAI,CACX,MAAM,KAAK,YAAYA,EAAI1F,EAAM,OAAO,CAC1C,CACA,GAAIA,EAAM,OAAS,QAAUA,EAAM,OAAS,YAAc,CAACA,EAAM,OAC/D,MAAO,GAET,GAAImS,EAAUU,CAAO,EACnB,MAAM,KAAK,cAAa,CAE5B,CACF,CACA,UAAUvf,EAAO,CACf,IAAI6f,EAAS7f,EAAMA,EAAM,OAAS,CAAC,EAC/B,CAAE,KAAM0M,EAAO,SAAAkT,CAAQ,EAAKC,EAChC,GAAInT,EAAM,OAAS,QAAUA,EAAM,OAAS,YAAc,CAACA,EAAM,OAAQ,CACvE1M,EAAM,IAAG,EACT,MACF,CACA,GAAI4f,EAAS,OAAS,GAAKC,EAAO,aAAeD,EAAS,OAAQ,CAChE,GAAI,CAAC/U,EAAQ2U,CAAO,EAAII,EAASC,EAAO,YAAY,EACpDA,EAAO,cAAgB,EACnBA,EAAO,eAAiBD,EAAS,SACnCC,EAAO,SAAW,CAAA,EAClBA,EAAO,aAAe,GAExB,KAAK,OAAO,WAAahV,EACzB,GAAI,CACF,OAAO2U,EAAQ9S,EAAM,QAAO,EAAI,KAAK,OAAO,CAC9C,OAAS0F,EAAI,CACX,MAAM,KAAK,YAAYA,EAAI1F,CAAK,CAClC,CACF,CACA,GAAImT,EAAO,WAAa,EAAG,CACzB,IAAIlO,EAAWkO,EAAO,SAClBzS,EACJ,KAAOA,EAAQV,EAAM,MAAMA,EAAM,QAAQiF,CAAQ,CAAC,GAEhD,GADAjF,EAAM,QAAQiF,CAAQ,GAAK,EACvB,CAACvE,EAAMkB,CAAO,EAAG,CACnBlB,EAAMkB,CAAO,EAAI,GACjBtO,EAAM,KAAK+e,EAAQ3R,CAAK,CAAC,EACzB,MACF,CAEFyS,EAAO,SAAW,EAClB,OAAOnT,EAAM,QAAQiF,CAAQ,CAC/B,CACA,IAAIqN,EAASa,EAAO,OACpB,KAAOA,EAAO,WAAab,EAAO,QAAQ,CACxC,IAAIK,EAAQL,EAAOa,EAAO,UAAU,EAEpC,GADAA,EAAO,YAAc,EACjBR,IAAUT,EAAU,CAClBlS,EAAM,OAASA,EAAM,MAAM,SAC7BA,EAAM4B,CAAO,EAAI,GACjBuR,EAAO,SAAWnT,EAAM,YAAW,GAErC,MACF,SAAW,KAAK,UAAU2S,CAAK,EAAG,CAChCQ,EAAO,SAAW,KAAK,UAAUR,CAAK,EACtC,MACF,CACF,CACArf,EAAM,IAAG,CACX,CACA,SAAS0M,EAAO,CACdA,EAAM4B,CAAO,EAAI,GACjB,IAAI0Q,EAASF,EAAUpS,CAAK,EAC5B,QAAS2S,KAASL,EAChB,GAAIK,IAAUT,EACRlS,EAAM,OACRA,EAAM,KAAMU,GAAU,CACfA,EAAMkB,CAAO,GAAG,KAAK,SAASlB,CAAK,CAC1C,CAAC,MAEE,CACL,IAAIwS,EAAW,KAAK,UAAUP,CAAK,EACnC,GAAIO,GACE,KAAK,UAAUA,EAAUlT,EAAM,QAAO,CAAE,EAAG,MAEnD,CAEJ,CACA,UAAW,CACT,OAAO,KAAK,KAAI,EAAG,SAAQ,CAC7B,CACJ,CACE,OAAAkG,EAAW,gBAAmBP,GAAc,CAC1C6M,EAAW7M,CACb,EACAgM,GAAazL,EACbA,EAAW,QAAUA,EACrBxB,EAAK,mBAAmBwB,CAAU,EAClCkR,EAAU,mBAAmBlR,CAAU,EAChCyL,EACT,CACA,IAAIyB,GACAC,GACJ,SAASC,IAAsB,CAC7B,GAAID,GAAyB,OAAOD,GACpCC,GAA0B,EAC1B,IAAIrH,EAAeF,GAAmB,EAClCrH,EAAQgM,GAAY,EACxB,MAAMW,EAASD,GAAa,EAC5B,IAAI7P,EAAYD,GAAgB,EAC5ByQ,EAAYL,GAAe,EAC/B,MAAM8B,CAAa,CACjB,IAAI,SAAU,CACZ,OAAO,KAAK,OAAO,GACrB,CACA,IAAI,KAAM,CACR,OAAO,KAAK,OAAO,GACrB,CACA,IAAI,KAAM,CACR,OAAO,KAAK,OAAO,GACrB,CACA,IAAI,UAAW,CACb,MAAO,CAAA,CACT,CACA,IAAI,MAAO,CACT,OAAO,KAAK,OAAO,IACrB,CACA,IAAI,WAAY,CACd,OAAO,KAAK,OAAO,SACrB,CACA,IAAI,MAAO,CACT,GAAI,KAAK,MACP,OAAO,KAAK,MAEd,IAAIxS,EACA2P,EAAUjM,EACd,GAAI,CACF1D,EAAQ2P,EAAQ,KAAK,KAAM,KAAK,KAAK,CACvC,OAASjhB,EAAO,CACd,KAAK,MAAQA,CACf,CACA,GAAI,KAAK,MACP,MAAM,KAAK,MAEX,YAAK,MAAQsR,EACNA,CAEX,CACA,IAAK,OAAO,WAAW,GAAI,CACzB,MAAO,cACT,CACA,YAAYsQ,EAAYhT,EAAKsE,EAAM,CACjCtE,EAAMA,EAAI,SAAQ,EAClB,KAAK,YAAc,GACnB,KAAK,WAAagT,EAClB,KAAK,KAAOhT,EACZ,KAAK,MAAQsE,EACb,KAAK,KAAO,OACZ,IAAI5B,EACA5P,EAAMmQ,EACV,KAAK,OAAS,IAAI8P,EAAO,KAAK,WAAYrQ,EAAO,KAAK,KAAK,EAC3D,KAAK,OAAO,IAAM1C,EAClB,IAAImV,EAAO,KACX,OAAO,eAAe,KAAK,OAAQ,OAAQ,CACzC,KAAM,CACJ,OAAOA,EAAK,IACd,CACR,CAAO,EACD,IAAIxL,EAAM,IAAIgE,EAAa7a,EAAK4P,EAAO,KAAK,MAAO1C,CAAG,EACtD,GAAI2J,EAAI,MAAA,EAAS,CACf,GAAI,CAACyL,EAAcC,CAAY,EAAI1L,EAAI,SAAQ,EAC3CyL,IACF,KAAK,OAAO,IAAMA,GAEhBC,IACF,KAAK,OAAO,IAAMA,EAEtB,MACE1L,EAAI,gBAAe,EACnB,KAAK,OAAO,IAAMA,EAAI,GAE1B,CACA,OAAQ,CACN,OAAI,KAAK,MAAc,QAAQ,OAAO,KAAK,KAAK,EACzC,QAAQ,QAAQ,KAAK,MAAM,CACpC,CACA,MAAMyK,EAAY,CAChB,OAAO,KAAK,MAAA,EAAQ,MAAMA,CAAU,CACtC,CACA,QAAQC,EAAW,CACjB,OAAO,KAAK,MAAK,EAAG,KAAKA,EAAWA,CAAS,CAC/C,CACA,MAAO,CACL,GAAI,KAAK,MAAO,MAAM,KAAK,MAC3B,OAAO,KAAK,MACd,CACA,KAAKO,EAAaR,EAAY,CAQ5B,OAAO,KAAK,MAAK,EAAG,KAAKQ,EAAaR,CAAU,CAClD,CACA,UAAW,CACT,OAAO,KAAK,IACd,CACA,UAAW,CACT,MAAO,CAAA,CACT,CACJ,CACE,OAAAW,GAAeG,EACfA,EAAa,QAAUA,EAChBH,EACT,CACA,IAAIO,GACAC,GACJ,SAASC,IAAmB,CAC1B,GAAID,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,IAAIwD,EAAYnR,GAAe,EAC3BC,EAAa2L,GAAiB,EAC9B0B,EAAeD,GAAmB,EAClC5O,EAAOuF,GAAW,EACtB,MAAM9D,CAAU,CACd,YAAY2N,EAAU,CAAA,EAAI,CACxB,KAAK,QAAU,QACf,KAAK,QAAU,KAAK,UAAUA,CAAO,CACvC,CACA,UAAUA,EAAS,CACjB,IAAIC,EAAa,CAAA,EACjB,QAAS/a,KAAK8a,EAMZ,GALI9a,EAAE,UAAY,GAChBA,EAAIA,EAAC,EACIA,EAAE,UACXA,EAAIA,EAAE,SAEJ,OAAOA,GAAM,UAAY,MAAM,QAAQA,EAAE,OAAO,EAClD+a,EAAaA,EAAW,OAAO/a,EAAE,OAAO,UAC/B,OAAOA,GAAM,UAAYA,EAAE,cACpC+a,EAAW,KAAK/a,CAAC,UACR,OAAOA,GAAM,WACtB+a,EAAW,KAAK/a,CAAC,UACR,SAAOA,GAAM,WAAaA,EAAE,OAASA,EAAE,YAOhD,MAAM,IAAI,MAAMA,EAAI,0BAA0B,EAGlD,OAAO+a,CACT,CACA,QAAQ1V,EAAKsE,EAAO,CAAA,EAAI,CACtB,MAAI,CAAC,KAAK,QAAQ,QAAU,CAACA,EAAK,QAAU,CAACA,EAAK,aAAe,CAACA,EAAK,OAC9D,IAAI4Q,EAAa,KAAMlV,EAAKsE,CAAI,EAEhC,IAAIuD,EAAW,KAAM7H,EAAKsE,CAAI,CAEzC,CACA,IAAIxE,EAAQ,CACV,YAAK,QAAU,KAAK,QAAQ,OAAO,KAAK,UAAU,CAACA,CAAM,CAAC,CAAC,EACpD,IACT,CACJ,CACE,OAAAwV,GAAYxN,EACZA,EAAU,QAAUA,EACpBzB,EAAK,kBAAkByB,CAAS,EAChCiR,EAAU,kBAAkBjR,CAAS,EAC9BwN,EACT,CACA,IAAIK,GACAC,GACJ,SAASC,IAAiB,CACxB,GAAID,GAAoB,OAAOD,GAC/BC,GAAqB,EACrB,IAAIzP,EAASsB,GAAa,EACtBhC,EAAUD,GAAc,EACxBiB,EAAYP,GAAgB,EAC5BzG,EAAiBH,GAAqB,EACtCuG,EAAcD,GAAkB,EAChCmT,EAAYnR,GAAe,EAC3BuF,EAAWD,GAAe,EAC1BrC,EAAQb,GAAY,EACpBnC,EAAa2L,GAAiB,EAC9BvH,EAAOD,GAAW,EAClBhI,EAAOV,GAAW,EAClB8C,EAAQgM,GAAY,EACpBtK,EAAY0N,GAAgB,EAC5BzC,EAASD,GAAa,EACtBzM,EAAOuF,GAAW,EAClBtF,EAAOuG,GAAW,EAClB5J,EAAYD,GAAgB,EAC5ByP,EAAUD,GAAc,EAC5B,SAAS2B,KAAYsB,EAAS,CAC5B,OAAIA,EAAQ,SAAW,GAAK,MAAM,QAAQA,EAAQ,CAAC,CAAC,IAClDA,EAAUA,EAAQ,CAAC,GAEd,IAAI3N,EAAU2N,CAAO,CAC9B,CACA,OAAAtB,EAAS,OAAS,SAAgBpkB,EAAM+lB,EAAa,CACnD,IAAIC,EAAiB,GACrB,SAASC,KAAWlP,EAAM,CACpB,SAAW,QAAQ,MAAQ,CAACiP,IAC9BA,EAAiB,GACjB,QAAQ,KACNhmB,EAAO;+DACjB,EACY,QAAQ,IAAI,MAAQ,QAAQ,IAAI,KAAK,WAAW,IAAI,GACtD,QAAQ,KACNA,EAAO;mCACnB,GAGM,IAAIkmB,EAAcH,EAAY,GAAGhP,CAAI,EACrC,OAAAmP,EAAY,cAAgBlmB,EAC5BkmB,EAAY,eAAiB,IAAInO,EAAS,EAAG,QACtCmO,CACT,CACA,IAAIpE,EACJ,cAAO,eAAemE,EAAS,UAAW,CACxC,KAAM,CACJ,OAAKnE,IAAOA,EAAQmE,EAAO,GACpBnE,CACT,CACN,CAAK,EACDmE,EAAQ,QAAU,SAAShW,EAAKkW,EAAaC,EAAY,CACvD,OAAOhC,EAAS,CAAC6B,EAAQG,CAAU,CAAC,CAAC,EAAE,QAAQnW,EAAKkW,CAAW,CACjE,EACOF,CACT,EACA7B,EAAS,UAAYlR,EACrBkR,EAAS,MAAQ/N,EACjB+N,EAAS,SAAWhH,EACpBgH,EAAS,KAAOlI,EAChBkI,EAAS,QAAWlQ,GAAa,IAAIwB,EAAQxB,CAAQ,EACrDkQ,EAAS,OAAUlQ,GAAa,IAAIkC,EAAOlC,CAAQ,EACnDkQ,EAAS,KAAQlQ,GAAa,IAAI4B,EAAY5B,CAAQ,EACtDkQ,EAAS,KAAQlQ,GAAa,IAAIqC,EAAKrC,CAAQ,EAC/CkQ,EAAS,KAAQlQ,GAAa,IAAIoC,EAAKpC,CAAQ,EAC/CkQ,EAAS,SAAYlQ,GAAa,IAAI8U,EAAU9U,CAAQ,EACxDkQ,EAAS,eAAiB1U,EAC1B0U,EAAS,YAActO,EACvBsO,EAAS,UAAY1N,EACrB0N,EAAS,UAAYrM,EACrBqM,EAAS,SAAW4E,EACpB5E,EAAS,QAAU1O,EACnB0O,EAAS,QAAU1B,EACnB0B,EAAS,OAAShO,EAClBgO,EAAS,OAASpB,EAClBoB,EAAS,MAAQtJ,EACjBsJ,EAAS,KAAO7N,EAChB6N,EAAS,KAAO9N,EAChB8N,EAAS,KAAOnQ,EAChB6D,EAAW,gBAAgBsM,CAAQ,EACnCwB,GAAYxB,EACZA,EAAS,QAAUA,EACZwB,EACT,CACA,IAAIS,GACAC,GACJ,SAASC,IAAoB,CAC3B,GAAID,GAAuB,OAAOD,GAClCC,GAAwB,EACxB,IAAI5Q,EAAUD,GAAc,EACxB6L,EAASL,GAAa,EACtBC,EAAY1C,GAAe,EAC/B,MAAMgI,UAAmBlF,CAAO,CAC9B,sBAAuB,CACvB,CACA,QAAQR,EAAO,CACb,IAAIlP,EAAQ,IAAI8D,EAChB,KAAK,KAAK9D,EAAOkP,EAAM,CAAC,CAAC,EACzB,IAAIpa,EAAM,KAAK,MAAM,WAAWoa,EAAM,CAAC,CAAC,GAAK,KAAK,MAAM,WAAW,KAAK,MAAM,IAAI,OAAS,CAAC,EAC5FlP,EAAM,OAAO,IAAM,CACjB,OAAQlL,EAAI,IACZ,KAAMA,EAAI,KACV,OAAQoa,EAAM,CAAC,EAAI,CAC3B,EACM,IAAIle,EAAOke,EAAM,CAAC,EAAE,MAAM,CAAC,EAE3B,GADIle,EAAK,MAAM,EAAE,IAAM,OAAMA,EAAOA,EAAK,MAAM,EAAG,EAAE,GAChD,QAAQ,KAAKA,CAAI,EACnBgP,EAAM,KAAO,GACbA,EAAM,KAAK,KAAOhP,EAClBgP,EAAM,KAAK,MAAQ,OACd,CACL,IAAIzN,EAAQvB,EAAK,MAAM,sBAAsB,EAC7CgP,EAAM,KAAOzN,EAAM,CAAC,EACpByN,EAAM,KAAK,KAAOzN,EAAM,CAAC,EACzByN,EAAM,KAAK,MAAQzN,EAAM,CAAC,CAC5B,CACF,CACA,iBAAkB,CAChB,KAAK,UAAY+c,EAAU,KAAK,MAAO,CAAE,aAAc,EAAA,CAAM,CAC/D,CACA,KAAKG,EAAQ,CACPA,EAAO,OAAS,GAAKA,EAAO,KAAMzW,GAAMA,EAAE,CAAC,IAAM,MAAM,GACzD,MAAM,KAAKyW,CAAM,CAErB,CACA,aAAc,CACd,CACA,SAAU,CAKR,IAJI,KAAK,QAAQ,OAAS,KAAK,QAAQ,MAAM,SAC3C,KAAK,QAAQ,KAAK,UAAY,KAAK,WAErC,KAAK,QAAQ,KAAK,OAAS,KAAK,QAAQ,KAAK,OAAS,IAAM,KAAK,OAC1D,KAAK,QAAQ,QAClB,KAAK,QAAU,KAAK,QAAQ,OAC5B,KAAK,QAAQ,KAAK,MAAQ,GAE5B,KAAK,KAAK,OAAO,IAAM,KAAK,YAAY,KAAK,UAAU,SAAA,CAAU,CACnE,CACA,wBAAwBA,EAAQ,CAC9B,IAAIK,EAAQ,KAAK,MAAML,CAAM,EAC7B,GAAIK,IAAU,GAAO,OACrB,IAAI+E,EAAWC,EACf,IAAKD,EAAY/E,EAAQ,EAAG+E,GAAa,GACnCpF,EAAOoF,CAAS,EAAE,CAAC,IAAM,OADaA,IAC1C,CAEF,GAAIA,IAAc,GAAKA,EAAY,EAAG,OACtC,IAAKC,EAAUD,EAAY,EAAGC,GAAW,EAAGA,IAC1C,GAAIrF,EAAOqF,CAAO,EAAE,CAAC,IAAM,QAAS,CAClCA,GAAW,EACX,KACF,CAEF,IAAIrnB,EAAQgiB,EAAO,MAAMoF,CAAS,EAC9BtK,EAASkF,EAAO,MAAMqF,EAASD,CAAS,EAC5CpF,EAAO,OAAOqF,EAASrF,EAAO,OAASqF,CAAO,EAC9C,KAAK,OAASvK,EAAO,IAAKvR,GAAMA,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAC7C,KAAK,KAAKvL,CAAK,CACjB,CACA,iBAAkB,CAClB,CACA,iBAAkB,CAChB,KAAK,QAAQ,KAAK,OAAS,GAC7B,CACA,YAAYgiB,EAAQ,CAClB,KAAK,QAAUA,EAAO,IAAKzW,GAAMA,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAChD,CACA,cAAcgH,EAAO,CACnBA,EAAM,KAAO,EACf,CACJ,CACE,OAAAyU,GAAeG,EACRH,EACT,CACA,IAAIM,GACAC,GACJ,SAASC,IAAmB,CAC1B,GAAID,GAAsB,OAAOD,GACjCC,GAAuB,EACvB,GAAI,CAAE,MAAA9L,CAAK,EAAKgL,GAAc,EAC1BU,EAAaD,GAAiB,EAClC,OAAAI,GAAY,SAAoB1W,EAAKsE,EAAM,CACzC,IAAIa,EAAS,IAAI0F,EAAM7K,EAAKsE,CAAI,EAC5B+N,EAAU,IAAIkE,EAAWpR,CAAM,EACnC,OAAAkN,EAAQ,MAAK,EACNA,EAAQ,IACjB,EACOqE,EACT,CACAE,GAAgB,EAChB,IAAIG,GAAiBlB,GAAc,EACnC,MAAMmB,EAA0B1Y,GAAwByY,EAAc,EACtEC,EAAQ,UACRA,EAAQ,SACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,SACRA,EAAQ,QACRA,EAAQ,OACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,eACRA,EAAQ,YACRA,EAAQ,UACRA,EAAQ,UACRA,EAAQ,SACRA,EAAQ,QACRA,EAAQ,QACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACR,IAAIjqB,GAA+BC,IACjCA,EAAUA,EAAU,SAAc,CAAC,EAAI,WACvCA,EAAUA,EAAU,aAAkB,CAAC,EAAI,eAC3CA,EAAUA,EAAU,QAAa,CAAC,EAAI,UACtCA,EAAUA,EAAU,KAAU,CAAC,EAAI,OACnCA,EAAUA,EAAU,MAAW,CAAC,EAAI,QACpCA,EAAUA,EAAU,QAAa,CAAC,EAAI,UAC/BA,IACND,GAAc,CAAA,CAAE,EACnB,SAASisB,GAAatoB,EAAS,CAC7B,MAAMuoB,EAAM,CAAA,EACNC,EAAgB,gBAChBC,EAAoB,QACpBC,EAAW,eACjB,OAAA1oB,EAAQ,QAAQ0oB,EAAU,EAAE,EAAE,MAAMF,CAAa,EAAE,QAAQ,SAASG,EAAM,CACxE,GAAIA,EAAM,CACR,MAAMC,EAAMD,EAAK,MAAMF,CAAiB,EACxCG,EAAI,OAAS,IAAML,EAAIM,GAASD,EAAI,CAAC,EAAE,KAAI,CAAE,CAAC,EAAIA,EAAI,CAAC,EAAE,KAAI,EAC/D,CACF,CAAC,EACML,CACT,CACA,SAASO,GAAUC,EAAO,CACxB,MAAMC,EAAa,CAAA,EACnB,UAAW3pB,KAAQ0pB,EAAO,CACxB,MAAM5sB,EAAQ4sB,EAAM1pB,CAAI,EACxB,GAAI,OAAOlD,GAAU,SAAU,SAC/B,MAAM8sB,EAAiBC,GAAU7pB,CAAI,EACrC2pB,EAAW,KAAK,GAAGC,CAAc,KAAK9sB,CAAK,GAAG,CAChD,CACA,OAAO6sB,EAAW,KAAK,GAAG,CAC5B,CACA,MAAMG,GAAa,YACbC,GAAwB,oBACxBP,GAAYzmB,GACZgnB,GAAsB,KAAKhnB,CAAG,EAAUA,EACrCA,EAAI,QAAQ+mB,GAAY,CAAC/U,EAAG7N,IAAMA,EAAIA,EAAE,YAAW,EAAK,EAAE,EAE7D8iB,GAAc,aACdH,GAAa9mB,GACVA,EAAI,QAAQinB,GAAa,KAAK,EAAE,YAAW,EAEpD,MAAMC,EAAW,CAEf,eAAeC,EAAO,CACpBntB,EAAc,KAAM,gBAAiB,IAAI,EACzCA,EAAc,KAAM,aAAc,IAAI,EACtCA,EAAc,KAAM,eAAe,EACnCA,EAAc,KAAM,aAAc,IAAI,EACtCA,EAAc,KAAM,YAAa,IAAI,EACrCA,EAAc,KAAM,kBAAmB,IAAI,EAC3CA,EAAc,KAAM,cAAe,IAAI,EACvCA,EAAc,KAAM,eAAgB,CAAC,EACrCA,EAAc,KAAM,YAAa,CAAC,EAElCA,EAAc,KAAM,UAAU,EAC9BA,EAAc,KAAM,UAAU,EAC9BA,EAAc,KAAM,YAAY,CAClC,CACA,IAAI,YAAa,CACf,MAAMotB,EAAc,CAAA,EACpB,IAAIC,EAAgB,KAAK,WACzB,KAAOA,GACLD,EAAY,KAAKC,CAAa,EAC9BA,EAAgBA,EAAc,YAEhC,OAAOD,CACT,CACA,SAASvY,EAAO,CACd,GAAMA,aAAiBqY,GAAoB,IAClCrY,EAAM,gBAAkB,KAAK,cAAe,MAAO,GAAA,GACnDA,IAAU,KAAM,MAAO,OAFI,OAAO,GAG3C,KAAOA,EAAM,YAAY,CACvB,GAAIA,EAAM,aAAe,KAAM,MAAO,GACtCA,EAAQA,EAAM,UAChB,CACA,MAAO,EACT,CAEA,YAAYyY,EAAW,CACrB,MAAM,IAAI,MACR,6GACN,CACE,CAEA,aAAaA,EAAWC,EAAW,CACjC,MAAM,IAAI,MACR,8GACN,CACE,CAEA,YAAYC,EAAO,CACjB,MAAM,IAAI,MACR,6GACN,CACE,CACA,UAAW,CACT,MAAO,QACT,CACF,CACA,MAAMC,WAAuBP,EAAW,CAEtC,eAAelT,EAAM,CACnB,MAAMA,CAAI,EACVha,EAAc,KAAM,WAAY,CAAC,EACjCA,EAAc,KAAM,WAAY,WAAW,EAC3CA,EAAc,KAAM,aAAc,YAAY,EAC9CA,EAAc,KAAM,aAAcC,EAAW,QAAQ,EACrDD,EAAc,KAAM,cAAe,IAAI,EACvC,KAAK,cAAgB,IACvB,CACA,IAAI,iBAAkB,CACpB,OAAO,KAAK,WAAW,KACpB6U,GAAUA,EAAM,aAAe5U,EAAW,SAAW4U,EAAM,UAAY,MAC9E,GAAS,IACP,CACA,IAAI,MAAO,CACT,IAAItU,EACJ,QAASA,EAAK,KAAK,kBAAoB,KAAO,OAASA,EAAG,WAAW,KAClEsU,GAAUA,EAAM,aAAe5U,EAAW,SAAW4U,EAAM,UAAY,MAC9E,IAAU,IACR,CACA,IAAI,MAAO,CACT,IAAItU,EACJ,QAASA,EAAK,KAAK,kBAAoB,KAAO,OAASA,EAAG,WAAW,KAClEsU,GAAUA,EAAM,aAAe5U,EAAW,SAAW4U,EAAM,UAAY,MAC9E,IAAU,IACR,CACA,IAAI,gBAAiB,CACnB,OAAO,IACT,CACA,IAAI,mBAAoB,CACtB,OAAO,KAAK,eACd,CACA,YAAY6Y,EAAU,CACpB,MAAMC,EAAWD,EAAS,WAC1B,IAAIC,IAAa1tB,EAAW,SAAW0tB,IAAa1tB,EAAW,eACzD,KAAK,WAAW,KAAMgE,GAAMA,EAAE,aAAe0pB,CAAQ,EACvD,MAAM,IAAI,MACR,yEAAyEA,IAAa1tB,EAAW,QAAU,YAAc,WAAW,yBAC9I,EAGI,MAAMsV,EAAQqY,GAAY,KAAMF,CAAQ,EACxC,OAAAnY,EAAM,cAAgB,KACfA,CACT,CACA,aAAamY,EAAUG,EAAU,CAC/B,MAAMF,EAAWD,EAAS,WAC1B,IAAIC,IAAa1tB,EAAW,SAAW0tB,IAAa1tB,EAAW,eACzD,KAAK,WAAW,KAAMgE,GAAMA,EAAE,aAAe0pB,CAAQ,EACvD,MAAM,IAAI,MACR,0EAA0EA,IAAa1tB,EAAW,QAAU,YAAc,WAAW,yBAC/I,EAGI,MAAMsV,EAAQuY,GAAa,KAAMJ,EAAUG,CAAQ,EACnD,OAAAtY,EAAM,cAAgB,KACfA,CACT,CACA,YAAYV,EAAO,CACjB,OAAOkZ,GAAY,KAAMlZ,CAAK,CAChC,CACA,MAAO,CACL,KAAK,WAAa,KAClB,KAAK,UAAY,IACnB,CACA,OAAQ,CACR,CAOA,MAAMkM,EAAS,CACb,IAAIiN,EAKJ,GAJIjN,IAAY,qEACdiN,EAAW,yCACJjN,IAAY,sEACnBiN,EAAW,yCACTA,EAAU,CACZ,MAAMC,EAAU,KAAK,mBAAmB,OAAQD,EAAU,EAAE,EAC5D,KAAK,KAAI,EACT,KAAK,YAAYC,CAAO,CAC1B,CACF,CACA,eAAeC,EAAYC,EAAgBC,EAAU,CACnD,OAAO,IAAIX,EACb,CACA,mBAAmBY,EAAeL,EAAUM,EAAU,CACpD,MAAML,EAAU,IAAIM,GAAmBF,EAAeL,EAAUM,CAAQ,EACxE,OAAAL,EAAQ,cAAgB,KACjBA,CACT,CACA,cAAcvoB,EAAS,CACrB,MAAMF,EAAU,IAAIgpB,GAAc9oB,CAAO,EACzC,OAAAF,EAAQ,cAAgB,KACjBA,CACT,CACA,gBAAgBipB,EAAeJ,EAAe,CAC5C,OAAO,KAAK,cAAcA,CAAa,CACzC,CACA,eAAe9V,EAAM,CACnB,MAAM1S,EAAO,IAAI6oB,GAAWnW,CAAI,EAChC,OAAA1S,EAAK,cAAgB,KACdA,CACT,CACA,cAAc0S,EAAM,CAClB,MAAM+T,EAAW,IAAIqC,GAAcpW,CAAI,EACvC,OAAA+T,EAAS,cAAgB,KAClBA,CACT,CACA,mBAAmB/T,EAAM,CACvB,MAAMqW,EAAe,IAAIC,GAAmBtW,CAAI,EAChD,OAAAqW,EAAa,cAAgB,KACtBA,CACT,CACA,UAAW,CACT,MAAO,YACT,CACF,CACA,MAAML,WAA2BrB,EAAW,CAC1C,YAAYmB,EAAeL,EAAUM,EAAU,CAC7C,MAAK,EACLtuB,EAAc,KAAM,WAAY,EAAE,EAClCA,EAAc,KAAM,aAAcC,EAAW,YAAY,EACzDD,EAAc,KAAM,MAAM,EAC1BA,EAAc,KAAM,UAAU,EAC9BA,EAAc,KAAM,UAAU,EAC9BA,EAAc,KAAM,cAAe,IAAI,EACvC,KAAK,KAAOquB,EACZ,KAAK,SAAWL,EAChB,KAAK,SAAWM,EAChB,KAAK,SAAWD,CAClB,CACA,UAAW,CACT,MAAO,gBACT,CACF,CACA,MAAMG,WAAsBtB,EAAW,CACrC,YAAYxnB,EAAS,CACnB,MAAK,EACL1F,EAAc,KAAM,WAAY,CAAC,EACjCA,EAAc,KAAM,aAAcC,EAAW,OAAO,EACpDD,EAAc,KAAM,SAAS,EAC7BA,EAAc,KAAM,aAAc,CAAA,CAAE,EACpCA,EAAc,KAAM,aAAc,IAAI,EACtCA,EAAc,KAAM,YAAY,EAChCA,EAAc,KAAM,WAAW,EAC/B,KAAK,QAAU0F,EAAQ,YAAW,EAClC,KAAK,SAAWA,EAAQ,YAAW,CACrC,CACA,IAAI,aAAc,CAChB,IAAIqS,EAAU,GACd,YAAK,WAAW,QAASlD,GAAUkD,GAAWlD,EAAM,WAAW,EACxDkD,CACT,CACA,IAAI,YAAY+W,EAAc,CAC5B,KAAK,WAAa,KAClB,KAAK,UAAY,KACjB,KAAK,YAAY,KAAK,cAAc,eAAeA,CAAY,CAAC,CAClE,CACA,IAAI,WAAY,CACd,OAAO,IAAIC,GACT,KAAK,WAAW,MACfC,GAAiB,CAChB,KAAK,WAAW,MAAQA,CAC1B,CACN,CACE,CACA,IAAI,IAAK,CACP,OAAO,KAAK,WAAW,IAAM,EAC/B,CACA,IAAI,WAAY,CACd,OAAO,KAAK,WAAW,OAAS,EAClC,CACA,IAAI,OAAQ,CACV,MAAMrC,EAAQ,KAAK,WAAW,MAAQT,GAAa,KAAK,WAAW,KAAK,EAAI,CAAA,EACtE+C,EAAe,aACrB,OAAAtC,EAAM,YAAc,CAAC1pB,EAAMlD,EAAOmvB,IAAa,CAC7C,GAAID,EAAa,KAAKhsB,CAAI,EAAG,OAC7B,MAAM4pB,EAAiBJ,GAASxpB,CAAI,EAC/BlD,EACA4sB,EAAME,CAAc,EAAI9sB,EADjB,OAAO4sB,EAAME,CAAc,EAEnCqC,IAAa,cAAavC,EAAME,CAAc,GAAK,eACvD,KAAK,WAAW,MAAQH,GAAUC,CAAK,CACzC,EACAA,EAAM,eAAkB1pB,GAAS,CAC/B,GAAIgsB,EAAa,KAAKhsB,CAAI,EAAG,MAAO,GACpC,MAAM4pB,EAAiBJ,GAASxpB,CAAI,EAC9BlD,EAAQ4sB,EAAME,CAAc,GAAK,GACvC,cAAOF,EAAME,CAAc,EAC3B,KAAK,WAAW,MAAQH,GAAUC,CAAK,EAChC5sB,CACT,EACO4sB,CACT,CACA,aAAa1pB,EAAM,CACjB,OAAI,KAAK,WAAWA,CAAI,IAAM,OAAe,KACtC,KAAK,WAAWA,CAAI,CAC7B,CACA,aAAaA,EAAMksB,EAAW,CAC5B,KAAK,WAAWlsB,CAAI,EAAIksB,CAC1B,CACA,eAAejB,EAAYG,EAAetuB,EAAO,CAC/C,KAAK,aAAasuB,EAAetuB,CAAK,CACxC,CACA,gBAAgBkD,EAAM,CACpB,OAAO,KAAK,WAAWA,CAAI,CAC7B,CACA,YAAYyqB,EAAU,CACpB,OAAOE,GAAY,KAAMF,CAAQ,CACnC,CACA,aAAaA,EAAUG,EAAU,CAC/B,OAAOC,GAAa,KAAMJ,EAAUG,CAAQ,CAC9C,CACA,YAAYhZ,EAAO,CACjB,OAAOkZ,GAAY,KAAMlZ,CAAK,CAChC,CAEA,aAAaua,EAAO,CAClB,MAAM1rB,EAAc,KAAK,cAAc,cAAc,YAAY,EACjE,YAAK,WAAaA,EACXA,CACT,CAEA,cAAc2rB,EAAQ,CACpB,MAAO,EACT,CACA,UAAW,CACT,IAAIC,EAAkB,GACtB,UAAWH,KAAa,KAAK,WAC3BG,GAAmB,GAAGH,CAAS,KAAK,KAAK,WAAWA,CAAS,CAAC,KAEhE,MAAO,GAAG,KAAK,OAAO,IAAIG,CAAe,EAC3C,CACF,CACA,MAAMC,WAA2Bf,EAAc,CAC7C,aAAc,CACZ,MAAM,GAAG,SAAS,EAClBxuB,EAAc,KAAM,aAAa,EACjCA,EAAc,KAAM,QAAQ,EAC5BA,EAAc,KAAM,QAAQ,EAC5BA,EAAc,KAAM,OAAO,EAC3BA,EAAc,KAAM,cAAc,EAClCA,EAAc,KAAM,MAAM,CAC5B,CAEA,aAAaovB,EAAO,CAClB,MAAM,IAAI,MACR,+GACN,CACE,CACA,MAAO,CACL,KAAK,OAAS,EAChB,CACA,OAAQ,CACN,KAAK,OAAS,EAChB,CACF,CACA,MAAMI,WAA4BhB,EAAc,CAC9C,aAAc,CACZ,MAAM,GAAG,SAAS,EAClBxuB,EAAc,KAAM,UAAW,QAAQ,EACvCA,EAAc,KAAM,WAAY,QAAQ,CAC1C,CACA,IAAI,SAAU,CACZ,OAAO,KAAK,aAAa,cAAc,IAAM,OAC/C,CACA,IAAI,MAAO,CACT,OAAO,KAAK,aAAa,MAAM,IAAM,IACvC,CACA,OAAQ,CACN,KAAK,gBAAgB,MAAM,EAC3B,KAAK,gBAAgB,cAAc,CACrC,CACA,MAAO,CACL,KAAK,aAAa,OAAQ,EAAE,EAC5B,KAAK,aAAa,eAAgB,WAAW,CAC/C,CACA,WAAY,CACV,KAAK,aAAa,OAAQ,EAAE,EAC5B,KAAK,aAAa,eAAgB,OAAO,CAC3C,CACF,CACA,MAAM0uB,WAAmBxB,EAAW,CAClC,YAAY3U,EAAM,CAChB,MAAK,EACLvY,EAAc,KAAM,WAAY,CAAC,EACjCA,EAAc,KAAM,WAAY,OAAO,EACvCA,EAAc,KAAM,aAAcC,EAAW,IAAI,EACjDD,EAAc,KAAM,MAAM,EAC1B,KAAK,KAAOuY,CACd,CACA,IAAI,aAAc,CAChB,OAAO,KAAK,IACd,CACA,IAAI,YAAYuW,EAAc,CAC5B,KAAK,KAAOA,CACd,CACA,UAAW,CACT,MAAO,eAAe,KAAK,UAAU,KAAK,IAAI,CAAC,EACjD,CACF,CACA,MAAMH,WAAsBzB,EAAW,CACrC,YAAY3U,EAAM,CAChB,MAAK,EACLvY,EAAc,KAAM,WAAY,CAAC,EACjCA,EAAc,KAAM,WAAY,UAAU,EAC1CA,EAAc,KAAM,aAAcC,EAAW,OAAO,EACpDD,EAAc,KAAM,MAAM,EAC1B,KAAK,KAAOuY,CACd,CACA,IAAI,aAAc,CAChB,OAAO,KAAK,IACd,CACA,IAAI,YAAYuW,EAAc,CAC5B,KAAK,KAAOA,CACd,CACA,UAAW,CACT,MAAO,kBAAkB,KAAK,UAAU,KAAK,IAAI,CAAC,EACpD,CACF,CACA,MAAMD,WAA2B3B,EAAW,CAC1C,YAAY3U,EAAM,CAChB,MAAK,EACLvY,EAAc,KAAM,WAAY,gBAAgB,EAChDA,EAAc,KAAM,WAAY,CAAC,EACjCA,EAAc,KAAM,aAAcC,EAAW,KAAK,EAClDD,EAAc,KAAM,MAAM,EAC1B,KAAK,KAAOuY,CACd,CACA,IAAI,aAAc,CAChB,OAAO,KAAK,IACd,CACA,IAAI,YAAYuW,EAAc,CAC5B,KAAK,KAAOA,CACd,CACA,UAAW,CACT,MAAO,uBAAuB,KAAK,UAAU,KAAK,IAAI,CAAC,EACzD,CACF,CACA,MAAMC,EAAU,CACd,YAAYU,EAAWC,EAAU,CAiB/B,GAhBA1vB,EAAc,KAAM,UAAU,EAC9BA,EAAc,KAAM,UAAW,CAAA,CAAE,EACjCA,EAAc,KAAM,MAAO,IAAI2vB,IAAe,CAC5C,UAAWpD,KAAQoD,EAAY,CAC7B,MAAMxkB,EAAY,OAAOohB,CAAI,EACzB,KAAK,QAAQ,QAAQphB,CAAS,GAAK,GACvC,KAAK,QAAQ,KAAKA,CAAS,CAC7B,CACA,KAAK,UAAY,KAAK,SAAS,KAAK,QAAQ,KAAK,GAAG,CAAC,CACvD,CAAC,EACDnL,EAAc,KAAM,SAAU,IAAI2vB,IAAe,CAC/C,KAAK,QAAU,KAAK,QAAQ,OACzBpD,GAASoD,EAAW,QAAQpD,CAAI,IAAM,EAC/C,EACM,KAAK,UAAY,KAAK,SAAS,KAAK,QAAQ,KAAK,GAAG,CAAC,CACvD,CAAC,EACGkD,EAAW,CACb,MAAMG,EAAUH,EAAU,KAAI,EAAG,MAAM,KAAK,EAC5C,KAAK,QAAQ,KAAK,GAAGG,CAAO,CAC9B,CACA,KAAK,SAAWF,CAClB,CACF,CACA,SAAS9B,GAAYxgB,EAAQsgB,EAAU,CACrC,OAAIA,EAAS,YAAYA,EAAS,WAAW,YAAYA,CAAQ,EAC7DtgB,EAAO,WACTA,EAAO,UAAU,YAAcsgB,EAC/BA,EAAS,gBAAkBtgB,EAAO,YAElCA,EAAO,WAAasgB,EACpBA,EAAS,gBAAkB,MAE7BtgB,EAAO,UAAYsgB,EACnBA,EAAS,YAAc,KACvBA,EAAS,WAAatgB,EACtBsgB,EAAS,cAAgBtgB,EACzBsgB,EAAS,cAAgBtgB,EAAO,cACzBsgB,CACT,CACA,SAASI,GAAa1gB,EAAQsgB,EAAUG,EAAU,CAChD,GAAI,CAACA,EAAU,OAAOD,GAAYxgB,EAAQsgB,CAAQ,EAClD,GAAIG,EAAS,aAAezgB,EAC1B,MAAM,IAAI,MACR,qIACN,EACE,OAAIsgB,IAAaG,IACbH,EAAS,YAAYA,EAAS,WAAW,YAAYA,CAAQ,EACjEA,EAAS,gBAAkBG,EAAS,gBACpCA,EAAS,gBAAkBH,EAC3BA,EAAS,YAAcG,EACnBH,EAAS,gBAAiBA,EAAS,gBAAgB,YAAcA,EAChEtgB,EAAO,WAAasgB,EACzBA,EAAS,cAAgBtgB,EACzBsgB,EAAS,WAAatgB,EACtBsgB,EAAS,cAAgBtgB,EAAO,eACzBsgB,CACT,CACA,SAASK,GAAY3gB,EAAQmI,EAAO,CAClC,GAAIA,EAAM,aAAenI,EACvB,MAAM,IAAI,MACR,sGACN,EACE,OAAImI,EAAM,gBACRA,EAAM,gBAAgB,YAAcA,EAAM,YACvCnI,EAAO,WAAamI,EAAM,YAC3BA,EAAM,YACRA,EAAM,YAAY,gBAAkBA,EAAM,gBACvCnI,EAAO,UAAYmI,EAAM,gBAC9BA,EAAM,gBAAkB,KACxBA,EAAM,YAAc,KACpBA,EAAM,cAAgB,KACtBA,EAAM,WAAa,KACZA,CACT,CACA,IAAIvI,IAA6B9M,IAC/BA,EAAUA,EAAU,YAAiB,CAAC,EAAI,cAC1CA,EAAUA,EAAU,aAAkB,CAAC,EAAI,eAC3CA,EAAUA,EAAU,eAAoB,CAAC,EAAI,iBAC7CA,EAAUA,EAAU,UAAe,CAAC,EAAI,YACxCA,EAAUA,EAAU,mBAAwB,CAAC,EAAI,qBACjDA,EAAUA,EAAU,sBAA2B,CAAC,EAAI,wBACpDA,EAAUA,EAAU,YAAiB,CAAC,EAAI,cAC1CA,EAAUA,EAAU,4BAAiC,CAAC,EAAI,8BAC1DA,EAAUA,EAAU,aAAkB,CAAC,EAAI,eAC3CA,EAAUA,EAAU,cAAmB,CAAC,EAAI,gBAC5CA,EAAUA,EAAU,mBAAwB,EAAE,EAAI,qBAClDA,EAAUA,EAAU,uBAA4B,EAAE,EAAI,yBAC/CA,IACN8M,IAAY,CAAA,CAAE,EACjB,MAAM6iB,GAAa,CACjB,IAAK,6BACL,aAAc,+BACd,MAAO,+BACT,EACMC,GAAY,CAChB,SAAU,WACV,YAAa,cACb,aAAc,eACd,aAAc,eACd,cAAe,gBACf,iBAAkB,mBAClB,SAAU,WACV,QAAS,UACT,cAAe,gBACf,oBAAqB,sBACrB,YAAa,cACb,iBAAkB,mBAClB,kBAAmB,oBACnB,kBAAmB,oBACnB,eAAgB,iBAChB,aAAc,eACd,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,QAAS,UACT,eAAgB,iBAChB,QAAS,UACT,QAAS,UACT,YAAa,cACb,aAAc,eACd,SAAU,WACV,aAAc,eACd,mBAAoB,qBACpB,YAAa,cACb,OAAQ,SACR,aAAc,eACd,cAAe,gBACf,SAAU,WACV,eAAgB,iBAChB,eAAgB,gBAClB,EACA,IAAIC,GAAiB,KACrB,SAASC,GAAKC,EAASC,EAASC,EAAUC,EAAeF,EAAQ,QAAUA,EAAQ,cAAc,OAAQ,CACvGD,EAAUI,GACRJ,EACAC,EACAC,EACAC,CACJ,EACEE,GAAaL,EAASC,EAASC,EAAUC,CAAY,EACrDG,GAA0BN,EAASC,EAASC,CAAQ,CACtD,CACA,SAASE,GAA2BJ,EAASC,EAASC,EAAUC,EAAc,CAC5E,IAAI7vB,EAOJ,GANI4vB,EAAS,aAAe,CAACJ,KAC3BA,GAAiC,IAAI,QACrC,WAAW,IAAM,CACfA,GAAiB,IACnB,EAAG,CAAC,GAEF,CAACS,GAAaP,EAASC,CAAO,EAAG,CACnC,MAAMO,EAAoBC,GACxBR,EACAC,EAAS,OACTC,CACN,GACK7vB,EAAK0vB,EAAQ,aAAe,MAAgB1vB,EAAG,aAAakwB,EAAmBR,CAAO,EACvFA,EAAUQ,CACZ,CACA,OAAQP,EAAQ,WAAU,CACxB,KAAKjwB,EAAW,SAAU,CACxB,GAAI,CAAC0wB,GAAaV,EAASC,EAASC,EAAS,OAAQC,CAAY,EAAG,CAClE,MAAMQ,EAAUR,EAAa,QAAQF,CAAO,EACxCU,IACFT,EAAS,OAAO,kBAAkBF,CAAO,EACzCA,EAAQ,MAAK,EACbA,EAAQ,KAAI,EACZE,EAAS,OAAO,IAAIF,EAASW,CAAO,EACpCb,IAAkB,MAAgBA,GAAe,IAAIE,CAAO,EAEhE,CACA,KACF,CACA,KAAKhwB,EAAW,QAAS,CACvB,MAAM4wB,EAAaZ,EACba,EAAeZ,EACrB,OAAQY,EAAa,QAAO,CAC1B,IAAK,SAAU,CACb,MAAMC,EAAqBd,EAAQ,gBACnC,GAAI,CAACc,EAAoB,MACzBf,GACEe,EACAb,EAAQ,gBACRC,EACAC,CACZ,EACU,KACF,CACR,CACUU,EAAa,aACVD,EAAW,YAAYA,EAAW,aAAa,CAAE,KAAM,MAAA,CAAQ,EACpEP,GAEEO,EAAW,WACXC,EAAa,WACbX,EACAC,CACV,GAEMY,GAAUH,EAAYC,EAAcV,CAAY,EAChD,KACF,CACJ,CACE,OAAOH,CACT,CACA,SAASM,GAA0BN,EAASC,EAASC,EAAU,CAC7D,IAAI5vB,EACJ,OAAQ2vB,EAAQ,WAAU,CACxB,KAAKjwB,EAAW,SAAU,CACxB,MAAMgxB,EAAaf,EAAQ,WAC3Be,GAAcd,EAAS,YAAYc,EAAY,EAAI,EACnD,KACF,CACA,KAAKhxB,EAAW,QAAS,CACvB,MAAM4wB,EAAaZ,EACba,EAAeZ,EAGrB,OAFAY,EAAa,YAAcX,EAAS,YAAYW,EAAa,WAAY,EAAI,EAC7EA,EAAa,WAAaX,EAAS,WAAWW,EAAa,SAAS,EAC5DA,EAAa,QAAO,CAC1B,IAAK,QACL,IAAK,QAAS,CACZ,MAAMI,EAAkBjB,EAClBkB,EAAoBL,EACtBK,EAAkB,SAAW,SAC/BA,EAAkB,OAAcD,EAAgB,MAAK,EAAUA,EAAgB,KAAI,GACjFC,EAAkB,QAAU,SAC9BD,EAAgB,MAAQC,EAAkB,OACxCA,EAAkB,SAAW,SAC/BD,EAAgB,OAASC,EAAkB,QACzCA,EAAkB,cAAgB,SACpCD,EAAgB,YAAcC,EAAkB,aAC9CA,EAAkB,eAAiB,SACrCD,EAAgB,aAAeC,EAAkB,cAC/CA,EAAkB,OAAS,SAC7BD,EAAgB,KAAOC,EAAkB,MAC3C,KACF,CACA,IAAK,SAAU,CACb,MAAMC,EAAkBlB,EACxB,GAAIkB,EAAgB,aAAe,KAAM,CACvC,MAAM7iB,EAAQ,SAAS,cAAc,KAAK,EAC1CA,EAAM,OAAS,IAAM,CACnB,MAAMnI,EAAMyqB,EAAW,WAAW,IAAI,EAClCzqB,GACFA,EAAI,UAAUmI,EAAO,EAAG,EAAGA,EAAM,MAAOA,EAAM,MAAM,CAExD,EACAA,EAAM,IAAM6iB,EAAgB,UAC9B,CACAA,EAAgB,gBAAgB,QAC7BC,GAAmBlB,EAAS,YAC3BkB,EAAe,MACfA,EAAe,SACfpB,CACd,CACA,EACU,KACF,CAEA,IAAK,QAAS,CACZ,MAAMqB,EAAaT,EAAW,MAC9BS,GAAcpB,EAAQ,MAAM,QACzB3X,GAAS4X,EAAS,wBAAwB5X,EAAM+Y,CAAU,CACvE,EACU,KACF,CACA,IAAK,SAAU,CACb,MAAMC,EAASV,EACTW,EAAWV,EACXW,EAAUF,EAAO,KACjBG,EAAWH,EAAO,QAAQ,cAAc,EACxCI,EAAeH,EAAS,KACxBI,EAAgBJ,EAAS,QACzBK,EAAeH,IAAaE,EAC5BE,EAAcL,IAAYE,EAEhC,IADIE,GAAgBJ,GAAWK,IAAaP,EAAO,MAAK,EACpDI,IAAiBG,GAAeD,GAClC,GAAI,CACED,EAAeL,EAAO,UAAS,EAC9BA,EAAO,KAAI,CAClB,OAASjwB,EAAG,CACV,QAAQ,KAAKA,CAAC,CAChB,CAEF,KACF,CACR,CACM,KACF,CACA,KAAKrB,EAAW,KAChB,KAAKA,EAAW,QAChB,KAAKA,EAAW,MAAO,CACjBgwB,EAAQ,cAAgBC,EAAQ,OAClCD,EAAQ,YAAcC,EAAQ,MAChC,KACF,CACJ,CACMH,IAAkB,MAAgBA,GAAe,IAAIE,CAAO,IAC9DF,GAAe,OAAOE,CAAO,GAC5B1vB,EAAK4vB,EAAS,cAAgB,MAAgB5vB,EAAG,KAAK4vB,EAAUF,EAASE,EAAS,OAAO,MAAMF,CAAO,CAAC,EAE5G,CACA,SAASe,GAAUf,EAASC,EAASE,EAAc,CACjD,MAAM2B,EAAgB9B,EAAQ,WACxB+B,EAAgB9B,EAAQ,WAC9B,UAAWjtB,KAAQ+uB,EAAe,CAChC,MAAMC,EAAWD,EAAc/uB,CAAI,EAC7BmM,EAAKghB,EAAa,QAAQF,CAAO,EACvC,GAAK9gB,GAAM,MAAgBA,EAAG,OAAUygB,GAAW5sB,CAAI,EACrDgtB,EAAQ,eAAeJ,GAAW5sB,CAAI,EAAGA,EAAMgvB,CAAQ,UAChD/B,EAAQ,UAAY,UAAYjtB,IAAS,aAAc,CAC9D,MAAMsL,EAAQ,SAAS,cAAc,KAAK,EAC1CA,EAAM,IAAM0jB,EACZ1jB,EAAM,OAAS,IAAM,CACnB,MAAMnI,EAAM6pB,EAAQ,WAAW,IAAI,EAC/B7pB,GACFA,EAAI,UAAUmI,EAAO,EAAG,EAAGA,EAAM,MAAOA,EAAM,MAAM,CAExD,CACF,KAAA,IAAW2hB,EAAQ,UAAY,UAAYjtB,IAAS,SAAU,SAE5D,GAAI,CACFgtB,EAAQ,aAAahtB,EAAMgvB,CAAQ,CACrC,OAAS9qB,EAAK,CACZ,QAAQ,KAAKA,CAAG,CAClB,EAEJ,CACA,SAAW,CAAE,KAAAlE,CAAI,IAAM,MAAM,KAAK8uB,CAAa,EACvC9uB,KAAQ+uB,GAAgB/B,EAAQ,gBAAgBhtB,CAAI,EAC5DitB,EAAQ,aAAeD,EAAQ,WAAaC,EAAQ,YACpDA,EAAQ,YAAcD,EAAQ,UAAYC,EAAQ,UACpD,CACA,SAASI,GAAaL,EAASC,EAASC,EAAUC,EAAc,CAC9D,MAAM8B,EAAc,MAAM,KAAKjC,EAAQ,UAAU,EAC3CkC,EAAcjC,EAAQ,WAC5B,GAAIgC,EAAY,SAAW,GAAKC,EAAY,SAAW,EAAG,OAC1D,IAAIC,EAAgB,EAAGC,EAAcH,EAAY,OAAS,EAAGI,EAAgB,EAAGC,EAAcJ,EAAY,OAAS,EAC/GK,EAAeN,EAAYE,CAAa,EAAGK,EAAaP,EAAYG,CAAW,EAAGK,EAAeP,EAAYG,CAAa,EAAGK,EAAaR,EAAYI,CAAW,EACjKK,EAAuBC,EAC3B,KAAOT,GAAiBC,GAAeC,GAAiBC,GACtD,GAAIC,IAAiB,OACnBA,EAAeN,EAAY,EAAEE,CAAa,UACjCK,IAAe,OACxBA,EAAaP,EAAY,EAAEG,CAAW,UAGtC1B,GAAa6B,EAAcE,EAAcvC,EAAS,OAAQC,CAAY,EAEtEoC,EAAeN,EAAY,EAAEE,CAAa,EAC1CM,EAAeP,EAAY,EAAEG,CAAa,UAG1C3B,GAAa8B,EAAYE,EAAYxC,EAAS,OAAQC,CAAY,EAElEqC,EAAaP,EAAY,EAAEG,CAAW,EACtCM,EAAaR,EAAY,EAAEI,CAAW,UAGtC5B,GAAa6B,EAAcG,EAAYxC,EAAS,OAAQC,CAAY,EACpE,CACA,GAAI,CACFH,EAAQ,aAAauC,EAAcC,EAAW,WAAW,CAC3D,OAASnxB,EAAG,CACV,QAAQ,KAAKA,CAAC,CAChB,CACAkxB,EAAeN,EAAY,EAAEE,CAAa,EAC1CO,EAAaR,EAAY,EAAEI,CAAW,CACxC,SAEE5B,GAAa8B,EAAYC,EAAcvC,EAAS,OAAQC,CAAY,EACpE,CACA,GAAI,CACFH,EAAQ,aAAawC,EAAYD,CAAY,CAC/C,OAASlxB,EAAG,CACV,QAAQ,KAAKA,CAAC,CAChB,CACAmxB,EAAaP,EAAY,EAAEG,CAAW,EACtCK,EAAeP,EAAY,EAAEG,CAAa,CAC5C,KAAO,CACL,GAAI,CAACM,EAAc,CACjBA,EAAe,CAAA,EACf,QAAS/kB,EAAIukB,EAAevkB,GAAKwkB,EAAaxkB,IAAK,CACjD,MAAMilB,EAAYZ,EAAYrkB,CAAC,EAC3BilB,GAAa3C,EAAS,OAAO,QAAQ2C,CAAS,IAChDF,EAAazC,EAAS,OAAO,MAAM2C,CAAS,CAAC,EAAIjlB,EACrD,CACF,CACAglB,EAAaD,EAAaxC,EAAa,MAAMsC,CAAY,CAAC,EAC1D,MAAMK,EAAab,EAAYW,CAAU,EACzC,GAAIA,IAAe,QAAUE,GAAcpC,GAAaoC,EAAYL,EAAcvC,EAAS,OAAQC,CAAY,EAAG,CAChH,GAAI,CACFH,EAAQ,aAAa8C,EAAYP,CAAY,CAC/C,OAASlxB,EAAG,CACV,QAAQ,KAAKA,CAAC,CAChB,CACA4wB,EAAYW,CAAU,EAAI,MAC5B,KAAO,CACL,MAAMG,EAAUtC,GACdgC,EACAvC,EAAS,OACTC,CACV,EACYH,EAAQ,WAAa,aAAeuC,IAIvCQ,EAAQ,WAAaA,EAAQ,oBAAsBR,EAAa,WAAaA,EAAa,oBAI3FQ,EAAQ,WAAaA,EAAQ,cAAgBR,EAAa,WAAaA,EAAa,gBAClFvC,EAAQ,YAAYuC,CAAY,EAChCrC,EAAS,OAAO,kBAAkBqC,CAAY,EAC9CA,EAAeN,EAAY,EAAEE,CAAa,GAE5C,GAAI,CACFnC,EAAQ,aAAa+C,EAASR,GAAgB,IAAI,CACpD,OAASlxB,EAAG,CACV,QAAQ,KAAKA,CAAC,CAChB,CACF,CACAoxB,EAAeP,EAAY,EAAEG,CAAa,CAC5C,CAEF,GAAIF,EAAgBC,EAAa,CAC/B,MAAMY,EAAkBd,EAAYI,EAAc,CAAC,EACnD,IAAIW,EAAgB,KAKpB,IAJID,IACFC,EAAgB/C,EAAS,OAAO,QAC9BC,EAAa,MAAM6C,CAAe,CAC1C,GACWX,GAAiBC,EAAa,EAAED,EAAe,CACpD,MAAMU,EAAUtC,GACdyB,EAAYG,CAAa,EACzBnC,EAAS,OACTC,CACR,EACM,GAAI,CACFH,EAAQ,aAAa+C,EAASE,CAAa,CAC7C,OAAS5xB,EAAG,CACV,QAAQ,KAAKA,CAAC,CAChB,CACF,CACF,SAAWgxB,EAAgBC,EACzB,KAAOH,GAAiBC,EAAaD,IAAiB,CACpD,MAAMvd,EAAQqd,EAAYE,CAAa,EACvC,GAAI,GAACvd,GAASA,EAAM,aAAeob,GACnC,GAAI,CACFA,EAAQ,YAAYpb,CAAK,EACzBsb,EAAS,OAAO,kBAAkBtb,CAAK,CACzC,OAASvT,EAAG,CACV,QAAQ,KAAKA,CAAC,CAChB,CACF,CAEF,IAAI6xB,EAAWlD,EAAQ,WACnBvC,EAAWwC,EAAQ,WACvB,KAAOiD,IAAa,MAAQzF,IAAa,MACvCsC,GAAKmD,EAAUzF,EAAUyC,EAAUC,CAAY,EAC/C+C,EAAWA,EAAS,YACpBzF,EAAWA,EAAS,WAExB,CACA,SAASgD,GAAgB0C,EAAQC,EAAWjD,EAAc,CACxD,MAAMkD,EAASlD,EAAa,MAAMgD,CAAM,EAClChkB,EAAKghB,EAAa,QAAQgD,CAAM,EACtC,IAAIve,EAAQ,KAEZ,GADIye,EAAS,KAAIze,EAAQwe,EAAU,QAAQC,CAAM,GAC7Cze,IAAU,MAAQ2b,GAAa3b,EAAOue,CAAM,EAAG,OAAOve,EAC1D,OAAQue,EAAO,WAAU,CACvB,KAAKnzB,EAAW,SACd4U,EAAQ,IAAI,SACZ,MACF,KAAK5U,EAAW,aACd4U,EAAQ,SAAS,eAAe,mBAC9Bue,EAAO,KACPA,EAAO,SACPA,EAAO,QACf,EACM,MACF,KAAKnzB,EAAW,QAAS,CACvB,IAAIyF,EAAU0tB,EAAO,QAAQ,YAAW,EACxC1tB,EAAUoqB,GAAUpqB,CAAO,GAAKA,EAC5B0J,GAAM,UAAWA,IAAOA,GAAM,MAAgBA,EAAG,OACnDyF,EAAQ,SAAS,gBAAgBgb,GAAW,IAAQnqB,CAAO,EACtDmP,EAAQ,SAAS,cAAcue,EAAO,OAAO,EACpD,KACF,CACA,KAAKnzB,EAAW,KACd4U,EAAQ,SAAS,eAAeue,EAAO,IAAI,EAC3C,MACF,KAAKnzB,EAAW,QACd4U,EAAQ,SAAS,cAAcue,EAAO,IAAI,EAC1C,MACF,KAAKnzB,EAAW,MACd4U,EAAQ,SAAS,mBAAmBue,EAAO,IAAI,EAC/C,KACN,CACMhkB,GAAIikB,EAAU,IAAIxe,EAAOoE,EAAA,GAAK7J,EAAI,EACtC,GAAI,CACF2gB,IAAkB,MAAgBA,GAAe,IAAIlb,CAAK,CAC5D,OAASvT,EAAG,CACZ,CACA,OAAOuT,CACT,CACA,SAAS2b,GAAa+C,EAAO1e,EAAO,CAClC,OAAI0e,EAAM,WAAa1e,EAAM,SAAiB,GACvC0e,EAAM,WAAaA,EAAM,cAAgBA,EAAM,QAAQ,YAAA,IAAkB1e,EAAM,OACxF,CACA,SAAS8b,GAAa4C,EAAO1e,EAAOwe,EAAWG,EAAa,CAC1D,MAAMC,EAAUJ,EAAU,MAAME,CAAK,EAC/BG,EAAUF,EAAY,MAAM3e,CAAK,EACvC,OAAI4e,IAAY,IAAMA,IAAYC,EAAgB,GAC3ClD,GAAa+C,EAAO1e,CAAK,CAClC,CACA,MAAM8e,WAAmBlG,EAAe,CACtC,YAAYnhB,EAAQ,CAClB,MAAK,EACLtM,EAAc,KAAM,2BAA4B,EAAE,EAIlDA,EAAc,KAAM,kBAAmB,KAAK,wBAAwB,EACpEA,EAAc,KAAM,SAAUsF,GAAA,CAAc,EAC5CtF,EAAc,KAAM,aAAc,IAAI,EAClCsM,IACF,KAAK,OAASA,EAElB,CAIA,IAAI,gBAAiB,CACnB,OAAO,KAAK,iBACd,CACA,eAAe4hB,EAAYC,EAAgBC,EAAU,CACnD,OAAO,IAAIuF,EACb,CACA,mBAAmBtF,EAAeL,EAAUM,EAAU,CACpD,MAAMsF,EAAmB,IAAIC,GAC3BxF,EACAL,EACAM,CACN,EACI,OAAAsF,EAAiB,cAAgB,KAC1BA,CACT,CACA,cAAcluB,EAAS,CACrB,MAAMouB,EAAepuB,EAAQ,YAAW,EACxC,IAAIF,EACJ,OAAQsuB,EAAY,CAClB,IAAK,QACL,IAAK,QACHtuB,EAAU,IAAIuuB,GAAeD,CAAY,EACzC,MACF,IAAK,SACHtuB,EAAU,IAAIwuB,GAAgBF,EAAc,KAAK,MAAM,EACvD,MACF,IAAK,SACHtuB,EAAU,IAAIyuB,GAAgBH,CAAY,EAC1C,MACF,IAAK,QACHtuB,EAAU,IAAI0uB,GAAeJ,CAAY,EACzC,MACF,IAAK,SACHtuB,EAAU,IAAI2uB,GAAgBL,CAAY,EAC1C,MACF,QACEtuB,EAAU,IAAI4uB,GAAUN,CAAY,EACpC,KACR,CACI,OAAAtuB,EAAQ,cAAgB,KACjBA,CACT,CACA,cAAc+S,EAAM,CAClB,MAAM8b,EAAc,IAAIC,GAAU/b,CAAI,EACtC,OAAA8b,EAAY,cAAgB,KACrBA,CACT,CACA,mBAAmB9b,EAAM,CACvB,MAAMgc,EAAc,IAAIC,GAAejc,CAAI,EAC3C,OAAAgc,EAAY,cAAgB,KACrBA,CACT,CACA,eAAehc,EAAM,CACnB,MAAMkc,EAAW,IAAIC,GAAOnc,CAAI,EAChC,OAAAkc,EAAS,cAAgB,KAClBA,CACT,CACA,aAAc,CACZ,KAAK,WAAa,KAClB,KAAK,UAAY,KACjB,KAAK,OAAO,MAAK,CACnB,CACA,MAAO,CACL,MAAM,KAAI,EACV,KAAK,gBAAkB,KAAK,wBAC9B,CACF,CACA,MAAMZ,GAAiBtF,GACvB,MAAM6F,WAAkB5F,EAAc,CACpC,aAAc,CACZ,MAAM,GAAG,SAAS,EAClBxuB,EAAc,KAAM,YAAa,IAAI,EACrCA,EAAc,KAAM,aAAc,IAAI,CACxC,CACF,CACA,MAAM+zB,WAAuBxE,EAAmB,CAChD,CACA,MAAM4E,WAAwB3E,EAAoB,CAClD,CACA,MAAMyE,WAAwBG,EAAU,CACtC,aAAc,CACZ,MAAM,GAAG,SAAS,EAClBp0B,EAAc,KAAM,aAAc,IAAI,EACtCA,EAAc,KAAM,kBAAmB,CAAA,CAAE,CAC3C,CAIA,YAAa,CACX,OAAO,IACT,CACF,CACA,MAAMk0B,WAAuBE,EAAU,CACrC,aAAc,CACZ,MAAM,GAAG,SAAS,EAClBp0B,EAAc,KAAM,QAAS,CAAA,CAAE,CACjC,CACF,CACA,MAAMg0B,WAAwBI,EAAU,CACtC,YAAYN,EAAcxnB,EAAQ,CAChC,MAAMwnB,CAAY,EAClB9zB,EAAc,KAAM,kBAAmB,IAAI2zB,EAAY,EACvD,KAAK,gBAAgB,OAASrnB,CAChC,CACF,CACA,MAAMooB,GAAShG,GACT4F,GAAY3F,GACZ6F,GAAiB3F,GACvB,SAAS3lB,GAAgB1D,EAAS,CAChC,OAAIA,aAAmB,gBACd,OAEFA,EAAQ,QAAQ,YAAW,CACpC,CACA,SAASmvB,GAAc9f,EAAO+f,EAAOvB,EAAWwB,EAAc,CAC5D,IAAIzB,EACJ,OAAQve,EAAM,SAAQ,CACpB,KAAK7H,GAAS,cACR6nB,GAAgBA,EAAa,WAAa,SAC5CzB,EAASyB,EAAa,iBAEtBzB,EAASwB,EACTxB,EAAO,WAAave,EAAM,YAE5B,MACF,KAAK7H,GAAS,mBAAoB,CAChC,MAAM8nB,EAAejgB,EACrBue,EAASwB,EAAM,mBACbE,EAAa,KACbA,EAAa,SACbA,EAAa,QACrB,EACM,KACF,CACA,KAAK9nB,GAAS,aAAc,CAC1B,MAAM+nB,EAAclgB,EACdnP,EAAUwD,GAAgB6rB,CAAW,EAC3C3B,EAASwB,EAAM,cAAclvB,CAAO,EACpC,MAAMsvB,EAAY5B,EAClB,SAAW,CAAE,KAAAnwB,EAAM,MAAAlD,CAAK,IAAM,MAAM,KAAKg1B,EAAY,UAAU,EAC7DC,EAAU,WAAW/xB,CAAI,EAAIlD,EAE/Bg1B,EAAY,aAAeC,EAAU,WAAaD,EAAY,YAC9DA,EAAY,YAAcC,EAAU,UAAYD,EAAY,WAC5D,KACF,CACA,KAAK/nB,GAAS,UACZomB,EAASwB,EAAM,eAAe/f,EAAM,aAAe,EAAE,EACrD,MACF,KAAK7H,GAAS,mBACZomB,EAASwB,EAAM,mBAAmB/f,EAAM,IAAI,EAC5C,MACF,KAAK7H,GAAS,aACZomB,EAASwB,EAAM,cAAc/f,EAAM,aAAe,EAAE,EACpD,MAEF,KAAK7H,GAAS,uBACZomB,EAASyB,EAAa,aAAa,CAAE,KAAM,MAAM,CAAE,EACnD,MACF,QACE,OAAO,IACb,CACE,IAAIzlB,EAAKikB,EAAU,QAAQxe,CAAK,EAChC,OAAI+f,aAAiBjB,KACdvkB,IACHA,EAAK6lB,GAAa7B,EAAQwB,EAAM,cAAc,EAC9CvB,EAAU,IAAIxe,EAAOzF,CAAE,GAEzBwlB,EAAM,OAAO,IAAIxB,EAAQna,EAAA,GAAK7J,EAAI,GAE7BgkB,CACT,CACA,SAAS8B,GAAaC,EAAK9B,EAAYvH,GAAc,EAAI8I,EAAQ,IAAIjB,GAAc,CACjF,SAASyB,EAAMvgB,EAAOggB,EAAc,CAClC,MAAMzB,EAASuB,GAAc9f,EAAO+f,EAAOvB,EAAWwB,CAAY,EAClE,GAAIzB,IAAW,KAUf,IAPGyB,GAAgB,KAAO,OAASA,EAAa,YAAc,UAC5DhgB,EAAM,WAAa7H,GAAS,yBAE5B6nB,GAAgB,MAAgBA,EAAa,YAAYzB,CAAM,EAC/DA,EAAO,WAAayB,EACpBzB,EAAO,cAAgByB,GAErBhgB,EAAM,WAAa,SAAU,CAC/B,MAAMnE,EAAYmE,EAAM,gBACxBnE,GAAa0kB,EAAM1kB,EAAW0iB,CAAM,CACtC,MAAWve,EAAM,WAAa7H,GAAS,eAAiB6H,EAAM,WAAa7H,GAAS,cAAgB6H,EAAM,WAAa7H,GAAS,0BAC1H6H,EAAM,WAAa7H,GAAS,cAAgB6H,EAAM,YACpDugB,EAAMvgB,EAAM,WAAYue,CAAM,EAChCve,EAAM,WAAW,QAAS5P,GAAcmwB,EAAMnwB,EAAWmuB,CAAM,CAAC,EAEpE,CACA,OAAAgC,EAAMD,EAAK,IAAI,EACRP,CACT,CACA,SAAStvB,IAAe,CACtB,OAAO,IAAI+vB,EACb,CACA,MAAMA,EAAQ,CACZ,aAAc,CACZr1B,EAAc,KAAM,YAA6B,IAAI,GAAK,EAC1DA,EAAc,KAAM,cAA+B,IAAI,OAAS,CAClE,CACA,MAAMiC,EAAG,CACP,IAAI1B,EACJ,GAAI,CAAC0B,EAAG,MAAO,GACf,MAAM+C,GAAMzE,EAAK,KAAK,QAAQ0B,CAAC,IAAM,KAAO,OAAS1B,EAAG,GACxD,OAAOyE,GAAA,KAAAA,EAAM,EACf,CACA,QAAQA,EAAI,CACV,OAAO,KAAK,UAAU,IAAIA,CAAE,GAAK,IACnC,CACA,QAAS,CACP,OAAO,MAAM,KAAK,KAAK,UAAU,KAAI,CAAE,CACzC,CACA,QAAQ/C,EAAG,CACT,OAAO,KAAK,YAAY,IAAIA,CAAC,GAAK,IACpC,CAGA,kBAAkBA,EAAG,CACnB,MAAM+C,EAAK,KAAK,MAAM/C,CAAC,EACvB,KAAK,UAAU,OAAO+C,CAAE,EACpB/C,EAAE,YACJA,EAAE,WAAW,QAASgD,GAAc,KAAK,kBAAkBA,CAAS,CAAC,CAEzE,CACA,IAAID,EAAI,CACN,OAAO,KAAK,UAAU,IAAIA,CAAE,CAC9B,CACA,QAAQ6P,EAAO,CACb,OAAO,KAAK,YAAY,IAAIA,CAAK,CACnC,CACA,IAAI5S,EAAGmD,EAAM,CACX,MAAMJ,EAAKI,EAAK,GAChB,KAAK,UAAU,IAAIJ,EAAI/C,CAAC,EACxB,KAAK,YAAY,IAAIA,EAAGmD,CAAI,CAC9B,CACA,QAAQJ,EAAI/C,EAAG,CACb,MAAMoD,EAAU,KAAK,QAAQL,CAAE,EAC/B,GAAIK,EAAS,CACX,MAAMD,EAAO,KAAK,YAAY,IAAIC,CAAO,EACrCD,GAAM,KAAK,YAAY,IAAInD,EAAGmD,CAAI,CACxC,CACA,KAAK,UAAU,IAAIJ,EAAI/C,CAAC,CAC1B,CACA,OAAQ,CACN,KAAK,UAA4B,IAAI,IACrC,KAAK,YAA8B,IAAI,OACzC,CACF,CACA,SAASgzB,GAAapgB,EAAO7P,EAAI,CAC/B,OAAQ6P,EAAM,WAAU,CACtB,KAAK5U,EAAW,SACd,MAAO,CACL,GAAA+E,EACA,KAAM6P,EAAM,WACZ,WAAY,CAAA,CACpB,EACI,KAAK5U,EAAW,aAAc,CAC5B,MAAMguB,EAAUpZ,EAChB,MAAO,CACL,GAAA7P,EACA,KAAM6P,EAAM,WACZ,KAAMoZ,EAAQ,KACd,SAAUA,EAAQ,SAClB,SAAUA,EAAQ,QAC1B,CACI,CACA,KAAKhuB,EAAW,QACd,MAAO,CACL,GAAA+E,EACA,KAAM6P,EAAM,WACZ,QAASA,EAAM,QAAQ,YAAW,EAElC,WAAY,CAAA,EACZ,WAAY,CAAA,CACpB,EACI,KAAK5U,EAAW,KACd,MAAO,CACL,GAAA+E,EACA,KAAM6P,EAAM,WACZ,YAAaA,EAAM,aAAe,EAC1C,EACI,KAAK5U,EAAW,QACd,MAAO,CACL,GAAA+E,EACA,KAAM6P,EAAM,WACZ,YAAaA,EAAM,aAAe,EAC1C,EACI,KAAK5U,EAAW,MACd,MAAO,CACL,GAAA+E,EACA,KAAM6P,EAAM,WACZ,YAAa,EACrB,CACA,CACA,CCj2KA,MAAM1U,GAAoB,CACxB,KAAM,CAAC,aAAc,aAAc,gBAAiB,aAAa,EACjE,WAAY,CAAC,OAAQ,aAAa,EAClC,QAAS,CAAC,aAAc,gBAAiB,kBAAkB,EAC3D,iBAAkB,CAAA,CACpB,EACMC,GAAkB,CACtB,KAAM,CAAC,WAAY,aAAa,EAChC,WAAY,CAAC,cAAc,EAC3B,QAAS,CAAA,EACT,iBAAkB,CAAC,aAAa,CAClC,EACMC,GAAyB,CAAA,EAC/B,SAASC,GAAgCR,EAAK,CAC5C,IAAIS,EAAIC,EACR,MAAMC,GAAiCD,GAAMD,EAAK,YAAc,KAAO,OAAS,WAAW,OAAS,KAAO,OAASA,EAAG,aAAe,KAAO,OAASC,EAAG,KAAKD,EAAIT,CAAG,EACrK,GAAIW,GAAiC,WAAWA,CAA6B,EAC3E,OAAO,WAAWA,CAA6B,CAInD,CACA,SAASC,GAAsBZ,EAAK,CAClC,GAAIO,GAAuBP,CAAG,EAC5B,OAAOO,GAAuBP,CAAG,EACnC,MAAMa,EAAYL,GAAgCR,CAAG,GAAK,WAAWA,CAAG,EAClEc,EAAmBD,EAAU,UAC7BE,EAAgBf,KAAOK,GAAoBA,GAAkBL,CAAG,EAAI,OACpEgB,EAAuB,GAC3BD,GACAA,EAAc,MACXE,GAAa,CACZ,IAAIR,EAAIC,EACR,MAAO,IACJA,GAAMD,EAAK,OAAO,yBAAyBK,EAAkBG,CAAQ,IAAM,KAAO,OAASR,EAAG,MAAQ,MAAgBC,EAAG,SAAQ,EAAG,SAAS,eAAe,EAEjK,CACN,GAEQQ,EAAclB,KAAOM,GAAkBA,GAAgBN,CAAG,EAAI,OAC9DmB,EAAqB,GACzBD,GAAeA,EAAY,MAExBE,GAAW,CACV,IAAIX,EACJ,OAAO,OAAOK,EAAiBM,CAAM,GAAM,cAAgBX,EAAKK,EAAiBM,CAAM,IAAM,KAAO,OAASX,EAAG,SAAQ,EAAG,SAAS,eAAe,EACrJ,CACN,GAEE,GAAIO,GAAwBG,EAC1B,OAAAZ,GAAuBP,CAAG,EAAIa,EAAU,UACjCA,EAAU,UAEnB,GAAI,CACF,MAAMQ,EAAW,SAAS,cAAc,QAAQ,EAChD,SAAS,KAAK,YAAYA,CAAQ,EAClC,MAAMC,EAAMD,EAAS,cACrB,GAAI,CAACC,EAAK,OAAOT,EAAU,UAC3B,MAAMU,EAAkBD,EAAItB,CAAG,EAAE,UAEjC,OADA,SAAS,KAAK,YAAYqB,CAAQ,EAC7BE,EACEhB,GAAuBP,CAAG,EAAIuB,EADRT,CAE/B,OAAQU,EAAA,CACN,OAAOV,CACT,CACF,CACA,MAAMW,GAAyB,CAAA,EAC/B,SAASC,GAAqB1B,EAAK2B,EAAUV,EAAU,CACrD,IAAIR,EACJ,MAAMmB,EAAW,GAAG5B,CAAG,IAAI,OAAOiB,CAAQ,CAAC,GAC3C,GAAIQ,GAAuBG,CAAQ,EACjC,OAAOH,GAAuBG,CAAQ,EAAE,KACtCD,CACN,EACE,MAAME,EAAqBjB,GAAsBZ,CAAG,EAC9C8B,GAAqBrB,EAAK,OAAO,yBACrCoB,EACAZ,CACJ,IAAQ,KAAO,OAASR,EAAG,IACzB,OAAKqB,GACLL,GAAuBG,CAAQ,EAAIE,EAC5BA,EAAkB,KAAKH,CAAQ,GAFPA,EAASV,CAAQ,CAGlD,CACA,MAAMc,GAAuB,CAAA,EAC7B,SAASC,GAAmBhC,EAAK2B,EAAUP,EAAQ,CACjD,MAAMQ,EAAW,GAAG5B,CAAG,IAAI,OAAOoB,CAAM,CAAC,GACzC,GAAIW,GAAqBH,CAAQ,EAC/B,OAAOG,GAAqBH,CAAQ,EAAE,KACpCD,CACN,EAEE,MAAMM,EADqBrB,GAAsBZ,CAAG,EACToB,CAAM,EACjD,OAAI,OAAOa,GAAoB,WAAmBN,EAASP,CAAM,GACjEW,GAAqBH,CAAQ,EAAIK,EAC1BA,EAAgB,KAAKN,CAAQ,EACtC,CACA,SAASO,GAAWC,EAAG,CACrB,OAAOT,GAAqB,OAAQS,EAAG,YAAY,CACrD,CACA,SAASC,GAAWD,EAAG,CACrB,OAAOT,GAAqB,OAAQS,EAAG,YAAY,CACrD,CACA,SAASE,GAAcF,EAAG,CACxB,OAAOT,GAAqB,OAAQS,EAAG,eAAe,CACxD,CACA,SAASG,GAAYH,EAAG,CACtB,OAAOT,GAAqB,OAAQS,EAAG,aAAa,CACtD,CACA,SAASI,GAASJ,EAAGK,EAAO,CAC1B,OAAOR,GAAmB,OAAQG,EAAG,UAAU,EAAEK,CAAK,CACxD,CACA,SAASC,GAAYN,EAAG,CACtB,OAAOH,GAAmB,OAAQG,EAAG,aAAa,EAAC,CACrD,CACA,SAASO,GAAKP,EAAG,CACf,MAAI,CAACA,GAAK,EAAE,SAAUA,GAAW,KAC1BT,GAAqB,aAAcS,EAAG,MAAM,CACrD,CACA,SAASQ,GAAYR,EAAG,CACtB,OAAOA,EAAE,WACX,CACA,SAASS,GAAWT,EAAG,CACrB,MAAI,CAACA,GAAK,EAAE,eAAgBA,GAAW,KAChCT,GAAqB,UAAWS,EAAG,YAAY,CACxD,CACA,SAASU,GAAcV,EAAGW,EAAW,CACnC,OAAOpB,GAAqB,UAAWS,EAAG,eAAe,EAAEW,CAAS,CACtE,CACA,SAASC,GAAiBZ,EAAGW,EAAW,CACtC,OAAOpB,GAAqB,UAAWS,EAAG,kBAAkB,EAAEW,CAAS,CACzE,CACA,SAASE,IAAuB,CAC9B,OAAOpC,GAAsB,kBAAkB,EAAE,WACnD,CACA,SAASqC,GAAMC,EAAQC,EAAMC,EAAa,CACxC,GAAI,CACF,GAAI,EAAED,KAAQD,GACZ,MAAO,IAAM,CACb,EAEF,MAAMG,EAAWH,EAAOC,CAAI,EACtBG,EAAUF,EAAYC,CAAQ,EACpC,OAAI,OAAOC,GAAY,aACrBA,EAAQ,UAAYA,EAAQ,WAAa,CAAA,EACzC,OAAO,iBAAiBA,EAAS,CAC/B,mBAAoB,CAClB,WAAY,GACZ,MAAOD,CACjB,CACA,CAAO,GAEHH,EAAOC,CAAI,EAAIG,EACR,IAAM,CACXJ,EAAOC,CAAI,EAAIE,CACjB,CACF,OAAQ7B,EAAA,CACN,MAAO,IAAM,CACb,CACF,CACF,CACA,MAAM+B,EAAQ,CACZ,WAAArB,GACA,WAAAE,GACA,cAAAC,GACA,YAAAC,GACA,SAAAC,GACA,YAAAE,GACA,KAAAC,GACA,YAAAC,GACA,WAAAC,GACA,cAAAC,GACA,iBAAAE,GACA,iBAAkBC,GAClB,MAAAC,EACF,ECzJO,SAASuyB,GACd3vB,EACA4vB,EACAC,EAA6B,SACZ,CACjB,MAAMnpB,EAAU,CAAE,QAAS,GAAM,QAAS,EAAA,EAC1C,OAAAmpB,EAAO,iBAAiB7vB,EAAM4vB,EAAIlpB,CAAO,EAClC,IAAMmpB,EAAO,oBAAoB7vB,EAAM4vB,EAAIlpB,CAAO,CAC3D,CAGA,MAAMopB,GACJ;;8EAMSC,QAAAA,OAA4B,CACrC,IAAK,CAAA,EACL,OAAQ,CACN,eAAQ,MAAMD,EAA8B,EACrC,EACT,EACA,SAAU,CACR,eAAQ,MAAMA,EAA8B,EACrC,IACT,EACA,mBAAoB,CAClB,QAAQ,MAAMA,EAA8B,CAC9C,EACA,KAAM,CACJ,eAAQ,MAAMA,EAA8B,EACrC,EACT,EACA,OAAQ,CACN,QAAQ,MAAMA,EAA8B,CAC9C,CACF,EACI,OAAO,QAAW,aAAe,OAAO,OAAS,OAAO,UAC1DC,QAAAA,OAAU,IAAI,MAAMA,QAAAA,OAAS,CAC3B,IAAIF,EAAQ1f,EAAM6f,EAAU,CAC1B,OAAI7f,IAAS,OACX,QAAQ,MAAM2f,EAA8B,EAGvC,QAAQ,IAAID,EAAQ1f,EAAM6f,CAAQ,CAC3C,CAAA,CACD,GAII,SAASC,GACdnW,EACAoW,EACAxpB,EAA2B,CAAA,EAC3B,CACA,IAAIypB,EAAgD,KAChDC,EAAW,EACf,OAAO,YAAa/b,EAAW,CAC7B,MAAMgc,EAAM,KAAK,IAAA,EACb,CAACD,GAAY1pB,EAAQ,UAAY,KACnC0pB,EAAWC,GAEb,MAAMC,EAAYJ,GAAQG,EAAMD,GAE1BG,EAAU,KACZD,GAAa,GAAKA,EAAYJ,GAC5BC,IACF,aAAaA,CAAO,EACpBA,EAAU,MAEZC,EAAWC,EACXvW,EAAK,MAAMyW,EAASlc,CAAI,GACf,CAAC8b,GAAWzpB,EAAQ,WAAa,KAC1CypB,EAAU,WAAW,IAAM,CACzBC,EAAW1pB,EAAQ,UAAY,GAAQ,EAAI,KAAK,IAAA,EAChDypB,EAAU,KACVrW,EAAK,MAAMyW,EAASlc,CAAI,CAC1B,EAAGic,CAAS,EAEhB,CACF,CAEO,SAASE,GACdX,EACA11B,EACAs2B,EACAC,EACAj1B,EAAM,OACQ,CACd,MAAM+B,EAAW/B,EAAI,OAAO,yBAAyBo0B,EAAQ11B,CAAG,EAChE,OAAAsB,EAAI,OAAO,eACTo0B,EACA11B,EACAu2B,EACID,EACA,CACE,IAAIr2B,EAAO,CAET,WAAW,IAAM,CACfq2B,EAAE,IAAK,KAAK,KAAMr2B,CAAK,CACzB,EAAG,CAAC,EACAoD,GAAYA,EAAS,KACvBA,EAAS,IAAI,KAAK,KAAMpD,CAAK,CAEjC,CAAA,CACF,EAEC,IAAMo2B,GAAWX,EAAQ11B,EAAKqD,GAAY,CAAA,EAAI,EAAI,CAC3D,CAGA,IAAImzB,GAAe,KAAK,IAEpB,iBAAiC,KAAK,KAAK,IAAA,EAAM,SAAA,CAAU,IAE7DA,GAAe,IAAM,IAAI,KAAA,EAAO,QAAA,GAI3B,SAASC,GAAgBn1B,EAAa,aAC3C,MAAMqI,EAAMrI,EAAI,SAChB,MAAO,CACL,KAAMqI,EAAI,iBACNA,EAAI,iBAAiB,WACrBrI,EAAI,cAAgB,OACpBA,EAAI,YACJqI,EAAI,gBAAgB,aACnBA,GAAA,KAAA,OAAAA,EAAK,SAAQ0rB,EAAAA,EAAI,cAAc1rB,EAAI,IAAI,IAA1B0rB,KAAAA,OAAAA,EAA6B,eAC3C30B,EAAAiJ,GAAA,KAAA,OAAAA,EAAK,OAAL,KAAA,OAAAjJ,EAAW,aACX,EACJ,IAAKiJ,EAAI,iBACLA,EAAI,iBAAiB,UACrBrI,EAAI,cAAgB,OACpBA,EAAI,aACJqI,GAAA,KAAA,OAAAA,EAAK,gBAAgB,aACpBA,GAAA,KAAA,OAAAA,EAAK,SAAQ0rB,EAAAA,EAAI,cAAc1rB,EAAI,IAAI,IAA1B0rB,KAAAA,OAAAA,EAA6B,cAC3CqB,EAAA/sB,GAAA,KAAA,OAAAA,EAAK,OAAL,KAAA,OAAA+sB,EAAW,YACX,CAAA,CAER,CAEO,SAASC,IAA0B,CACxC,OACE,OAAO,aACN,SAAS,iBAAmB,SAAS,gBAAgB,cACrD,SAAS,MAAQ,SAAS,KAAK,YAEpC,CAEO,SAASC,IAAyB,CACvC,OACE,OAAO,YACN,SAAS,iBAAmB,SAAS,gBAAgB,aACrD,SAAS,MAAQ,SAAS,KAAK,WAEpC,CAQO,SAASC,GAAqBxxB,EAAuC,CAC1E,OAAKA,EAIHA,EAAK,WAAaA,EAAK,aAClBA,EACDgwB,EAAI,cAAchwB,CAAI,EALnB,IAOX,CAUO,SAASyxB,GACdzxB,EACA6F,EACAC,EACAI,EACS,CACT,GAAI,CAAClG,EACH,MAAO,GAET,MAAMoF,EAAKosB,GAAqBxxB,CAAI,EAEpC,GAAI,CAACoF,EACH,MAAO,GAGT,GAAI,CACF,GAAI,OAAOS,GAAe,UAExB,GADIT,EAAG,UAAU,SAASS,CAAU,GAChCK,GAAkBd,EAAG,QAAQ,IAAMS,CAAU,IAAM,KAAM,MAAO,WAEhEI,GAAkBb,EAAIS,EAAYK,CAAc,EAAG,MAAO,EAElE,OAAS/J,EAAG,CAEZ,CACA,MAAI,GAAA2J,IACEV,EAAG,QAAQU,CAAa,GACxBI,GAAkBd,EAAG,QAAQU,CAAa,IAAM,MAGxD,CAEO,SAAS4rB,GAAa50B,EAASqK,EAAyB,CAC7D,OAAOA,EAAO,MAAMrK,CAAC,IAAM,EAC7B,CAEO,SAAS60B,GACd70B,EACAqK,EACA+C,EACS,CACT,OAAKpN,EAAc,UAAY,SAAWoN,EAAe,mBAIhD,GAIF/C,EAAO,MAAMrK,CAAC,IAAM+G,EAC7B,CAEO,SAAS+tB,GAAkBvB,EAAclpB,EAAyB,CACvE,GAAI/I,GAAaiyB,CAAM,EACrB,MAAO,GAET,MAAMxwB,EAAKsH,EAAO,MAAMkpB,CAAM,EAC9B,GAAI,CAAClpB,EAAO,IAAItH,CAAE,EAChB,MAAO,GAET,MAAMoI,EAAS+nB,EAAI,WAAWK,CAAM,EACpC,OAAIpoB,GAAUA,EAAO,WAAaooB,EAAO,cAChC,GAGJpoB,EAGE2pB,GAAkB3pB,EAAQd,CAAM,EAF9B,EAGX,CAEO,SAAS0qB,GACdxP,EACqB,CACrB,MAAO,EAASA,EAAqB,cACvC,CAEO,SAASyP,GAAS71B,EAAM,OAAQ,CACjC,aAAcA,GAAO,CAACA,EAAI,SAAS,UAAU,UAE/CA,EAAI,SAAS,UAAU,QAAU,MAAM,UACpC,SAGD,iBAAkBA,GAAO,CAACA,EAAI,aAAa,UAAU,UAEvDA,EAAI,aAAa,UAAU,QAAU,MAAM,UACxC,QAEP,CAQO,SAAS81B,GAAoBC,EAA2C,CAC7E,MAAMC,EAA4C,CAAA,EAC5CC,EAAa,CACjBC,EACAlqB,IACgB,CAChB,MAAMmqB,EAA0B,CAC9B,MAAOD,EACP,OAAAlqB,EACA,SAAU,CAAA,CAAC,EAEb,OAAAgqB,EAAaE,EAAE,KAAK,EAAE,EAAIC,EACnBA,CACT,EAEMC,EAAgC,CAAA,EACtC,UAAWC,KAAYN,EAAO,CAC5B,KAAM,CAAE,OAAAO,EAAQ,SAAAC,CAAA,EAAaF,EAC7B,GAAIC,GAAUA,KAAUN,EAAc,CACpC,MAAMQ,EAAaR,EAAaM,CAAM,EACtC,GAAIE,EAAW,OAAQ,CACrB,MAAMC,EAAMD,EAAW,OAAO,SAAS,QAAQA,CAAU,EACzDA,EAAW,OAAO,SAAS,OACzBC,EACA,EACAR,EAAWI,EAAUG,EAAW,MAAM,CAAA,CAE1C,KAAO,CACL,MAAMC,EAAML,EAAe,QAAQI,CAAU,EAC7CJ,EAAe,OAAOK,EAAK,EAAGR,EAAWI,EAAU,IAAI,CAAC,CAC1D,CACA,QACF,CACA,GAAIE,KAAYP,EAAc,CAC5B,MAAMU,EAAeV,EAAaO,CAAQ,EAC1CG,EAAa,SAAS,KAAKT,EAAWI,EAAUK,CAAY,CAAC,EAC7D,QACF,CACAN,EAAe,KAAKH,EAAWI,EAAU,IAAI,CAAC,CAChD,CAEA,OAAOD,CACT,CAEO,SAASO,GACdC,EACA/d,EACA,CACAA,EAAG+d,EAAK,KAAK,EAMb,QAASnqB,EAAImqB,EAAK,SAAS,OAAS,EAAGnqB,GAAK,EAAGA,IAC7CkqB,GAAmBC,EAAK,SAASnqB,CAAC,EAAGoM,CAAE,CAE3C,CAOO,SAASge,GACdh2B,EACAqK,EACS,CACT,MAAO,GAAQrK,EAAE,WAAa,UAAYqK,EAAO,QAAQrK,CAAC,EAC5D,CAEO,SAASi2B,GACdj2B,EACAqK,EACS,CACT,MAAO,GACLrK,EAAE,WAAa,QACbA,EAAE,WAAaA,EAAE,cAChBA,EAAkB,cAClBA,EAAkB,aAAa,KAAK,IAAM,cAC3CqK,EAAO,QAAQrK,CAAC,EAEtB,CAEO,SAASk2B,GACdhzB,EACAizB,EACmB,SACnB,MAAMC,GAAe73B,GAAAD,EAAA4E,EAAK,gBAAL,KAAA,OAAA5E,EAAoB,cAApB,KAAA,OAAAC,EAAiC,aACtD,GAAI,CAAC63B,GAAgBA,IAAiBD,EACpC,MAAO,CACL,EAAG,EACH,EAAG,EACH,cAAe,EACf,cAAe,CAAA,EAInB,MAAME,EAAiBD,EAAa,sBAAA,EAC9BE,EAAqBJ,GAAiBE,EAAcD,CAAU,EAE9DI,EAAgBF,EAAe,OAASD,EAAa,aAC3D,MAAO,CACL,EACEC,EAAe,EAAIC,EAAmB,cACtCA,EAAmB,EACrB,EACED,EAAe,EAAIC,EAAmB,cACtCA,EAAmB,EACrB,cAAAC,EACA,cAAeD,EAAmB,cAAgBC,CAAA,CAEtD,CAEO,SAASC,GACdx2B,EACqC,CACrC,OAAKA,EACDA,aAAairB,IAAc,eAAgBjrB,EACtC,EAAQA,EAAE,WAEZ,EAAQkzB,EAAI,WAAWlzB,CAAuB,EAJtC,EAKjB,CAEO,SAASy2B,GACdx0B,EACA8S,EACiB,CACjB,MAAMlT,EAAOI,EAAM8S,EAAS,CAAC,CAAC,EAC9B,OAAIA,EAAS,SAAW,EACflT,EAEA40B,GACJ50B,EAAK,SAASkT,EAAS,CAAC,CAAC,EAAsB,SAChDA,EAAS,MAAM,CAAC,CAAA,CAGtB,CAEO,SAAS2hB,GAAqBC,EAAuB,CAC1D,MAAMC,EAAY,CAAC,GAAGD,CAAW,EAC3Bv1B,EAAQw1B,EAAU,IAAA,EACxB,MAAO,CAAE,UAAAA,EAAW,MAAAx1B,CAAA,CACtB,CAOO,SAASy1B,GAAoBC,EAA2C,CAC7E,MAAMC,EAAA,IAAY,IACZC,EAAkC,CAAA,EAExC,QAASprB,EAAIkrB,EAAU,OAAQlrB,KAAO,CACpC,MAAM4pB,EAAWsB,EAAUlrB,CAAC,EACvBmrB,EAAM,IAAIvB,EAAS,EAAE,IACxBwB,EAAgB,KAAKxB,CAAQ,EAC7BuB,EAAM,IAAIvB,EAAS,EAAE,EAEzB,CAEA,OAAOwB,CACT,CAEO,MAAMC,EAAiB,CAAvB,aAAA,CACGl5B,EAAA,KAAA,KAAK,CAAA,EACLA,EAAA,KAAA,aAAA,IAAiB,OAAA,EACjBA,EAAA,KAAA,aAAA,IAAiB,GAAA,CAAA,CAEzB,MAAM+N,EAAmC,OACvC,OAAOxN,EAAA,KAAK,WAAW,IAAIwN,CAAU,IAA9B,KAAAxN,EAAmC,EAC5C,CAEA,IAAIwN,EAAoC,CACtC,OAAO,KAAK,WAAW,IAAIA,CAAU,CACvC,CAKA,IAAIA,EAA2B/I,EAAqB,CAClD,GAAI,KAAK,IAAI+I,CAAU,EAAG,OAAO,KAAK,MAAMA,CAAU,EACtD,IAAIorB,EACJ,OAAIn0B,IAAO,OACTm0B,EAAQ,KAAK,KACRA,EAAQn0B,EACf,KAAK,WAAW,IAAI+I,EAAYorB,CAAK,EACrC,KAAK,WAAW,IAAIA,EAAOprB,CAAU,EAC9BorB,CACT,CAEA,SAASn0B,EAAkC,CACzC,OAAO,KAAK,WAAW,IAAIA,CAAE,GAAK,IACpC,CAEA,OAAc,CACZ,KAAK,WAAA,IAAiB,QACtB,KAAK,WAAA,IAAiB,IACtB,KAAK,GAAK,CACZ,CAEA,YAAqB,CACnB,OAAO,KAAK,IACd,CACF,CAKO,SAASo0B,GAAcn3B,EAAyB,OACrD,IAAIo3B,EAA6B,KACjC,MACE,gBAAiBp3B,KACjBkzB,EAAAA,EAAI,YAAYlzB,CAAC,IAAjBkzB,KAAAA,OAAAA,EAAoB,YAAa,KAAK,wBACtCA,EAAI,KAAKA,EAAI,YAAYlzB,CAAC,CAAe,IAEzCo3B,EAAalE,EAAI,KAAKA,EAAI,YAAYlzB,CAAC,CAAe,GACjDo3B,CACT,CAKO,SAASC,GAAkBr3B,EAAe,CAC/C,IAAIs3B,EAAuBt3B,EAEvBo3B,EAEJ,KAAQA,EAAaD,GAAcG,CAAc,GAC/CA,EAAiBF,EAEnB,OAAOE,CACT,CAEO,SAASC,GAAgBv3B,EAAkB,CAChD,MAAMwH,EAAMxH,EAAE,cACd,GAAI,CAACwH,EAAK,MAAO,GACjB,MAAM4vB,EAAaC,GAAkBr3B,CAAC,EACtC,OAAOkzB,EAAI,SAAS1rB,EAAK4vB,CAAU,CACrC,CAEO,SAASI,GAAMx3B,EAAkB,CACtC,MAAMwH,EAAMxH,EAAE,cACd,OAAKwH,EACE0rB,EAAI,SAAS1rB,EAAKxH,CAAC,GAAKu3B,GAAgBv3B,CAAC,EAD/B,EAEnB,kpBCpiBG,IAACy3B,GAA8BC,IAChCA,EAAWA,EAAW,iBAAsB,CAAC,EAAI,mBACjDA,EAAWA,EAAW,KAAU,CAAC,EAAI,OACrCA,EAAWA,EAAW,aAAkB,CAAC,EAAI,eAC7CA,EAAWA,EAAW,oBAAyB,CAAC,EAAI,sBACpDA,EAAWA,EAAW,KAAU,CAAC,EAAI,OACrCA,EAAWA,EAAW,OAAY,CAAC,EAAI,SACvCA,EAAWA,EAAW,OAAY,CAAC,EAAI,SAChCA,IACND,GAAa,CAAA,CAAE,EACdE,GAAsCC,IACxCA,EAAmBA,EAAmB,SAAc,CAAC,EAAI,WACzDA,EAAmBA,EAAmB,UAAe,CAAC,EAAI,YAC1DA,EAAmBA,EAAmB,iBAAsB,CAAC,EAAI,mBACjEA,EAAmBA,EAAmB,OAAY,CAAC,EAAI,SACvDA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,iBAC/DA,EAAmBA,EAAmB,MAAW,CAAC,EAAI,QACtDA,EAAmBA,EAAmB,UAAe,CAAC,EAAI,YAC1DA,EAAmBA,EAAmB,iBAAsB,CAAC,EAAI,mBACjEA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,iBAC/DA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,iBAC/DA,EAAmBA,EAAmB,KAAU,EAAE,EAAI,OACtDA,EAAmBA,EAAmB,IAAS,EAAE,EAAI,MACrDA,EAAmBA,EAAmB,KAAU,EAAE,EAAI,OACtDA,EAAmBA,EAAmB,iBAAsB,EAAE,EAAI,mBAClEA,EAAmBA,EAAmB,UAAe,EAAE,EAAI,YAC3DA,EAAmBA,EAAmB,kBAAuB,EAAE,EAAI,oBACnEA,EAAmBA,EAAmB,cAAmB,EAAE,EAAI,gBACxDA,IACND,GAAqB,CAAA,CAAE,EACtBE,GAAsCC,IACxCA,EAAmBA,EAAmB,QAAa,CAAC,EAAI,UACxDA,EAAmBA,EAAmB,UAAe,CAAC,EAAI,YAC1DA,EAAmBA,EAAmB,MAAW,CAAC,EAAI,QACtDA,EAAmBA,EAAmB,YAAiB,CAAC,EAAI,cAC5DA,EAAmBA,EAAmB,SAAc,CAAC,EAAI,WACzDA,EAAmBA,EAAmB,MAAW,CAAC,EAAI,QACtDA,EAAmBA,EAAmB,KAAU,CAAC,EAAI,OACrDA,EAAmBA,EAAmB,WAAgB,CAAC,EAAI,aAC3DA,EAAmBA,EAAmB,mBAAwB,CAAC,EAAI,qBACnEA,EAAmBA,EAAmB,SAAc,CAAC,EAAI,WACzDA,EAAmBA,EAAmB,YAAiB,EAAE,EAAI,cACtDA,IACND,GAAqB,CAAA,CAAE,EACtBE,IAAiCC,IACnCA,EAAcA,EAAc,MAAW,CAAC,EAAI,QAC5CA,EAAcA,EAAc,IAAS,CAAC,EAAI,MAC1CA,EAAcA,EAAc,MAAW,CAAC,EAAI,QACrCA,IACND,IAAgB,CAAA,CAAE,EACjBE,IAAkCC,IACpCA,EAAeA,EAAe,IAAI,EAAI,CAAC,EAAI,KAC3CA,EAAeA,EAAe,MAAW,CAAC,EAAI,QAC9CA,EAAeA,EAAe,OAAY,CAAC,EAAI,SACxCA,IACND,IAAiB,CAAA,CAAE,EAClBE,IAAsCC,IACxCA,EAAmBA,EAAmB,KAAU,CAAC,EAAI,OACrDA,EAAmBA,EAAmB,MAAW,CAAC,EAAI,QACtDA,EAAmBA,EAAmB,OAAY,CAAC,EAAI,SACvDA,EAAmBA,EAAmB,aAAkB,CAAC,EAAI,eAC7DA,EAAmBA,EAAmB,WAAgB,CAAC,EAAI,aACpDA,IACND,IAAqB,CAAA,CAAE,EACtBE,GAAmCC,IACrCA,EAAgB,MAAW,QAC3BA,EAAgB,MAAW,QAC3BA,EAAgB,OAAY,SAC5BA,EAAgB,OAAY,SAC5BA,EAAgB,OAAY,SAC5BA,EAAgB,sBAA2B,yBAC3CA,EAAgB,oBAAyB,wBACzCA,EAAgB,kBAAuB,sBACvCA,EAAgB,UAAe,aAC/BA,EAAgB,QAAa,WAC7BA,EAAgB,iBAAsB,oBACtCA,EAAgB,UAAe,aAC/BA,EAAgB,YAAiB,eACjCA,EAAgB,MAAW,QAC3BA,EAAgB,YAAiB,eACjCA,EAAgB,SAAc,YAC9BA,EAAgB,QAAa,UACtBA,IACND,GAAkB,CAAA,CAAE,EACnBttB,IAA6B9M,IAC/BA,EAAUA,EAAU,SAAc,CAAC,EAAI,WACvCA,EAAUA,EAAU,aAAkB,CAAC,EAAI,eAC3CA,EAAUA,EAAU,QAAa,CAAC,EAAI,UACtCA,EAAUA,EAAU,KAAU,CAAC,EAAI,OACnCA,EAAUA,EAAU,MAAW,CAAC,EAAI,QACpCA,EAAUA,EAAU,QAAa,CAAC,EAAI,UAC/BA,IACN8M,IAAY,CAAA,CAAE,EC/CjB,SAASwtB,GAAmBv4B,EAAmD,CAC7E,MAAO,SAAUA,CACnB,CAEA,MAAMw4B,EAAiB,CAAvB,aAAA,CACSz6B,EAAA,KAAA,SAAS,CAAA,EACTA,EAAA,KAAA,OAAoC,IAAA,EACpCA,EAAA,KAAA,OAAoC,IAAA,CAAA,CAEpC,IAAIgX,EAAkB,CAC3B,GAAIA,GAAY,KAAK,OACnB,MAAM,IAAI,MAAM,gCAAgC,EAGlD,IAAIuI,EAAU,KAAK,KACnB,QAASlc,EAAQ,EAAGA,EAAQ2T,EAAU3T,IACpCkc,GAAUA,GAAA,KAAA,OAAAA,EAAS,OAAQ,KAE7B,OAAOA,CACT,CAEO,QAAQtd,EAAS,CACtB,MAAMkD,EAA6B,CACjC,MAAOlD,EACP,SAAU,KACV,KAAM,IAAA,EAGR,GADCA,EAAuB,KAAOkD,EAC3BlD,EAAE,iBAAmBu4B,GAAmBv4B,EAAE,eAAe,EAAG,CAC9D,MAAMsd,EAAUtd,EAAE,gBAAgB,KAAK,KACvCkD,EAAK,KAAOoa,EACZpa,EAAK,SAAWlD,EAAE,gBAAgB,KAClCA,EAAE,gBAAgB,KAAK,KAAOkD,EAC1Boa,IACFA,EAAQ,SAAWpa,EAEvB,SACElD,EAAE,aACFu4B,GAAmBv4B,EAAE,WAAW,GAChCA,EAAE,YAAY,KAAK,SACnB,CACA,MAAMsd,EAAUtd,EAAE,YAAY,KAAK,SACnCkD,EAAK,SAAWoa,EAChBpa,EAAK,KAAOlD,EAAE,YAAY,KAC1BA,EAAE,YAAY,KAAK,SAAWkD,EAC1Boa,IACFA,EAAQ,KAAOpa,EAEnB,MACM,KAAK,OACP,KAAK,KAAK,SAAWA,GAEvBA,EAAK,KAAO,KAAK,KACjB,KAAK,KAAOA,EAEVA,EAAK,OAAS,OAChB,KAAK,KAAOA,GAEd,KAAK,QACP,CAEO,WAAWlD,EAAqB,CACrC,MAAMsd,EAAUtd,EAAE,KACb,KAAK,OAILsd,EAAQ,UAQXA,EAAQ,SAAS,KAAOA,EAAQ,KAC5BA,EAAQ,KACVA,EAAQ,KAAK,SAAWA,EAAQ,SAEhC,KAAK,KAAOA,EAAQ,WAXtB,KAAK,KAAOA,EAAQ,KAChB,KAAK,KACP,KAAK,KAAK,SAAW,KAErB,KAAK,KAAO,MAUZtd,EAAE,MACJ,OAAQA,EAAyC,KAEnD,KAAK,SACP,CACF,CAEA,MAAMy4B,GAAU,CAAC11B,EAAY2yB,IAAqB,GAAG3yB,CAAE,IAAI2yB,CAAQ,GAKnE,MAAqBgD,EAAe,CAApC,aAAA,CACU36B,EAAA,KAAA,SAAS,EAAA,EACTA,EAAA,KAAA,SAAS,EAAA,EAETA,EAAA,KAAA,QAAsB,CAAA,CAAA,EACtBA,EAAA,KAAA,aAAgC,CAAA,CAAA,EAChCA,EAAA,KAAA,eAAA,IAAmB,OAAA,EACnBA,EAAA,KAAA,UAAiC,CAAA,CAAA,EACjCA,EAAA,KAAA,aAAqB,CAAA,CAAA,EAErBA,EAAA,KAAA,WAAiC,CAAA,CAAA,EAmBjCA,EAAA,KAAA,WAAA,IAAe,GAAA,EACfA,EAAA,KAAA,WAAA,IAAe,GAAA,EACfA,EAAA,KAAA,aAAA,IAAiB,GAAA,EACjBA,EAAA,KAAA,sBAAA,IAA0B,GAAA,EAE1BA,EAAA,KAAA,YAAA,EACAA,EAAA,KAAA,YAAA,EACAA,EAAA,KAAA,eAAA,EACAA,EAAA,KAAA,eAAA,EACAA,EAAA,KAAA,kBAAA,EACAA,EAAA,KAAA,kBAAA,EACAA,EAAA,KAAA,kBAAA,EACAA,EAAA,KAAA,YAAA,EACAA,EAAA,KAAA,aAAA,EACAA,EAAA,KAAA,iBAAA,EACAA,EAAA,KAAA,cAAA,EACAA,EAAA,KAAA,cAAA,EACAA,EAAA,KAAA,gBAAA,EACAA,EAAA,KAAA,gBAAA,EACAA,EAAA,KAAA,KAAA,EACAA,EAAA,KAAA,QAAA,EACAA,EAAA,KAAA,eAAA,EACAA,EAAA,KAAA,mBAAA,EACAA,EAAA,KAAA,kBAAA,EACAA,EAAA,KAAA,eAAA,EACAA,EAAA,KAAA,sBAAA,EACAA,EAAA,KAAA,eAAA,EAsEDA,EAAA,KAAA,mBAAoB+4B,GAAgC,CACzDA,EAAU,QAAQ,KAAK,eAAe,EACtC,KAAK,KAAA,CACP,CAAA,EAEO/4B,EAAA,KAAA,OAAO,IAAM,CAClB,GAAI,KAAK,QAAU,KAAK,OACtB,OAMF,MAAM46B,EAA4B,CAAA,EAC5BC,EAAA,IAAe,IAMfC,EAAU,IAAIL,GACdM,EAAa94B,GAA2B,CAC5C,IAAI+4B,EAAkB/4B,EAClBy1B,EAAwB1uB,GAC5B,KAAO0uB,IAAW1uB,IAChBgyB,EAAKA,GAAMA,EAAG,YACdtD,EAASsD,GAAM,KAAK,OAAO,MAAMA,CAAE,EAErC,OAAOtD,CACT,EACMuD,EAAWh5B,GAAY,CAC3B,MAAMmL,EAAS+nB,EAAI,WAAWlzB,CAAC,EAC/B,GAAI,CAACmL,GAAU,CAACqsB,GAAMx3B,CAAC,GAAMmL,EAAmB,UAAY,WAC1D,OAEF,MAAMuqB,EAAWp0B,GAAa6J,CAAM,EAChC,KAAK,OAAO,MAAMgsB,GAAcn3B,CAAC,CAAC,EAClC,KAAK,OAAO,MAAMmL,CAAM,EACtBsqB,EAASqD,EAAU94B,CAAC,EAC1B,GAAI01B,IAAa,IAAMD,IAAW,GAChC,OAAOoD,EAAQ,QAAQ74B,CAAC,EAE1B,MAAMmN,EAAKO,GAAoB1N,EAAG,CAChC,IAAK,KAAK,IACV,OAAQ,KAAK,OACb,WAAY,KAAK,WACjB,cAAe,KAAK,cACpB,cAAe,KAAK,cACpB,iBAAkB,KAAK,iBACvB,UAAW,GACX,kBAAmB,GACnB,iBAAkB,KAAK,iBACvB,iBAAkB,KAAK,iBACvB,WAAY,KAAK,WACjB,YAAa,KAAK,YAClB,eAAgB,KAAK,eACrB,eAAgB,KAAK,eACrB,aAAc,KAAK,aACnB,aAAc,KAAK,aACnB,YAAci5B,GAAa,CACrBjD,GAAmBiD,EAAU,KAAK,MAAM,GAC1C,KAAK,cAAc,UAAUA,CAA6B,EAExDhD,GAAuBgD,EAAU,KAAK,MAAM,GAC9C,KAAK,kBAAkB,iBACrBA,CAAA,EAGAzC,GAAcx2B,CAAC,GAEjB,KAAK,iBAAiB,cAAckzB,EAAI,WAAWlzB,CAAC,EAAI,KAAK,GAAG,CAEpE,EACA,aAAc,CAACk5B,EAAQC,IAAY,CACjC,KAAK,cAAc,aAAaD,EAAQC,CAAO,EAC/C,KAAK,iBAAiB,oBAAoBD,CAAM,CAClD,EACA,iBAAkB,CAAClvB,EAAMmvB,IAAY,CACnC,KAAK,kBAAkB,kBAAkBnvB,EAAMmvB,CAAO,CACxD,CAAA,CACD,EACGhsB,IACFwrB,EAAK,KAAK,CACR,SAAAjD,EACA,OAAAD,EACA,KAAMtoB,CAAA,CACP,EACDyrB,EAAS,IAAIzrB,EAAG,EAAE,EAEtB,EAEA,KAAO,KAAK,WAAW,QACrB,KAAK,OAAO,kBAAkB,KAAK,WAAW,MAAA,CAAQ,EAGxD,UAAWnN,KAAK,KAAK,SAEjBo5B,GAAgB,KAAK,oBAAqBp5B,EAAG,KAAK,MAAM,GACxD,CAAC,KAAK,SAAS,IAAIkzB,EAAI,WAAWlzB,CAAC,CAAE,GAIvCg5B,EAAQh5B,CAAC,EAGX,UAAWA,KAAK,KAAK,SAEjB,CAACq5B,GAAgB,KAAK,WAAYr5B,CAAC,GACnC,CAACo5B,GAAgB,KAAK,oBAAqBp5B,EAAG,KAAK,MAAM,GAGhDq5B,GAAgB,KAAK,SAAUr5B,CAAC,EADzCg5B,EAAQh5B,CAAC,EAIT,KAAK,WAAW,IAAIA,CAAC,EAIzB,IAAItB,EAAyC,KAC7C,KAAOm6B,EAAQ,QAAQ,CACrB,IAAI31B,EAAoC,KACxC,GAAIxE,EAAW,CACb,MAAMg3B,EAAW,KAAK,OAAO,MAAMxC,EAAI,WAAWx0B,EAAU,KAAK,CAAC,EAC5D+2B,EAASqD,EAAUp6B,EAAU,KAAK,EACpCg3B,IAAa,IAAMD,IAAW,KAChCvyB,EAAOxE,EAEX,CACA,GAAI,CAACwE,EAAM,CACT,IAAIo2B,EAAWT,EAAQ,KACvB,KAAOS,GAAU,CACf,MAAM/N,EAAQ+N,EAGd,GAFAA,EAAWA,EAAS,SAEhB/N,EAAO,CACT,MAAMmK,EAAW,KAAK,OAAO,MAAMxC,EAAI,WAAW3H,EAAM,KAAK,CAAC,EAG9D,GAFeuN,EAAUvN,EAAM,KAAK,IAErB,GAAI,SAAA,GAEVmK,IAAa,GAAI,CACxBxyB,EAAOqoB,EACP,KACF,KAEK,CACH,MAAMgO,EAAgBhO,EAAM,MACtBpgB,EAAS+nB,EAAI,WAAWqG,CAAa,EAE3C,GAAIpuB,GAAUA,EAAO,WAAa,KAAK,uBAAwB,CAC7D,MAAMisB,EAAalE,EAAI,KAAK/nB,CAAoB,EAEhD,GADiB,KAAK,OAAO,MAAMisB,CAAU,IAC5B,GAAI,CACnBl0B,EAAOqoB,EACP,KACF,CACF,CACF,CACF,CACF,CACF,CACA,GAAI,CAACroB,EAAM,CAMT,KAAO21B,EAAQ,MACbA,EAAQ,WAAWA,EAAQ,KAAK,KAAK,EAEvC,KACF,CACAn6B,EAAYwE,EAAK,SACjB21B,EAAQ,WAAW31B,EAAK,KAAK,EAC7B81B,EAAQ91B,EAAK,KAAK,CACpB,CAEA,MAAMs2B,EAAU,CACd,MAAO,KAAK,MACT,IAAK51B,GAAS,CACb,MAAM5D,EAAI4D,EAAK,KACTuH,EAAS+nB,EAAI,WAAWlzB,CAAC,EAC/B,OAAImL,GAAWA,EAAmB,UAAY,YAE5C,KAAK,yBAAyBA,CAA6B,EAEtD,CACL,GAAI,KAAK,OAAO,MAAMnL,CAAC,EACvB,MAAO4D,EAAK,KAAA,CAEhB,CAAC,EAEA,OAAQA,GAAS,CAACg1B,EAAS,IAAIh1B,EAAK,EAAE,CAAC,EAEvC,OAAQA,GAAS,KAAK,OAAO,IAAIA,EAAK,EAAE,CAAC,EAC5C,WAAY,KAAK,WACd,IAAKspB,GAAc,CAClB,KAAM,CAAE,WAAAxhB,CAAA,EAAewhB,EACvB,GAAI,OAAOxhB,EAAW,OAAU,SAAU,CACxC,MAAM+tB,EAAY,KAAK,UAAUvM,EAAU,SAAS,EAC9CwM,EAAiB,KAAK,UAAUxM,EAAU,gBAAgB,EAG5DuM,EAAU,OAAS/tB,EAAW,MAAM,SAInC+tB,EAAYC,GAAgB,MAAM,MAAM,EAAE,SAC3ChuB,EAAW,MAAM,MAAM,MAAM,EAAE,SAE/BA,EAAW,MAAQwhB,EAAU,UAGnC,CACA,MAAO,CACL,GAAI,KAAK,OAAO,MAAMA,EAAU,IAAI,EACpC,WAAAxhB,CAAA,CAEJ,CAAC,EAEA,OAAQwhB,GAAc,CAAC0L,EAAS,IAAI1L,EAAU,EAAE,CAAC,EAEjD,OAAQA,GAAc,KAAK,OAAO,IAAIA,EAAU,EAAE,CAAC,EACtD,QAAS,KAAK,QACd,KAAAyL,CAAA,EAIA,CAACa,EAAQ,MAAM,QACf,CAACA,EAAQ,WAAW,QACpB,CAACA,EAAQ,QAAQ,QACjB,CAACA,EAAQ,KAAK,SAMhB,KAAK,MAAQ,CAAA,EACb,KAAK,WAAa,CAAA,EAClB,KAAK,aAAA,IAAmB,QACxB,KAAK,QAAU,CAAA,EACf,KAAK,SAAA,IAAe,IACpB,KAAK,SAAA,IAAe,IACpB,KAAK,WAAA,IAAiB,IACtB,KAAK,oBAAA,IAA0B,IAC/B,KAAK,SAAW,CAAA,EAEhB,KAAK,WAAWA,CAAO,EACzB,CAAA,EAEQz7B,EAAA,KAAA,2BAA4B47B,GAAkC,CACpE,IAAIrP,EAAO,KAAK,aAAa,IAAIqP,CAAQ,EACpCrP,IACHA,EAAO,CACL,KAAMqP,EACN,WAAY,CAAA,EACZ,UAAW,CAAA,EACX,iBAAkB,CAAA,CAAC,EAErB,KAAK,WAAW,KAAKrP,CAAI,EACzB,KAAK,aAAa,IAAIqP,EAAUrP,CAAI,GAEtCA,EAAK,WAAW,MAAQ,MAAM,KAC5B4I,EAAI,WAAWyG,CAAQ,EACtBC,GAAO1G,EAAI,YAAY0G,CAAE,GAAK,EAAA,EAC/B,KAAK,EAAE,CACX,CAAA,EAEQ77B,EAAA,KAAA,kBAAmBs3B,GAAsB,CAC/C,GAAI,CAAAR,GAAUQ,EAAE,OAAQ,KAAK,OAAQ,KAAK,cAAc,EAGxD,OAAQA,EAAE,KAAA,CACR,IAAK,gBAAiB,CACpB,MAAMv3B,EAAQo1B,EAAI,YAAYmC,EAAE,MAAM,EAGpC,CAACV,GAAUU,EAAE,OAAQ,KAAK,WAAY,KAAK,cAAe,EAAK,GAC/Dv3B,IAAUu3B,EAAE,UAEZ,KAAK,MAAM,KAAK,CACd,MACEhsB,GACEgsB,EAAE,OACF,KAAK,cACL,KAAK,iBACL,EAAA,GACGv3B,EACD,KAAK,WACH,KAAK,WAAWA,EAAO42B,GAAqBW,EAAE,MAAM,CAAC,EACrDv3B,EAAM,QAAQ,QAAS,GAAG,EAC5BA,EACN,KAAMu3B,EAAE,MAAA,CACT,EAEH,KACF,CACA,IAAK,aAAc,CACjB,MAAM9B,EAAS8B,EAAE,OACjB,IAAIwE,EAAgBxE,EAAE,cAClBv3B,EAASu3B,EAAE,OAAuB,aAAawE,CAAa,EAEhE,GAAIA,IAAkB,QAAS,CAC7B,MAAMn2B,EAAOmB,GAAa0uB,CAAM,EAEhCz1B,EAAQwF,GAAe,CACrB,QAASiwB,EACT,iBAAkB,KAAK,iBACvB,QAASA,EAAO,QAChB,KAAA7vB,EACA,MAAA5F,EACA,YAAa,KAAK,WAAA,CACnB,CACH,CACA,GACE62B,GAAUU,EAAE,OAAQ,KAAK,WAAY,KAAK,cAAe,EAAK,GAC9Dv3B,IAAUu3B,EAAE,SAEZ,OAGF,IAAI/K,EAAO,KAAK,aAAa,IAAI+K,EAAE,MAAM,EACzC,GACE9B,EAAO,UAAY,UACnBsG,IAAkB,OAClB,CAAC,KAAK,gBAAgB/7B,CAAe,EAErC,GAAI,CAAEy1B,EAA6B,gBAGjCsG,EAAgB,aAEhB,QAwBJ,GArBKvP,IACHA,EAAO,CACL,KAAM+K,EAAE,OACR,WAAY,CAAA,EACZ,UAAW,CAAA,EACX,iBAAkB,CAAA,CAAC,EAErB,KAAK,WAAW,KAAK/K,CAAI,EACzB,KAAK,aAAa,IAAI+K,EAAE,OAAQ/K,CAAI,GAMpCuP,IAAkB,QAClBtG,EAAO,UAAY,UAClB8B,EAAE,UAAY,IAAI,YAAA,IAAkB,YAErC9B,EAAO,aAAa,sBAAuB,MAAM,EAG/C,CAAC3qB,GAAgB2qB,EAAO,QAASsG,CAAoB,EAUvD,GARAvP,EAAK,WAAWuP,CAAa,EAAIrxB,GAC/B,KAAK,IACL1E,GAAYyvB,EAAO,OAAO,EAC1BzvB,GAAY+1B,CAAa,EACzB/7B,EACAy1B,EACA,KAAK,cAAA,EAEHsG,IAAkB,QAAS,CAC7B,GAAI,CAAC,KAAK,cACR,GAAI,CAEF,KAAK,cACH,SAAS,eAAe,mBAAA,CAC5B,OAASx6B,EAAG,CAEV,KAAK,cAAgB,KAAK,GAC5B,CAEF,MAAMy6B,EAAM,KAAK,cAAc,cAAc,MAAM,EAC/CzE,EAAE,UACJyE,EAAI,aAAa,QAASzE,EAAE,QAAQ,EAEtC,UAAW0E,KAAS,MAAM,KAAKxG,EAAO,KAAK,EAAG,CAC5C,MAAMvD,EAAWuD,EAAO,MAAM,iBAAiBwG,CAAK,EAC9CC,EAAczG,EAAO,MAAM,oBAAoBwG,CAAK,EAExD/J,IAAa8J,EAAI,MAAM,iBAAiBC,CAAK,GAC7CC,IAAgBF,EAAI,MAAM,oBAAoBC,CAAK,EAE/CC,IAAgB,GAClB1P,EAAK,UAAUyP,CAAK,EAAI/J,EAExB1F,EAAK,UAAUyP,CAAK,EAAI,CAAC/J,EAAUgK,CAAW,EAIhD1P,EAAK,iBAAiByP,CAAK,EAAI,CAAC/J,EAAUgK,CAAW,CAEzD,CACA,UAAWD,KAAS,MAAM,KAAKD,EAAI,KAAK,EAClCvG,EAAO,MAAM,iBAAiBwG,CAAK,IAAM,KAE3CzP,EAAK,UAAUyP,CAAK,EAAI,GAG9B,MAAWF,IAAkB,QAAUtG,EAAO,UAAY,WACpDA,EAAO,QAAQ,cAAc,EAC/BjJ,EAAK,WAAW,aAAkB,QAElCA,EAAK,WAAW,aAAkB,aAIxC,KACF,CACA,IAAK,YAAa,CAIhB,GAAIqK,GAAUU,EAAE,OAAQ,KAAK,WAAY,KAAK,cAAe,EAAI,EAC/D,OAEF,GAAKA,EAAE,OAAmB,UAAY,WAAY,CAEhD,KAAK,yBAAyBA,EAAE,MAA6B,EAC7D,MACF,CAEAA,EAAE,WAAW,QAASr1B,GAAM,KAAK,QAAQA,EAAGq1B,EAAE,MAAM,CAAC,EACrDA,EAAE,aAAa,QAASr1B,GAAM,CAC5B,MAAMqxB,EAAS,KAAK,OAAO,MAAMrxB,CAAC,EAC5B01B,EAAWp0B,GAAa+zB,EAAE,MAAM,EAClC,KAAK,OAAO,MAAMnC,EAAI,KAAKmC,EAAE,MAAM,CAAC,EACpC,KAAK,OAAO,MAAMA,EAAE,MAAM,EAE5BV,GAAUU,EAAE,OAAQ,KAAK,WAAY,KAAK,cAAe,EAAK,GAC9DR,GAAU70B,EAAG,KAAK,OAAQ,KAAK,cAAc,GAC7C,CAAC40B,GAAa50B,EAAG,KAAK,MAAM,IAK1B,KAAK,SAAS,IAAIA,CAAC,GACrBi6B,GAAW,KAAK,SAAUj6B,CAAC,EAC3B,KAAK,WAAW,IAAIA,CAAC,GACZ,KAAK,SAAS,IAAIq1B,EAAE,MAAM,GAAKhE,IAAW,IAQ1CyD,GAAkBO,EAAE,OAAQ,KAAK,MAAM,IAQhD,KAAK,SAAS,IAAIr1B,CAAC,GACnB,KAAK,SAASy4B,GAAQpH,EAAQqE,CAAQ,CAAC,EAEvCuE,GAAW,KAAK,SAAUj6B,CAAC,GAE3B,KAAK,QAAQ,KAAK,CAChB,SAAA01B,EACA,GAAIrE,EACJ,SACE/vB,GAAa+zB,EAAE,MAAM,GAAK7zB,GAAkB6zB,EAAE,MAAM,EAChD,GACA,MAAA,CACP,EACD6E,GAAel6B,EAAG,KAAK,mBAAmB,IAE5C,KAAK,WAAW,KAAKA,CAAC,EACxB,CAAC,EACD,KACF,CAEE,CAEN,CAAA,EAKQjC,EAAA,KAAA,UAAU,CAACiC,EAASuzB,IAAkB,CAE5C,GAAI,MAAK,qBAAqB,cAAcvzB,EAAG,IAAI,GAG/C,OAAK,SAAS,IAAIA,CAAC,GAAK,KAAK,SAAS,IAAIA,CAAC,GAE/C,IAAI,KAAK,OAAO,QAAQA,CAAC,EAAG,CAC1B,GAAI60B,GAAU70B,EAAG,KAAK,OAAQ,KAAK,cAAc,EAC/C,OAEF,KAAK,SAAS,IAAIA,CAAC,EACnB,IAAIm6B,EAA0B,KAC1B5G,GAAU,KAAK,OAAO,QAAQA,CAAM,IACtC4G,EAAW,KAAK,OAAO,MAAM5G,CAAM,GAEjC4G,GAAYA,IAAa,KAC3B,KAAK,SAAS1B,GAAQ,KAAK,OAAO,MAAMz4B,CAAC,EAAGm6B,CAAQ,CAAC,EAAI,GAE7D,MACE,KAAK,SAAS,IAAIn6B,CAAC,EACnB,KAAK,WAAW,OAAOA,CAAC,EAKrB20B,GAAU30B,EAAG,KAAK,WAAY,KAAK,cAAe,EAAK,IAC1DkzB,EAAI,WAAWlzB,CAAC,EAAE,QAASuO,GAAW,KAAK,QAAQA,CAAM,CAAC,EACtDioB,GAAcx2B,CAAC,GAEjBkzB,EAAI,WAAWA,EAAI,WAAWlzB,CAAC,CAAE,EAAE,QAASuO,GAAW,CACrD,KAAK,qBAAqB,IAAIA,EAAQ,IAAI,EAC1C,KAAK,QAAQA,EAAQvO,CAAC,CACxB,CAAC,GAGP,CAAA,CAAA,CA/kBO,KAAKoK,EAA8B,CAEtC,CACE,aACA,aACA,gBACA,gBACA,mBACA,mBACA,mBACA,aACA,cACA,kBACA,eACA,eACA,iBACA,iBACA,MACA,SACA,gBACA,oBACA,mBACA,gBACA,sBAAA,EAEF,QAASvM,GAAQ,CAEjB,KAAKA,CAAG,EAAIuM,EAAQvM,CAAG,CACzB,CAAC,CACH,CAEO,QAAS,CACd,KAAK,OAAS,GACd,KAAK,cAAc,OAAA,CACrB,CAEO,UAAW,CAChB,KAAK,OAAS,GACd,KAAK,cAAc,SAAA,EACnB,KAAK,KAAA,CACP,CAEO,UAAW,CAChB,OAAO,KAAK,MACd,CAEO,MAAO,CACZ,KAAK,OAAS,GACd,KAAK,cAAc,KAAA,CACrB,CAEO,QAAS,CACd,KAAK,OAAS,GACd,KAAK,cAAc,OAAA,EACnB,KAAK,KAAA,CACP,CAEO,OAAQ,CACb,KAAK,iBAAiB,MAAA,EACtB,KAAK,cAAc,MAAA,CACrB,CAEO,SAAU,CACf,KAAO,KAAK,WAAW,QACrB,KAAK,OAAO,kBAAkB,KAAK,WAAW,MAAA,CAAQ,CAE1D,CA8gBF,CAQA,SAASo8B,GAAWG,EAAoBp6B,EAAS,CAC/Co6B,EAAQ,OAAOp6B,CAAC,EAChBkzB,EAAI,WAAWlzB,CAAC,EAAE,QAASuO,GAAW0rB,GAAWG,EAAS7rB,CAAM,CAAC,CACnE,CAEA,SAAS2rB,GAAel6B,EAAS8iB,EAAkB,CACjD,MAAMoS,EAAQ,CAACl1B,CAAC,EAEhB,KAAOk1B,EAAM,QAAQ,CAEnB,MAAM1f,EAAO0f,EAAM,IAAA,EACfpS,EAAM,IAAItN,CAAI,IAClBsN,EAAM,IAAItN,CAAI,EACd0d,EAAI,WAAW1d,CAAI,EAAE,QAASxV,GAAMk1B,EAAM,KAAKl1B,CAAC,CAAC,EACnD,CAGF,CAEA,SAASo5B,GAAgBiB,EAAoBr6B,EAASqK,EAAyB,CAC7E,OAAIgwB,EAAQ,OAAS,EAAU,GACxBC,GAAiBD,EAASr6B,CAAS,CAC5C,CAEA,SAASs6B,GACPD,EACAr6B,EACAyzB,EACS,CACT,MAAMvwB,EAA0BgwB,EAAI,WAAWlzB,CAAC,EAChD,OAAKkD,EACEm3B,EAAQ,IAAIn3B,CAAI,EADL,EAEpB,CAEA,SAASm2B,GAAgBkB,EAAgBv6B,EAAkB,CACzD,OAAIu6B,EAAI,OAAS,EAAU,GACpBC,GAAiBD,EAAKv6B,CAAC,CAChC,CAEA,SAASw6B,GAAiBD,EAAgBv6B,EAAkB,CAC1D,MAAMmL,EAAS+nB,EAAI,WAAWlzB,CAAC,EAC/B,OAAKmL,EAGDovB,EAAI,IAAIpvB,CAAM,EACT,GAEFqvB,GAAiBD,EAAKpvB,CAAM,EAL1B,EAMX,CCx0BA,IAAIsvB,GAEG,SAASC,GAAqBC,EAAmC,CACtEF,GAAeE,CACjB,CAEO,SAASC,IAAyB,CACvCH,GAAe,MACjB,CAKO,MAAMI,EAAuC7iB,GAC7CyiB,GAIiB,IAAIK,IAAoB,CAC5C,GAAI,CACF,OAAO9iB,EAAG,GAAG8iB,CAAI,CACnB,OAASz4B,EAAO,CACd,GAAIo4B,IAAgBA,GAAap4B,CAAK,IAAM,GAC1C,OAGF,MAAMA,CACR,CACF,EAbS2V,ECqCE+iB,GAAoC,CAAA,EAOjD,SAASC,GAAezV,EAAqD,CAC3E,GAAI,CACF,GAAI,iBAAkBA,EAAO,CAC3B,MAAMxgB,EAAOwgB,EAAM,aAAA,EACnB,GAAIxgB,EAAK,OACP,OAAOA,EAAK,CAAC,CAEjB,SAAW,SAAUwgB,GAASA,EAAM,KAAK,OACvC,OAAOA,EAAM,KAAK,CAAC,CAEvB,OAAQlmB,EAAA,CAER,CAEA,OAAOkmB,GAASA,EAAM,MACxB,CAEO,SAAS0V,GACd7wB,EACA8wB,EACkB,CAClB,MAAMC,EAAiB,IAAIzC,GAC3BqC,GAAgB,KAAKI,CAAc,EAEnCA,EAAe,KAAK/wB,CAAO,EAC3B,MAAMgxB,EAAW,IAAKv6B,GAAA,GAGpBg6B,EAAgBM,EAAe,iBAAiB,KAAKA,CAAc,CAAC,CAAA,EAEtE,OAAAC,EAAS,QAAQF,EAAQ,CACvB,WAAY,GACZ,kBAAmB,GACnB,cAAe,GACf,sBAAuB,GACvB,UAAW,GACX,QAAS,EAAA,CACV,EACME,CACT,CAEA,SAASC,GAAiB,CACxB,YAAAC,EACA,SAAAC,EACA,IAAA/zB,EACA,OAAA6C,CACF,EAAmC,CACjC,GAAIkxB,EAAS,YAAc,GACzB,MAAO,IAAM,CAEb,EAGF,MAAMC,EACJ,OAAOD,EAAS,WAAc,SAAWA,EAAS,UAAY,GAC1DE,EACJ,OAAOF,EAAS,mBAAsB,SAClCA,EAAS,kBACT,IAEN,IAAI3E,EAA6B,CAAA,EAC7B8E,EACJ,MAAMC,EAAYhI,GAChBkH,EAEI95B,GAIG,CACH,MAAM66B,EAAc,KAAK,IAAA,EAAQF,EACjCJ,EACE1E,EAAU,IAAKiF,IACbA,EAAE,YAAcD,EACTC,EACR,EACD96B,CAAA,EAEF61B,EAAY,CAAA,EACZ8E,EAAe,IACjB,CAAA,EAEFD,CAAA,EAEIK,EAAiBjB,EACrBlH,GACEkH,EAAiBkB,GAAQ,CACvB,MAAMxI,EAASyH,GAAee,CAAG,EAE3B,CAAE,QAAAC,EAAS,QAAAC,CAAA,EAAYlH,GAAoBgH,CAAG,EAChDA,EAAI,eAAe,CAAC,EACpBA,EACCL,IACHA,EAAerH,GAAA,GAEjBuC,EAAU,KAAK,CACb,EAAGoF,EACH,EAAGC,EACH,GAAI5xB,EAAO,MAAMkpB,CAAc,EAC/B,WAAYc,GAAA,EAAiBqH,CAAA,CAC9B,EAGDC,EACE,OAAO,WAAc,aAAeI,aAAe,UAC/CpE,EAAkB,KAClBoE,aAAe,WACfpE,EAAkB,UAClBA,EAAkB,SAAA,CAE1B,CAAC,EACD6D,EACA,CACE,SAAU,EAAA,CACZ,CACF,EAEIU,EAAW,CACf7I,GAAG,YAAayI,EAAgBt0B,CAAG,EACnC6rB,GAAG,YAAayI,EAAgBt0B,CAAG,EACnC6rB,GAAG,OAAQyI,EAAgBt0B,CAAG,CAAA,EAEhC,OAAOqzB,EAAgB,IAAM,CAC3BqB,EAAS,QAASC,GAAMA,EAAA,CAAG,CAC7B,CAAC,CACH,CAEA,SAASC,GAA6B,CACpC,mBAAAC,EACA,IAAA70B,EACA,OAAA6C,EACA,WAAAtB,EACA,cAAAC,EACA,SAAAuyB,CACF,EAAmC,CACjC,GAAIA,EAAS,mBAAqB,GAChC,MAAO,IAAM,CAEb,EAEF,MAAMe,EACJf,EAAS,mBAAqB,IAC9BA,EAAS,mBAAqB,OAC1B,CAAA,EACAA,EAAS,iBAETW,EAA8B,CAAA,EACpC,IAAIK,EAA0C,KAC9C,MAAMC,EAAcC,GACVlX,GAAkD,CACxD,MAAMgO,EAASyH,GAAezV,CAAK,EACnC,GAAIoP,GAAUpB,EAAQxqB,EAAYC,EAAe,EAAI,EACnD,OAEF,IAAI0zB,EAAmC,KACnCC,EAAeF,EACnB,GAAI,gBAAiBlX,EAAO,CAC1B,OAAQA,EAAM,YAAA,CACZ,IAAK,QACHmX,EAAc3E,GAAa,MAC3B,MACF,IAAK,QACH2E,EAAc3E,GAAa,MAC3B,MACF,IAAK,MACH2E,EAAc3E,GAAa,IAC3B,KAAA,CAEA2E,IAAgB3E,GAAa,MAC3BF,EAAkB4E,CAAQ,IAAM5E,EAAkB,UAEpD8E,EAAe,aAEf9E,EAAkB4E,CAAQ,IAAM5E,EAAkB,UAGlD8E,EAAe,YAEQ5E,GAAa,GAG1C,MAAWhD,GAAoBxP,CAAK,IAClCmX,EAAc3E,GAAa,OAEzB2E,IAAgB,MAClBH,EAAqBG,GAElBC,EAAa,WAAW,OAAO,GAC9BD,IAAgB3E,GAAa,OAC9B4E,EAAa,WAAW,OAAO,GAC9BD,IAAgB3E,GAAa,SAG/B2E,EAAc,OAEP7E,EAAkB4E,CAAQ,IAAM5E,EAAkB,QAC3D6E,EAAcH,EACdA,EAAqB,MAEvB,MAAMl9B,EAAI01B,GAAoBxP,CAAK,EAAIA,EAAM,eAAe,CAAC,EAAIA,EACjE,GAAI,CAAClmB,EACH,OAEF,MAAM0D,EAAKsH,EAAO,MAAMkpB,CAAM,EACxB,CAAE,QAAAyI,EAAS,QAAAC,CAAA,EAAY58B,EAC7Bw7B,EAAgBwB,CAAkB,EAAErlB,EAAA,CAClC,KAAM6gB,EAAkB8E,CAAY,EACpC,GAAA55B,EACA,EAAGi5B,EACHC,GACIS,IAAgB,MAAQ,CAAE,YAAAA,CAAA,EAC/B,CACH,EAEF,cAAO,KAAK7E,CAAiB,EAC1B,OACEh6B,GACC,OAAO,MAAM,OAAOA,CAAG,CAAC,GACxB,CAACA,EAAI,SAAS,WAAW,GACzBy+B,EAAWz+B,CAAG,IAAM,EAAA,EAEvB,QAAS4+B,GAA6C,CACrD,IAAIG,EAAY94B,GAAY24B,CAAQ,EACpC,MAAM9B,EAAU6B,EAAWC,CAAQ,EACnC,GAAI,OAAO,aACT,OAAQ5E,EAAkB4E,CAAQ,EAAA,CAChC,KAAK5E,EAAkB,UACvB,KAAKA,EAAkB,QACrB+E,EAAYA,EAAU,QACpB,QACA,SAAA,EAEF,MACF,KAAK/E,EAAkB,WACvB,KAAKA,EAAkB,SAErB,MAAA,CAGNqE,EAAS,KAAK7I,GAAGuJ,EAAWjC,EAASnzB,CAAG,CAAC,CAC3C,CAAC,EACIqzB,EAAgB,IAAM,CAC3BqB,EAAS,QAASC,GAAMA,EAAA,CAAG,CAC7B,CAAC,CACH,CAEO,SAASU,GAAmB,CACjC,SAAAC,EACA,IAAAt1B,EACA,OAAA6C,EACA,WAAAtB,EACA,cAAAC,EACA,SAAAuyB,CACF,EAGoB,CAClB,MAAMO,EAAiBjB,EACrBlH,GACEkH,EAAiBkB,GAAQ,CACvB,MAAMxI,EAASyH,GAAee,CAAG,EACjC,GACE,CAACxI,GACDoB,GAAUpB,EAAgBxqB,EAAYC,EAAe,EAAI,EAEzD,OAEF,MAAMjG,EAAKsH,EAAO,MAAMkpB,CAAc,EACtC,GAAIA,IAAW/rB,GAAOA,EAAI,YAAa,CACrC,MAAMu1B,EAAgBzI,GAAgB9sB,EAAI,WAAW,EACrDs1B,EAAS,CACP,GAAA/5B,EACA,EAAGg6B,EAAc,KACjB,EAAGA,EAAc,GAAA,CAClB,CACH,MACED,EAAS,CACP,GAAA/5B,EACA,EAAIwwB,EAAuB,WAC3B,EAAIA,EAAuB,SAAA,CAC5B,CAEL,CAAC,EACDgI,EAAS,QAAU,GAAA,CACrB,EAEF,OAAOlI,GAAG,SAAUyI,EAAgBt0B,CAAG,CACzC,CAEA,SAASw1B,GACP,CAAE,iBAAAC,CAAA,EACF,CAAE,IAAA99B,CAAA,EACe,CACjB,IAAI+9B,EAAQ,GACRC,EAAQ,GACZ,MAAMC,EAAkBvC,EACtBlH,GACEkH,EAAgB,IAAM,CACpB,MAAMjuB,EAAS4nB,GAAA,EACT7nB,EAAQ8nB,GAAA,GACVyI,IAAUtwB,GAAUuwB,IAAUxwB,KAChCswB,EAAiB,CACf,MAAO,OAAOtwB,CAAK,EACnB,OAAQ,OAAOC,CAAM,CAAA,CACtB,EACDswB,EAAQtwB,EACRuwB,EAAQxwB,EAEZ,CAAC,EACD,GAAA,CACF,EAEF,OAAO0mB,GAAG,SAAU+J,EAAiBj+B,CAAG,CAC1C,CAEO,MAAMk+B,GAAa,CAAC,QAAS,WAAY,QAAQ,EAClDC,GAAA,IAA0D,QAChE,SAASC,GAAkB,CACzB,QAAAC,EACA,IAAAh2B,EACA,OAAA6C,EACA,WAAAtB,EACA,cAAAC,EACA,YAAAy0B,EACA,eAAAC,EACA,iBAAAl6B,EACA,YAAAG,EACA,SAAA43B,EACA,qBAAAoC,CACF,EAAmC,CACjC,SAASC,EAAarY,EAAc,CAClC,IAAIgO,EAASyH,GAAezV,CAAK,EACjC,MAAMsY,EAAgBtY,EAAM,UACtB9hB,EAAU8vB,GAAUA,EAAO,QAkBjC,GAZIA,GAAU9vB,IAAY,WACxB8vB,EAASL,EAAI,cAAcK,CAAM,GAGjC,CAACA,GACD,CAAC9vB,GACD45B,GAAW,QAAQ55B,CAAO,EAAI,GAC9BkxB,GAAUpB,EAAgBxqB,EAAYC,EAAe,EAAI,GAMzDuqB,EAAO,UAAU,SAASkK,CAAW,GACpCC,GAAkBnK,EAAO,QAAQmK,CAAc,EAEhD,OAEF,IAAI95B,EAAQ2vB,EAA4B,MACpCuK,EAAY,GAChB,MAAMp6B,EAA0BmB,GAAa0uB,CAAM,GAAK,GAEpD7vB,IAAS,SAAWA,IAAS,WAC/Bo6B,EAAavK,EAA4B,SAEzC/vB,EAAiBC,EAAQ,YAAA,CAAuC,GAChED,EAAiBE,CAA8B,KAE/CE,EAAON,GAAe,CACpB,QAASiwB,EACT,iBAAA/vB,EACA,QAAAC,EACA,KAAAC,EACA,MAAOE,EACP,YAAAD,CAAA,CACD,GAEHo6B,EACExK,EACAoK,EACI,CAAE,KAAA/5B,EAAM,UAAAk6B,EAAW,cAAAD,CAAA,EACnB,CAAE,KAAAj6B,EAAM,UAAAk6B,CAAA,CAAU,EAIxB,MAAM98B,EAA4BuyB,EAA4B,KAC1D7vB,IAAS,SAAW1C,GAAQ88B,GAC9Bt2B,EACG,iBAAiB,6BAA6BxG,CAAI,IAAI,EACtD,QAASsH,GAAO,CACf,GAAIA,IAAOirB,EAAQ,CACjB,MAAM3vB,EAAQ0E,EAAwB,MACtCy1B,EACEz1B,EACAq1B,EACI,CAAE,KAAA/5B,EAAM,UAAW,CAACk6B,EAAW,cAAe,EAAA,EAC9C,CAAE,KAAAl6B,EAAM,UAAW,CAACk6B,CAAA,CAAU,CAEtC,CACF,CAAC,CAEP,CACA,SAASC,EAAYxK,EAAqByK,EAAe,CACvD,MAAMC,EAAiBX,GAAkB,IAAI/J,CAAM,EACnD,GACE,CAAC0K,GACDA,EAAe,OAASD,EAAE,MAC1BC,EAAe,YAAcD,EAAE,UAC/B,CACAV,GAAkB,IAAI/J,EAAQyK,CAAC,EAC/B,MAAMj7B,EAAKsH,EAAO,MAAMkpB,CAAc,EACtCsH,EAAgB2C,CAAO,EAAEzmB,GAAAC,EAAA,GACpBgnB,GADoB,CAEvB,GAAAj7B,CAAA,EACD,CACH,CACF,CAEA,MAAMm5B,GADSX,EAAS,QAAU,OAAS,CAAC,QAAQ,EAAI,CAAC,QAAS,QAAQ,GACX,IAC5DqB,GAAcvJ,GAAGuJ,EAAW/B,EAAgB+C,CAAY,EAAGp2B,CAAG,CAAA,EAE3D02B,EAAgB12B,EAAI,YAC1B,GAAI,CAAC02B,EACH,MAAO,IAAM,CACXhC,EAAS,QAASC,GAAMA,EAAA,CAAG,CAC7B,EAEF,MAAMgC,EAAqBD,EAAc,OAAO,yBAC9CA,EAAc,iBAAiB,UAC/B,OAAA,EAEIE,EAA+C,CACnD,CAACF,EAAc,iBAAiB,UAAW,OAAO,EAClD,CAACA,EAAc,iBAAiB,UAAW,SAAS,EACpD,CAACA,EAAc,kBAAkB,UAAW,OAAO,EACnD,CAACA,EAAc,oBAAoB,UAAW,OAAO,EAErD,CAACA,EAAc,kBAAkB,UAAW,eAAe,EAC3D,CAACA,EAAc,kBAAkB,UAAW,UAAU,CAAA,EAExD,OAAIC,GAAsBA,EAAmB,KAC3CjC,EAAS,KACP,GAAGkC,EAAe,IAAKvC,GACrB3H,GACE2H,EAAE,CAAC,EACHA,EAAE,CAAC,EACH,CACE,KAAM,CAEJhB,EAAgB+C,CAAY,EAAE,CAC5B,OAAQ,KACR,UAAW,EAAA,CACH,CACZ,CAAA,EAEF,GACAM,CAAA,CACF,CACF,EAGGrD,EAAgB,IAAM,CAC3BqB,EAAS,QAASC,GAAMA,EAAA,CAAG,CAC7B,CAAC,CACH,CAaA,SAASkC,GAA0Bx8B,EAAyB,CAC1D,MAAM+0B,EAAsB,CAAA,EAC5B,SAAS0H,EAAQC,EAAoB72B,EAAe,CAClD,GACG82B,GAAiB,iBAAiB,GACjCD,EAAU,sBAAsB,iBACjCC,GAAiB,cAAc,GAC9BD,EAAU,sBAAsB,cACjCC,GAAiB,iBAAiB,GACjCD,EAAU,sBAAsB,iBACjCC,GAAiB,kBAAkB,GAClCD,EAAU,sBAAsB,iBAClC,CAIA,MAAMn9B,EAHQ,MAAM,KACjBm9B,EAAU,WAA+B,QAAA,EAExB,QAAQA,CAAS,EACrC72B,EAAI,QAAQtG,CAAK,CACnB,SAAWm9B,EAAU,iBAAkB,CAErC,MAAMn9B,EADQ,MAAM,KAAKm9B,EAAU,iBAAiB,QAAQ,EACxC,QAAQA,CAAS,EACrC72B,EAAI,QAAQtG,CAAK,CACnB,CACA,OAAOsG,CACT,CACA,OAAO42B,EAAQz8B,EAAM+0B,CAAS,CAChC,CAMA,SAAS6H,GACPC,EACAr0B,EACAs0B,EAIA,CACA,IAAI57B,EAAI67B,EACR,OAAKF,GACDA,EAAM,UAAW37B,EAAKsH,EAAO,MAAMq0B,EAAM,SAAiB,EACzDE,EAAUD,EAAY,MAAMD,CAAK,EAC/B,CACL,QAAAE,EACA,GAAA77B,CAAA,GALiB,CAAA,CAOrB,CAEA,SAAS87B,GACP,CAAE,iBAAAC,EAAkB,OAAAz0B,EAAQ,kBAAA00B,CAAA,EAC5B,CAAE,IAAA5/B,CAAA,EACe,CACjB,GAAI,CAACA,EAAI,eAAiB,CAACA,EAAI,cAAc,UAE3C,MAAO,IAAM,CAEb,EAIF,MAAM6/B,EAAa7/B,EAAI,cAAc,UAAU,WAC/CA,EAAI,cAAc,UAAU,WAAa,IAAI,MAAM6/B,EAAY,CAC7D,MAAOnE,EACL,CACEtH,EACA0L,EACAC,IACG,CACH,KAAM,CAACr9B,EAAMT,CAAK,EAAI89B,EAEhB,CAAE,GAAAn8B,EAAI,QAAA67B,CAAA,EAAYH,GACtBQ,EACA50B,EACA00B,EAAkB,WAAA,EAGpB,OAAKh8B,GAAMA,IAAO,IAAQ67B,GAAWA,IAAY,KAC/CE,EAAiB,CACf,GAAA/7B,EACA,QAAA67B,EACA,KAAM,CAAC,CAAE,KAAA/8B,EAAM,MAAAT,CAAAA,CAAO,CAAA,CACvB,EAEImyB,EAAO,MAAM0L,EAASC,CAAa,CAC5C,CAAA,CACF,CACD,EAGD//B,EAAI,cAAc,UAAU,QAAU,SAEpCmQ,EACA6vB,EACA/9B,EAAgB,KAAK,SAAS,OAC9B,CACA,MAAMS,EAAO,GAAGyN,CAAQ,MAAM6vB,CAAU,KACxC,OAAOhgC,EAAI,cAAc,UAAU,WAAW,MAAM,KAAM,CAAC0C,EAAMT,CAAK,CAAC,CACzE,EAGA,MAAMg+B,EAAajgC,EAAI,cAAc,UAAU,WAC/CA,EAAI,cAAc,UAAU,WAAa,IAAI,MAAMigC,EAAY,CAC7D,MAAOvE,EACL,CACEtH,EACA0L,EACAC,IACG,CACH,KAAM,CAAC99B,CAAK,EAAI89B,EAEV,CAAE,GAAAn8B,EAAI,QAAA67B,CAAA,EAAYH,GACtBQ,EACA50B,EACA00B,EAAkB,WAAA,EAGpB,OAAKh8B,GAAMA,IAAO,IAAQ67B,GAAWA,IAAY,KAC/CE,EAAiB,CACf,GAAA/7B,EACA,QAAA67B,EACA,QAAS,CAAC,CAAE,MAAAx9B,CAAA,CAAO,CAAA,CACpB,EAEImyB,EAAO,MAAM0L,EAASC,CAAa,CAC5C,CAAA,CACF,CACD,EAGD//B,EAAI,cAAc,UAAU,WAAa,SAEvCiC,EACA,CACA,OAAOjC,EAAI,cAAc,UAAU,WAAW,MAAM,KAAM,CAACiC,CAAK,CAAC,CACnE,EAEA,IAAIi+B,EAEAlgC,EAAI,cAAc,UAAU,UAE9BkgC,EAAUlgC,EAAI,cAAc,UAAU,QACtCA,EAAI,cAAc,UAAU,QAAU,IAAI,MAAMkgC,EAAS,CACvD,MAAOxE,EACL,CACEtH,EACA0L,EACAC,IACG,CACH,KAAM,CAACt7B,CAAI,EAAIs7B,EAET,CAAE,GAAAn8B,EAAI,QAAA67B,CAAA,EAAYH,GACtBQ,EACA50B,EACA00B,EAAkB,WAAA,EAGpB,OAAKh8B,GAAMA,IAAO,IAAQ67B,GAAWA,IAAY,KAC/CE,EAAiB,CACf,GAAA/7B,EACA,QAAA67B,EACA,QAASh7B,CAAA,CACV,EAEI2vB,EAAO,MAAM0L,EAASC,CAAa,CAC5C,CAAA,CACF,CACD,GAGH,IAAII,EACAngC,EAAI,cAAc,UAAU,cAE9BmgC,EAAcngC,EAAI,cAAc,UAAU,YAC1CA,EAAI,cAAc,UAAU,YAAc,IAAI,MAAMmgC,EAAa,CAC/D,MAAOzE,EACL,CACEtH,EACA0L,EACAC,IACG,CACH,KAAM,CAACt7B,CAAI,EAAIs7B,EAET,CAAE,GAAAn8B,EAAI,QAAA67B,CAAA,EAAYH,GACtBQ,EACA50B,EACA00B,EAAkB,WAAA,EAGpB,OAAKh8B,GAAMA,IAAO,IAAQ67B,GAAWA,IAAY,KAC/CE,EAAiB,CACf,GAAA/7B,EACA,QAAA67B,EACA,YAAah7B,CAAA,CACd,EAEI2vB,EAAO,MAAM0L,EAASC,CAAa,CAC5C,CAAA,CACF,CACD,GAGH,MAAMK,EAEF,CAAA,EACAC,GAA4B,iBAAiB,EAC/CD,EAA4B,gBAAkBpgC,EAAI,iBAM9CqgC,GAA4B,cAAc,IAC5CD,EAA4B,aAAepgC,EAAI,cAE7CqgC,GAA4B,kBAAkB,IAChDD,EAA4B,iBAAmBpgC,EAAI,kBAEjDqgC,GAA4B,iBAAiB,IAC/CD,EAA4B,gBAAkBpgC,EAAI,kBAItD,MAAMsgC,EAKF,CAAA,EAEJ,cAAO,QAAQF,CAA2B,EAAE,QAAQ,CAAC,CAACG,EAASh8B,CAAI,IAAM,CACvE+7B,EAAoBC,CAAO,EAAI,CAE7B,WAAYh8B,EAAK,UAAU,WAE3B,WAAYA,EAAK,UAAU,UAAA,EAG7BA,EAAK,UAAU,WAAa,IAAI,MAC9B+7B,EAAoBC,CAAO,EAAE,WAC7B,CACE,MAAO7E,EACL,CACEtH,EACA0L,EACAC,IACG,CACH,KAAM,CAACr9B,EAAMT,CAAK,EAAI89B,EAEhB,CAAE,GAAAn8B,EAAI,QAAA67B,CAAA,EAAYH,GACtBQ,EAAQ,iBACR50B,EACA00B,EAAkB,WAAA,EAGpB,OAAKh8B,GAAMA,IAAO,IAAQ67B,GAAWA,IAAY,KAC/CE,EAAiB,CACf,GAAA/7B,EACA,QAAA67B,EACA,KAAM,CACJ,CACE,KAAA/8B,EACA,MAAO,CACL,GAAGw8B,GAA0BY,CAAO,EACpC79B,GAAS,CAAA,CACX,CACF,CACF,CACD,EAEImyB,EAAO,MAAM0L,EAASC,CAAa,CAC5C,CAAA,CACF,CACF,EAGFx7B,EAAK,UAAU,WAAa,IAAI,MAC9B+7B,EAAoBC,CAAO,EAAE,WAC7B,CACE,MAAO7E,EACL,CACEtH,EACA0L,EACAC,IACG,CACH,KAAM,CAAC99B,CAAK,EAAI89B,EAEV,CAAE,GAAAn8B,EAAI,QAAA67B,CAAA,EAAYH,GACtBQ,EAAQ,iBACR50B,EACA00B,EAAkB,WAAA,EAGpB,OAAKh8B,GAAMA,IAAO,IAAQ67B,GAAWA,IAAY,KAC/CE,EAAiB,CACf,GAAA/7B,EACA,QAAA67B,EACA,QAAS,CACP,CAAE,MAAO,CAAC,GAAGP,GAA0BY,CAAO,EAAG79B,CAAK,CAAA,CAAE,CAC1D,CACD,EAEImyB,EAAO,MAAM0L,EAASC,CAAa,CAC5C,CAAA,CACF,CACF,CAEJ,CAAC,EAEMrE,EAAgB,IAAM,CAC3B17B,EAAI,cAAc,UAAU,WAAa6/B,EACzC7/B,EAAI,cAAc,UAAU,WAAaigC,EACzCC,IAAYlgC,EAAI,cAAc,UAAU,QAAUkgC,GAClDC,IAAgBngC,EAAI,cAAc,UAAU,YAAcmgC,GAC1D,OAAO,QAAQC,CAA2B,EAAE,QAAQ,CAAC,CAACG,EAASh8B,CAAI,IAAM,CACvEA,EAAK,UAAU,WAAa+7B,EAAoBC,CAAO,EAAE,WACzDh8B,EAAK,UAAU,WAAa+7B,EAAoBC,CAAO,EAAE,UAC3D,CAAC,CACH,CAAC,CACH,CAEO,SAASC,GACd,CACE,OAAAt1B,EACA,kBAAA00B,CACF,EACAx+B,EACiB,WACjB,IAAIq/B,EAAwB,KAExBr/B,EAAK,WAAa,YAAaq/B,EAASv1B,EAAO,MAAM9J,CAAI,EAAAq/B,EAE/Cv1B,EAAO,MAAM6oB,EAAI,KAAK3yB,CAAkB,CAAC,EAEvD,MAAMs/B,EACJt/B,EAAK,WAAa,aACbjC,EAAAiC,EAAkB,cAAlB,KAAA,OAAAjC,EAA+B,UAChCwhC,GAAAvhC,EAAAgC,EAAK,gBAAL,KAAA,OAAAhC,EAAoB,cAApB,KAAA,OAAAuhC,EAAiC,WACjCC,EAA6BF,GAAA,MAAAA,EAAa,UAC5C,OAAO,yBACLA,GAAA,KAAA,OAAAA,EAAa,UACb,oBAAA,EAEF,OACJ,OACED,IAAW,MACXA,IAAW,IACX,CAACC,GACD,CAACE,EAEM,IAAM,CAEb,GAGF,OAAO,eAAex/B,EAAM,qBAAsB,CAChD,aAAcw/B,EAA2B,aACzC,WAAYA,EAA2B,WACvC,KAAuB,OACrB,OAAOzhC,EAAAyhC,EAA2B,MAA3B,KAAA,OAAAzhC,EAAgC,KAAK,IAAA,CAC9C,EACA,IAAI0hC,EAAyB,OAC3B,MAAMnc,GAASvlB,EAAAyhC,EAA2B,MAA3B,KAAA,OAAAzhC,EAAgC,KAAK,KAAM0hC,CAAA,EAC1D,GAAIJ,IAAW,MAAQA,IAAW,GAChC,GAAI,CACFb,EAAkB,iBAAiBiB,EAAQJ,CAAM,CACnD,OAASvgC,EAAG,CAEZ,CAEF,OAAOwkB,CACT,CAAA,CACD,EAEMgX,EAAgB,IAAM,CAC3B,OAAO,eAAet6B,EAAM,qBAAsB,CAChD,aAAcw/B,EAA2B,aACzC,WAAYA,EAA2B,WAEvC,IAAKA,EAA2B,IAEhC,IAAKA,EAA2B,GAAA,CACjC,CACH,CAAC,EACH,CAEA,SAASE,GACP,CACE,mBAAAC,EACA,OAAA71B,EACA,oBAAA81B,EACA,kBAAApB,CACF,EACA,CAAE,IAAA5/B,CAAA,EACe,CAEjB,MAAMihC,EAAcjhC,EAAI,oBAAoB,UAAU,YACtDA,EAAI,oBAAoB,UAAU,YAAc,IAAI,MAAMihC,EAAa,CACrE,MAAOvF,EACL,CACEtH,EACA0L,EACAC,IACG,OACH,KAAM,CAACmB,EAAUviC,EAAOmvB,CAAQ,EAAIiS,EAGpC,GAAIiB,EAAoB,IAAIE,CAAQ,EAClC,OAAOD,EAAY,MAAMnB,EAAS,CAACoB,EAAUviC,EAAOmvB,CAAQ,CAAC,EAE/D,KAAM,CAAE,GAAAlqB,EAAI,QAAA67B,CAAA,EAAYH,IACtBngC,EAAA2gC,EAAQ,aAAR,KAAA,OAAA3gC,EAAoB,iBACpB+L,EACA00B,EAAkB,WAAA,EAEpB,OAAKh8B,GAAMA,IAAO,IAAQ67B,GAAWA,IAAY,KAC/CsB,EAAmB,CACjB,GAAAn9B,EACA,QAAA67B,EACA,IAAK,CACH,SAAAyB,EACA,MAAAviC,EACA,SAAAmvB,CAAA,EAGF,MAAOoR,GAA0BY,EAAQ,UAAW,CAAA,CACrD,EAEI1L,EAAO,MAAM0L,EAASC,CAAa,CAC5C,CAAA,CACF,CACD,EAGD,MAAMoB,EAAiBnhC,EAAI,oBAAoB,UAAU,eACzD,OAAAA,EAAI,oBAAoB,UAAU,eAAiB,IAAI,MAAMmhC,EAAgB,CAC3E,MAAOzF,EACL,CACEtH,EACA0L,EACAC,IACG,OACH,KAAM,CAACmB,CAAQ,EAAInB,EAGnB,GAAIiB,EAAoB,IAAIE,CAAQ,EAClC,OAAOC,EAAe,MAAMrB,EAAS,CAACoB,CAAQ,CAAC,EAEjD,KAAM,CAAE,GAAAt9B,EAAI,QAAA67B,CAAA,EAAYH,IACtBngC,EAAA2gC,EAAQ,aAAR,KAAA,OAAA3gC,EAAoB,iBACpB+L,EACA00B,EAAkB,WAAA,EAEpB,OAAKh8B,GAAMA,IAAO,IAAQ67B,GAAWA,IAAY,KAC/CsB,EAAmB,CACjB,GAAAn9B,EACA,QAAA67B,EACA,OAAQ,CACN,SAAAyB,CAAA,EAGF,MAAOhC,GAA0BY,EAAQ,UAAW,CAAA,CACrD,EAEI1L,EAAO,MAAM0L,EAASC,CAAa,CAC5C,CAAA,CACF,CACD,EAEMrE,EAAgB,IAAM,CAC3B17B,EAAI,oBAAoB,UAAU,YAAcihC,EAChDjhC,EAAI,oBAAoB,UAAU,eAAiBmhC,CACrD,CAAC,CACH,CAEA,SAASC,GAA6B,CACpC,mBAAAC,EACA,WAAAz3B,EACA,cAAAC,EACA,OAAAqB,EACA,SAAAkxB,EACA,IAAA/zB,CACF,EAAmC,CACjC,MAAMmzB,EAAUE,EAAiBn3B,GAC/BiwB,GACEkH,EAAiBtV,GAAiB,CAChC,MAAMgO,EAASyH,GAAezV,CAAK,EACnC,GACE,CAACgO,GACDoB,GAAUpB,EAAgBxqB,EAAYC,EAAe,EAAI,EAEzD,OAEF,KAAM,CAAE,YAAAy3B,EAAa,OAAAC,EAAQ,MAAAC,EAAO,aAAAC,EAAc,KAAAC,CAAA,EAChDtN,EACFiN,EAAmB,CACjB,KAAA98B,EACA,GAAI2G,EAAO,MAAMkpB,CAAc,EAC/B,YAAAkN,EACA,OAAAC,EACA,MAAAC,EACA,aAAAC,EACA,KAAAC,CAAA,CACD,CACH,CAAC,EACDtF,EAAS,OAAS,GAAA,CACpB,EAEIW,EAAW,CACf7I,GAAG,OAAQsH,EAAQxC,GAAkB,IAAI,EAAG3wB,CAAG,EAC/C6rB,GAAG,QAASsH,EAAQxC,GAAkB,KAAK,EAAG3wB,CAAG,EACjD6rB,GAAG,SAAUsH,EAAQxC,GAAkB,MAAM,EAAG3wB,CAAG,EACnD6rB,GAAG,eAAgBsH,EAAQxC,GAAkB,YAAY,EAAG3wB,CAAG,EAC/D6rB,GAAG,aAAcsH,EAAQxC,GAAkB,UAAU,EAAG3wB,CAAG,CAAA,EAE7D,OAAOqzB,EAAgB,IAAM,CAC3BqB,EAAS,QAASC,GAAMA,EAAA,CAAG,CAC7B,CAAC,CACH,CAEA,SAAS2E,GAAiB,CAAE,OAAAC,EAAQ,IAAAv5B,CAAA,EAAuC,CACzE,MAAMrI,EAAMqI,EAAI,YAChB,GAAI,CAACrI,EACH,MAAO,IAAM,CAEb,EAGF,MAAM+8B,EAA8B,CAAA,EAE9B8E,EAAA,IAAc,QAEdC,EAAmB9hC,EAAI,SAC7BA,EAAI,SAAW,SACb+hC,EACAngC,EACAogC,EACA,CACA,MAAMC,EAAW,IAAIH,EACnBC,EACAngC,EACAogC,CAAA,EAEF,OAAAH,EAAQ,IAAII,EAAU,CACpB,OAAAF,EACA,OAAQ,OAAOngC,GAAW,SAC1B,YAAAogC,EACA,WACE,OAAOpgC,GAAW,SACdA,EACA,KAAK,UAAU,MAAM,KAAK,IAAI,WAAWA,CAAM,CAAC,CAAC,CAAA,CACxD,EACMqgC,CACT,EAEA,MAAMC,EAAiBvgC,GACrB0G,EAAI,MACJ,MACA,SAAUtG,EAAoC,CAC5C,OAAO,SAA6BkgC,EAAoB,CACtD,kBACEvG,EAAgB,IAAM,CACpB,MAAMgB,EAAImF,EAAQ,IAAII,CAAQ,EAC1BvF,IACFkF,EAAOlF,CAAC,EACRmF,EAAQ,OAAOI,CAAQ,EAE3B,CAAC,EACD,CAAA,EAEKlgC,EAAS,MAAM,KAAM,CAACkgC,CAAQ,CAAC,CACxC,CACF,CAAA,EAGF,OAAAlF,EAAS,KAAK,IAAM,CAClB/8B,EAAI,SAAW8hC,CACjB,CAAC,EACD/E,EAAS,KAAKmF,CAAc,EAErBxG,EAAgB,IAAM,CAC3BqB,EAAS,QAASC,GAAMA,EAAA,CAAG,CAC7B,CAAC,CACH,CAEA,SAASmF,GAAsBC,EAAuC,CACpE,KAAM,CAAE,IAAA/5B,EAAK,OAAA6C,EAAQ,WAAAtB,EAAY,cAAAC,EAAe,YAAAw4B,CAAA,EAAgBD,EAChE,IAAIE,EAAY,GAEhB,MAAMC,EAAkB7G,EAAgB,IAAM,CAC5C,MAAM8G,EAAYn6B,EAAI,aAAA,EAEtB,GAAI,CAACm6B,GAAcF,IAAaE,GAAA,MAAAA,EAAW,aAAc,OAEzDF,EAAYE,EAAU,aAAe,GAErC,MAAMC,EAA2B,CAAA,EAC3BC,EAAQF,EAAU,YAAc,EAEtC,QAAS/1B,EAAI,EAAGA,EAAIi2B,EAAOj2B,IAAK,CAC9B,MAAM+X,EAAQge,EAAU,WAAW/1B,CAAC,EAE9B,CAAE,eAAAk2B,EAAgB,YAAAC,EAAa,aAAAC,EAAc,UAAA/lB,CAAA,EAAc0H,EAG/DgR,GAAUmN,EAAgB/4B,EAAYC,EAAe,EAAI,GACzD2rB,GAAUqN,EAAcj5B,EAAYC,EAAe,EAAI,GAIzD44B,EAAO,KAAK,CACV,MAAOv3B,EAAO,MAAMy3B,CAAc,EAClC,YAAAC,EACA,IAAK13B,EAAO,MAAM23B,CAAY,EAC9B,UAAA/lB,CAAA,CACD,CACH,CAEAulB,EAAY,CAAE,OAAAI,CAAA,CAAQ,CACxB,CAAC,EAED,OAAAF,EAAA,EAEOrO,GAAG,kBAAmBqO,CAAe,CAC9C,CAEA,SAASO,GAA0B,CACjC,IAAAz6B,EACA,gBAAA06B,CACF,EAAmC,CACjC,MAAM/iC,EAAMqI,EAAI,YAEhB,MAAI,CAACrI,GAAO,CAACA,EAAI,eAAuB,IAAM,CAAC,EACxB2B,GACrB3B,EAAI,eACJ,SACA,SACE+B,EAKA,CACA,OAAO,SACLF,EACAmhC,EACA/3B,EACA,CACA,GAAI,CACF83B,EAAgB,CACd,OAAQ,CACN,KAAAlhC,CAAA,CACF,CACD,CACH,OAAS3B,EAAG,CACV,QAAQ,KAAK,sCAAsC2B,CAAI,EAAE,CAC3D,CACA,OAAOE,EAAS,MAAM,KAAM,CAACF,EAAMmhC,EAAa/3B,CAAO,CAAC,CAC1D,CACF,CAAA,CAGJ,CAEA,SAASg4B,GAAWC,EAAkBC,EAAmB,CACvD,KAAM,CACJ,WAAAC,EACA,YAAAjH,EACA,mBAAAe,EACA,SAAAS,EACA,iBAAAG,EACA,QAAAO,EACA,mBAAAgD,EACA,iBAAA1B,EACA,mBAAAoB,EACA,iBAAAsC,EACA,OAAAzB,EACA,YAAAS,EACA,gBAAAU,CAAA,EACEG,EACJA,EAAE,WAAa,IAAIxG,IAAmC,CAChDyG,EAAM,UACRA,EAAM,SAAS,GAAGzG,CAAC,EAErB0G,EAAW,GAAG1G,CAAC,CACjB,EACAwG,EAAE,YAAc,IAAIxG,IAAoC,CAClDyG,EAAM,WACRA,EAAM,UAAU,GAAGzG,CAAC,EAEtBP,EAAY,GAAGO,CAAC,CAClB,EACAwG,EAAE,mBAAqB,IAAIxG,IAA2C,CAChEyG,EAAM,kBACRA,EAAM,iBAAiB,GAAGzG,CAAC,EAE7BQ,EAAmB,GAAGR,CAAC,CACzB,EACAwG,EAAE,SAAW,IAAIxG,IAAiC,CAC5CyG,EAAM,QACRA,EAAM,OAAO,GAAGzG,CAAC,EAEnBiB,EAAS,GAAGjB,CAAC,CACf,EACAwG,EAAE,iBAAmB,IAAIxG,IAAyC,CAC5DyG,EAAM,gBACRA,EAAM,eAAe,GAAGzG,CAAC,EAE3BoB,EAAiB,GAAGpB,CAAC,CACvB,EACAwG,EAAE,QAAU,IAAIxG,IAAgC,CAC1CyG,EAAM,OACRA,EAAM,MAAM,GAAGzG,CAAC,EAElB2B,EAAQ,GAAG3B,CAAC,CACd,EACAwG,EAAE,mBAAqB,IAAIxG,IAA2C,CAChEyG,EAAM,iBACRA,EAAM,gBAAgB,GAAGzG,CAAC,EAE5B2E,EAAmB,GAAG3E,CAAC,CACzB,EACAwG,EAAE,iBAAmB,IAAIxG,IAAyC,CAC5DyG,EAAM,gBACRA,EAAM,eAAe,GAAGzG,CAAC,EAE3BiD,EAAiB,GAAGjD,CAAC,CACvB,EACAwG,EAAE,mBAAqB,IAAIxG,IAA2C,CAChEyG,EAAM,kBACRA,EAAM,iBAAiB,GAAGzG,CAAC,EAE7BqE,EAAmB,GAAGrE,CAAC,CACzB,EACAwG,EAAE,iBAAmB,IAAIxG,IAAyC,CAC5DyG,EAAM,gBACRA,EAAM,eAAe,GAAGzG,CAAC,EAE3B2G,EAAiB,GAAG3G,CAAC,CACvB,EACAwG,EAAE,OAAS,IAAIxG,IAA+B,CACxCyG,EAAM,MACRA,EAAM,KAAK,GAAGzG,CAAC,EAEjBkF,EAAO,GAAGlF,CAAC,CACb,EACAwG,EAAE,YAAc,IAAIxG,IAAoC,CAClDyG,EAAM,WACRA,EAAM,UAAU,GAAGzG,CAAC,EAEtB2F,EAAY,GAAG3F,CAAC,CAClB,EACAwG,EAAE,gBAAkB,IAAIn6B,IAAwC,CAC1Do6B,EAAM,eACRA,EAAM,cAAc,GAAGp6B,CAAC,EAE1Bg6B,EAAgB,GAAGh6B,CAAC,CACtB,CACF,CAEO,SAASu6B,GACdJ,EACAC,EAAoB,CAAA,EACH,CACjB,MAAMpE,EAAgBmE,EAAE,IAAI,YAC5B,GAAI,CAACnE,EACH,MAAO,IAAM,CAEb,EAGFkE,GAAWC,EAAGC,CAAK,EACnB,IAAII,EACAL,EAAE,YACJK,EAAmBzH,GAAqBoH,EAAGA,EAAE,GAAG,GAElD,MAAMM,EAAmBtH,GAAiBgH,CAAC,EACrCO,EAA0BxG,GAA6BiG,CAAC,EACxDQ,EAAgBhG,GAAmBwF,CAAC,EACpCS,EAAwB9F,GAA2BqF,EAAG,CAC1D,IAAKnE,CAAA,CACN,EACK6E,EAAexF,GAAkB8E,CAAC,EAClCW,EAA0BzC,GAA6B8B,CAAC,EAG9D,IAAIY,EAAqB,IAAM,CAAC,EAE5BC,EAA4B,IAAM,CAAC,EAEnCC,EAA2B,IAAM,CAAC,EAElCC,EAAe,IAAM,CAAC,EACtBf,EAAE,YACJY,EAAqBpE,GAAuBwD,EAAG,CAAE,IAAKnE,CAAA,CAAe,EACrEgF,EAA4BvD,GAA8B0C,EAAGA,EAAE,GAAG,EAClEc,EAA2BlD,GAA6BoC,EAAG,CACzD,IAAKnE,CAAA,CACN,EACGmE,EAAE,eACJe,EAAetC,GAAiBuB,CAAC,IAGrC,MAAMgB,EAAoB/B,GAAsBe,CAAC,EAC3CiB,EAAwBrB,GAA0BI,CAAC,EAGnDkB,EAAoC,CAAA,EAC1C,UAAWxyB,KAAUsxB,EAAE,QACrBkB,EAAe,KACbxyB,EAAO,SAASA,EAAO,SAAUmtB,EAAentB,EAAO,OAAO,CAAA,EAIlE,OAAO8pB,EAAgB,IAAM,CAC3BE,GAAgB,QAASn2B,GAAMA,EAAE,QAAA,CAAS,EAC1Cm2B,GAAgB,QAASn2B,GAAMA,EAAE,MAAA,CAAO,EACxC89B,GAAA,MAAAA,EAAkB,WAAA,EAClBC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAe,QAASpH,GAAMA,EAAA,CAAG,EAGjCpB,GAAgB,OAAS,CAC3B,CAAC,CACH,CAQA,SAASyD,GAAiB3qB,EAAgC,CACxD,OAAO,OAAO,OAAOA,CAAI,GAAM,WACjC,CAEA,SAAS2rB,GAA4B3rB,EAAgC,CACnE,MAAO,GACL,OAAO,OAAOA,CAAI,GAAM,aAGtB,OAAOA,CAAI,EAAE,WACb,eAAgB,OAAOA,CAAI,EAAE,WAC7B,eAAgB,OAAOA,CAAI,EAAE,UAEnC,CCn3CA,MAAqB2vB,EAErB,CAUE,YAAoBC,EAA4B,CATxC1lC,EAAA,KAAA,wBAAA,IAGA,OAAA,EACAA,EAAA,KAAA,wBAAA,IAGA,OAAA,EAEY,KAAA,aAAA0lC,CAA6B,CAEjD,MACEvK,EACAwK,EACAC,EACAC,EACQ,CACR,MAAMC,EAAkBF,GAAiB,KAAK,mBAAmBzK,CAAM,EACjE4K,EAAkBF,GAAiB,KAAK,mBAAmB1K,CAAM,EAEvE,IAAIn2B,EAAK8gC,EAAgB,IAAIH,CAAQ,EACrC,OAAK3gC,IACHA,EAAK,KAAK,aAAA,EACV8gC,EAAgB,IAAIH,EAAU3gC,CAAE,EAChC+gC,EAAgB,IAAI/gC,EAAI2gC,CAAQ,GAE3B3gC,CACT,CAEA,OAAOm2B,EAA2BwK,EAA8B,CAC9D,MAAMG,EAAkB,KAAK,mBAAmB3K,CAAM,EAChD4K,EAAkB,KAAK,mBAAmB5K,CAAM,EACtD,OAAOwK,EAAS,IAAK3gC,GACnB,KAAK,MAAMm2B,EAAQn2B,EAAI8gC,EAAiBC,CAAe,CAAA,CAE3D,CAEA,YACE5K,EACAn2B,EACA6X,EACQ,CACR,MAAMkpB,EAAkBlpB,GAAO,KAAK,mBAAmBse,CAAM,EAE7D,GAAI,OAAOn2B,GAAO,SAAU,OAAOA,EAEnC,MAAM2gC,EAAWI,EAAgB,IAAI/gC,CAAE,EACvC,OAAK2gC,GAAiB,EAExB,CAEA,aAAaxK,EAA2B6K,EAAyB,CAC/D,MAAMD,EAAkB,KAAK,mBAAmB5K,CAAM,EAEtD,OAAO6K,EAAI,IAAKhhC,GAAO,KAAK,YAAYm2B,EAAQn2B,EAAI+gC,CAAe,CAAC,CACtE,CAEA,MAAM5K,EAA4B,CAChC,GAAI,CAACA,EAAQ,CACX,KAAK,sBAAA,IAA4B,QACjC,KAAK,sBAAA,IAA4B,QACjC,MACF,CACA,KAAK,sBAAsB,OAAOA,CAAM,EACxC,KAAK,sBAAsB,OAAOA,CAAM,CAC1C,CAEQ,mBAAmBA,EAA2B,CACpD,IAAI2K,EAAkB,KAAK,sBAAsB,IAAI3K,CAAM,EAC3D,OAAK2K,IACHA,EAAA,IAAsB,IACtB,KAAK,sBAAsB,IAAI3K,EAAQ2K,CAAe,GAEjDA,CACT,CAEQ,mBAAmB3K,EAA2B,CACpD,IAAI4K,EAAkB,KAAK,sBAAsB,IAAI5K,CAAM,EAC3D,OAAK4K,IACHA,EAAA,IAAsB,IACtB,KAAK,sBAAsB,IAAI5K,EAAQ4K,CAAe,GAEjDA,CACT,CACF,CC3EO,MAAME,EAAc,CAuBzB,YAAY55B,EAMT,CA5BKrM,EAAA,KAAA,UAAA,IAAgD,OAAA,EAChDA,EAAA,KAAA,uBAAA,IACF,OAAA,EACCA,EAAA,KAAA,0BAA0B,IAAIylC,GAAwBx8B,EAAK,CAAA,EAC3DjJ,EAAA,KAAA,8BAAA,EACAA,EAAA,KAAA,6BAAA,IACD,OAAA,EACEA,EAAA,KAAA,QAAA,EACAA,EAAA,KAAA,YAAA,EACAA,EAAA,KAAA,aAAA,EACAA,EAAA,KAAA,cAAA,EACAA,EAAA,KAAA,mBAAA,EACAA,EAAA,KAAA,0BAAA,EACAA,EAAA,KAAA,gBAAA,EAEAA,EAAA,KAAA,wBAAA,IACF,GAAA,EACEA,EAAA,KAAA,kBAAA,IAGA,GAAA,EASN,KAAK,WAAaqM,EAAQ,WAC1B,KAAK,YAAcA,EAAQ,YAC3B,KAAK,kBAAoBA,EAAQ,kBACjC,KAAK,yBAA2BA,EAAQ,yBACxC,KAAK,6BAA+B,IAAIo5B,GACtC,KAAK,kBAAkB,YAAY,WAAW,KAC5C,KAAK,kBAAkB,WAAA,CACzB,EAEF,KAAK,OAASp5B,EAAQ,OACtB,KAAK,eAAiB,KAAK,cAAc,KAAK,IAAI,EAC9C,KAAK,0BACP,OAAO,iBAAiB,UAAW,KAAK,cAAc,CAE1D,CAEO,UAAUlL,EAA6B,CAC5C,KAAK,QAAQ,IAAIA,EAAU,EAAI,EAC3BA,EAAS,eACX,KAAK,qBAAqB,IAAIA,EAAS,cAAeA,CAAQ,CAClE,CAEO,gBAAgB8Y,EAA8C,CACnE,KAAK,aAAeA,CACtB,CAEO,oBAAqB,CAC1B,KAAK,aAAe,MACtB,CAEQ,mBACN9Y,EACA4f,EACQ,CACR,MAAMmlB,EAAW,KAAK,OAAO,MAAM/kC,CAAQ,EAC3C,YAAK,gBAAgB,IAAI+kC,EAAU,CAAE,QAAS/kC,EAAU,QAAA4f,CAAA,CAAS,EAC1DmlB,CACT,CAEO,aACL/kC,EACAi6B,EACA,OACA,MAAM8K,EAAW,KAAK,mBAAmB/kC,EAAUi6B,CAAO,EAC1D,KAAK,WAAW,CACd,KAAM,CACJ,CACE,SAAU8K,EACV,OAAQ,KACR,KAAM9K,CAAA,CACR,EAEF,QAAS,CAAA,EACT,MAAO,CAAA,EACP,WAAY,CAAA,EACZ,eAAgB,EAAA,CACjB,EAGD,MAAMh6B,EAAMD,EAAS,cACrB,GACE,KAAK,0BACLC,GACA,CAAC,KAAK,sBAAsB,IAAIA,CAAG,EACnC,CACA,MAAM+kC,EAAgB,KAAK,cAAc,KAAK,IAAI,EAClD,KAAK,sBAAsB,IAAI/kC,EAAK+kC,CAAa,EACjD/kC,EAAI,iBAAiB,UAAW+kC,CAAa,CAC/C,EAEA5lC,EAAA,KAAK,eAAL,MAAAA,EAAA,KAAA,KAAoBY,CAAA,EAGlBA,EAAS,iBACTA,EAAS,gBAAgB,oBACzBA,EAAS,gBAAgB,mBAAmB,OAAS,GAErD,KAAK,kBAAkB,iBACrBA,EAAS,gBAAgB,mBACzB,KAAK,OAAO,MAAMA,EAAS,eAAe,CAAA,CAEhD,CACQ,cAAcyR,EAAuD,CAC3E,MAAMwzB,EAA0BxzB,EAShC,GAPEwzB,EAAwB,KAAK,OAAS,SAEtCA,EAAwB,SAAWA,EAAwB,KAAK,QAK9D,CADuBxzB,EAAQ,OACV,OAEzB,MAAMzR,EAAW,KAAK,qBAAqB,IAAIyR,EAAQ,MAAM,EAC7D,GAAI,CAACzR,EAAU,OAEf,MAAMklC,EAAmB,KAAK,0BAC5BllC,EACAilC,EAAwB,KAAK,KAAA,EAG3BC,GACF,KAAK,YACHA,EACAD,EAAwB,KAAK,UAAA,CAEnC,CAEQ,0BACNjlC,EACAG,EACuB,OACvB,OAAQA,EAAE,KAAA,CACR,KAAKo4B,EAAU,aAAc,CAC3B,KAAK,wBAAwB,MAAMv4B,CAAQ,EAC3C,KAAK,6BAA6B,MAAMA,CAAQ,EAIhD,KAAK,gBAAgBG,EAAE,KAAK,KAAMH,CAAQ,EAC1C,MAAM2L,EAASxL,EAAE,KAAK,KAAK,GAC3B,YAAK,2BAA2B,IAAIH,EAAU2L,CAAM,EACpD,KAAK,kBAAkBxL,EAAE,KAAK,KAAMwL,CAAM,EAC1C,KAAK,mBAAmB3L,EAAUG,EAAE,KAAK,IAAI,EACtC,CACL,UAAWA,EAAE,UACb,KAAMo4B,EAAU,oBAChB,KAAM,CACJ,OAAQE,EAAkB,SAC1B,KAAM,CACJ,CACE,SAAU,KAAK,OAAO,MAAMz4B,CAAQ,EACpC,OAAQ,KACR,KAAMG,EAAE,KAAK,IAAA,CACf,EAEF,QAAS,CAAA,EACT,MAAO,CAAA,EACP,WAAY,CAAA,EACZ,eAAgB,EAAA,CAClB,CAEJ,CACA,KAAKo4B,EAAU,KACf,KAAKA,EAAU,KACf,KAAKA,EAAU,iBACb,MAAO,GAET,KAAKA,EAAU,OACb,OAAOp4B,EAET,KAAKo4B,EAAU,OACb,YAAK,WACHp4B,EAAE,KAAK,QAMPH,EACA,CAAC,KAAM,WAAY,aAAc,QAAQ,CAAA,EAEpCG,EAET,KAAKo4B,EAAU,oBACb,OAAQp4B,EAAE,KAAK,OAAA,CACb,KAAKs4B,EAAkB,SACrBt4B,OAAAA,EAAE,KAAK,KAAK,QAASW,GAAM,CACzB,KAAK,WAAWA,EAAGd,EAAU,CAC3B,WACA,SACA,YAAA,CACD,EACD,KAAK,gBAAgBc,EAAE,KAAMd,CAAQ,EACrC,MAAM2L,EAAS,KAAK,2BAA2B,IAAI3L,CAAQ,EAC3D2L,GAAU,KAAK,kBAAkB7K,EAAE,KAAM6K,CAAM,CACjD,CAAC,EACDxL,EAAE,KAAK,QAAQ,QAASW,GAAM,CAC5B,KAAK,WAAWA,EAAGd,EAAU,CAAC,WAAY,IAAI,CAAC,CACjD,CAAC,EACDG,EAAE,KAAK,WAAW,QAASW,GAAM,CAC/B,KAAK,WAAWA,EAAGd,EAAU,CAAC,IAAI,CAAC,CACrC,CAAC,EACDG,EAAE,KAAK,MAAM,QAASW,GAAM,CAC1B,KAAK,WAAWA,EAAGd,EAAU,CAAC,IAAI,CAAC,CACrC,CAAC,EACMG,EAET,KAAKs4B,EAAkB,KACvB,KAAKA,EAAkB,UACvB,KAAKA,EAAkB,UACrBt4B,OAAAA,EAAE,KAAK,UAAU,QAASw8B,GAAM,CAC9B,KAAK,WAAWA,EAAG38B,EAAU,CAAC,IAAI,CAAC,CACrC,CAAC,EACMG,EAET,KAAKs4B,EAAkB,eAErB,MAAO,GAET,KAAKA,EAAkB,iBACvB,KAAKA,EAAkB,iBACvB,KAAKA,EAAkB,OACvB,KAAKA,EAAkB,eACvB,KAAKA,EAAkB,MACrB,YAAK,WAAWt4B,EAAE,KAAMH,EAAU,CAAC,IAAI,CAAC,EACjCG,EAET,KAAKs4B,EAAkB,eACvB,KAAKA,EAAkB,iBACrB,YAAK,WAAWt4B,EAAE,KAAMH,EAAU,CAAC,IAAI,CAAC,EACxC,KAAK,gBAAgBG,EAAE,KAAMH,EAAU,CAAC,SAAS,CAAC,EAC3CG,EAET,KAAKs4B,EAAkB,KAErB,OAAOt4B,EAET,KAAKs4B,EAAkB,UACrBt4B,OAAAA,EAAE,KAAK,OAAO,QAASskB,GAAU,CAC/B,KAAK,WAAWA,EAAOzkB,EAAU,CAAC,QAAS,KAAK,CAAC,CACnD,CAAC,EACMG,EAET,KAAKs4B,EAAkB,kBACrB,YAAK,WAAWt4B,EAAE,KAAMH,EAAU,CAAC,IAAI,CAAC,EACxC,KAAK,gBAAgBG,EAAE,KAAMH,EAAU,CAAC,UAAU,CAAC,GACnDZ,EAAAe,EAAE,KAAK,SAAP,MAAAf,EAAe,QAASosB,GAAU,CAChC,KAAK,gBAAgBA,EAAOxrB,EAAU,CAAC,SAAS,CAAC,CACnD,CAAA,EACOG,CACT,CAEJ,CAEF,MAAO,EACT,CAEQ,QACNglC,EACAzmC,EACAsB,EACAolC,EACG,CACH,UAAWzmC,KAAOymC,EACZ,CAAC,MAAM,QAAQ1mC,EAAIC,CAAG,CAAC,GAAK,OAAOD,EAAIC,CAAG,GAAM,WAChD,MAAM,QAAQD,EAAIC,CAAG,CAAC,EACxBD,EAAIC,CAAG,EAAIwmC,EAAa,OACtBnlC,EACAtB,EAAIC,CAAG,CAAA,EAGRD,EAAIC,CAAG,EAAewmC,EAAa,MAAMnlC,EAAUtB,EAAIC,CAAG,CAAW,GAI1E,OAAOD,CACT,CAEQ,WACNA,EACAsB,EACAolC,EACG,CACH,OAAO,KAAK,QAAQ,KAAK,wBAAyB1mC,EAAKsB,EAAUolC,CAAI,CACvE,CAEQ,gBACN1mC,EACAsB,EACAolC,EACG,CACH,OAAO,KAAK,QAAQ,KAAK,6BAA8B1mC,EAAKsB,EAAUolC,CAAI,CAC5E,CAEQ,gBACNphC,EACAhE,EACA,CACA,KAAK,WAAWgE,EAAMhE,EAAU,CAAC,KAAM,QAAQ,CAAC,EAC5C,eAAgBgE,GAClBA,EAAK,WAAW,QAASoQ,GAAU,CACjC,KAAK,gBAAgBA,EAAOpU,CAAQ,CACtC,CAAC,CAEL,CAEQ,kBAAkBgE,EAA4B2H,EAAgB,CAChE3H,EAAK,OAAS6H,GAAS,UAAY,CAAC7H,EAAK,SAAA0P,EAAa,OAAS/H,GAC/D,eAAgB3H,GAClBA,EAAK,WAAW,QAASoQ,GAAU,CACjC,KAAK,kBAAkBA,EAAOzI,CAAM,CACtC,CAAC,CAEL,CAEO,iBAAiBo5B,EAAkB,CACxC,MAAMM,EAAQ,KAAK,gBAAgB,IAAIN,CAAQ,EACzC/K,GACJqL,GAAA,KAAA,OAAAA,EAAO,UACN,KAAK,OAAO,QAAQN,CAAQ,EAE/B,GAAI/K,EAAQ,CACV,MAAM/5B,EAAM+5B,EAAO,cAGnB,GAAI/5B,GAAO,KAAK,sBAAsB,IAAIA,CAAG,EAAG,CAC9C,MAAMw7B,EAAU,KAAK,sBAAsB,IAAIx7B,CAAG,EAClDA,EAAI,oBAAoB,UAAWw7B,CAAO,EAC1C,KAAK,sBAAsB,OAAOx7B,CAAG,CACvC,CAGIA,GACF,KAAK,qBAAqB,OAAOA,CAAG,EAEtC,KAAK,QAAQ,OAAO+5B,CAAM,CAC5B,CAGIqL,GACF,KAAK,gBAAgB,OAAON,CAAQ,CAExC,CAEO,iBAAkB,CACvB,KAAK,gBAAgB,QAAQ,CAAC,CAAE,QAAAnlB,CAAA,EAAWmlB,IAAa,CAGtD,GAAI,CAAC,KAAK,OAAO,IAAIA,CAAQ,EAAG,CAC9B,KAAK,gBAAgB,OAAOA,CAAQ,EACpC,MACF,CAEA,KAAK,WAAW,CACd,KAAM,CACJ,CACE,SAAUA,EACV,OAAQ,KACR,KAAMnlB,CAAA,CACR,EAEF,QAAS,CAAA,EACT,MAAO,CAAA,EACP,WAAY,CAAA,EACZ,eAAgB,EAAA,CACjB,CACH,CAAC,CACH,CAEO,SAAU,CACX,KAAK,0BACP,OAAO,oBAAoB,UAAW,KAAK,cAAc,EAI3D,KAAK,sBAAsB,QAAQ,CAAC6b,EAAS6J,IAAkB,CAC7DA,EAAc,oBAAoB,UAAW7J,CAAO,CACtD,CAAC,EACD,KAAK,sBAAsB,MAAA,EAE3B,KAAK,wBAAwB,MAAA,EAC7B,KAAK,6BAA6B,MAAA,EAClC,KAAK,gBAAgB,MAAA,EAErB,KAAK,qBAAA,IAA2B,QAChC,KAAK,QAAA,IAAc,QACnB,KAAK,2BAAA,IAAiC,OACxC,CACF,CCtYO,MAAM8J,EAAiB,CAQ5B,YAAYr6B,EAKT,CAZKrM,EAAA,KAAA,aAAA,IAAiB,OAAA,EACjBA,EAAA,KAAA,YAAA,EACAA,EAAA,KAAA,UAAA,EACAA,EAAA,KAAA,eAAA,EACAA,EAAA,KAAA,QAAA,EACAA,EAAA,KAAA,kBAAkC,CAAA,CAAA,EAQxC,KAAK,WAAaqM,EAAQ,WAC1B,KAAK,SAAWA,EAAQ,SACxB,KAAK,cAAgBA,EAAQ,cAC7B,KAAK,OAASA,EAAQ,OAEtB,KAAK,KAAA,CACP,CAEO,MAAO,CACZ,KAAK,MAAA,EAEL,KAAK,kBAAkB,QAAS,QAAQ,CAC1C,CAEO,cAAc3J,EAAwB+G,EAAe,CAE1D,GADI,CAAChG,GAAkBf,CAAU,GAC7B,KAAK,WAAW,IAAIA,CAAU,EAAG,OACrC,KAAK,WAAW,IAAIA,CAAU,EAC9B,MAAM26B,EAAWH,GACflkB,GAAAC,EAAA,GACK,KAAK,eADV,CAEE,IAAAxP,EACA,WAAY,KAAK,WACjB,OAAQ,KAAK,OACb,iBAAkB,IAAA,GAEpB/G,CAAA,EAEF,KAAK,gBAAgB,KAAK,IAAM26B,EAAS,WAAA,CAAY,EACrD,KAAK,gBAAgB,KACnByB,GAAmB9lB,GAAAC,EAAA,GACd,KAAK,eADS,CAEjB,SAAU,KAAK,SAGf,IAAKvW,EACL,OAAQ,KAAK,MAAA,EACd,CAAA,EAGH,WAAW,IAAM,CAEbA,EAAW,oBACXA,EAAW,mBAAmB,OAAS,GAEvC,KAAK,cAAc,kBAAkB,iBACnCA,EAAW,mBACX,KAAK,OAAO,MAAMyyB,EAAI,KAAKzyB,CAAU,CAAC,CAAA,EAE1C,KAAK,gBAAgB,KACnBk/B,GACE,CACE,OAAQ,KAAK,OACb,kBAAmB,KAAK,cAAc,iBAAA,EAExCl/B,CAAA,CACF,CAEJ,EAAG,CAAC,CACN,CAKO,oBAAoBikC,EAAkC,CACvD,CAACA,EAAc,eAAiB,CAACA,EAAc,iBAEnD,KAAK,kBAEDA,EAAc,cAGd,QACFA,EAAc,eAAA,CAElB,CAKQ,kBACNnhC,EAGAiE,EACA,CAEA,MAAMm9B,EAAU,KAChB,KAAK,gBAAgB,KACnB7jC,GACEyC,EAAQ,UACR,eACA,SAAUrC,EAAgD,CACxD,OAAO,SAAyB0jC,EAAwB,CACtD,MAAMC,EAAQ3jC,EAAS,KAAK,KAAM0jC,CAAM,EAIlC3hC,EAAeiwB,EAAI,WAAW,IAAI,EACxC,OAAIjwB,GAAgBu0B,GAAM,IAAI,GAC5BmN,EAAQ,cAAc1hC,EAAcuE,CAAG,EAClCq9B,CACT,CACF,CAAA,CACF,CAEJ,CAEO,OAAQ,CACb,KAAK,gBAAgB,QAASlK,GAAY,CACxC,GAAI,CACFA,EAAA,CACF,OAASt7B,EAAG,CAEZ,CACF,CAAC,EACD,KAAK,gBAAkB,CAAA,EACvB,KAAK,WAAA,IAAiB,OACxB,CACF,CCvJA,IAAIwI,GAAQ,mEAERi9B,GAAS,OAAO,YAAe,YAAc,CAAA,EAAK,IAAI,WAAW,GAAG,EACxE,QAASl5B,GAAI,EAAGA,GAAI/D,GAAM,OAAQ+D,KAC9Bk5B,GAAOj9B,GAAM,WAAW+D,EAAC,CAAC,EAAIA,GAElC,IAAIm5B,GAAS,SAAUC,EAAa,CAChC,IAAIC,EAAQ,IAAI,WAAWD,CAAW,EAAGp5B,EAAGD,EAAMs5B,EAAM,OAAQC,EAAS,GACzE,IAAKt5B,EAAI,EAAGA,EAAID,EAAKC,GAAK,EACtBs5B,GAAUr9B,GAAMo9B,EAAMr5B,CAAC,GAAK,CAAC,EAC7Bs5B,GAAUr9B,IAAQo9B,EAAMr5B,CAAC,EAAI,IAAM,EAAMq5B,EAAMr5B,EAAI,CAAC,GAAK,CAAE,EAC3Ds5B,GAAUr9B,IAAQo9B,EAAMr5B,EAAI,CAAC,EAAI,KAAO,EAAMq5B,EAAMr5B,EAAI,CAAC,GAAK,CAAE,EAChEs5B,GAAUr9B,GAAMo9B,EAAMr5B,EAAI,CAAC,EAAI,EAAE,EAErC,OAAID,EAAM,IAAM,EACZu5B,EAASA,EAAO,UAAU,EAAGA,EAAO,OAAS,CAAC,EAAI,IAE7Cv5B,EAAM,IAAM,IACjBu5B,EAASA,EAAO,UAAU,EAAGA,EAAO,OAAS,CAAC,EAAI,MAE/CA,CACX,EACIC,GAAS,SAAUD,EAAQ,CAC3B,IAAIE,EAAeF,EAAO,OAAS,IAAMv5B,EAAMu5B,EAAO,OAAQt5B,EAAGiwB,EAAI,EAAGwJ,EAAUC,EAAUC,EAAUC,EAClGN,EAAOA,EAAO,OAAS,CAAC,IAAM,MAC9BE,IACIF,EAAOA,EAAO,OAAS,CAAC,IAAM,KAC9BE,KAGR,IAAIJ,EAAc,IAAI,YAAYI,CAAY,EAAGH,EAAQ,IAAI,WAAWD,CAAW,EACnF,IAAKp5B,EAAI,EAAGA,EAAID,EAAKC,GAAK,EACtBy5B,EAAWP,GAAOI,EAAO,WAAWt5B,CAAC,CAAC,EACtC05B,EAAWR,GAAOI,EAAO,WAAWt5B,EAAI,CAAC,CAAC,EAC1C25B,EAAWT,GAAOI,EAAO,WAAWt5B,EAAI,CAAC,CAAC,EAC1C45B,EAAWV,GAAOI,EAAO,WAAWt5B,EAAI,CAAC,CAAC,EAC1Cq5B,EAAMpJ,GAAG,EAAKwJ,GAAY,EAAMC,GAAY,EAC5CL,EAAMpJ,GAAG,GAAMyJ,EAAW,KAAO,EAAMC,GAAY,EACnDN,EAAMpJ,GAAG,GAAM0J,EAAW,IAAM,EAAMC,EAAW,GAErD,OAAOR,CACX,ECzCA,MAAMS,GAAA,IAAwD,IACvD,SAASC,GAAgBvhC,EAAuBwhC,EAAc,CACnE,IAAIC,EAAaH,GAAa,IAAIthC,CAAG,EACrC,OAAKyhC,IACHA,EAAA,IAAiB,IACjBH,GAAa,IAAIthC,EAAKyhC,CAAU,GAE7BA,EAAW,IAAID,CAAI,GACtBC,EAAW,IAAID,EAAM,CAAA,CAAE,EAElBC,EAAW,IAAID,CAAI,CAC5B,CAEO,MAAME,GAAe,CAC1B/nC,EACAqB,EACAgF,IACkB,CAClB,GACE,CAACrG,GACD,EAAEgoC,GAAwBhoC,EAAOqB,CAAG,GAAK,OAAOrB,GAAU,UAE1D,OAEF,MAAMkD,EAAOlD,EAAM,YAAY,KACzBof,EAAOwoB,GAAgBvhC,EAAKnD,CAAI,EACtC,IAAII,EAAQ8b,EAAK,QAAQpf,CAAK,EAE9B,OAAIsD,IAAU,KACZA,EAAQ8b,EAAK,OACbA,EAAK,KAAKpf,CAAK,GAEVsD,CACT,EAGO,SAAS2kC,GACdjoC,EACAqB,EACAgF,EACAsE,EACW,CACX,GAAI3K,aAAiB,MACnB,OAAOA,EAAM,IAAKkoC,GAAQD,GAAaC,EAAK7mC,EAAKgF,EAAKsE,CAAc,CAAC,EACvE,GAAW3K,IAAU,KACnB,OAAOA,EACT,GACEA,aAAiB,cACjBA,aAAiB,cACjBA,aAAiB,YACjBA,aAAiB,aACjBA,aAAiB,YACjBA,aAAiB,aACjBA,aAAiB,YACjBA,aAAiB,WACjBA,aAAiB,kBAGjB,MAAO,CACL,QAFWA,EAAM,YAAY,KAG7B,KAAM,CAAC,OAAO,OAAOA,CAAK,CAAC,CAAA,EAE/B,GAIEA,aAAiB,YACjB,CACA,MAAMkD,EAAOlD,EAAM,YAAY,KACzBonC,EAASH,GAAOjnC,CAAK,EAE3B,MAAO,CACL,QAASkD,EACT,OAAAkkC,CAAA,CAEJ,KAAA,IAAWpnC,aAAiB,SAE1B,MAAO,CACL,QAFWA,EAAM,YAAY,KAG7B,KAAM,CACJioC,GAAajoC,EAAM,OAAQqB,EAAKgF,EAAKsE,CAAc,EACnD3K,EAAM,WACNA,EAAM,UAAA,CACR,EAEJ,GAAWA,aAAiB,iBAAkB,CAC5C,MAAMkD,EAAOlD,EAAM,YAAY,KACzB,CAAE,IAAAmoC,CAAA,EAAQnoC,EAChB,MAAO,CACL,QAASkD,EACT,IAAAilC,CAAA,CAEJ,SAAWnoC,aAAiB,kBAAmB,CAC7C,MAAMkD,EAAO,mBAEPilC,EAAMnoC,EAAM,UAAU2K,EAAe,KAAMA,EAAe,OAAO,EACvE,MAAO,CACL,QAASzH,EACT,IAAAilC,CAAA,CAEJ,KAAA,IAAWnoC,aAAiB,UAE1B,MAAO,CACL,QAFWA,EAAM,YAAY,KAG7B,KAAM,CACJioC,GAAajoC,EAAM,KAAMqB,EAAKgF,EAAKsE,CAAc,EACjD3K,EAAM,MACNA,EAAM,MAAA,CACR,EASJ,GAAWgoC,GAAwBhoC,EAAOqB,CAAG,GAAK,OAAOrB,GAAU,SAAU,CAC3E,MAAMkD,EAAOlD,EAAM,YAAY,KACzBsD,EAAQykC,GAAa/nC,EAAOqB,EAAKgF,CAAG,EAE1C,MAAO,CACL,QAASnD,EACT,MAAAI,CAAA,CAEJ,GAEA,OAAOtD,CACT,CAEO,MAAMooC,GAAgB,CAC3BnuB,EACA5Y,EACAgF,EACAsE,IAEOsP,EAAK,IAAKiuB,GAAQD,GAAaC,EAAK7mC,EAAKgF,EAAKsE,CAAc,CAAC,EAGzDq9B,GAA0B,CACrChoC,EACAqB,IA6BO,EAjBiC,CACtC,kBACA,cACA,mBACA,eACA,oBACA,cACA,6BACA,eACA,uBACA,yBAEA,2BAAA,EAE2D,OAC1D6B,GAAiB,OAAO7B,EAAI6B,CAAoB,GAAM,UAAA,EAGxB,KAC5BA,GAAiBlD,aAAiBqB,EAAI6B,CAAoB,CAAA,ECrKjE,SAAwBmlC,GACtBnuB,EACA7Y,EACA4J,EACAC,EACAP,EACiB,CACjB,MAAMyzB,EAA8B,CAAA,EAC9BkK,EAAU,OAAO,oBACrBjnC,EAAI,yBAAyB,SAAA,EAE/B,UAAW0U,KAAQuyB,EACjB,GAAI,CACF,GACE,OAAOjnC,EAAI,yBAAyB,UAClC0U,CACF,GAAM,WAEN,SAEF,MAAMwtB,EAAiBvgC,GACrB3B,EAAI,yBAAyB,UAC7B0U,EACA,SACE3S,EAIA,CACA,OAAO,YAEF6W,EACH,CACA,OAAK4c,GAAU,KAAK,OAAQ5rB,EAAYC,EAAe,EAAI,GAGzD,WAAW,IAAM,CACf,MAAMq9B,EAAaH,GACjBnuB,EACA5Y,EACA,KACAsJ,CAAA,EAEFuP,EAAG,KAAK,OAAQ,CACd,KAAMigB,GAAc,IAAI,EACxB,SAAUpkB,EACV,KAAMwyB,CAAA,CACP,CACH,EAAG,CAAC,EAECnlC,EAAS,MAAM,KAAM6W,CAAI,CAClC,CACF,CAAA,EAEFmkB,EAAS,KAAKmF,CAAc,CAC9B,OAAQhiC,EAAA,CACN,MAAMinC,EAAcpS,GAClB/0B,EAAI,yBAAyB,UAC7B0U,EACA,CACE,IAAImqB,EAAG,CAELhmB,EAAG,KAAK,OAAQ,CACd,KAAMigB,GAAc,IAAI,EACxB,SAAUpkB,EACV,KAAM,CAACmqB,CAAC,EACR,OAAQ,EAAA,CACT,CACH,CAAA,CACF,EAEF9B,EAAS,KAAKoK,CAAW,CAC3B,CAEF,MAAO,IAAM,CACXpK,EAAS,QAASC,GAAMA,EAAA,CAAG,CAC7B,CACF,CChFA,SAASoK,GAAyBC,EAAqB,CACrD,OAAOA,IAAgB,qBAAuB,QAAUA,CAC1D,CAEA,SAAwBC,GACtBtnC,EACA4J,EACAC,EACA09B,EACiB,CACjB,MAAMxK,EAA8B,CAAA,EACpC,GAAI,CACF,MAAMmF,EAAiBvgC,GACrB3B,EAAI,kBAAkB,UACtB,aACA,SACE+B,EAKA,CACA,OAAO,SAELslC,KACGzuB,EACH,CACA,GAAI,CAAC4c,GAAU,KAAM5rB,EAAYC,EAAe,EAAI,EAAG,CACrD,MAAM29B,EAAUJ,GAAyBC,CAAW,EAGpD,GAFM,cAAe,OAAQ,KAAiB,UAAYG,GAGxDD,GACA,CAAC,QAAS,QAAQ,EAAE,SAASC,CAAO,EAEpC,GAAI5uB,EAAK,CAAC,GAAK,OAAOA,EAAK,CAAC,GAAM,SAAU,CAC1C,MAAM6uB,EAAoB7uB,EAAK,CAAC,EAC3B6uB,EAAkB,wBACrBA,EAAkB,sBAAwB,GAE9C,MACE7uB,EAAK,OAAO,EAAG,EAAG,CAChB,sBAAuB,EAAA,CACxB,CAGP,CACA,OAAO7W,EAAS,MAAM,KAAM,CAACslC,EAAa,GAAGzuB,CAAI,CAAC,CACpD,CACF,CAAA,EAEFmkB,EAAS,KAAKmF,CAAc,CAC9B,OAAQhiC,EAAA,CACN,QAAQ,MAAM,wDAAwD,CACxE,CACA,MAAO,IAAM,CACX68B,EAAS,QAASC,GAAMA,EAAA,CAAG,CAC7B,CACF,CCtDA,SAAS0K,GACPC,EACApjC,EACAsU,EACAjP,EACAC,EACA7J,EACAsJ,EACmB,CACnB,MAAMyzB,EAA8B,CAAA,EAE9B6K,EAAQ,OAAO,oBAAoBD,CAAS,EAElD,UAAWjzB,KAAQkzB,EACjB,GAEE,EACE,gBACA,SACA,qBACA,qBAAA,EACA,SAASlzB,CAAI,EAKjB,GAAI,CACF,GAAI,OAAOizB,EAAUjzB,CAA8B,GAAM,WACvD,SAEF,MAAMwtB,EAAiBvgC,GACrBgmC,EACAjzB,EACA,SACE3S,EACA,CACA,OAAO,YAAqC6W,EAAsB,CAChE,MAAM8L,EAAS3iB,EAAS,MAAM,KAAM6W,CAAI,EAExC,GADA8tB,GAAahiB,EAAQ1kB,EAAK,IAAI,EAE5B,YAAa,KAAK,QAClB,CAACw1B,GAAU,KAAK,OAAQ5rB,EAAYC,EAAe,EAAI,EACvD,CACA,MAAMq9B,EAAaH,GAAcnuB,EAAM5Y,EAAK,KAAMsJ,CAAc,EAC1D+sB,EAAmC,CACvC,KAAA9xB,EACA,SAAUmQ,EACV,KAAMwyB,CAAA,EAGRruB,EAAG,KAAK,OAAQwd,CAAQ,CAC1B,CAEA,OAAO3R,CACT,CACF,CAAA,EAEFqY,EAAS,KAAKmF,CAAc,CAC9B,OAAQhiC,EAAA,CACN,MAAMinC,EAAcpS,GAA6B4S,EAAWjzB,EAAM,CAChE,IAAImqB,EAAG,CAGLhmB,EAAG,KAAK,OAA6B,CACnC,KAAAtU,EACA,SAAUmQ,EACV,KAAM,CAACmqB,CAAC,EACR,OAAQ,EAAA,CACT,CACH,CAAA,CACD,EACD9B,EAAS,KAAKoK,CAAW,CAC3B,CAGF,OAAOpK,CACT,CAEA,SAAwB8K,GACtBhvB,EACA7Y,EACA4J,EACAC,EACAP,EACiB,CACjB,MAAMyzB,EAA8B,CAAA,EAEpC,OAAAA,EAAS,KACP,GAAG2K,GACD1nC,EAAI,sBAAsB,UAC1B84B,GAAc,MACdjgB,EACAjP,EACAC,EACA7J,EACAsJ,CAAA,CACF,EAGE,OAAOtJ,EAAI,wBAA2B,aACxC+8B,EAAS,KACP,GAAG2K,GACD1nC,EAAI,uBAAuB,UAC3B84B,GAAc,OACdjgB,EACAjP,EACAC,EACA7J,EACAsJ,CAAA,CACF,EAIG,IAAM,CACXyzB,EAAS,QAASC,GAAMA,EAAA,CAAG,CAC7B,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wfCtGO,MAAM8K,EAAc,CAyCzB,YAAY78B,EAST,CAjDKrM,EAAA,KAAA,yBAAA,IAAwD,GAAA,EACxDA,EAAA,KAAA,YAAuB,CAAE,SAAU,EAAG,SAAU,IAAA,CAAA,EAChDA,EAAA,KAAA,QAAA,EAEAA,EAAA,KAAA,YAAA,EACAA,EAAA,KAAA,gBAAA,EACAA,EAAA,KAAA,SAAS,EAAA,EACTA,EAAA,KAAA,SAAS,EAAA,EACTA,EAAA,KAAA,iBAAgC,IAAA,EAChCA,EAAA,KAAA,aAA4B,IAAA,EAiE5BA,EAAA,KAAA,kBAAiD,CACvDw1B,EACAiC,IACG,EAED,KAAK,UAAU,UACf,KAAK,UAAU,WAAa,KAAK,UAAU,UAC7B,CAAC,KAAK,UAAU,YAC9B,KAAK,UAAU,SAAW,KAAK,UAAU,UAEtC,KAAK,uBAAuB,IAAIjC,CAAM,GACzC,KAAK,uBAAuB,IAAIA,EAAQ,CAAA,CAAE,EAG5C,KAAK,uBAAuB,IAAIA,CAAM,EAAG,KAAKiC,CAAQ,CACxD,CAAA,EAvCE,KAAM,CACJ,SAAA+F,EAAW,MACX,IAAAp8B,EACA,WAAA4J,EACA,cAAAC,EACA,aAAA0B,EACA,eAAAjC,CAAA,EACE2B,EACJ,KAAK,WAAaA,EAAQ,WAC1B,KAAK,OAASA,EAAQ,OAElBM,GAAgB6wB,IAAa,OAC/B,KAAK,2BACHp8B,EACA4J,EACAC,EACAP,CAAA,EAEAiC,GAAgB,OAAO6wB,GAAa,UACtC,KAAK,sBAAsBA,EAAUp8B,EAAK4J,EAAYC,EAAe,CACnE,eAAAP,CAAA,CACD,CACL,CA7DO,OAAQ,CACb,KAAK,uBAAuB,MAAA,EAC5B,KAAK,gBAAkB,KAAK,eAAA,EACxB,KAAK,iBAAmB,OAC1B,qBAAqB,KAAK,cAAc,EACxC,KAAK,eAAiB,MAEpB,KAAK,aAAe,OACtB,qBAAqB,KAAK,UAAU,EACpC,KAAK,WAAa,KAEtB,CAEO,QAAS,CACd,KAAK,OAAS,EAChB,CAEO,UAAW,CAChB,KAAK,OAAS,EAChB,CAEO,MAAO,CACZ,KAAK,OAAS,EAChB,CAEO,QAAS,CACd,KAAK,OAAS,EAChB,CAqDQ,sBACNy+B,EACA/nC,EACA4J,EACAC,EACAoB,EAGA,CACA,GAAI,EAAE,oBAAqBjL,GACzB,OAGF,MAAMgoC,EAAqBV,GACzBtnC,EACA4J,EACAC,EACA,EAAA,EAEIo+B,EAAA,IAAkD,IAClDC,EACJ,IAAIC,GACND,EAAO,UAAahoC,GAAM,CACxB,KAAM,CAAE,GAAA0D,CAAA,EAAO1D,EAAE,KAGjB,GAFA+nC,EAAsB,IAAIrkC,EAAI,EAAK,EAE/B,EAAE,WAAY1D,EAAE,MAAO,OAE3B,KAAM,CAAE,OAAA6lC,EAAQ,KAAAxhC,EAAM,MAAAiJ,EAAO,OAAAC,CAAA,EAAWvN,EAAE,KAC1C,KAAK,WAAW,CACd,GAAA0D,EACA,KAAMk1B,GAAc,IAAI,EACxB,SAAU,CACR,CACE,SAAU,YACV,KAAM,CAAC,EAAG,EAAGtrB,EAAOC,CAAM,CAAA,EAE5B,CACE,SAAU,YACV,KAAM,CACJ,CACE,QAAS,cACT,KAAM,CACJ,CACE,QAAS,OACT,KAAM,CAAC,CAAE,QAAS,cAAe,OAAAs4B,CAAA,CAAQ,EACzC,KAAAxhC,CAAA,CACF,CACF,EAEF,EACA,CAAA,CACF,CACF,EAEF,aAAciJ,EACd,cAAeC,CAAA,CAChB,CACH,EAEA,MAAM26B,EAAuB,IAAOL,EACpC,IAAIM,EAAmB,EACnBC,EAEJ,MAAMC,EAAY,IAA2B,CAC3C,MAAMC,EAAqC,CAAA,EACrCC,EAAgBC,GAAyB,CAC7CA,EAAS,iBAAiB,QAAQ,EAAE,QAAS3jC,GAAW,CACjDywB,GAAUzwB,EAAQ6E,EAAYC,EAAe,EAAI,GACpD2+B,EAAc,KAAKzjC,CAAM,CAE7B,CAAC,EACD2jC,EAAS,iBAAiB,GAAG,EAAE,QAASC,GAAS,CAC3CA,EAAK,YACPF,EAAaE,EAAK,UAAU,CAEhC,CAAC,CACH,EACA,OAAAF,EAAazoC,EAAI,QAAQ,EAClBwoC,CACT,EAEMI,EAAuBC,GAAmC,CAC9D,GACER,GACAQ,EAAYR,EAAmBD,EAC/B,CACAE,EAAQ,sBAAsBM,CAAmB,EACjD,MACF,CACAP,EAAmBQ,EAEnBN,EAAA,EAEG,QAAQ,MAAOxjC,GAA8B,OAC5C,MAAMnB,EAAK,KAAK,OAAO,MAAMmB,CAAM,EAMnC,GALIkjC,EAAsB,IAAIrkC,CAAE,GAK5BmB,EAAO,QAAU,GAAKA,EAAO,SAAW,EAAG,OAG/C,GADAkjC,EAAsB,IAAIrkC,EAAI,EAAI,EAC9B,CAAC,QAAS,QAAQ,EAAE,SAAUmB,EAAmB,SAAS,EAAG,CAK/D,MAAM+vB,EAAU/vB,EAAO,WAAYA,EAAmB,SAAS,IAK7D5F,EAAA21B,GAAA,KAAA,OAAAA,EAAS,qBAAA,IAAT,KAAA,OAAA31B,EAAiC,yBAA0B,IAS3D21B,EAAQ,MAAMA,EAAQ,gBAAgB,CAE1C,CAGA,MAAMtnB,EAAQzI,EAAO,aAAeA,EAAO,MACrC0I,EAAS1I,EAAO,cAAgBA,EAAO,OACvC+jC,EAAS,MAAM,kBAAkB/jC,EAAQ,CAC7C,YAAayI,EACb,aAAcC,CAAA,CACf,EACDy6B,EAAO,YACL,CACE,GAAAtkC,EACA,OAAAklC,EACA,MAAAt7B,EACA,OAAAC,EACA,eAAgBxC,EAAQ,cAAA,EAE1B,CAAC69B,CAAM,CAAA,CAEX,CAAC,EACHR,EAAQ,sBAAsBM,CAAmB,CACnD,EAEAN,EAAQ,sBAAsBM,CAAmB,EAEjD,KAAK,eAAiB,IAAM,CAC1BZ,EAAA,EACA,qBAAqBM,CAAK,CAC5B,CACF,CAEQ,2BACNtoC,EACA4J,EACAC,EACAP,EACM,CACN,KAAK,qBAAA,EACL,KAAK,kCAAA,EAEL,MAAM0+B,EAAqBV,GACzBtnC,EACA4J,EACAC,EACA,EAAA,EAEIk/B,EAAgB/B,GACpB,KAAK,gBAAgB,KAAK,IAAI,EAC9BhnC,EACA4J,EACAC,EACAP,CAAA,EAGI0/B,EAAwBnB,GAC5B,KAAK,gBAAgB,KAAK,IAAI,EAC9B7nC,EACA4J,EACAC,EACAP,CAAA,EAGF,KAAK,eAAiB,IAAM,CAC1B0+B,EAAA,EACAe,EAAA,EACAC,EAAA,CACF,CACF,CAEQ,mCAAoC,CAC1C,KAAK,WAAa,sBAAsB,IACtC,KAAK,4BAAA,CAA4B,CAErC,CAEQ,sBAAuB,CAC7B,MAAMC,EAAyBJ,GAAmC,CAChE,KAAK,UAAU,SAAWA,EAC1B,KAAK,eAAiB,sBAAsBI,CAAqB,CACnE,EACA,KAAK,eAAiB,sBAAsBA,CAAqB,CACnE,CAEA,6BAA8B,CAC5B,KAAK,uBAAuB,QAC1B,CAACC,EAAkCnkC,IAA8B,CAC/D,MAAMnB,EAAK,KAAK,OAAO,MAAMmB,CAAM,EACnC,KAAK,8BAA8BA,EAAQnB,CAAE,CAC/C,CAAA,EAEF,KAAK,WAAa,sBAAsB,IACtC,KAAK,4BAAA,CAA4B,CAErC,CAEA,8BAA8BmB,EAA2BnB,EAAY,CACnE,GAAI,KAAK,QAAU,KAAK,OACtB,OAGF,MAAMulC,EAAiB,KAAK,uBAAuB,IAAIpkC,CAAM,EAC7D,GAAI,CAACokC,GAAkBvlC,IAAO,GAAI,OAElC,MAAMgb,EAASuqB,EAAe,IAAKxqC,GAAU,CAC3C,MAA0BQ,EAAAR,EAAlB,MAAA4F,GAAkBpF,EAC1B,OADiBggB,GAAShgB,EAAT,CAAT,QAEV,CAAC,EACK,CAAE,KAAAoF,CAAA,EAAS4kC,EAAe,CAAC,EAEjC,KAAK,WAAW,CAAE,GAAAvlC,EAAI,KAAAW,EAAM,SAAUqa,CAAA,CAAQ,EAE9C,KAAK,uBAAuB,OAAO7Z,CAAM,CAC3C,CACF,CC1VO,MAAMqkC,EAAkB,CAM7B,YAAYn+B,EAGT,CARKrM,EAAA,KAAA,sBAAA,IAAoD,OAAA,EACpDA,EAAA,KAAA,YAAA,EACAA,EAAA,KAAA,qBAAA,EACDA,EAAA,KAAA,cAAc,IAAIk5B,EAAA,EAMvB,KAAK,WAAa7sB,EAAQ,WAC1B,KAAK,oBAAsBA,EAAQ,mBACrC,CAEO,kBACLo+B,EACArP,EACA,CACI,aAAeA,EAAwB,YACzC,KAAK,WAAW,CACd,KAAM,CAAA,EACN,QAAS,CAAA,EACT,MAAO,CAAA,EACP,WAAY,CACV,CACE,GAAIA,EAAQ,GACZ,WAAaA,EACV,UAAA,CACL,CACF,CACD,EAEH,KAAK,iBAAiBqP,CAAM,CAC9B,CAEO,iBAAiBA,EAAyB,CAC3C,KAAK,oBAAoB,IAAIA,CAAM,IAEvC,KAAK,oBAAoB,IAAIA,CAAM,EACnC,KAAK,6BAA6BA,CAAM,EAC1C,CAEO,iBACLxI,EACAJ,EACA,CACA,GAAII,EAAO,SAAW,EAAG,OACzB,MAAMyI,EAAgD,CACpD,GAAI7I,EACJ,SAAU,CAAA,CAAC,EAEP8I,EAAwD,CAAA,EAC9D,UAAWhK,KAASsB,EAAQ,CAC1B,IAAIpB,EACC,KAAK,YAAY,IAAIF,CAAK,EASxBE,EAAU,KAAK,YAAY,MAAMF,CAAK,GAR3CE,EAAU,KAAK,YAAY,IAAIF,CAAK,EACpCgK,EAAO,KAAK,CACV,QAAA9J,EACA,MAAO,MAAM,KAAKF,EAAM,OAAS,QAAS,CAACiK,EAAGvnC,KAAW,CACvD,KAAMgB,GAAcumC,EAAGjK,EAAM,IAAI,EACjC,MAAAt9B,CAAA,EACA,CAAA,CACH,GAEHqnC,EAAsB,SAAS,KAAK7J,CAAO,CAC7C,CACI8J,EAAO,OAAS,IAAGD,EAAsB,OAASC,GACtD,KAAK,oBAAoBD,CAAqB,CAChD,CAEO,OAAQ,CACb,KAAK,YAAY,MAAA,EACjB,KAAK,oBAAA,IAA0B,OACjC,CAGQ,6BAA6BG,EAA0B,CAI/D,CACF,CCvFA,MAAqBC,EAAqB,CAA1C,aAAA,CACU9qC,EAAA,KAAA,UAAA,IAAkD,OAAA,EAElDA,EAAA,KAAA,SAAS,EAAA,CAAA,CAEV,cAAcmF,EAAY4lC,EAA4B,CAC3D,MAAMC,EAAU,KAAK,QAAQ,IAAI7lC,CAAI,EACrC,OACE6lC,GAAW,MAAM,KAAKA,CAAO,EAAE,KAAM1nB,GAAWA,IAAWynB,CAAU,CAEzE,CAEO,IAAI5lC,EAAYme,EAAwB,CACxC,KAAK,SACR,KAAK,OAAS,GACd,sBAAsB,IAAM,CAC1B,KAAK,QAAA,IAAc,QACnB,KAAK,OAAS,EAChB,CAAC,GAEH,KAAK,QAAQ,IAAIne,GAAO,KAAK,QAAQ,IAAIA,CAAI,GAAK,IAAI,KAAO,IAAIme,CAAM,CAAC,CAC1E,CAEO,SAAU,CAEjB,CACF,CCYA,IAAI2nB,EAEAC,GACAC,GACAC,GAAY,GAIhB,GAAI,CACF,GAAI,MAAM,KAAK,CAAC,CAAC,EAAI9kC,GAAMA,EAAI,CAAC,EAAE,CAAC,IAAM,EAAG,CAC1C,MAAM+kC,EAAa,SAAS,cAAc,QAAQ,EAClD,SAAS,KAAK,YAAYA,CAAU,EAEpC,MAAM,OAAO9qC,GAAA8qC,EAAW,gBAAX,KAAA,OAAA9qC,GAA0B,MAAM,OAAQ,MAAM,KAC3D,SAAS,KAAK,YAAY8qC,CAAU,CACtC,CACF,OAASlkC,EAAK,CACZ,QAAQ,MAAM,gCAAiCA,CAAG,CACpD,CAEA,MAAMmF,GAAShH,GAAA,EACf,SAASgmC,GACPj/B,EAA4B,CAAA,EACC,CAC7B,KAAM,CACJ,KAAAk/B,EACA,iBAAAC,EACA,iBAAAC,EACA,WAAAzgC,EAAa,WACb,cAAAC,EAAgB,KAChB,YAAAy0B,EAAc,YACd,eAAAC,EAAiB,KACjB,cAAAp0B,EAAgB,UAChB,iBAAAC,EAAmB,KACnB,iBAAAgB,EAAmB,GACnB,cAAAsE,EACA,iBAAkB46B,EAClB,eAAgBC,EAChB,YAAA/lC,EACA,WAAA6G,EACA,MAAA83B,EACA,OAAAqH,EACA,SAAApO,EAAW,CAAA,EACX,eAAgBqO,EAAkB,CAAA,EAClC,cAAAC,EACA,UAAAC,EAAY,GACZ,aAAAp/B,EAAe,GACf,yBAAAq/B,EAA2B,GAC3B,YAAAC,EAAc5/B,EAAQ,cAAgB,mBAClCA,EAAQ,YACR,OACJ,qBAAAuzB,EAAuB,GACvB,aAAAsM,EAAe,GACf,aAAAx/B,EAAe,GACf,QAAAic,EACA,gBAAA/b,GAAkB,IAAM,GACxB,oBAAAw1B,EAAsB,IAAI,IAAI,CAAA,CAAE,EAChC,aAAA1F,CAAA,EACErwB,EAEJswB,GAAqBD,CAAY,EAEjC,MAAMhyB,GAAiBuO,EAAA,CACrB,KAAM,aACN,QAAS,GACT,qBAAsB,SACnB4yB,GAGCM,EAAkBH,EACpB,OAAO,SAAW,OAClB,GAEJ,IAAII,EAAoB,GACxB,GAAI,CAACD,EACH,GAAI,CAEE,OAAO,OAAO,WAChBC,EAAoB,GAExB,OAAS9qC,EAAG,CACV8qC,EAAoB,EACtB,CAIF,GAAID,GAAmB,CAACZ,EACtB,MAAM,IAAI,MAAM,2BAA2B,EAE7C,GAAI,CAACY,GAAmB,CAACC,EACvB,MAAO,IAAM,CAEb,EAGEN,IAAkB,QAAatO,EAAS,YAAc,SACxDA,EAAS,UAAYsO,GAIvBx/B,GAAO,MAAA,EAEP,MAAM7G,EACJqL,IAAkB,GACd,CACE,MAAO,GACP,KAAM,GACN,iBAAkB,GAClB,MAAO,GACP,MAAO,GACP,OAAQ,GACR,MAAO,GACP,OAAQ,GACR,IAAK,GACL,KAAM,GACN,KAAM,GACN,IAAK,GACL,KAAM,GACN,SAAU,GACV,OAAQ,GACR,SAAU,EAAA,EAEZ46B,IAAsB,OACtBA,EACA,CAAE,SAAU,EAAA,EAEZr8B,EACJs8B,IAAoB,IAAQA,IAAoB,MAC5C,CACE,OAAQ,GACR,QAAS,GACT,YAAa,GACb,eAAgB,GAChB,eAAgB,GAChB,eAAgB,GAChB,kBAAmB,GACnB,qBAAsB,GAGtB,mBAAoBA,IAAoB,MACxC,qBAAsBA,IAAoB,MAC1C,mBAAoBA,IAAoB,KAAA,EAE1CA,GAEA,CAAA,EAEN1U,GAAA,EAEA,IAAIoV,GACAC,GAA2B,EAE/B,MAAMC,EAAkBjrC,GAAwB,CAC9C,UAAW0R,MAAU2V,GAAW,CAAA,EAC1B3V,GAAO,iBACT1R,EAAI0R,GAAO,eAAe1R,CAAC,GAG/B,OACEsqC,GAEA,CAACQ,IAED9qC,EAAIsqC,EAAOtqC,CAAC,GAEPA,CACT,EACA2pC,EAAc,CAACL,EAAqB4B,KAAyB,OAC3D,MAAMlrC,GAAIspC,EAeV,GAdAtpC,GAAE,UAAYg1B,GAAA,GAEZ/1B,EAAAy8B,GAAgB,CAAC,IAAjB,MAAAz8B,EAAoB,SAAA,GACpBe,GAAE,OAASo4B,EAAU,cACrB,EACEp4B,GAAE,OAASo4B,EAAU,qBACrBp4B,GAAE,KAAK,SAAWs4B,EAAkB,WAKtCoD,GAAgB,QAAS/nB,IAAQA,GAAI,SAAA,CAAU,EAG7Ck3B,EACFZ,GAAA,MAAAA,EAAOgB,EAAejrC,EAAC,EAAGkrC,EAAA,UACjBJ,EAAmB,CAC5B,MAAMx5B,GAAmD,CACvD,KAAM,QACN,MAAO25B,EAAejrC,EAAC,EACvB,OAAQ,OAAO,SAAS,OACxB,WAAAkrC,EAAA,EAEF,OAAO,OAAO,YAAY55B,GAAS,GAAG,CACxC,CAEA,GAAItR,GAAE,OAASo4B,EAAU,aACvB2S,GAAwB/qC,GACxBgrC,GAA2B,UAClBhrC,GAAE,OAASo4B,EAAU,oBAAqB,CAEnD,GACEp4B,GAAE,KAAK,SAAWs4B,EAAkB,UACpCt4B,GAAE,KAAK,eAEP,OAGFgrC,KACA,MAAMG,GACJhB,GAAoBa,IAA4Bb,EAC5CiB,GACJlB,GACAlqC,GAAE,UAAY+qC,GAAsB,UAAYb,GAC9CiB,IAAeC,KACjBxB,GAAiB,EAAI,CAEzB,CACF,EAEA,MAAMyB,GAAuBrV,GAA6B,CAIxD,GAAI0U,GAA4B1U,EAAE,SAAWA,EAAE,QAAQ,OAAS,EAAG,CAEjE,MAAMuD,GACJvD,EAAE,KAAK,OAAS,EAAI,IAAI,IAAIA,EAAE,KAAK,IAAKjgB,GAAQA,EAAI,KAAK,EAAE,CAAC,EAAI,KAClEigB,EAAE,QAAQ,QAAQ,CAAC,CAAE,GAAAtyB,CAAA,IAAS,EAExB,CAAC61B,IAAY,CAACA,GAAS,IAAI71B,CAAE,IAC/B4nC,GAAc,iBAAiB5nC,CAAE,CAErC,CAAC,CACH,CAEAimC,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAMzgB,EAAA,CACJ,OAAQ2gB,EAAkB,UACvBtC,EACL,CACD,CACH,EACMuV,GAAqC/O,GACzCmN,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAMzgB,EAAA,CACJ,OAAQ2gB,EAAkB,QACvBkE,EACL,CACD,EACGgP,GAA6BhP,GACjCmN,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAMzgB,EAAA,CACJ,OAAQ2gB,EAAkB,gBACvBkE,EACL,CACD,EAEGiP,GAAgCnmC,GACpCqkC,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAMzgB,EAAA,CACJ,OAAQ2gB,EAAkB,mBACvBhzB,EACL,CACD,EAEGo6B,GAAoB,IAAIwJ,GAAkB,CAC9C,WAAYmC,GACZ,oBAAqBI,EAAA,CACtB,EAEKH,GAAgB,IAAI3G,GAAc,CACtC,OAAA35B,GACA,WAAYqgC,GACZ,kBAAA3L,GACA,yBAAAgL,EACA,YAAAf,CAAA,CACD,EAKD,UAAWj4B,KAAU2V,GAAW,CAAA,EAC1B3V,EAAO,WACTA,EAAO,UAAU,CACf,WAAY1G,GACZ,wBAAyBsgC,GAAc,wBACvC,6BACEA,GAAc,4BAAA,CACjB,EAGL,MAAMI,GAAuB,IAAIlC,GAEjCK,GAAgB,IAAIjC,GAAc,CAChC,aAAAv8B,EACA,WAAYmgC,GACZ,IAAK,OACL,WAAA9hC,EACA,cAAAC,EACA,OAAAqB,GACA,SAAUkxB,EAAS,OACnB,eAAA9yB,EAAA,CACD,EAED,MAAMuiC,GAAmB,IAAIvG,GAAiB,CAC5C,WAAYiG,GACZ,SAAUE,GACV,cAAe,CACb,WAAA7hC,EACA,cAAAC,EACA,cAAAM,EACA,iBAAAC,EACA,iBAAAgB,EACA,iBAAA/G,EACA,eAAAiF,GACA,WAAA+B,EACA,YAAA7G,EACA,aAAA+G,EACA,aAAAD,EACA,SAAA8wB,EACA,eAAAnuB,EACA,cAAAu9B,GACA,kBAAA5L,GACA,cAAAmK,GACA,gBAAAv+B,GACA,qBAAAogC,EAAA,EAEF,OAAA1gC,EAAA,CACD,EAED4+B,GAAmB,CAACsB,EAAa,KAAU,CACzC,GAAI,CAACT,EACH,OAEFd,EACE,CACE,KAAMvR,EAAU,KAChB,KAAM,CACJ,KAAM,OAAO,SAAS,KACtB,MAAOhD,GAAA,EACP,OAAQD,GAAA,CAAgB,CAC1B,EAEF+V,CAAA,EAIFxL,GAAkB,MAAA,EAElBiM,GAAiB,KAAA,EAEjBjQ,GAAgB,QAAS/nB,GAAQA,EAAI,KAAA,CAAM,EAC3C,MAAM9P,GAAO0L,GAAS,SAAU,CAC9B,OAAAvE,GACA,WAAAtB,EACA,cAAAC,EACA,cAAAM,EACA,iBAAAC,EACA,iBAAAgB,EACA,cAAe/G,EACf,WAAAgH,EACA,YAAA7G,EACA,QAASyJ,EACT,eAAA3E,GACA,aAAAiC,EACA,aAAAD,EACA,YAAczK,GAAM,CACdg2B,GAAmBh2B,EAAGqK,EAAM,GAC9BsgC,GAAc,UAAU3qC,CAAsB,EAE5Ci2B,GAAuBj2B,EAAGqK,EAAM,GAClC00B,GAAkB,iBAAiB/+B,CAAoB,EAErDw2B,GAAcx2B,CAAC,GAEjBgrC,GAAiB,cAAc9X,EAAI,WAAWlzB,CAAS,EAAI,QAAQ,CAEvE,EACA,aAAc,CAACk5B,EAAQC,KAAY,CACjCwR,GAAc,aAAazR,EAAQC,EAAO,EAC1C6R,GAAiB,oBAAoB9R,CAAM,CAC7C,EACA,iBAAkB,CAACsP,EAAQrP,KAAY,CACrC4F,GAAkB,kBAAkByJ,EAAQrP,EAAO,CACrD,EACA,gBAAAxuB,EAAA,CACD,EAED,GAAI,CAACzH,GACH,OAAO,QAAQ,KAAK,iCAAiC,EAGvD8lC,EACE,CACE,KAAMvR,EAAU,aAChB,KAAM,CACJ,KAAAv0B,GACA,cAAeoxB,GAAgB,MAAM,CAAA,CACvC,EAEFiW,CAAA,EAEFxP,GAAgB,QAAS/nB,GAAQA,EAAI,OAAA,CAAQ,EAEzC+2B,GACFY,GAAc,gBAAA,EAIZ,SAAS,oBAAsB,SAAS,mBAAmB,OAAS,GACtE5L,GAAkB,iBAChB,SAAS,mBACT10B,GAAO,MAAM,QAAQ,CAAA,CAE3B,EAEA,GAAI,CACF,MAAM6xB,EAA8B,CAAA,EAE9B+O,GAAWzjC,IAAkB,QACjC,OAAOqzB,EAAgB4H,EAAa,EAClC,CACE,WAAYiI,GACZ,YAAa,CAAC9T,EAAW71B,KACvBioC,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAM,CACJ,OAAA12B,GACA,UAAA61B,CAAA,CACF,CACD,EACH,mBAAqBzC,GACnB6U,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAMzgB,EAAA,CACJ,OAAQ2gB,EAAkB,kBACvBxD,EACL,CACD,EACH,SAAUyW,GACV,iBAAmBzW,GACjB6U,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAMzgB,EAAA,CACJ,OAAQ2gB,EAAkB,gBACvBxD,EACL,CACD,EACH,QAAU6J,GACRgL,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAMzgB,EAAA,CACJ,OAAQ2gB,EAAkB,OACvBqG,EACL,CACD,EACH,mBAAqBnC,GACnBmN,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAMzgB,EAAA,CACJ,OAAQ2gB,EAAkB,kBACvBkE,EACL,CACD,EACH,iBAAmB8M,GACjBK,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAMzgB,EAAA,CACJ,OAAQ2gB,EAAkB,gBACvBgR,EACL,CACD,EACH,mBAAqBA,GACnBK,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAMzgB,EAAA,CACJ,OAAQ2gB,EAAkB,kBACvBgR,EACL,CACD,EACH,iBAAkBkC,GAClB,OAAShP,GACPmN,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAMzgB,EAAA,CACJ,OAAQ2gB,EAAkB,MACvBkE,EACL,CACD,EACH,YAAcA,GAAM,CAClBmN,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAMzgB,EAAA,CACJ,OAAQ2gB,EAAkB,WACvBkE,EACL,CACD,CACH,EACA,gBAAkB3zB,GAAM,CACtB8gC,EAAY,CACV,KAAMvR,EAAU,oBAChB,KAAMzgB,EAAA,CACJ,OAAQ2gB,EAAkB,eACvBzvB,EACL,CACD,CACH,EACA,WAAAa,EACA,YAAA00B,EACA,eAAAC,EACA,cAAAp0B,EACA,iBAAAC,EACA,iBAAA/F,EACA,iBAAA+G,EACA,SAAAgxB,EACA,UAAAuO,EACA,aAAAp/B,EACA,aAAAD,EACA,qBAAAkzB,EACA,aAAAsM,EACA,IAAAziC,GACA,YAAA7D,EACA,WAAA6G,EACA,gBAAAG,GACA,cAAA3B,EACA,eAAAoE,EACA,eAAA3E,GACA,OAAA4B,GACA,cAAAsgC,GACA,kBAAA5L,GACA,iBAAAiM,GACA,qBAAAD,GACA,cAAA7B,GACA,oBAAA/I,EACA,UACE7hC,GAAAooB,GAAA,KAAA,OAAAA,EACI,OAAQmV,GAAMA,EAAE,QAAA,IADpB,KAAA,OAAAv9B,GAEI,IAAKu9B,IAAO,CACZ,SAAUA,EAAE,SACZ,QAASA,EAAE,QACX,SAAWrC,IACTwP,EAAY,CACV,KAAMvR,EAAU,OAChB,KAAM,CACJ,OAAQoE,EAAE,KACV,QAAArC,EAAA,CACF,CACD,CAAA,EAAA,IACE,CAAA,CAAC,EAEd8I,CAAA,CAEJ,EAEM4I,EAAgBhsC,IAAgC,CACpD,GAAI,CACFg9B,EAAS,KAAK+O,GAAQ/rC,GAAS,eAAgB,CAAC,CAClD,OAASmD,GAAO,CAEd,QAAQ,KAAKA,EAAK,CACpB,CACF,EACAsoC,GAAc,gBAAgBO,CAAY,EAE1C,MAAMC,GAAO,IAAM,CACjBlC,GAAA,EACA/M,EAAS,KAAK+O,GAAQ,QAAQ,CAAC,EAC/B9B,GAAY,EACd,EACA,OACE,SAAS,aAAe,eACxB,SAAS,aAAe,WAExBgC,GAAA,GAEAjP,EAAS,KACP7I,GAAG,mBAAoB,IAAM,CAC3B2V,EAAY,CACV,KAAMvR,EAAU,iBAChB,KAAM,CAAA,CAAC,CACR,EACGuS,IAAgB,oBAAoBmB,GAAA,CAC1C,CAAC,CAAA,EAEHjP,EAAS,KACP7I,GACE,OACA,IAAM,CACJ2V,EAAY,CACV,KAAMvR,EAAU,KAChB,KAAM,CAAA,CAAC,CACR,EACGuS,IAAgB,QAAQmB,GAAA,CAC9B,EACA,MAAA,CACF,GAGG,IAAM,CACXjP,EAAS,QAASC,IAAMA,GAAA,CAAG,EAC3B4O,GAAqB,QAAA,EACrBJ,GAAc,mBAAA,EACdA,GAAc,QAAA,EACdtgC,GAAO,MAAA,EACP8+B,GAAY,GACZvO,GAAA,CACF,CACF,OAASv4B,EAAO,CAEd,QAAQ,KAAKA,CAAK,CACpB,CACF,CAEAgnC,GAAO,eAAiB,CAAI+B,EAAa5R,IAAe,CACtD,GAAI,CAAC2P,GACH,MAAM,IAAI,MAAM,+CAA+C,EAEjEH,EAAY,CACV,KAAMvR,EAAU,OAChB,KAAM,CACJ,IAAA2T,EACA,QAAA5R,CAAA,CACF,CACD,CACH,EAEA6P,GAAO,WAAa,IAAM,CACxBtO,GAAgB,QAAS/nB,GAAQA,EAAI,OAAA,CAAQ,CAC/C,EAEAq2B,GAAO,iBAAoBkB,GAAyB,CAClD,GAAI,CAACpB,GACH,MAAM,IAAI,MAAM,iDAAiD,EAEnEF,GAAiBsB,CAAU,CAC7B,EAEAlB,GAAO,OAASh/B,GC5qBD,SAAAghC,GAASrrC,EAAE,CAAC,MAAM,CAAC,IAAIA,EAAEA,GAAG,IAAI,IAAI,GAAG,SAASsrC,EAAEjsC,EAAE,CAAC,IAAIuM,EAAE5L,EAAE,IAAIsrC,CAAC,EAAE1/B,EAAEA,EAAE,KAAKvM,CAAC,EAAEW,EAAE,IAAIsrC,EAAE,CAACjsC,CAAC,CAAC,CAAC,EAAE,IAAI,SAASisC,EAAEjsC,EAAE,CAAC,IAAIuM,EAAE5L,EAAE,IAAIsrC,CAAC,EAAE1/B,IAAIvM,EAAEuM,EAAE,OAAOA,EAAE,QAAQvM,CAAC,IAAI,EAAE,CAAC,EAAEW,EAAE,IAAIsrC,EAAE,CAAA,CAAE,EAAE,EAAE,KAAK,SAASA,EAAEjsC,EAAE,CAAC,IAAIuM,EAAE5L,EAAE,IAAIsrC,CAAC,EAAE1/B,GAAGA,EAAE,MAAA,EAAQ,IAAI,SAAS5L,EAAE,CAACA,EAAEX,CAAC,CAAC,CAAC,GAAGuM,EAAE5L,EAAE,IAAI,GAAG,IAAI4L,EAAE,MAAK,EAAG,IAAI,SAAS5L,EAAE,CAACA,EAAEsrC,EAAEjsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gHCOlT,SAAS21B,GAASuW,EAAY,OAAQpX,EAAI,SAAU,CAEzD,GACE,mBAAoBA,EAAE,gBAAgB,OACtCoX,EAAE,gCAAkC,GAEpC,OAIF,MAAMC,EAAUD,EAAE,aAAeA,EAAE,QAC7BE,EAAc,IAGdvqC,EAAW,CACf,OAAQqqC,EAAE,QAAUA,EAAE,SACtB,SAAUA,EAAE,SACZ,cAAeC,EAAQ,UAAU,QAAUE,EAC3C,eAAgBF,EAAQ,UAAU,cAAA,EAI9BzX,EACJwX,EAAE,aAAeA,EAAE,YAAY,IAC3BA,EAAE,YAAY,IAAI,KAAKA,EAAE,WAAW,EACpC,KAAK,IAQX,SAASI,EAAmBC,EAAW,CACrC,MAAMC,EAAoB,CAAC,QAAS,WAAY,OAAO,EAEvD,OAAO,IAAI,OAAOA,EAAkB,KAAK,GAAG,CAAC,EAAE,KAAKD,CAAS,CAC/D,CAOA,MAAME,EAAqBH,EAAmBJ,EAAE,UAAU,SAAS,EAAI,EAAI,EAS3E,SAASG,EAAcrnC,EAAG,EAAG,CAC3B,KAAK,WAAaA,EAClB,KAAK,UAAY,CACnB,CAQA,SAAS0nC,EAAKn8B,EAAG,CACf,MAAO,KAAO,EAAI,KAAK,IAAI,KAAK,GAAKA,CAAC,EACxC,CAQA,SAASo8B,EAAcC,EAAU,CAC/B,GACEA,IAAa,MACb,OAAOA,GAAa,UACpBA,EAAS,WAAa,QACtBA,EAAS,WAAa,QACtBA,EAAS,WAAa,UAItB,MAAO,GAGT,GAAI,OAAOA,GAAa,UAAYA,EAAS,WAAa,SAExD,MAAO,GAIT,MAAM,IAAI,UACR,oCACEA,EAAS,SACT,uDAAA,CAEN,CASA,SAASC,EAAmB5jC,EAAI6jC,EAAM,CACpC,GAAIA,IAAS,IACX,OAAO7jC,EAAG,aAAewjC,EAAqBxjC,EAAG,aAGnD,GAAI6jC,IAAS,IACX,OAAO7jC,EAAG,YAAcwjC,EAAqBxjC,EAAG,WAEpD,CASA,SAAS8jC,EAAY9jC,EAAI6jC,EAAM,CAC7B,MAAME,EAAgBd,EAAE,iBAAiBjjC,EAAI,IAAI,EAAE,WAAa6jC,CAAI,EAEpE,OAAOE,IAAkB,QAAUA,IAAkB,QACvD,CASA,SAASC,EAAahkC,EAAI,CACxB,MAAMikC,EAAgBL,EAAmB5jC,EAAI,GAAG,GAAK8jC,EAAY9jC,EAAI,GAAG,EAClEkkC,EAAgBN,EAAmB5jC,EAAI,GAAG,GAAK8jC,EAAY9jC,EAAI,GAAG,EAExE,OAAOikC,GAAiBC,CAC1B,CAQA,SAASC,EAAqBnkC,EAAI,CAChC,KAAOA,IAAO6rB,EAAE,MAAQmY,EAAahkC,CAAE,IAAM,IAC3CA,EAAKA,EAAG,YAAcA,EAAG,KAG3B,OAAOA,CACT,CAQA,SAAS4K,EAAK+gB,EAAS,CACrB,MAAMyY,EAAO3Y,EAAA,EACb,IAAIj2B,EACA6uC,EACAC,EACAC,GAAWH,EAAOzY,EAAQ,WAAawX,EAG3CoB,EAAUA,EAAU,EAAI,EAAIA,EAG5B/uC,EAAQiuC,EAAKc,CAAO,EAEpBF,EAAW1Y,EAAQ,QAAUA,EAAQ,EAAIA,EAAQ,QAAUn2B,EAC3D8uC,EAAW3Y,EAAQ,QAAUA,EAAQ,EAAIA,EAAQ,QAAUn2B,EAE3Dm2B,EAAQ,OAAO,KAAKA,EAAQ,WAAY0Y,EAAUC,CAAQ,GAGtDD,IAAa1Y,EAAQ,GAAK2Y,IAAa3Y,EAAQ,IACjDsX,EAAE,sBAAsBr4B,EAAK,KAAKq4B,EAAGtX,CAAO,CAAC,CAEjD,CAUA,SAAS6Y,EAAaxkC,EAAIjE,EAAGC,EAAG,CAC9B,IAAIyoC,EACAC,EACAC,EACAhuC,EACJ,MAAMiuC,EAAYnZ,EAAA,EAGdzrB,IAAO6rB,EAAE,MACX4Y,EAAaxB,EACbyB,EAASzB,EAAE,SAAWA,EAAE,YACxB0B,EAAS1B,EAAE,SAAWA,EAAE,YACxBtsC,EAASiC,EAAS,SAElB6rC,EAAazkC,EACb0kC,EAAS1kC,EAAG,WACZ2kC,EAAS3kC,EAAG,UACZrJ,EAASysC,GAIXx4B,EAAK,CACH,WAAA65B,EACA,OAAA9tC,EACA,UAAAiuC,EACA,OAAAF,EACA,OAAAC,EACA,EAAA5oC,EACA,EAAAC,CAAA,CACD,CACH,CAIAinC,EAAE,OAASA,EAAE,SAAW,UAAY,CAElC,GAAI,UAAU,CAAC,IAAM,OAKrB,IAAIS,EAAc,UAAU,CAAC,CAAC,IAAM,GAAM,CACxC9qC,EAAS,OAAO,KACdqqC,EACA,UAAU,CAAC,EAAE,OAAS,OAClB,UAAU,CAAC,EAAE,KACb,OAAO,UAAU,CAAC,GAAM,SACxB,UAAU,CAAC,EACXA,EAAE,SAAWA,EAAE,YAEnB,UAAU,CAAC,EAAE,MAAQ,OACjB,UAAU,CAAC,EAAE,IACb,UAAU,CAAC,IAAM,OACjB,UAAU,CAAC,EACXA,EAAE,SAAWA,EAAE,WAAA,EAGrB,MACF,CAGAuB,EAAa,KACXvB,EACApX,EAAE,KACF,UAAU,CAAC,EAAE,OAAS,OAClB,CAAC,CAAC,UAAU,CAAC,EAAE,KACfoX,EAAE,SAAWA,EAAE,YACnB,UAAU,CAAC,EAAE,MAAQ,OACjB,CAAC,CAAC,UAAU,CAAC,EAAE,IACfA,EAAE,SAAWA,EAAE,WAAA,EAEvB,EAGAA,EAAE,SAAW,UAAY,CAEvB,GAAI,UAAU,CAAC,IAAM,OAKrB,IAAIS,EAAc,UAAU,CAAC,CAAC,EAAG,CAC/B9qC,EAAS,SAAS,KAChBqqC,EACA,UAAU,CAAC,EAAE,OAAS,OAClB,UAAU,CAAC,EAAE,KACb,OAAO,UAAU,CAAC,GAAM,SACxB,UAAU,CAAC,EACX,EACJ,UAAU,CAAC,EAAE,MAAQ,OACjB,UAAU,CAAC,EAAE,IACb,UAAU,CAAC,IAAM,OACjB,UAAU,CAAC,EACX,CAAA,EAGN,MACF,CAGAuB,EAAa,KACXvB,EACApX,EAAE,KACF,CAAC,CAAC,UAAU,CAAC,EAAE,MAAQoX,EAAE,SAAWA,EAAE,aACtC,CAAC,CAAC,UAAU,CAAC,EAAE,KAAOA,EAAE,SAAWA,EAAE,YAAA,EAEzC,EAGAC,EAAQ,UAAU,OAASA,EAAQ,UAAU,SAAW,UAAY,CAElE,GAAI,UAAU,CAAC,IAAM,OACnB,OAIF,GAAIQ,EAAc,UAAU,CAAC,CAAC,IAAM,GAAM,CAExC,GAAI,OAAO,UAAU,CAAC,GAAM,UAAY,UAAU,CAAC,IAAM,OACvD,MAAM,IAAI,YAAY,8BAA8B,EAGtD9qC,EAAS,cAAc,KACrB,KAEA,UAAU,CAAC,EAAE,OAAS,OAClB,CAAC,CAAC,UAAU,CAAC,EAAE,KACf,OAAO,UAAU,CAAC,GAAM,SACxB,CAAC,CAAC,UAAU,CAAC,EACb,KAAK,WAET,UAAU,CAAC,EAAE,MAAQ,OACjB,CAAC,CAAC,UAAU,CAAC,EAAE,IACf,UAAU,CAAC,IAAM,OACjB,CAAC,CAAC,UAAU,CAAC,EACb,KAAK,SAAA,EAGX,MACF,CAEA,MAAM2L,EAAO,UAAU,CAAC,EAAE,KACpBC,EAAM,UAAU,CAAC,EAAE,IAGzBggC,EAAa,KACX,KACA,KACA,OAAOjgC,GAAS,YAAc,KAAK,WAAa,CAAC,CAACA,EAClD,OAAOC,GAAQ,YAAc,KAAK,UAAY,CAAC,CAACA,CAAA,CAEpD,EAGA0+B,EAAQ,UAAU,SAAW,UAAY,CAEvC,GAAI,UAAU,CAAC,IAAM,OAKrB,IAAIQ,EAAc,UAAU,CAAC,CAAC,IAAM,GAAM,CACxC9qC,EAAS,cAAc,KACrB,KACA,UAAU,CAAC,EAAE,OAAS,OAClB,CAAC,CAAC,UAAU,CAAC,EAAE,KAAO,KAAK,WAC3B,CAAC,CAAC,UAAU,CAAC,EAAI,KAAK,WAC1B,UAAU,CAAC,EAAE,MAAQ,OACjB,CAAC,CAAC,UAAU,CAAC,EAAE,IAAM,KAAK,UAC1B,CAAC,CAAC,UAAU,CAAC,EAAI,KAAK,SAAA,EAG5B,MACF,CAEA,KAAK,OAAO,CACV,KAAM,CAAC,CAAC,UAAU,CAAC,EAAE,KAAO,KAAK,WACjC,IAAK,CAAC,CAAC,UAAU,CAAC,EAAE,IAAM,KAAK,UAC/B,SAAU,UAAU,CAAC,EAAE,QAAA,CACxB,EACH,EAGAsqC,EAAQ,UAAU,eAAiB,UAAY,CAE7C,GAAIQ,EAAc,UAAU,CAAC,CAAC,IAAM,GAAM,CACxC9qC,EAAS,eAAe,KACtB,KACA,UAAU,CAAC,IAAM,OAAY,GAAO,UAAU,CAAC,CAAA,EAGjD,MACF,CAGA,MAAMisC,EAAmBV,EAAqB,IAAI,EAC5CW,EAAcD,EAAiB,sBAAA,EAC/BE,EAAc,KAAK,sBAAA,EAErBF,IAAqBhZ,EAAE,MAEzB2Y,EAAa,KACX,KACAK,EACAA,EAAiB,WAAaE,EAAY,KAAOD,EAAY,KAC7DD,EAAiB,UAAYE,EAAY,IAAMD,EAAY,GAAA,EAIzD7B,EAAE,iBAAiB4B,CAAgB,EAAE,WAAa,SACpD5B,EAAE,SAAS,CACT,KAAM6B,EAAY,KAClB,IAAKA,EAAY,IACjB,SAAU,QAAA,CACX,GAIH7B,EAAE,SAAS,CACT,KAAM8B,EAAY,KAClB,IAAKA,EAAY,IACjB,SAAU,QAAA,CACX,CAEL,CACF,CCraO,MAAMC,EAAM,CAQjB,YACEC,EAA6B,CAAA,EAC7BC,EAGA,CAZKzvC,EAAA,KAAA,aAAa,CAAA,EACbA,EAAA,KAAA,OAAA,EAECA,EAAA,KAAA,SAAA,EACAA,EAAA,KAAA,MAA4B,IAAA,EAC5BA,EAAA,KAAA,eAAA,EAQN,KAAK,QAAUwvC,EACf,KAAK,MAAQC,EAAO,KACtB,CAIO,UAAUC,EAAyB,CACxC,MAAMC,EAAe,KAAK,MAAQ,GAClC,GACE,CAAC,KAAK,QAAQ,QACd,KAAK,QAAQ,KAAK,QAAQ,OAAS,CAAC,EAAE,OAASD,EAAO,MAGtD,KAAK,QAAQ,KAAKA,CAAM,MACnB,CAEL,MAAMrsC,EAAQ,KAAK,gBAAgBqsC,CAAM,EACzC,KAAK,QAAQ,OAAOrsC,EAAO,EAAGqsC,CAAM,CACtC,CACIC,IACF,KAAK,IAAM,sBAAsB,KAAK,SAAS,KAAK,IAAI,CAAC,EAE7D,CAEO,OAAQ,CACb,KAAK,WAAa,EAClB,KAAK,cAAgB,YAAY,IAAA,EACjC,KAAK,IAAM,sBAAsB,KAAK,SAAS,KAAK,IAAI,CAAC,CAC3D,CAEQ,UAAW,CACjB,MAAMhB,EAAO,YAAY,IAAA,EAGzB,IAFA,KAAK,aAAeA,EAAO,KAAK,eAAiB,KAAK,MACtD,KAAK,cAAgBA,EACd,KAAK,QAAQ,QAAQ,CAC1B,MAAMe,EAAS,KAAK,QAAQ,CAAC,EAE7B,GAAI,KAAK,YAAcA,EAAO,MAC5B,KAAK,QAAQ,MAAA,EACbA,EAAO,SAAA,MAEP,MAEJ,CACI,KAAK,QAAQ,OAAS,EACxB,KAAK,IAAM,sBAAsB,KAAK,SAAS,KAAK,IAAI,CAAC,EAEzD,KAAK,IAAM,EAEf,CAEO,OAAQ,CACT,KAAK,MACH,KAAK,MAAQ,IACf,qBAAqB,KAAK,GAAG,EAE/B,KAAK,IAAM,MAEb,KAAK,QAAQ,OAAS,CACxB,CAEO,SAASE,EAAe,CAC7B,KAAK,MAAQA,CACf,CAEO,UAAW,CAChB,OAAO,KAAK,MAAQ,IACtB,CAEQ,gBAAgBF,EAAiC,CACvD,IAAIh8B,EAAQ,EACRC,EAAM,KAAK,QAAQ,OAAS,EAChC,KAAOD,GAASC,GAAK,CACnB,MAAM2K,EAAM,KAAK,OAAO5K,EAAQC,GAAO,CAAC,EACxC,GAAI,KAAK,QAAQ2K,CAAG,EAAE,MAAQoxB,EAAO,MACnCh8B,EAAQ4K,EAAM,UACL,KAAK,QAAQA,CAAG,EAAE,MAAQoxB,EAAO,MAC1C/7B,EAAM2K,EAAM,MAIZ,QAAOA,EAAM,CAEjB,CACA,OAAO5K,CACT,CACF,CAGO,SAASm8B,GAASroB,EAAsBsoB,EAA8B,CAG3E,GACEtoB,EAAM,OAASkS,EAAU,qBACzBlS,EAAM,KAAK,SAAWoS,EAAkB,WACxCpS,EAAM,KAAK,WACXA,EAAM,KAAK,UAAU,OACrB,CACA,MAAMuoB,EAAcvoB,EAAM,KAAK,UAAU,CAAC,EAAE,WAEtCwoB,EAAiBxoB,EAAM,UAAYuoB,EACzC,OAAAvoB,EAAM,MAAQwoB,EAAiBF,EACxBE,EAAiBF,CAC1B,CAEA,OAAAtoB,EAAM,MAAQA,EAAM,UAAYsoB,EACzBtoB,EAAM,KACf,CChIA;;;;;;;;;;;;;gFAcA,SAAS+lB,GAAEA,EAAEtrC,EAAE,CAAC,IAAIX,EAAc,OAAO,QAAnB,YAA2BisC,EAAE,OAAO,QAAQ,EAAE,GAAG,CAACjsC,EAAE,OAAOisC,EAAE,IAAI3C,EAAEtG,EAAEz2B,EAAEvM,EAAE,KAAKisC,CAAC,EAAE3mC,EAAE,CAAA,EAAG,GAAG,CAAC,MAAe3E,IAAT,QAAYA,KAAK,IAAI,EAAE2oC,EAAE/8B,EAAE,KAAI,GAAI,MAAMjH,EAAE,KAAKgkC,EAAE,KAAK,CAAC,OAAO2C,EAAE,CAACjJ,EAAE,CAAC,MAAMiJ,CAAC,CAAC,QAAA,CAAS,GAAG,CAAC3C,GAAG,CAACA,EAAE,OAAOtpC,EAAEuM,EAAE,SAASvM,EAAE,KAAKuM,CAAC,CAAC,QAAA,CAAS,GAAGy2B,EAAE,MAAMA,EAAE,KAAK,CAAC,CAAC,OAAO19B,CAAC,CAAC,IAAI3E,IAAG,SAASsrC,EAAE,CAACA,EAAEA,EAAE,WAAW,CAAC,EAAE,aAAaA,EAAEA,EAAE,QAAQ,CAAC,EAAE,UAAUA,EAAEA,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAEtrC,KAAIA,GAAE,CAAA,EAAG,EAAE,IAAIX,GAAE,CAAC,KAAK,aAAa,EAAE,SAASspC,GAAE2C,EAAE,CAAC,OAAgBA,IAAT,OAAW,CAAA,EAAG,CAAA,EAAG,OAAOA,CAAC,CAAC,CAAC,SAASjJ,GAAEiJ,EAAE,CAAC,MAAM,CAAC,KAAK,gBAAgB,WAAWA,CAAC,CAAC,CAAC,SAAS1/B,GAAE0/B,EAAEtrC,EAAE,CAAC,OAAgB,OAAOsrC,EAAY,OAAOA,GAAjB,UAAoBtrC,GAAGA,EAAEsrC,CAAC,EAAEtrC,EAAEsrC,CAAC,EAAEA,IAApD,SAAuD,CAAC,KAAKA,CAAC,EAAc,OAAOA,GAAnB,WAAqB,CAAC,KAAKA,EAAE,KAAK,KAAKA,CAAC,EAAEA,CAAC,CAAC,SAAS3mC,GAAE2mC,EAAE,CAAC,OAAO,SAAStrC,EAAE,CAAC,OAAOsrC,IAAItrC,CAAC,CAAC,CAAC,SAASguC,GAAE1C,EAAE,CAAC,OAAgB,OAAOA,GAAjB,SAAmB,CAAC,KAAKA,CAAC,EAAEA,CAAC,CAAC,SAASpjC,GAAEojC,EAAEtrC,EAAE,CAAC,MAAM,CAAC,MAAMsrC,EAAE,QAAQtrC,EAAE,QAAQ,CAAA,EAAG,QAAQ,GAAG,QAAQ2E,GAAE2mC,CAAC,CAAC,CAAC,CAAC,SAAS2C,GAAE3C,EAAEtrC,EAAEX,EAAE,CAAC,IAAIspC,EAAE3oC,EAAEqiC,EAAE,GAAG,MAAM,CAACiJ,EAAE,OAAQ,SAASA,EAAE,CAAC,GAAqBA,EAAE,OAApB,gBAAyB,CAACjJ,EAAE,GAAG,IAAIriC,EAAE,OAAO,OAAO,CAAA,EAAG2oC,CAAC,EAAE,OAAkB,OAAO2C,EAAE,YAArB,WAAgCtrC,EAAEsrC,EAAE,WAAW3C,EAAEtpC,CAAC,EAAE,OAAO,KAAKisC,EAAE,UAAU,EAAE,QAAS,SAASjJ,EAAE,CAACriC,EAAEqiC,CAAC,EAAc,OAAOiJ,EAAE,WAAWjJ,CAAC,GAAjC,WAAmCiJ,EAAE,WAAWjJ,CAAC,EAAEsG,EAAEtpC,CAAC,EAAEisC,EAAE,WAAWjJ,CAAC,CAAC,CAAC,EAAGsG,EAAE3oC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAG2oC,EAAEtG,CAAC,CAAC,CAAC,SAASrgC,GAAEhC,EAAEqiC,EAAE,CAAUA,IAAT,SAAaA,EAAE,CAAA,GAAI,IAAIrgC,EAAEspC,GAAE2C,GAAEtF,GAAE3oC,EAAE,OAAOA,EAAE,OAAO,EAAE,KAAK,EAAE,IAAK,SAASsrC,EAAE,CAAC,OAAO1/B,GAAE0/B,EAAEjJ,EAAE,OAAO,CAAC,CAAA,EAAIriC,EAAE,QAAQX,EAAC,EAAE,CAAC,EAAE6uC,EAAElsC,EAAE,CAAC,EAAEg8B,EAAEh8B,EAAE,CAAC,EAAEsC,EAAE,CAAC,OAAOtE,EAAE,SAASqiC,EAAE,aAAa,CAAC,MAAMriC,EAAE,QAAQ,QAAQkuC,EAAE,QAAQlQ,EAAE,QAAQr5B,GAAE3E,EAAE,OAAO,CAAC,EAAE,WAAW,SAASX,EAAEgjC,EAAE,CAAC,IAAIrgC,EAAEksC,EAAElQ,EAAY,OAAO3+B,GAAjB,SAAmB,CAAC,MAAMA,EAAE,QAAQW,EAAE,OAAO,EAAEX,EAAEw8B,EAAEmC,EAAE,MAAMmQ,EAAEnQ,EAAE,QAAQ7J,EAAE6Z,GAAE3L,CAAC,EAAEh+B,EAAErE,EAAE,OAAO67B,CAAC,EAAE,GAAGx3B,EAAE,GAAG,CAAC,IAAI,EAAEskC,GAAEtkC,EAAE,GAAG8vB,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQgI,EAAE,SAASmP,EAAE,CAAC,IAAItrC,EAAc,OAAO,QAAnB,YAA2B,OAAO,SAASX,EAAEW,GAAGsrC,EAAEtrC,CAAC,EAAE2oC,EAAE,EAAE,GAAGtpC,EAAE,OAAOA,EAAE,KAAKisC,CAAC,EAAE,GAAGA,GAAa,OAAOA,EAAE,QAAnB,SAA0B,MAAM,CAAC,KAAK,UAAU,CAAC,OAAOA,GAAG3C,GAAG2C,EAAE,SAASA,EAAE,QAAQ,CAAC,MAAMA,GAAGA,EAAE3C,GAAG,EAAE,KAAK,CAAC2C,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,UAAUtrC,EAAE,0BAA0B,iCAAiC,CAAC,EAAE,CAAC,EAAE4E,EAAEu3B,EAAE,KAAI,EAAG,CAACv3B,EAAE,KAAKA,EAAEu3B,EAAE,KAAI,EAAG,CAAC,IAAIiS,EAAExpC,EAAE,MAAM,GAAYwpC,IAAT,OAAW,OAAOlmC,GAAE2zB,EAAEsS,CAAC,EAAE,IAAI5C,EAAY,OAAO6C,GAAjB,SAAmB,CAAC,OAAOA,CAAC,EAAEA,EAAEC,EAAE9C,EAAE,OAAO+C,EAAE/C,EAAE,QAAQgD,EAAWD,IAAT,OAAW,CAAA,EAAGA,EAAEE,EAAEjD,EAAE,KAAKkD,EAAWD,IAAT,OAAW,UAAU,CAAC,MAAM,EAAE,EAAEA,EAAEz4B,EAAWs4B,IAAT,OAAWz+B,EAAQy+B,GAAN,KAAQA,EAAExS,EAAE6S,EAAE1uC,EAAE,OAAO4P,CAAC,EAAE,GAAG6+B,EAAEN,EAAEha,CAAC,EAAE,CAAC,IAAIwa,EAAErD,GAAE2C,IAAGl4B,EAAE4yB,GAAE4F,CAAC,EAAE,CAAA,EAAG,OAAOlqC,EAAE,KAAKkqC,EAAEG,EAAE,KAAK,EAAE,OAAQ,SAASpD,EAAE,CAAC,OAAOA,CAAC,CAAC,GAAI,IAAK,SAASA,EAAE,CAAC,OAAO1/B,GAAE0/B,EAAEhnC,EAAE,SAAS,OAAO,CAAC,CAAA,EAAI6pC,EAAEha,CAAC,EAAE,CAAC,EAAEya,GAAED,EAAE,CAAC,EAAEE,EAAEF,EAAE,CAAC,EAAEG,EAAEH,EAAE,CAAC,EAAEI,GAAQV,GAAN,KAAQA,EAAExS,EAAE,MAAM,CAAC,MAAMkT,GAAE,QAAQF,EAAE,QAAQD,GAAE,QAAQP,IAAIxS,GAAG+S,GAAE,OAAO,GAAGE,EAAE,QAAQnqC,GAAEoqC,EAAC,CAAC,CAAC,CAAC,CAAC,OAAOzD,EAAE,CAACtpC,EAAE,CAAC,MAAMspC,CAAC,CAAC,QAAA,CAAS,GAAG,CAAC1mC,GAAG,CAACA,EAAE,OAAOspC,EAAE/R,EAAE,SAAS+R,EAAE,KAAK/R,CAAC,CAAC,QAAA,CAAS,GAAGn6B,EAAE,MAAMA,EAAE,KAAK,CAAC,CAAC,CAAC,OAAOkG,GAAE2zB,EAAEsS,CAAC,CAAC,CAAC,EAAE,OAAO7pC,CAAC,CAAC,IAAI4pC,GAAE,SAAS5C,EAAEtrC,EAAE,CAAC,OAAOsrC,EAAE,QAAQ,QAAS,SAASjsC,EAAE,CAAC,IAAIspC,EAAEtpC,EAAE,KAAK,OAAOspC,GAAGA,EAAE2C,EAAE,QAAQtrC,CAAC,CAAC,CAAC,CAAE,EAAE,SAASg+B,GAAEsN,EAAE,CAAC,IAAI3C,EAAE2C,EAAE,aAAajJ,EAAEriC,GAAE,WAAW4L,EAAE,IAAI,IAAI1D,EAAE,CAAC,SAASojC,EAAE,KAAK,SAASjsC,EAAE,CAACgjC,IAAIriC,GAAE,UAAU2oC,EAAE2C,EAAE,WAAW3C,EAAEtpC,CAAC,EAAE6uC,GAAEvF,EAAEqF,GAAE3uC,CAAC,CAAC,EAAEuM,EAAE,QAAS,SAAS0/B,EAAE,CAAC,OAAOA,EAAE3C,CAAC,CAAC,CAAC,EAAG,EAAE,UAAU,SAAS2C,EAAE,CAAC,OAAO1/B,EAAE,IAAI0/B,CAAC,EAAEA,EAAE3C,CAAC,EAAE,CAAC,YAAY,UAAU,CAAC,OAAO/8B,EAAE,OAAO0/B,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,SAAS1/B,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAIoiC,EAAY,OAAOpiC,GAAjB,SAAmBA,EAAE,CAAC,QAAQ0/B,EAAE,OAAO,QAAQ,MAAM1/B,CAAC,EAAE+8B,EAAE,CAAC,MAAMqF,EAAE,MAAM,QAAQ,CAAA,EAAG,QAAQA,EAAE,QAAQ,QAAQrpC,GAAEqpC,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO3L,EAAEriC,GAAE,QAAQkuC,GAAEvF,EAAEtpC,EAAC,EAAE6I,CAAC,EAAE,KAAK,UAAU,CAAC,OAAOm6B,EAAEriC,GAAE,QAAQ4L,EAAE,MAAK,EAAG1D,CAAC,EAAE,IAAI,OAAO,CAAC,OAAOygC,CAAC,EAAE,IAAI,QAAQ,CAAC,OAAOtG,CAAC,CAAC,EAAE,OAAOn6B,CAAC,CCmDlkG,SAAS8mC,GACd9pB,EACA2oB,EACiB,CACjB,QAASjY,EAAM1Q,EAAO,OAAS,EAAG0Q,GAAO,EAAGA,IAAO,CACjD,MAAMrQ,EAAQL,EAAO0Q,CAAG,EACxB,GAAIrQ,EAAM,OAASkS,EAAU,MACvBlS,EAAM,WAAasoB,EACrB,OAAO3oB,EAAO,MAAM0Q,CAAG,CAG7B,CACA,OAAO1Q,CACT,CAOO,SAAS+pB,GACdhb,EACA,CAAE,UAAAib,EAAW,yBAAAC,EAA0B,QAAAC,CAAA,EACvC,CACA,MAAMC,EAAgBC,GACpB,CACE,GAAI,SACJ,QAAArb,EACA,QAAS,SACT,OAAQ,CACN,QAAS,CACP,GAAI,CACF,MAAO,CACL,OAAQ,SACR,QAAS,CAAC,OAAO,CAAA,EAEnB,WAAY,CACV,OAAQ,UACR,QAAS,WAAA,EAEX,IAAK,CACH,OAAQ,SACR,QAAS,CAAC,uBAAwB,OAAO,CAAA,EAE3C,UAAW,CACT,OAAQ,UACR,QAAS,CAAC,UAAU,CAAA,CACtB,CACF,EAEF,OAAQ,CACN,GAAI,CACF,KAAM,CACJ,OAAQ,UACR,QAAS,CAAC,mBAAoB,MAAM,CAAA,EAEtC,WAAY,CACV,OAAQ,SACR,QAAS,WAAA,EAEX,QAAS,CACP,OAAQ,OACR,QAAS,CAAC,WAAW,CAAA,EAEvB,UAAW,CACT,OAAQ,SACR,QAAS,CAAC,UAAU,CAAA,CACtB,CACF,EAEF,KAAM,CACJ,GAAI,CACF,UAAW,CACT,OAAQ,OACR,QAAS,CAAC,UAAU,CAAA,EAEtB,WAAY,CACV,OAAQ,OACR,QAAS,CAAC,WAAW,CAAA,CACvB,CACF,CACF,CACF,EAEF,CACE,QAAS,CACP,UAAWsb,GAAO,CAChB,gBAAiB,CAACprC,EAAKohB,IACjBA,EAAM,OAAS,aACVA,EAAM,QAAQ,MAEhBphB,EAAI,eACb,CACD,EACD,iBAAkBorC,GAAO,CAACprC,EAAKohB,IAAU,CACvC,IAAIiqB,EAAarrC,EAAI,WACrB,MAAI,YAAaohB,GAAS,eAAgBA,EAAM,UAC9CiqB,EAAajqB,EAAM,QAAQ,YAEtBxO,GAAAC,EAAA,GACF7S,GADE,CAEL,WAAAqrC,EACA,aAAcrrC,EAAI,OAAO,CAAC,EAAE,UAAYqrC,CAAA,EAE5C,CAAC,EACD,KAAKrrC,EAAK,OACR,KAAM,CAAE,MAAA0F,EAAO,OAAAqb,EAAQ,aAAA2oB,EAAc,gBAAA4B,CAAA,EAAoBtrC,EACzD0F,EAAM,MAAA,EAEN,UAAW0b,KAASL,EAElB0oB,GAASroB,EAAOsoB,CAAY,EAE9B,MAAM6B,EAAeV,GAAsB9pB,EAAQ2oB,CAAY,EAE/D,IAAI8B,EAAsBF,GAAA,KAAA,OAAAA,EAAiB,WAEzCA,GAAA,KAAA,OAAAA,EAAiB,QAAShY,EAAU,qBACpCgY,EAAgB,KAAK,SAAW9X,EAAkB,YAElDgY,EACEF,EAAgB,YAChBnxC,EAAAmxC,EAAgB,KAAK,UAAU,CAAC,IAAhC,KAAA,OAAAnxC,EAAmC,aAEnCuvC,GAAgB8B,GAAuB,IACzCP,EAAQ,KAAK/W,EAAe,QAAQ,EAGtC,MAAMuX,EAAa,IAAI,MACvB,UAAWrqB,KAASmqB,EAClB,GACE,EAAAC,GACAA,EAAsB9B,IACrBtoB,EAAM,WAAaoqB,GAClBpqB,IAAUkqB,IAId,GAAIlqB,EAAM,UAAYsoB,EACpB+B,EAAW,KAAKrqB,CAAK,MAChB,CACL,MAAMsqB,EAASX,EAAU3pB,EAAO,EAAK,EACrC1b,EAAM,UAAU,CACd,SAAU,IAAM,CACdgmC,EAAA,CACF,EACA,MAAOtqB,EAAM,KAAA,CACd,CACH,CAEF4pB,EAAyBS,CAAU,EACnCR,EAAQ,KAAK/W,EAAe,KAAK,EACjCxuB,EAAM,MAAA,CACR,EACA,MAAM1F,EAAK,CACTA,EAAI,MAAM,MAAA,CACZ,EACA,qBAAsBorC,GAAQprC,GACrB4S,GAAAC,EAAA,GACF7S,GADE,CAEL,gBAAiB,IAAA,EAEpB,EACD,UAAWorC,GAAO,CAChB,aAAc,CAACprC,EAAKohB,KAClBphB,EAAI,MAAM,MAAA,EACNohB,EAAM,OAAS,WAAaA,EAAM,QAAQ,aACrCA,EAAM,QAAQ,aAEhB,KAAK,IAAA,EACd,CACD,EACD,SAAUgqB,GAAO,CAACprC,EAAK2rC,IAAiB,CACtC,KAAM,CAAE,aAAAjC,EAAc,MAAAhkC,EAAO,OAAAqb,CAAA,EAAW/gB,EACxC,GAAI2rC,EAAa,OAAS,YAAa,CACrC,KAAM,CAAE,MAAAvqB,CAAA,EAAUuqB,EAAa,QAC/BlC,GAASroB,EAAOsoB,CAAY,EAE5B,IAAIn8B,EAAMwT,EAAO,OAAS,EAC1B,GAAI,CAACA,EAAOxT,CAAG,GAAKwT,EAAOxT,CAAG,EAAE,WAAa6T,EAAM,UAEjDL,EAAO,KAAKK,CAAK,MACZ,CACL,IAAIwqB,EAAiB,GACjBt+B,EAAQ,EACZ,KAAOA,GAASC,GAAK,CACnB,MAAM2K,EAAM,KAAK,OAAO5K,EAAQC,GAAO,CAAC,EACpCwT,EAAO7I,CAAG,EAAE,WAAakJ,EAAM,UACjC9T,EAAQ4K,EAAM,EAEd3K,EAAM2K,EAAM,CAEhB,CACI0zB,IAAmB,KACrBA,EAAiBt+B,GAEnByT,EAAO,OAAO6qB,EAAgB,EAAGxqB,CAAK,CACxC,CAEA,MAAMyqB,EAASzqB,EAAM,UAAYsoB,EAC3BgC,EAASX,EAAU3pB,EAAOyqB,CAAM,EAClCA,EACFH,EAAA,EACShmC,EAAM,SAAA,GACfA,EAAM,UAAU,CACd,SAAU,IAAM,CACdgmC,EAAA,CACF,EACA,MAAOtqB,EAAM,KAAA,CACd,CAEL,CACA,OAAOxO,GAAAC,EAAA,GAAK7S,GAAL,CAAU,OAAA+gB,CAAA,EACnB,CAAC,CAAA,CACH,CACF,EAEF,OAAO+qB,GAAUZ,CAAa,CAChC,CA8BO,SAASa,GAAmBjc,EAAuB,CACxD,MAAMkc,EAAeb,GACnB,CACE,GAAI,QACJ,QAAArb,EACA,QAAS,SACT,OAAQ,CACN,OAAQ,CACN,GAAI,CACF,aAAc,CACZ,OAAQ,WACR,QAAS,CAAC,cAAe,UAAU,CAAA,EAErC,UAAW,CACT,OAAQ,SACR,QAAS,CAAC,UAAU,CAAA,CACtB,CACF,EAEF,SAAU,CACR,GAAI,CACF,eAAgB,CACd,OAAQ,SACR,QAAS,CAAC,cAAc,CAAA,EAE1B,UAAW,CACT,OAAQ,SACR,QAAS,CAAC,UAAU,CAAA,CACtB,CACF,CACF,CACF,EAEF,CACE,QAAS,CACP,SAAU,CAAC9vB,EAAKohB,IAAU,CACpB,YAAaA,GACfphB,EAAI,MAAM,SAASohB,EAAM,QAAQ,KAAK,CAE1C,EACA,YAAagqB,GAAO,CAClB,YAAcprC,GAAQA,EAAI,MAAM,KAAA,CACjC,EACD,aAAeA,GAAQ,CACrBA,EAAI,MAAM,SAASA,EAAI,WAAW,CACpC,CAAA,CACF,CACF,EAGF,OAAO8rC,GAAUE,CAAY,CAC/B,CC5WA,MAAMluC,GAA2C8G,GAAuB,CACtE,IAAIA,CAAU,gCACd,wCACF,ECGMqnC,GAAA,IAGE,IACD,SAAS1K,GACdvhC,EAIAwhC,EACA,CACA,IAAIC,EAAawK,GAAY,IAAIjsC,CAAG,EACpC,OAAKyhC,IACHA,EAAA,IAAiB,IACjBwK,GAAY,IAAIjsC,EAAKyhC,CAAU,GAE5BA,EAAW,IAAID,CAAI,GACtBC,EAAW,IAAID,EAAM,CAAA,CAAE,EAGlBC,EAAW,IAAID,CAAI,CAC5B,CAMO,SAAS0K,GACdC,EACAnsC,EAKAosC,EAGkC,CAClC,MAAO,OAAOvK,GAAiC,CAC7C,GAAIA,GAAO,OAAOA,GAAQ,UAAY,YAAaA,EAEjD,GADIuK,IAAAA,EAAiB,YAAc,IAC/BvK,EAAI,UAAY,eAAiB,SAAUA,EAAK,CAElD,MAAMjuB,EAAO,MAAMs4B,GAAeC,EAAUnsC,EAAKosC,CAAO,EAAEvK,EAAI,IAAI,EAElE,OAAO,MAAM,kBAAkB,MAAM,KAAMjuB,CAAI,CACjD,SAAW,UAAWiuB,EAAK,CACzB,GAAIuK,GAAWpsC,IAAQ,KAAM,OAAO6hC,EACpC,KAAM,CAAE,QAAShlC,EAAM,MAAAI,CAAA,EAAU4kC,EAEjC,OAAON,GAAgBvhC,EAAKnD,CAAI,EAAEI,CAAK,CACzC,SAAW,SAAU4kC,EAAK,CACxB,KAAM,CAAE,QAAShlC,EAAM,KAAA+W,CAAA,EAASiuB,EAE1BL,EAAO,OAAO3kC,CAAoB,EAGxC,OAAO,IAAI2kC,EACT,GAAI,MAAM,QAAQ,IAChB5tB,EAAK,IAAIs4B,GAAeC,EAAUnsC,EAAKosC,CAAO,CAAC,CAAA,CACjD,CAEJ,KAAA,IAAW,WAAYvK,EACrB,OAAOb,GAAOa,EAAI,MAAM,EAC1B,GAAW,QAASA,EAAK,CACvB,MAAM15B,EAAQgkC,EAAS,IAAItK,EAAI,GAAG,EAClC,GAAI15B,EACF,OAAOA,EACF,CACL,MAAMA,EAAQ,IAAI,MAClBA,OAAAA,EAAM,IAAM05B,EAAI,IAChBsK,EAAS,IAAItK,EAAI,IAAK15B,CAAK,EACpBA,CACT,CACF,SAAW,SAAU05B,GAAOA,EAAI,UAAY,OAAQ,CAClD,MAAMwK,EAAe,MAAM,QAAQ,IACjCxK,EAAI,KAAK,IAAIqK,GAAeC,EAAUnsC,EAAKosC,CAAO,CAAC,CAAA,EAKrD,OAHa,IAAI,KAAKC,EAAc,CAClC,KAAMxK,EAAI,IAAA,CACX,CAEH,UACS,MAAM,QAAQA,CAAG,EAK1B,OAJe,MAAM,QAAQ,IAC3BA,EAAI,IAAIqK,GAAeC,EAAUnsC,EAAKosC,CAAO,CAAC,CAAA,EAKlD,OAAOvK,CACT,CACF,CC3FA,SAASyK,GACPld,EACA7vB,EACuD,CAIvD,GAAI,CACF,OAAIA,IAASu0B,GAAc,MAEvB1E,EAAO,WAAW,OAAO,GAAMA,EAAO,WAAW,oBAAoB,EAGlEA,EAAO,WAAW,QAAQ,CACnC,OAASl0B,EAAG,CACV,OAAO,IACT,CACF,CAEA,MAAMqxC,GAAiC,CACrC,kBACA,cACA,mBACA,eACA,oBACA,cACA,6BACA,eACA,uBACA,wBACF,EAEA,SAASC,GACPxsC,EACA0f,EACA,CAEA,GAAI,EAACA,GAAA,MAAAA,EAAQ,aAAa,OAG1B,KAAM,CAAE,KAAA7iB,CAAA,EAAS6iB,EAAO,YAExB,GAAI,CAAC6sB,GAA+B,SAAS1vC,CAAI,EAAG,OAGpD,MAAM4vC,EAAYlL,GAAgBvhC,EAAKnD,CAAI,EACtC4vC,EAAU,SAAS/sB,CAAM,GAAG+sB,EAAU,KAAK/sB,CAAM,CACxD,CAEA,eAA8BgtB,GAAc,CAC1C,SAAArb,EACA,OAAAjC,EACA,KAAA7vB,EACA,SAAA4sC,EACA,aAAA7V,CACF,EAMkB,CAChB,GAAI,CACF,MAAMt2B,EAAMssC,GAAWld,EAAQ7vB,CAAI,EACnC,GAAI,CAACS,EAAK,OAMV,GAAIqxB,EAAS,OAAQ,CAGlBrxB,EAAYqxB,EAAS,QAAQ,EAAIA,EAAS,KAAK,CAAC,EACjD,MACF,CACA,MAAMt0B,EAAWiD,EACfqxB,EAAS,QACX,EAKMzd,EAAO,MAAM,QAAQ,IACzByd,EAAS,KAAK,IAAI6a,GAAeC,EAAUnsC,CAAG,CAAC,CAAA,EAE3C0f,EAAS3iB,EAAS,MAAMiD,EAAK4T,CAAI,EACvC44B,GAAkBxsC,EAAK0f,CAAM,EAG7B,MAAMitB,EAAY,EAiCpB,OAASzuC,EAAO,CACdo4B,EAAajF,EAAUnzB,CAAK,CAC9B,CACF,CCjIA,eAA8B+sB,GAAe,CAC3C,MAAA7J,EACA,UAAAuR,EACA,OAAAvD,EACA,SAAA+c,EACA,aAAA7V,CACF,EAMkB,CAChB,MAAMt2B,EAAMovB,EAAO,WAAW,IAAI,EAElC,GAAI,CAACpvB,EAAK,CACRs2B,EAAa3D,EAAU,CAAC,EAAG,IAAI,MAAM,wBAAwB,CAAC,EAC9D,MACF,CAGA,MAAMia,EAAuBja,EAAU,IACrC,MAAOtB,GACE,QAAQ,IAAIA,EAAS,KAAK,IAAI6a,GAAeC,EAAUnsC,CAAG,CAAC,CAAC,CACrE,GAEW,MAAM,QAAQ,IAAI4sC,CAAoB,GAE9C,QAAQ,CAACh5B,EAAM3W,IAAU,CAC5B,MAAMo0B,EAAWsB,EAAU11B,CAAK,EAChC,GAAI,CACF,GAAIo0B,EAAS,OAAQ,CAElBrxB,EAA2CqxB,EAAS,QAAQ,EAC3DA,EAAS,KAAK,CAAC,EACjB,MACF,CACA,MAAMt0B,EAAWiD,EACfqxB,EAAS,QACX,EAQEA,EAAS,WAAa,aACtB,OAAOA,EAAS,KAAK,CAAC,GAAM,UAE5B8a,EAAS,IAAI/qB,CAAK,EAClBrkB,EAAS,MAAMiD,EAAKqxB,EAAS,IAAI,GAEjCt0B,EAAS,MAAMiD,EAAK4T,CAAI,CAE5B,OAAS1V,EAAO,CACdo4B,EAAajF,EAAUnzB,CAAK,CAC9B,CAGF,CAAC,CACH,CCvDA,eAA8B+sB,GAAe,CAC3C,MAAA7J,EACA,SAAAiQ,EACA,OAAAjC,EACA,SAAA+c,EACA,eAAAU,EACA,aAAAvW,CACF,EAOkB,CAChB,GAAI,CACF,MAAMwW,EACJD,EAAe,IAAIzrB,CAAK,GAAKiQ,EAEzB0b,EACJ,aAAcD,EACVA,EAAoB,SACpB,CAACA,CAAmB,EAE1B,GAAI,CAAChZ,GAAc,MAAOA,GAAc,MAAM,EAAE,SAASzC,EAAS,IAAI,EAAG,CACvE,QAAS5pB,EAAI,EAAGA,EAAIslC,EAAS,OAAQtlC,IAAK,CACxC,MAAMulC,EAAUD,EAAStlC,CAAC,EAC1B,MAAMilC,GAAc,CAClB,SAAUM,EACV,KAAM3b,EAAS,KACf,OAAAjC,EACA,SAAA+c,EACA,aAAA7V,CAAA,CACD,CACH,CACA,MACF,CAEA,MAAM2W,GAAiB,CACrB,MAAA7rB,EACA,UAAW2rB,EACX,OAAA3d,EACA,SAAA+c,EACA,aAAA7V,CAAA,CACD,CACH,OAASp4B,EAAO,CACdo4B,EAAajF,EAAUnzB,CAAK,CAC9B,CACF,CChDA,MAAMgvC,GAAgC,CAAC,QAAS,OAAO,EAYhD,MAAMC,EAAa,CAaxB,YAAYlnC,EAMT,CAlBKrM,EAAA,KAAA,WAAA,IACF,GAAA,EACEA,EAAA,KAAA,MAAA,EACAA,EAAA,KAAA,SAAA,EACAA,EAAA,KAAA,cAAA,EACAA,EAAA,KAAA,SAAA,EACAA,EAAA,KAAA,gBAAA,EACAA,EAAA,KAAA,sBAAA,IAGA,GAAA,EASN,KAAK,KAAOqM,EAAQ,KACpB,KAAK,QAAUA,EAAQ,QACvB,KAAK,aAAeA,EAAQ,aAC5B,KAAK,QAAUA,EAAQ,QACvB,KAAK,eAAiBA,EAAQ,eAE9B,KAAK,QAAQ,GAAGiuB,EAAe,MAAO,KAAK,MAAM,KAAK,IAAI,CAAC,EAC3D,KAAK,QAAQ,GAAGA,EAAe,UAAW,KAAK,MAAM,KAAK,IAAI,CAAC,EAC/D,KAAK,QAAQ,GAAGA,EAAe,MAAO,KAAK,MAAM,KAAK,IAAI,CAAC,EAC3D,KAAK,QAAQ,GAAGA,EAAe,OAAQ,KAAK,MAAM,KAAK,IAAI,CAAC,EAC5D,KAAK,aAAa,UAAU,IAAM,CAChC,KAAK,qBAAA,CACP,CAAC,CACH,CAEQ,qBAAqBjuB,EAAU,CAAE,MAAO,EAAA,EAAS,CACvD,KAAK,SAAS,QAAQ,CAACmnC,EAAahe,IAAW,CAC7C,KAAK,oBAAoBA,CAAM,EAC3BnpB,EAAQ,OACVmpB,EAAO,MAAA,CAEX,CAAC,CACH,CAEQ,OAAQ,CACd,KAAK,qBAAA,CACP,CAEQ,OAAQ,CACd,KAAK,qBAAqB,CAAE,MAAO,EAAA,CAAM,CAC3C,CAEQ,OAAO,CACb,KAAAmZ,EACA,OAAAnZ,EACA,WAAAie,CAAA,EAKC,CACD,GAAIA,EAAW,UAAW,CAGxB,MAAMC,GADJ/E,EAAO8E,EAAW,2BAEuC,IACzDA,EAAW,aAEPE,EAAW,aAAcne,GAAUA,EAAO,SAGhD,GAAI,OAAO,MAAMme,CAAQ,EAAG,CAC1B,KAAK,gBAAgBne,CAAM,EAC3B,MACF,CAEA,IAAIoe,EACFH,EAAW,6BAA+BC,EAG1Cle,EAAO,MAEPme,IAAa,KAEbC,EAAaA,EAAaD,GAG5Bne,EAAO,YAAcoe,CACvB,MACEpe,EAAO,MAAA,EACPA,EAAO,YAAcie,EAAW,4BAEpC,CAEQ,gBAAgBje,EAA2C,CAEjE,GADI,KAAK,oBAAoB,IAAIA,CAAM,GACnC,EAAE,qBAAsBA,GAAS,OAErC,MAAMqe,EAAmB,IAAM,CAC7B,KAAK,oBAAoB,OAAOre,CAAM,EACtC,MAAMie,EAAa,KAAK,SAAS,IAAIje,CAAM,EACtCie,GACL,KAAK,OAAO,CACV,KAAM,KAAK,eAAA,EACX,OAAAje,EACA,WAAAie,CAAA,CACD,CACH,EAEA,KAAK,oBAAoB,IAAIje,EAAQqe,CAAgB,EACrDre,EAAO,iBAAiB,iBAAkBqe,EAAkB,CAC1D,KAAM,EAAA,CACP,CACH,CAEQ,0BAA0B,CAChC,OAAAre,EACA,WAAAic,EACA,SAAAha,CAAA,EAKa,eACb,MAAMqc,EAAY,KAAK,SAAS,IAAIte,CAAM,EACpC,CAAE,KAAA7vB,EAAM,aAAAk9B,EAAc,YAAAH,EAAa,MAAAE,EAAO,OAAAD,EAAQ,KAAAG,CAAA,EAASrL,EAkBjE,MAX+B,CAC7B,UALA9xB,IAASy0B,GAAkB,MAC1Bz0B,IAASy0B,GAAkB,SACzB0Z,GAAA,KAAA,OAAAA,EAAW,YAAate,EAAO,aAAa,UAAU,IAAM,MAI/D,8BACEj1B,EAAAmiC,GAAA,KAAAA,EAAeoR,GAAA,KAAA,OAAAA,EAAW,+BAA1B,KAAAvzC,EAA0D,EAC5D,0BAA2BkxC,EAC3B,cAAcjxC,EAAAqiC,GAAA,KAAAA,EAAgBiR,GAAA,KAAA,OAAAA,EAAW,eAA3B,KAAAtzC,EAA2C,EACzD,QAAQuhC,EAAAY,GAAA,KAAAA,EAAUmR,GAAA,KAAA,OAAAA,EAAW,SAArB,KAAA/R,EAA+B,EACvC,OAAOvL,EAAAoM,GAAA,KAAAA,EAASkR,GAAA,KAAA,OAAAA,EAAW,QAApB,KAAAtd,EAA6BhB,EAAO,aAAa,OAAO,IAAM,KACrE,MAAMue,EAAAjR,GAAA,KAAAA,EAAQgR,GAAA,KAAA,OAAAA,EAAW,OAAnB,KAAAC,EAA2Bve,EAAO,aAAa,MAAM,IAAM,IAAA,CAIrE,CAEQ,oBAAoBA,EAA2C,CACrE,MAAMie,EAAa,KAAK,SAAS,IAAIje,CAAM,EAC3C,GAAI,CAACie,EAAY,OACjB,KAAM,CAAE,MAAA7Q,EAAO,KAAAE,EAAM,OAAAH,EAAQ,UAAAqR,CAAA,EAAcP,EACrCQ,EAAiB,KAAK,QAAQ,MAAM,QAAQ,QAAQ,EACpDpR,EACJ4Q,EAAW,aAAe,KAAK,aAAa,MAAM,QAAQ,MAAM,MAElE,GAAI,CACF,KAAK,OAAO,CACV,KAAM,KAAK,eAAA,EACX,OAAAje,EACA,WAAAie,CAAA,CACD,EAEGje,EAAO,SAAWmN,IACpBnN,EAAO,OAASmN,GAElBnN,EAAO,MAAQoN,EACfpN,EAAO,KAAOsN,EAEVtN,EAAO,eAAiBqN,IAG1BrN,EAAO,aAAeqN,GAGpBmR,GAAa,CAACC,EAKXze,EAAO,KAAA,EAEZA,EAAO,MAAA,CAEX,OAASlxB,EAAO,CACd,KAAK,KAEH,wCAAwCA,EAAM,SAAWA,CAAK,EAAA,CAElE,CACF,CAEO,iBAAiBa,EAAYssC,EAAoBnlC,EAAgB,CACtE,GAAI,CAAC,KAAK,wBAAwBnH,CAAI,EAAG,OACzC,MAAMqwB,EAASrwB,EACTkL,EAAiB/D,EAAO,QAAQkpB,CAAM,EAC5C,GAAI,CAACnlB,GAAkB,EAAE,eAAgBA,GAAiB,OAC1D,MAAM4jC,EAAiB,KAAK,QAAQ,MAAM,QAAQ,QAAQ,EACpDtlC,EAAkB0B,EAAe,WAIvC,IAAI2jC,EAAY,GACZrlC,EAAgB,cAClBqlC,EAAYrlC,EAAgB,gBAAkB,SAE9CqlC,EAAYxe,EAAO,aAAa,UAAU,IAAM,KAE9Cwe,GAAaC,GAAgBze,EAAO,MAAA,EAExC,IAAIqN,EAAe,EACf,OAAOl0B,EAAgB,sBAAyB,WAClDk0B,EAAel0B,EAAgB,sBAGjC,IAAIi0B,EAAQ,GACR,OAAOj0B,EAAgB,eAAkB,UAC3Ci0B,EAAQj0B,EAAgB,cAExBi0B,EAAQpN,EAAO,aAAa,OAAO,IAAM,KAG3C,IAAIsN,EAAO,GACP,OAAOn0B,EAAgB,cAAiB,UAC1Cm0B,EAAOn0B,EAAgB,aAEvBm0B,EAAOtN,EAAO,aAAa,MAAM,IAAM,KAGzC,IAAImN,EAAS,EACT,OAAOh0B,EAAgB,gBAAmB,WAC5Cg0B,EAASh0B,EAAgB,gBAG3B,IAAIulC,EAA+B,EAC/B,OAAOvlC,EAAgB,qBAAwB,WACjDulC,EAA+BvlC,EAAgB,qBAGjD,KAAK,SAAS,IAAI6mB,EAAQ,CACxB,UAAAwe,EACA,6BAAAE,EACA,0BAA2BzC,EAC3B,aAAA5O,EACA,OAAAF,EACA,MAAAC,EACA,KAAAE,CAAA,CACD,EACD,KAAK,oBAAoBtN,CAAM,CACjC,CAEO,cAAc,CACnB,OAAAA,EACA,WAAAic,EACA,SAAAha,CAAA,EAKC,CACI6b,GAA8B,SAAS9d,EAAO,QAAQ,IAI3D,KAAK,SAAS,IACZA,EACA,KAAK,0BAA0B,CAC7B,OAAAA,EACA,WAAAic,EACA,SAAAha,CAAA,CACD,CAAA,EAGH,KAAK,oBAAoBjC,CAAM,EACjC,CAEO,wBAAwBrwB,EAAsC,CACnE,OAAOmuC,GAA8B,SAASnuC,EAAK,QAAQ,CAC7D,CAEO,OAAQ,CACb,KAAK,SAAS,MAAA,CAChB,CACF,CCtSO,SAASgvC,GACdhvC,EACAivC,EACM,CACN,GAAIjvC,EAAK,WAAa,UAAYA,aAAgBkvC,GAAQ,OAC1D,MAAM9iB,EAASpsB,EACTmvC,EAAY/iB,EAAO,KACnBgjB,EAAkBD,GAAa/iB,EAAO,QAAQ,cAAc,EAC5DijB,EAAajjB,EAAO,aAAa,cAAc,EAE/CkjB,EACJ,OAAOL,GAAA,KAAA,OAAAA,EAAmB,WAAW,OAAS,UAC9C,OAAO7iB,EAAO,aAAa,MAAM,GAAM,SACnCmjB,EAAkBF,IAAe,QAOvC,GAAI,EAAAF,GAAa,EAHdC,GAHwBC,IAAe,aAIvC,CAACD,GAAmBG,IAIvB,IAAI,CAACnjB,EAAO,YAAa,CACvB,QAAQ,KAAK,oCAAqCA,CAAM,EACxD,MACF,CAEI+iB,GAAA/iB,EAAkB,MAAA,EACjBkjB,IAEDC,EAAAnjB,EAAwB,UAAA,EAAAA,EAChB,KAAA,GACd,CAQO,SAASojB,GACdxvC,EACAivC,EACM,CACN,GAAIjvC,EAAK,WAAa,UAAYA,aAAgBkvC,GAAQ,OAC1D,MAAM9iB,EAASpsB,EAGf,GAAI,CAACosB,EAAO,YAAa,CACvB,QAAQ,KAAK,oCAAqCA,CAAM,EACxD,MACF,CAEI6iB,EAAkB,WAAW,OAAS,OACxC7iB,EAAO,gBAAgB,MAAM,EAC7BA,EAAO,gBAAgB,cAAc,EAEzC,CC0BA,MAAMqjB,GAAqB,EAAI,IAGzBC,GAAOC,IAAqBC,GAE5BC,GAAwB,aAExBC,GAAyB,CAC7B,SAAU,IACV,QAAS,QACT,UAAW,EACX,YAAa,KACf,EAEA,SAASC,GAAqB5zC,EAAkB,CAC9C,OACEA,EAAE,MAAQo4B,EAAU,sBACnBp4B,EAAE,KAAK,QAAUs4B,EAAkB,WACjCt4B,EAAE,KAAK,QAAUs4B,EAAkB,kBAClCt4B,EAAE,KAAK,MAAQw4B,EAAkB,WAEzC,CAEO,MAAMqb,EAAS,CAsEpB,YACEhuB,EACAsoB,EACA,CACA,GAzEKzvC,EAAA,KAAA,SAAA,EACAA,EAAA,KAAA,QAAA,EAEAA,EAAA,KAAA,SAAA,EACAA,EAAA,KAAA,cAAA,EAKAA,EAAA,KAAA,QAAA,EAGAA,EAAA,KAAA,kBAAkB,EAAA,EAClBA,EAAA,KAAA,aAAyB,IAAI2zB,EAAA,EAE5B3zB,EAAA,KAAA,OAAA,EACAA,EAAA,KAAA,YAAsC,IAAA,EACtCA,EAAA,KAAA,gBAAiD,CAAA,CAAA,EAEjDA,EAAA,KAAA,UAAmB60C,GAAA,CAAA,EAEnB70C,EAAA,KAAA,0BAAA,EAEAA,EAAA,KAAA,6BAA6C,CAAA,CAAA,EAG7CA,EAAA,KAAA,QAAoBuqB,GAAA,CAAA,EAEpBvqB,EAAA,KAAA,WAAA,IAA8D,GAAA,EAC9DA,EAAA,KAAA,iBAAA,IAA8D,GAAA,EAE9DA,EAAA,KAAA,SAAiBsF,GAAA,CAAA,EAGjBtF,EAAA,KAAA,cAAgC,IAAIk5B,EAAA,EAGpCl5B,EAAA,KAAA,cAAA,EAEAA,EAAA,KAAA,oBAAiD,IAAA,EAEjDA,EAAA,KAAA,mBAAwC,CAAA,CAAA,EAExCA,EAAA,KAAA,WAAgC,IAAA,EAChCA,EAAA,KAAA,cAA8B,IAAA,EAC9BA,EAAA,KAAA,qBAA2C,IAAA,EAG3CA,EAAA,KAAA,qBAAA,EAGAA,EAAA,KAAA,oBAA0C,IAAA,EAG1CA,EAAA,KAAA,4BAGF,CAAA,CAAA,EAGEA,EAAA,KAAA,qBAA8C,CAAA,CAAA,EAG9CA,EAAA,KAAA,kBAA8D,CAAA,CAAA,EAC9DA,EAAA,KAAA,qBAAA,EACAA,EAAA,KAAA,0BAAA,EACAA,EAAA,KAAA,WAAA,IAAmD,GAAA,EACnDA,EAAA,KAAA,0BAAA,IAAgE,GAAA,EA2gBhEA,EAAA,KAAA,eAAgBo1C,GAAuC,CAC7D,KAAK,OAAO,MAAM,QAAU,UAC5B,UAAW7qC,IAAM,CAAC,KAAK,UAAW,KAAK,MAAM,EACtCA,IAGLA,EAAG,aAAa,QAAS,OAAO6qC,EAAU,KAAK,CAAC,EAChD7qC,EAAG,aAAa,SAAU,OAAO6qC,EAAU,MAAM,CAAC,EAEtD,CAAA,EAEQp1C,EAAA,KAAA,2BAA4BmnB,GAAiC,CACnE,UAAWK,KAASL,EAAQ,CAC1B,OAAQK,EAAM,KAAA,CACZ,KAAKkS,EAAU,iBACf,KAAKA,EAAU,KACf,KAAKA,EAAU,OACb,SACF,KAAKA,EAAU,aACf,KAAKA,EAAU,KACf,KAAKA,EAAU,OACf,KAAKA,EAAU,oBACb,KAEA,CAEW,KAAK,UAAUlS,EAAO,EAAI,EACzC,CACF,CACF,CAAA,EAEQxnB,EAAA,KAAA,YAAY,CAACwnB,EAAsByqB,EAAS,KAAU,CAC5D,IAAIH,EACJ,OAAQtqB,EAAM,KAAA,CACZ,KAAKkS,EAAU,iBACf,KAAKA,EAAU,KACb,MACF,KAAKA,EAAU,OACboY,EAAS,IAAM,CAMb,KAAK,QAAQ,KAAKxX,EAAe,YAAa9S,CAAK,CACrD,EACA,MACF,KAAKkS,EAAU,KACboY,EAAS,IACP,KAAK,QAAQ,KAAKxX,EAAe,OAAQ,CACvC,MAAO9S,EAAM,KAAK,MAClB,OAAQA,EAAM,KAAK,MAAA,CACpB,EACH,MACF,KAAKkS,EAAU,aACboY,EAAS,IAAM,OACb,GAAI,KAAK,mBACP,GAAI,KAAK,oBAAsBtqB,EAAO,CAEpC,KAAK,kBAAoB,GACzB,MACF,OAGA,KAAK,kBAAoB,GAE3B,KAAK,aAAa,MAAA,EAClB,KAAK,YAAY,MAAA,EACjB,KAAK,oBAAoBA,EAAOyqB,CAAM,GACtC1xC,EAAA,KAAK,OAAO,gBAAZ,MAAAA,EAA2B,SAASinB,EAAM,KAAK,aAAA,CACjD,EACA,MACF,KAAKkS,EAAU,oBACboY,EAAS,IAAM,CAEb,GADA,KAAK,iBAAiBtqB,EAAOyqB,CAAM,EAC/B,CAAAA,IAIAzqB,IAAU,KAAK,2BACjB,KAAK,yBAA2B,KAChC,KAAK,aAAA,GAEH,KAAK,OAAO,cAAgB,CAAC,KAAK,0BAA0B,CAC9D,UAAW6H,KAAU,KAAK,QAAQ,MAAM,QAAQ,OAC9C,GAAI,EAAAA,EAAO,WAAa7H,EAAM,YAG1B,KAAK,kBAAkB6H,CAAM,EAAG,CAGhCA,EAAO,MAAS7H,EAAM,MACtB,KAAK,OAAO,wBACV,KAAK,aAAa,MAAM,QAAQ,MAAM,QAExC,KAAK,yBAA2B6H,GAElC,KACF,CAEF,GAAI,KAAK,yBAA0B,CACjC,MAAMgmB,EAEJ,KAAK,yBAAyB,MAAS7tB,EAAM,MACzCiU,EAAU,CACd,MAAO,KAAK,IACV,KAAK,MAAM4Z,EAAWT,EAAkB,EACxC,KAAK,OAAO,QAAA,CACd,EAEF,KAAK,aAAa,KAAK,CAAE,KAAM,eAAgB,QAAAnZ,CAAA,CAAS,EACxD,KAAK,QAAQ,KAAKnB,EAAe,UAAWmB,CAAO,CACrD,CACF,CACF,EACA,KACF,CA0CF,MAxCsB,IAAM,CACtBqW,GACFA,EAAA,EAGF,UAAW9+B,KAAU,KAAK,OAAO,SAAW,CAAA,EACtCA,EAAO,SAASA,EAAO,QAAQwU,EAAOyqB,EAAQ,CAAE,SAAU,IAAA,CAAM,EAGtE,KAAK,QAAQ,KAAK,CAAE,KAAM,aAAc,QAAS,CAAE,MAAAzqB,CAAA,CAAA,CAAS,EAG5D,MAAM8tB,EAAa,KAAK,QAAQ,MAAM,QAAQ,OAAO,OAAS,EAC9D,GACE,CAAC,KAAK,OAAO,UACb9tB,IAAU,KAAK,QAAQ,MAAM,QAAQ,OAAO8tB,CAAU,EACtD,CACA,MAAMC,EAAS,IAAM,CACfD,EAAa,KAAK,QAAQ,MAAM,QAAQ,OAAO,OAAS,IAI5D,KAAK,aAAA,EACL,KAAK,QAAQ,KAAK,KAAK,EACvB,KAAK,QAAQ,KAAKhb,EAAe,MAAM,EACzC,EACA,IAAIkb,EAAgB,GAElBhuB,EAAM,OAASkS,EAAU,qBACzBlS,EAAM,KAAK,SAAWoS,EAAkB,WACxCpS,EAAM,KAAK,UAAU,SAGrBguB,GAAiB,KAAK,IAAI,EAAG,CAAChuB,EAAM,KAAK,UAAU,CAAC,EAAE,UAAU,GAElE,WAAW+tB,EAAQC,CAAa,CAClC,CAEA,KAAK,QAAQ,KAAKlb,EAAe,UAAW9S,CAAK,CACnD,CAEF,CAAA,EApqBM,EAACioB,GAAA,MAAAA,EAAQ,WAAYtoB,EAAO,OAAS,EACvC,MAAM,IAAI,MAAM,kCAAkC,EAEpD,MAAMsuB,EAA8B,CAClC,MAAO,EACP,SAAU,IACV,KAAM,SAAS,KACf,YAAa,EACb,aAAc,GACd,wBAAyB,GAAK,IAC9B,YAAa,GACb,UAAW,GACX,WAAY,WACZ,SAAU,GACV,iBAAkB,CAAA,EAClB,aAAc,GACd,oBAAqB,GACrB,eAAgB,GAChB,UAAWR,GACX,cAAe,GACf,OAAQ,OAAA,EAEV,KAAK,OAAS,OAAO,OAAO,CAAA,EAAIQ,EAAehG,CAAM,EAErD,KAAK,aAAe,KAAK,aAAa,KAAK,IAAI,EAC/C,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,EACzC,KAAK,yBAA2B,KAAK,yBAAyB,KAAK,IAAI,EACvE,KAAK,kBAAkBnV,EAAe,OAAQ,KAAK,YAAuB,EAE1E,KAAK,SAAA,EAKL,UAAWtnB,KAAU,KAAK,OAAO,SAAW,CAAA,EACtCA,EAAO,WAAWA,EAAO,UAAU,CAAE,WAAY,KAAK,MAAA,CAAQ,EAGpE,MAAM0iC,EAAe,IAAM,CACzB,GAAI,KAAK,gBAAiB,CACxB,MAAMC,EAAmC,CACvC,OAAQ,KAAK,OACb,YAAa,CACXC,EACAC,EACArgB,IACG,CACEnE,GAAe,CAClB,MAAOukB,EACP,SAAUC,EACV,OAAArgB,EACA,SAAU,KAAK,SACf,eAAgB,KAAK,eACrB,aAAc,KAAK,yBAAyB,KAAK,IAAI,CAAA,CACtD,CACH,EACA,WAAY,KAAK,WAAW,KAAK,IAAI,EACrC,YAAa,KAAK,YAAY,KAAK,IAAI,EACvC,wBAAyB,CACvBjd,EACA+Y,IACG,CACC/Y,EAAK,SAAWqhB,EAAkB,eACpC,KAAK,oBAAoBrhB,EAAM+Y,CAAU,EAClC/Y,EAAK,SAAWqhB,EAAkB,kBACzC,KAAK,sBAAsBrhB,EAAM+Y,CAAU,CAC/C,EACA,YAAa,CAACnsB,EAAYH,IAAe,CACvC,UAAWgO,KAAU,KAAK,OAAO,SAAW,CAAA,EACtCA,EAAO,SAASA,EAAO,QAAQ7N,EAAM,CAAE,GAAAH,EAAI,SAAU,IAAA,CAAM,CAEnE,CAAA,EAEF,GAAI,KAAK,OAAO,gBACd,GAAI,CACFgrB,GACE,KAAK,OAAO,gBACZ,KAAK,WACL2lB,EACA,KAAK,WAAW,MAAA,CAEpB,OAASr0C,EAAG,CACV,KAAK,KAAKA,CAAC,CACb,CAMF,GAJA,KAAK,WAAW,YAAA,EAChB,KAAK,gBAAkB,GAGnB,OAAO,KAAK,KAAK,0BAA0B,EAAE,OAC/C,UAAWxB,KAAO,KAAK,2BACrB,GAAI,CACF,MAAMC,EAAQ,KAAK,2BAA2BD,CAAG,EAC3Cg2C,EAAWplB,GACf3wB,EAAM,KACN,KAAK,OACL,KAAK,WAAW,MAAA,EAElBiwB,GACE8lB,EACA/1C,EAAM,KACN41C,EACA,KAAK,WAAW,MAAA,EAElB51C,EAAM,KAAO+1C,CACf,OAASxxC,EAAO,CACd,KAAK,KAAKA,CAAK,CACjB,CAIJ,KAAK,0BAA0B,QAASiU,GAAS,CAC/C,KAAK,wBAAwBA,CAAI,CACnC,CAAC,EACD,KAAK,0BAA4B,CAAA,EAEjC,KAAK,mBAAmB,QAASA,GAAS,CACxC,KAAK,uBAAuBA,CAAI,CAClC,CAAC,EACD,KAAK,mBAAqB,CAAA,CAC5B,CAoBA,GAlBI,KAAK,WACP,KAAK,aACH,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,GACd,GACA,KAAK,SAAS,SAAA,EAEhB,KAAK,SAAW,MAGd,KAAK,cAAgB,GACvB,KAAK,MAAM,UAAU,IAAI,cAAc,EAC9B,KAAK,cAAgB,IAC9B,KAAK,MAAM,UAAU,OAAO,cAAc,EAE5C,KAAK,YAAc,KAEf,KAAK,mBAAoB,CAC3B,KAAM,CAACid,EAAQhO,CAAK,EAAI,KAAK,mBAC7BgO,EAAO,cAAchO,CAAK,CAC5B,CACA,KAAK,mBAAqB,KAEtB,KAAK,oBACP,KAAK,eAAe,KAAK,iBAAiB,EAC1C,KAAK,kBAAoB,KAE7B,EACA,KAAK,kBAAkB8S,EAAe,MAAOob,CAAY,EAEzD,MAAMK,EAAkB,IAAM,CAC5B,KAAK,kBAAoB,KACzB,KAAK,OAAO,MAAA,EACZ,KAAK,YAAY,MAAA,EACjB,KAAK,aAAa,MAAA,CACpB,EACA,KAAK,kBAAkBzb,EAAe,SAAUyb,CAAe,EAE/D,MAAMjqC,EAAQ,IAAIyjC,GAAM,CAAA,EAAI,CAC1B,MAAO,KAAK,OAAO,KAAA,CACpB,EACD,KAAK,QAAU2B,GACb,CACE,OAAQ/pB,EACL,IAAK7lB,GACAmuC,GAAUA,EAAO,SACZA,EAAO,SAASnuC,CAAW,EAE7BA,CACR,EACA,KAAK,CAAC00C,EAAIrkC,IAAOqkC,EAAG,UAAYrkC,EAAG,SAAS,EAC/C,MAAA7F,EACA,WAAY,EACZ,aAAc,EACd,gBAAiB,IAAA,EAEnB,CACE,UAAW,KAAK,UAChB,yBAA0B,KAAK,yBAC/B,QAAS,KAAK,OAAA,CAChB,EAEF,KAAK,QAAQ,MAAA,EACb,KAAK,oBAAsB,KAAK,QAAQ,UAAWmqC,GAAU,CAC3D,KAAK,QAAQ,KAAK3b,EAAe,YAAa,CAC5C,OAAQ2b,CAAA,CACT,CACH,CAAC,EACD,KAAK,aAAe9D,GAAmB,CACrC,YAAa,GACb,MAAArmC,CAAA,CACD,EACD,KAAK,aAAa,MAAA,EAClB,KAAK,yBAA2B,KAAK,aAAa,UAAWmqC,GAAU,CACrE,KAAK,QAAQ,KAAK3b,EAAe,YAAa,CAC5C,MAAO2b,CAAA,CACR,CACH,CAAC,EACD,KAAK,aAAe,IAAI1C,GAAa,CACnC,KAAM,KAAK,KAAK,KAAK,IAAI,EACzB,QAAS,KAAK,QACd,aAAc,KAAK,aACnB,QAAS,KAAK,QACd,eAAgB,KAAK,eAAe,KAAK,IAAI,CAAA,CAC9C,EAID,MAAM2C,EAAY,KAAK,QAAQ,MAAM,QAAQ,OAAO,KACjD50C,GAAMA,EAAE,OAASo4B,EAAU,IAAA,EAExByc,EAAoB,KAAK,QAAQ,MAAM,QAAQ,OAAO,KACzD70C,GAAMA,EAAE,OAASo4B,EAAU,YAAA,EAE9B,GAAIwc,EAAW,CACb,KAAM,CAAE,MAAAtnC,EAAO,OAAAC,CAAA,EAAWqnC,EAAU,KACpC,KAAK,WAAW,IAAM,CACpB,KAAK,QAAQ,KAAK5b,EAAe,OAAQ,CACvC,MAAA1rB,EACA,OAAAC,CAAA,CACD,CACH,EAAG,CAAC,CACN,CACIsnC,GACF,KAAK,WAAW,IAAM,OAEhB,KAAK,oBAIT,KAAK,kBAAoBA,EACzB,KAAK,oBACHA,CAAA,GAEF51C,EAAA,KAAK,OAAO,gBAAZ,MAAAA,EAA2B,SACxB41C,EAAwC,KAAK,aAAA,EAElD,EAAG,CAAC,EAEF,KAAK,QAAQ,MAAM,QAAQ,OAAO,KAAKjB,EAAoB,GAC7D,KAAK,MAAM,UAAU,IAAI,cAAc,CAE3C,CAzTA,IAAW,OAAQ,CACjB,OAAO,KAAK,QAAQ,MAAM,QAAQ,KACpC,CAyTO,GAAG1tB,EAAeoV,EAAkB,CACzC,YAAK,QAAQ,GAAGpV,EAAOoV,CAAO,EACvB,IACT,CAEO,IAAIpV,EAAeoV,EAAkB,CAC1C,YAAK,QAAQ,IAAIpV,EAAOoV,CAAO,EACxB,IACT,CAKQ,kBAAkBpV,EAAeoV,EAAkB,CACzD,KAAK,QAAQ,GAAGpV,EAAOoV,CAAO,EAC9B,KAAK,gBAAgB,KAAK,CAAE,MAAApV,EAAO,QAAAoV,CAAA,CAAS,CAC9C,CAKQ,WACN/iB,EACAu8B,EAC+B,CAC/B,MAAMtgB,EAAU,WAAW,IAAM,CAC/B,KAAK,SAAS,OAAOA,CAAO,EAC5Bjc,EAAA,CACF,EAAGu8B,CAAK,EACR,YAAK,SAAS,IAAItgB,CAAO,EAClBA,CACT,CAEO,UAAU2Z,EAA+B,CAC9C,OAAO,KAAKA,CAAM,EAAE,QAAS3vC,GAAQ,CACZ2vC,EAAO3vC,CAAyB,EACtD,KAAK,OACJA,CACF,EAAI2vC,EAAO3vC,CAAyB,CACtC,CAAC,EACI,KAAK,OAAO,cACf,KAAK,aAAA,EAEH,OAAO2vC,EAAO,OAAU,aAC1B,KAAK,aAAa,KAAK,CACrB,KAAM,YACN,QAAS,CACP,MAAOA,EAAO,KAAA,CAChB,CACD,EAEC,OAAOA,EAAO,WAAc,cAC1BA,EAAO,YAAc,GACnB,KAAK,YACP,KAAK,UAAU,MAAM,QAAU,SAG5B,KAAK,YACR,KAAK,UAAY,SAAS,cAAc,QAAQ,EAChD,KAAK,UAAU,MAAQ,OAAO,WAAW,KAAK,OAAO,KAAK,EAC1D,KAAK,UAAU,OAAS,OAAO,WAAW,KAAK,OAAO,MAAM,EAC5D,KAAK,UAAU,UAAU,IAAI,qBAAqB,EAClD,KAAK,QAAQ,aAAa,KAAK,UAAW,KAAK,MAAM,GAEvD,KAAK,UAAU,MAAM,QAAU,WAGrC,CAEO,aAA8B,CACnC,MAAM4G,EAAa,KAAK,QAAQ,MAAM,QAAQ,OAAO,CAAC,EAChDC,EACJ,KAAK,QAAQ,MAAM,QAAQ,OACzB,KAAK,QAAQ,MAAM,QAAQ,OAAO,OAAS,CAC7C,EACF,MAAO,CACL,UAAWD,EAAW,UACtB,QAASC,EAAU,UACnB,UAAWA,EAAU,UAAYD,EAAW,SAAA,CAEhD,CAKO,gBAAyB,CAC9B,OAAO,KAAK,MAAM,WAAa,KAAK,cAAA,CACtC,CAKO,eAAwB,CAC7B,KAAM,CAAE,aAAAvG,EAAc,OAAA3oB,CAAA,EAAW,KAAK,QAAQ,MAAM,QACpD,OAAO2oB,EAAe3oB,EAAO,CAAC,EAAE,SAClC,CAEO,WAAoB,CACzB,OAAO,KAAK,MACd,CAWO,KAAKsqB,EAAa,EAAG,SACtB,KAAK,QAAQ,MAAM,QAAQ,QAAQ,EACrC,KAAK,QAAQ,KAAK,CAAE,KAAM,OAAQ,QAAS,CAAE,WAAAA,CAAA,CAAA,CAAc,GAE3D,KAAK,QAAQ,KAAK,CAAE,KAAM,OAAA,CAAS,EACnC,KAAK,QAAQ,KAAK,CAAE,KAAM,OAAQ,QAAS,CAAE,WAAAA,CAAA,CAAA,CAAc,IAE7DjxC,GAAAD,EAAA,KAAK,OAAO,kBAAZ,KAAA,OAAAA,EACI,qBAAqB,MAAA,EAAQ,CAAA,IADjC,MAAAC,EAEI,UAAU,OAAO,cAAA,EACrB,KAAK,QAAQ,KAAK85B,EAAe,KAAK,CACxC,CAEO,MAAMmX,EAAqB,SAC5BA,IAAe,QAAa,KAAK,QAAQ,MAAM,QAAQ,SAAS,GAClE,KAAK,QAAQ,KAAK,CAAE,KAAM,OAAA,CAAS,EAEjC,OAAOA,GAAe,WACxB,KAAK,KAAKA,CAAU,EACpB,KAAK,QAAQ,KAAK,CAAE,KAAM,OAAA,CAAS,IAErCjxC,GAAAD,EAAA,KAAK,OAAO,kBAAZ,KAAA,OAAAA,EACI,qBAAqB,MAAA,EAAQ,CAAA,IADjC,MAAAC,EAEI,UAAU,IAAI,cAAA,EAClB,KAAK,QAAQ,KAAK85B,EAAe,KAAK,CACxC,CAEO,OAAOmX,EAAa,EAAG,CAC5B,KAAK,KACH,4FAAA,EAEF,KAAK,KAAKA,CAAU,EACpB,KAAK,QAAQ,KAAKnX,EAAe,MAAM,CACzC,CAMO,SAAU,SAEX,CAAC,KAAK,SAAW,CAAC,KAAK,QAAQ,aAInC,KAAK,MAAA,EAGL,KAAK,gBAAgB,QAAQ,CAAC,CAAE,MAAA9S,EAAO,QAAAoV,CAAA,IAAc,CACnD,KAAK,QAAQ,IAAIpV,EAAOoV,CAAO,CACjC,CAAC,EACD,KAAK,gBAAkB,CAAA,GAGvBr8B,EAAA,KAAK,sBAAL,MAAAA,EAA0B,YAAA,GAC1BC,EAAA,KAAK,2BAAL,MAAAA,EAA+B,YAAA,EAC/B,KAAK,oBAAsB,OAC3B,KAAK,yBAA2B,OAGhC,KAAK,QAAQ,KAAA,EACb,KAAK,aAAa,KAAA,EAGlB,KAAK,SAAS,QAASs1B,GAAY,aAAaA,CAAO,CAAC,EACxD,KAAK,SAAS,MAAA,EAGd,KAAK,wBAAwB,QAAQ,CAAC8G,EAASp3B,IAAY,CACzDA,EAAQ,oBAAoB,OAAQo3B,CAAO,CAC7C,CAAC,EACD,KAAK,wBAAwB,MAAA,EAG7B,KAAK,SAAS,MAAA,EACd,KAAK,eAAe,MAAA,EAGpB,KAAK,OAAO,MAAA,EACZ,KAAK,YAAY,MAAA,EACjB,KAAK,aAAa,MAAA,EAClB,KAAK,WAAA,EAGL,KAAK,OAAO,KAAK,YAAY,KAAK,OAAO,EAGzC,KAAK,QAAQ,KAAKtC,EAAe,OAAO,EAC1C,CAEO,UAAUwV,EAAuB,CACtC,KAAK,QAAQ,KAAK,CAAE,KAAM,UAAW,QAAS,CAAE,aAAAA,CAAA,CAAA,CAAgB,CAClE,CAEO,SAASyG,EAAkC,CAChD,MAAM/uB,EAAQ,KAAK,OAAO,SACtB,KAAK,OAAO,SAAS+uB,CAAkB,EACtCA,EACDrB,GAAqB1tB,CAAK,GAC5B,KAAK,MAAM,UAAU,IAAI,cAAc,EAEpC,QAAQ,QAAA,EAAU,KAAK,IAC1B,KAAK,QAAQ,KAAK,CAAE,KAAM,YAAa,QAAS,CAAE,MAAAA,CAAA,CAAM,CAAG,CAAA,CAE/D,CAEO,gBAAiB,CACtB,KAAK,OAAO,aAAa,YAAa,MAAM,EAC5C,KAAK,OAAO,MAAM,cAAgB,MACpC,CAEO,iBAAkB,CACvB,KAAK,OAAO,aAAa,YAAa,IAAI,EAC1C,KAAK,OAAO,MAAM,cAAgB,MACpC,CAMO,YAAa,CAClB,KAAK,MAAQ+C,GAAA,CACf,CAEQ,UAAW,CACjB,KAAK,QAAU,SAAS,cAAc,KAAK,EAC3C,KAAK,QAAQ,UAAU,IAAI,kBAAkB,EAC7C,KAAK,OAAO,KAAK,YAAY,KAAK,OAAO,EAEzC,KAAK,MAAQ,SAAS,cAAc,KAAK,EACzC,KAAK,MAAM,UAAU,IAAI,gBAAgB,EACzC,KAAK,QAAQ,YAAY,KAAK,KAAK,EAE/B,KAAK,OAAO,YAAc,KAC5B,KAAK,UAAY,SAAS,cAAc,QAAQ,EAChD,KAAK,UAAU,UAAU,IAAI,qBAAqB,EAClD,KAAK,UAAU,MAAM,QAAU,UAC/B,KAAK,QAAQ,YAAY,KAAK,SAAS,GAGzC,KAAK,OAAS,SAAS,cAAc,QAAQ,EAC7C,MAAM5c,EAAa,CAAC,mBAAmB,EACnC,KAAK,OAAO,qBACdA,EAAW,KAAK,eAAe,EAGjC,KAAK,OAAO,MAAM,QAAU,OAC5B,KAAK,OAAO,aAAa,UAAWA,EAAW,KAAK,GAAG,CAAC,EACxD,KAAK,gBAAA,EACL,KAAK,QAAQ,YAAY,KAAK,MAAM,EAChC,KAAK,OAAO,eAAiB,KAAK,OAAO,kBAC3C6oC,GACE,KAAK,OAAO,cACZ,KAAK,OAAO,eAAA,EAGdvf,GAAS,KAAK,OAAO,aAAwB,EAEjD,CAmKQ,oBACNzP,EACAyqB,EAAS,GACT,CACA,GAAI,CAAC,KAAK,OAAO,gBACf,OAAO,KAAK,KAAK,8CAA8C,EAE7D,OAAO,KAAK,KAAK,0BAA0B,EAAE,QAC/C,KAAK,KACH,oCACA,KAAK,0BAAA,EAGT,KAAK,2BAA6B,CAAA,EAClC,MAAMwE,EAAqC,CAAA,EACrCC,EAAA,IAAuB,IACvB1rB,EAAc,CAAC2rB,EAAiB3xC,IAAe,CAInD,GAHI2xC,EAAU,WAAa,UACzBD,EAAiB,IAAIC,CAA8B,EACrD,KAAK,+BAA+BF,EAAkBE,CAAS,EAC3D,KAAK,aAAa,wBAAwBA,CAAS,EAAG,CACxD,KAAM,CAAE,OAAAxvB,CAAA,EAAW,KAAK,QAAQ,MAAM,QACtC,KAAK,aAAa,iBAChBwvB,EACAnvB,EAAM,UAAYL,EAAO,CAAC,EAAE,UAC5B,KAAK,MAAA,CAET,CACA,UAAWnU,KAAU,KAAK,OAAO,SAAW,CAAA,EACtCA,EAAO,SACTA,EAAO,QAAQ2jC,EAAW,CACxB,GAAA3xC,EACA,SAAU,IAAA,CACX,CAEP,EAOI,KAAK,kBACP,KAAK,WAAW,YAAA,EAChB,KAAK,gBAAkB,IAGzB,KAAK,OAAO,MAAA,EACZwmB,GAAQhE,EAAM,KAAK,KAAM,CACvB,IAAK,KAAK,OAAO,gBACjB,YAAAwD,EACA,MAAO,KAAK,MACZ,OAAQ,KAAK,MAAA,CACd,EACDA,EAAY,KAAK,OAAO,gBAAiBxD,EAAM,KAAK,KAAK,EAAE,EAE3D,SAAW,CAAE,gBAAAovB,EAAiB,UAAAD,CAAA,IAAeF,EAC3C,KAAK,uBAAuBG,EAAiBD,CAAS,EACtD,KAAK,iBAAmB,KAAK,iBAAiB,OAC3Crf,GAAMA,IAAMsf,CAAA,EAGjB,KAAM,CAAE,gBAAAC,EAAiB,KAAAC,CAAA,EAAS,KAAK,OAAO,gBAC9C,KAAK,iBAAiBD,EAAiBC,CAAI,EAC3CJ,EAAiB,QAAStgB,GAAM+d,GAAsB/d,CAAC,CAAC,EACnD,KAAK,QAAQ,MAAM,QAAQ,SAAS,GACvC,KAAK,OAAO,gBACT,qBAAqB,MAAM,EAAE,CAAC,EAC9B,UAAU,IAAI,cAAc,EAEjC,KAAK,QAAQ,KAAKkE,EAAe,sBAAuB9S,CAAK,EACxDyqB,GACH,KAAK,sBAAA,EAEH,KAAK,OAAO,qBACT,KAAK,iBAAA,CAEd,CAEQ,iBACN4E,EACAC,EACA,OACA,MAAMC,EAAoBC,GACxB,KAAK,OAAO,UAAA,EACZ,OAAO,KAAK,OAAO,gBAAgB,EAMrC,GALI,KAAK,OAAO,gBACdD,EAAkB,KAChB,yHAAA,EAGA,KAAK,gBAAiB,CACxB,MAAME,EAAU,KAAK,WAAW,cAAc,OAAO,EACrD,KAAK,WAAW,OAAO,IACrBA,EACAhiB,GAAagiB,EAAS,KAAK,WAAW,cAAc,CAAA,EAErDJ,EAA8B,aAAaI,EAASH,CAAiB,EACtEG,EAAQ,MAAM,KAAK,CACjB,OAAQrd,EAAkB,eAC1B,KAAMmd,EAAkB,IAAI,CAACnzC,EAASP,KAAW,CAC/C,KAAMO,EACN,MAAAP,CAAA,EACA,CAAA,CACH,CACH,KAAO,CACL,MAAM4zC,EAAU,SAAS,cAAc,OAAO,EAC7CJ,EAAgC,aAC/BI,EACAH,CAAA,EAEF,QAASjf,EAAM,EAAGA,EAAMkf,EAAkB,OAAQlf,KAChDt3B,EAAA02C,EAAQ,QAAR,MAAA12C,EAAe,WAAWw2C,EAAkBlf,CAAG,EAAGA,CAAA,CAEtD,CACF,CAEQ,uBACNJ,EACAt2B,EACA,CACA,MAAMmL,EAA+B,KAAK,gBACtC,KAAK,WAAW,OAChB,KAAK,OAIHmqC,EAAqC,CAAA,EACrCC,EAAA,IAAuB,IACvB1rB,EAAc,CAAC2rB,EAAiB3xC,IAAe,CAC/C2xC,EAAU,WAAa,UACzBD,EAAiB,IAAIC,CAA8B,EACrD,KAAK,+BAA+BF,EAAkBE,CAAS,EAC/D,MAAMvnC,EAAM9C,EAAmB,QAAQqqC,CAA6B,EACpE,IACEvnC,GAAA,KAAA,OAAAA,EAAI,QAASpC,GAAS,UACtBoC,GAAA,KAAA,OAAAA,EAAI,QAAQ,YAAA,KAAkB,OAC9B,CACA,KAAM,CAAE,gBAAAynC,EAAiB,KAAAC,CAAA,EAAS31C,EAAS,gBAC3C,KAAK,iBACH01C,EACAC,CAAA,CAEJ,CAGA,GAAI,MAAK,gBACT,UAAW9jC,KAAU,KAAK,OAAO,SAAW,CAAA,EACtCA,EAAO,SACTA,EAAO,QAAQ2jC,EAAW,CACxB,GAAA3xC,EACA,SAAU,IAAA,CACX,CAEP,EAEA+lB,GAAgB0M,EAAS,KAAM,CAC7B,IAAKt2B,EAAS,gBACd,OAAAmL,EACA,QAAS,GACT,UAAW,GACX,YAAA0e,EACA,MAAO,KAAK,KAAA,CACb,EACDA,EAAY7pB,EAAS,gBAA8Bs2B,EAAS,KAAK,EAAE,EAEnE,SAAW,CAAE,gBAAAmf,EAAiB,UAAAD,CAAA,IAAeF,EAC3C,KAAK,uBAAuBG,EAAiBD,CAAS,EACtD,KAAK,iBAAmB,KAAK,iBAAiB,OAC3Crf,GAAMA,IAAMsf,CAAA,EAIjBF,EAAiB,QAAStgB,GAAM+d,GAAsB/d,CAAC,CAAC,CAC1D,CAEQ,+BACN8gB,EACAP,EACA,CACA,GAAI1e,GAAmB0e,EAAW,KAAK,MAAM,EAAG,CAC9C,MAAMC,EAAkB,KAAK,iBAAiB,KAC3Ctf,GAAMA,EAAE,WAAa,KAAK,OAAO,MAAMqf,CAAS,CAAA,EAE/CC,GACFM,EAAU,KAAK,CACb,gBAAAN,EACA,UAAAD,CAAA,CACD,CAEL,CACF,CAKQ,uBAAwB,OAC9B,MAAMG,GAAOv2C,EAAA,KAAK,OAAO,kBAAZ,KAAA,OAAAA,EAA6B,KAC1C,GAAIu2C,EAAM,CACR,MAAMK,EAAA,IAAyC,IAC/C,IAAIrrC,EACAsrC,EAAkB,KAAK,QAAQ,MACnC,MAAMC,EAAe,IAAM,CACzBD,EAAkB,KAAK,QAAQ,KACjC,EACA,KAAK,QAAQ,GAAG9c,EAAe,MAAO+c,CAAY,EAClD,KAAK,QAAQ,GAAG/c,EAAe,MAAO+c,CAAY,EAClD,MAAMC,EAAc,IAAM,CACxB,KAAK,QAAQ,IAAIhd,EAAe,MAAO+c,CAAY,EACnD,KAAK,QAAQ,IAAI/c,EAAe,MAAO+c,CAAY,CACrD,EACAP,EACG,iBAAiB,wBAAwB,EACzC,QAAS5jC,GAAyB,CAC5BA,EAAI,QACPikC,EAAa,IAAIjkC,CAAG,EACpBA,EAAI,iBAAiB,OAAQ,IAAM,CACjCikC,EAAa,OAAOjkC,CAAG,EAEnBikC,EAAa,OAAS,GAAKrrC,IAAU,KACnCsrC,EAAgB,QAAQ,SAAS,GACnC,KAAK,KAAK,KAAK,eAAA,CAAgB,EAEjC,KAAK,QAAQ,KAAK9c,EAAe,iBAAiB,EAC9CxuB,GACF,aAAaA,CAAK,EAEpBwrC,EAAA,EAEJ,CAAC,EAEL,CAAC,EAECH,EAAa,KAAO,IAEtB,KAAK,QAAQ,KAAK,CAAE,KAAM,OAAA,CAAS,EACnC,KAAK,QAAQ,KAAK7c,EAAe,mBAAmB,EACpDxuB,EAAQ,WAAW,IAAM,CACnBsrC,EAAgB,QAAQ,SAAS,GACnC,KAAK,KAAK,KAAK,eAAA,CAAgB,EAGjCtrC,EAAQ,GACRwrC,EAAA,CACF,EAAG,KAAK,OAAO,WAAW,EAE9B,CACF,CAKA,MAAc,kBAAoC,CAChD,MAAMC,EAA4B,CAAA,EAClC,UAAW/vB,KAAS,KAAK,QAAQ,MAAM,QAAQ,OAE3CA,EAAM,OAASkS,EAAU,qBACzBlS,EAAM,KAAK,SAAWoS,EAAkB,iBAExC2d,EAAS,KACP,KAAK,kCAAkC/vB,EAAM,KAAMA,CAAK,CAAA,GAGxD,aAAcA,EAAM,KAAOA,EAAM,KAAK,SAAW,CAACA,EAAM,IAAI,GACrD,QAASrd,GAAM,CACtB,KAAK,cAAcA,EAAGqd,CAAK,CAC7B,CAAC,GAGL,OAAO,QAAQ,IAAI+vB,CAAQ,CAC7B,CAEQ,cAAch/B,EAA6BiP,EAAsB,CACvE,GACEjP,EAAK,WAAa,aAClB,OAAOA,EAAK,KAAK,CAAC,GAAM,UACxB,CAAC,KAAK,SAAS,IAAIiP,CAAK,EACxB,CACA,MAAMrhB,EAAS,SAAS,cAAc,QAAQ,EACxCC,EAAMD,EAAO,WAAW,IAAI,EAC5BqxC,EAAOpxC,GAAA,KAAA,OAAAA,EAAK,gBAAgBD,EAAO,MAAOA,EAAO,MAAA,EACvDC,GAAA,MAAAA,EAAK,aAAaoxC,EAAO,EAAG,CAAA,CAC9B,CACF,CACA,MAAc,kCACZj/B,EACAiP,EACA,CACA,GAAI,CAAC,KAAK,eAAe,IAAIA,CAAK,EAAG,CACnC,MAAMiwB,EAAS,CACb,YAAa,EAAA,EAEf,GAAI,aAAcl/B,EAAM,CACtB,MAAM46B,EAAW,MAAM,QAAQ,IAC7B56B,EAAK,SAAS,IAAI,MAAOpO,GAAM,CAC7B,MAAM6P,EAAO,MAAM,QAAQ,IACzB7P,EAAE,KAAK,IAAImoC,GAAe,KAAK,SAAU,KAAMmF,CAAM,CAAC,CAAA,EAExD,OAAOz+B,GAAAC,EAAA,GAAK9O,GAAL,CAAQ,KAAA6P,CAAA,EACjB,CAAC,CAAA,EAECy9B,EAAO,cAAgB,IACzB,KAAK,eAAe,IAAIjwB,EAAOxO,GAAAC,EAAA,GAAKV,GAAL,CAAW,SAAA46B,CAAA,EAAU,CACxD,KAAO,CACL,MAAMn5B,EAAO,MAAM,QAAQ,IACzBzB,EAAK,KAAK,IAAI+5B,GAAe,KAAK,SAAU,KAAMmF,CAAM,CAAC,CAAA,EAEvDA,EAAO,cAAgB,IACzB,KAAK,eAAe,IAAIjwB,EAAOxO,GAAAC,EAAA,GAAKV,GAAL,CAAW,KAAAyB,CAAA,EAAM,CACpD,CACF,CACF,CAEQ,iBACN1Y,EACA2wC,EACA,WACA,KAAM,CAAE,KAAM7b,CAAA,EAAM90B,EACpB,OAAQ80B,EAAE,OAAA,CACR,KAAKwD,EAAkB,SAAU,CAC/B,GAAI,CACF,KAAK,cAAcxD,EAAG6b,CAAM,CAC9B,OAAS3tC,EAAO,CAEd,KAAK,KAAK,yBAAyBA,EAAM,SAAWA,CAAK,GAAI8xB,CAAC,CAChE,CACA,KACF,CACA,KAAKwD,EAAkB,KACvB,KAAKA,EAAkB,UACvB,KAAKA,EAAkB,UACrB,GAAIqY,EAAQ,CACV,MAAMyF,EAAethB,EAAE,UAAUA,EAAE,UAAU,OAAS,CAAC,EACvD,KAAK,SAAW,CACd,EAAGshB,EAAa,EAChB,EAAGA,EAAa,EAChB,GAAIA,EAAa,GACjB,UAAWthB,CAAA,CAEf,MACEA,EAAE,UAAU,QAAS0H,GAAM,CACzB,MAAM4R,EAAS,CACb,SAAU,IAAM,CACd,KAAK,aAAa5R,EAAE,EAAGA,EAAE,EAAGA,EAAE,GAAImU,EAAQ7b,CAAC,CAC7C,EACA,MACE0H,EAAE,WACFx8B,EAAE,UACF,KAAK,QAAQ,MAAM,QAAQ,YAAA,EAE/B,KAAK,MAAM,UAAUouC,CAAM,CAC7B,CAAC,EAED,KAAK,MAAM,UAAU,CACnB,UAAW,CAEX,EAEA,MAAOpuC,EAAE,QAASf,EAAA61B,EAAE,UAAU,CAAC,IAAb,KAAA,OAAA71B,EAAgB,WAAA,CACnC,EAEH,MACF,KAAKq5B,EAAkB,iBAAkB,CAIvC,GAAIxD,EAAE,KAAO,GACX,MAEF,MAAM5O,EAAQ,IAAI,MAAMzhB,GAAY+zB,EAAkB1D,EAAE,IAAI,CAAC,CAAC,EACxDZ,EAAS,KAAK,OAAO,QAAQY,EAAE,EAAE,EACvC,GAAI,CAACZ,EACH,OAAO,KAAK,kBAAkBY,EAAGA,EAAE,EAAE,EAEvC,KAAK,QAAQ,KAAKkE,EAAe,iBAAkB,CACjD,KAAMlE,EAAE,KACR,OAAAZ,CAAA,CACD,EACD,KAAM,CAAE,aAAAmiB,CAAA,EAAiB,KAAK,OAC9B,OAAQvhB,EAAE,KAAA,CACR,KAAK0D,EAAkB,KACjB,SAAWtE,GACZA,EAAuB,KAAA,EAE1B,MACF,KAAKsE,EAAkB,MACjB6d,GAAiBniB,EAAuB,OACzCA,EAAuB,MAAM,CAC5B,cAAe,EAAA,CAChB,EAEH,MACF,KAAKsE,EAAkB,MACvB,KAAKA,EAAkB,WACvB,KAAKA,EAAkB,SACvB,KAAKA,EAAkB,UACvB,KAAKA,EAAkB,QACjBmY,GACE7b,EAAE,OAAS0D,EAAkB,WAC/B,KAAK,YAAc,GACV1D,EAAE,OAAS0D,EAAkB,WACtC,KAAK,YAAc,IAEjB1D,EAAE,OAAS0D,EAAkB,UAC/B,KAAK,mBAAqB,CAACtE,EAAQhO,CAAK,EAC/B4O,EAAE,OAAS0D,EAAkB,UACtC,KAAK,mBAAqB,MAE5B,KAAK,SAAW,CACd,EAAG1D,EAAE,GAAK,EACV,EAAGA,EAAE,GAAK,EACV,GAAIA,EAAE,GACN,UAAWA,CAAA,IAGTA,EAAE,OAAS0D,EAAkB,aAE/B,KAAK,cAAc,OAAS,GAE9B,KAAK,aAAa1D,EAAE,GAAK,EAAGA,EAAE,GAAK,EAAGA,EAAE,GAAI6b,EAAQ7b,CAAC,EACjDA,EAAE,OAAS0D,EAAkB,OAS/B,KAAK,MAAM,UAAU,OAAO,QAAQ,EAC/B,KAAK,MAAM,YAChB,KAAK,MAAM,UAAU,IAAI,QAAQ,GACxB1D,EAAE,OAAS0D,EAAkB,YACjC,KAAK,MAAM,YAChB,KAAK,MAAM,UAAU,IAAI,cAAc,GAC9B1D,EAAE,OAAS0D,EAAkB,SACtC,KAAK,MAAM,UAAU,OAAO,cAAc,EAG1CtE,EAAO,cAAchO,CAAK,GAG9B,MACF,KAAKsS,EAAkB,YACjBmY,EACF,KAAK,YAAc,GAEnB,KAAK,MAAM,UAAU,OAAO,cAAc,EAE5C,MACF,QACEzc,EAAO,cAAchO,CAAK,CAAA,CAE9B,KACF,CACA,KAAKoS,EAAkB,OAAQ,CAI7B,GAAIxD,EAAE,KAAO,GACX,MAEF,GAAI,KAAK,gBAAiB,CACxB,MAAMZ,EAAS,KAAK,WAAW,OAAO,QAAQY,EAAE,EAAE,EAClD,GAAI,CAACZ,EACH,OAAO,KAAK,kBAAkBY,EAAGA,EAAE,EAAE,EAEvCZ,EAAO,WAAaY,EACpB,KACF,CAEA,KAAK,YAAYA,EAAG6b,CAAM,EAC1B,KACF,CACA,KAAKrY,EAAkB,eACrB,KAAK,QAAQ,KAAKU,EAAe,OAAQ,CACvC,MAAOlE,EAAE,MACT,OAAQA,EAAE,MAAA,CACX,EACD,MACF,KAAKwD,EAAkB,MAAO,CAO5B,GAAIxD,EAAE,KAAO,GACX,MAEF,GAAI,KAAK,gBAAiB,CACxB,MAAMZ,EAAS,KAAK,WAAW,OAAO,QAAQY,EAAE,EAAE,EAClD,GAAI,CAACZ,EACH,OAAO,KAAK,kBAAkBY,EAAGA,EAAE,EAAE,EAEvCZ,EAAO,UAAYY,EACnB,KACF,CACA,KAAK,WAAWA,CAAC,EACjB,KACF,CACA,KAAKwD,EAAkB,iBAAkB,CACvC,MAAMpE,EAAS,KAAK,gBAChB,KAAK,WAAW,OAAO,QAAQY,EAAE,EAAE,EACnC,KAAK,OAAO,QAAQA,EAAE,EAAE,EAC5B,GAAI,CAACZ,EACH,OAAO,KAAK,kBAAkBY,EAAGA,EAAE,EAAE,EAEvC,MAAMwhB,EAAUpiB,EACV,CAAE,OAAArO,CAAA,EAAW,KAAK,QAAQ,MAAM,QAEtC,KAAK,aAAa,cAAc,CAC9B,OAAQywB,EACR,WAAYt2C,EAAE,UAAY6lB,EAAO,CAAC,EAAE,UACpC,SAAUiP,CAAA,CACX,EAED,KACF,CACA,KAAKwD,EAAkB,eACvB,KAAKA,EAAkB,iBAAkB,CACnC,KAAK,gBACHxD,EAAE,QAAS,KAAK,0BAA0B,KAAKA,CAAC,EAC3CA,EAAE,MAEP51B,EAAA,KAAK,WAAW,OAAO,QAAQ41B,EAAE,EAAE,IAAnC,MAAA51B,EACC,MAAM,KAAK41B,CAAA,GACX,KAAK,wBAAwBA,CAAC,EACrC,KACF,CACA,KAAKwD,EAAkB,eAAgB,CACrC,GAAI,CAAC,KAAK,OAAO,oBACf,OAEF,GAAI,KAAK,gBAAiB,CACxB,MAAMpE,EAAS,KAAK,WAAW,OAAO,QACpCY,EAAE,EAAA,EAEJ,GAAI,CAACZ,EACH,OAAO,KAAK,kBAAkBY,EAAGA,EAAE,EAAE,EAEvCZ,EAAO,gBAAgB,KAAK,CAC1B,MAAOl0B,EACP,SAAU80B,CAAA,CACX,CACH,KAAO,CACL,MAAMZ,EAAS,KAAK,OAAO,QAAQY,EAAE,EAAE,EACvC,GAAI,CAACZ,EACH,OAAO,KAAK,kBAAkBY,EAAGA,EAAE,EAAE,EAElC/E,GAAe,CAClB,MAAO/vB,EACP,SAAU80B,EACV,OAAAZ,EACA,SAAU,KAAK,SACf,eAAgB,KAAK,eACrB,aAAc,KAAK,yBAAyB,KAAK,IAAI,CAAA,CACtD,CACH,CACA,KACF,CACA,KAAKoE,EAAkB,KAAM,CAC3B,GAAI,CACF,MAAMyJ,EAAW,IAAI,SACnBjN,EAAE,OACFA,EAAE,OACE,IAAI,WAAW,KAAK,MAAMA,EAAE,UAAU,CAAqB,EAC3DA,EAAE,WACNA,EAAE,WAAA,GAEJ2L,EAAA,KAAK,OAAO,kBAAZ,MAAAA,EAA6B,MAAM,IAAIsB,CAAA,CACzC,OAAS/+B,EAAO,CACd,KAAK,KAAKA,CAAK,CACjB,CACA,KACF,CACA,KAAKs1B,EAAkB,UAAW,CAChC,GAAIqY,EAAQ,CACV,KAAK,kBAAoB7b,EACzB,KACF,CACA,KAAK,eAAeA,CAAC,EACrB,KACF,CACA,KAAKwD,EAAkB,kBAAmB,CACpC,KAAK,gBAAiB,KAAK,mBAAmB,KAAKxD,CAAC,EACnD,KAAK,uBAAuBA,CAAC,EAClC,KACF,CACA,CAEJ,CAOQ,cAAcA,EAAiB6b,EAAiB,CAEtD,GAAI,KAAK,OAAO,eAAiB,CAAC,KAAK,iBAAmBA,IACxD,KAAK,gBAAkB,GACvB/c,GAAa,KAAK,OAAO,gBAAkB,KAAK,OAAQ,KAAK,UAAU,EAEnE,OAAO,KAAK,KAAK,0BAA0B,EAAE,QAC/C,UAAWp1B,KAAO,KAAK,2BACrB,GAAI,CACF,MAAMC,EAAQ,KAAK,2BAA2BD,CAAG,EAC3C+3C,EAAcljB,GAClB50B,EAAM,KACN,KAAK,WACL,KAAK,MAAA,EAEH83C,IAAA93C,EAAmB,KAAO83C,EAChC,OAASvzC,EAAO,CACd,KAAK,KAAKA,CAAK,CACjB,CAIN,MAAMgI,EAAS,KAAK,gBAAkB,KAAK,WAAW,OAAS,KAAK,OAGpE8pB,EAAE,QAAUA,EAAE,QAAQ,OAAQqB,GAGvBnrB,EAAO,QAAQmrB,EAAS,EAAE,EAIxB,IAHL,KAAK,iBAAiBrB,EAAGqB,EAAS,EAAE,EAC7B,GAGV,EACDrB,EAAE,QAAQ,QAASqB,GAAa,OAC9B,MAAMjC,EAASlpB,EAAO,QAAQmrB,EAAS,EAAE,EACzC,GAAI,CAACjC,EAEH,OAEF,IAAIpoB,EAA4Cd,EAAO,QACrDmrB,EAAS,QAAA,EAEX,GAAI,CAACrqB,EACH,OAAO,KAAK,iBAAiBgpB,EAAGqB,EAAS,QAAQ,EAOnD,GALIA,EAAS,UAAYgB,GAAcrrB,CAAc,IACnDA,EAAUA,EAA+B,YAG3Cd,EAAO,kBAAkBkpB,CAAuB,EAC5CpoB,EACF,GAAI,CACFA,EAAO,YAAYooB,CAAuB,EAMxC,KAAK,iBACLA,EAAO,WAAa,SACpBpoB,EAAO,WAAa,WACnB7M,EAAA6M,EAA0B,QAA1B,KAAA,OAAA7M,EAAiC,QAAS,IAE1C6M,EAA0B,MAAQ,CAAA,EACvC,OAAS9I,EAAO,CACd,GAAIA,aAAiB,aACnB,KAAK,KACH,4CACA8I,EACAooB,EACAY,CAAA,MAGF,OAAM9xB,CAEV,CACJ,CAAC,EAED,MAAMwzC,EAAwC7+B,EAAA,GACzC,KAAK,4BAEJke,EAA6B,CAAA,EAE7B4gB,EAActgB,GAAgC,SAClD,GAAI,CAAC,KAAK,OAAO,gBACf,OAAO,KAAK,KAAK,8CAA8C,EAEjE,IAAIrqB,EAA4Cd,EAAO,QACrDmrB,EAAS,QAAA,EAEX,GAAI,CAACrqB,EACH,OAAIqqB,EAAS,KAAK,OAASzqB,GAAS,SAE3B,KAAK,iBAAiB,KAAKyqB,CAAQ,EAIbrB,EAAE,KAAK,KACnC/e,GAAQA,EAAI,KAAK,KAAOogB,EAAS,QAAA,EAEJN,EAAM,KAAKM,CAAQ,EAAI,OAGrDA,EAAS,KAAK,WAEXgB,GAAcrrB,CAAM,GACtBA,EAA+B,aAAa,CAAE,KAAM,MAAA,CAAQ,EAC7DA,EAAUA,EAA+B,YAI7C,IAAI2oB,EAAiC,KACjCte,EAA6B,KAQjC,GAPIggB,EAAS,aACX1B,EAAWzpB,EAAO,QAAQmrB,EAAS,UAAU,GAE3CA,EAAS,SACXhgB,EAAOnL,EAAO,QAAQmrB,EAAS,MAAM,GAGnCA,EAAS,KAAK,QAAU,CAACnrB,EAAO,QAAQmrB,EAAS,KAAK,MAAM,EAC9D,OAGF,MAAMugB,EAAYvgB,EAAS,KAAK,OAC5BnrB,EAAO,QAAQmrB,EAAS,KAAK,MAAM,EACnC,KAAK,gBACL,KAAK,WACL,KAAK,OAAO,gBAChB,GAAIQ,GAAkC7qB,EAAQd,CAAM,EAAG,CACrD,KAAK,uBACHmrB,EACArqB,CAAA,EAEF,MACF,CACA,MAAM4d,EAAc,CAAC7lB,EAAqBH,IAAe,CAEvD,GAAI,MAAK,gBACT,CAAAmvC,GAAsBhvC,CAAI,EAC1B,UAAW6N,KAAU,KAAK,OAAO,SAAW,CAAA,EACtCA,EAAO,SAASA,EAAO,QAAQ7N,EAAM,CAAE,GAAAH,EAAI,SAAU,IAAA,CAAM,EAEnE,EAEMwwB,EAASzK,GAAgB0M,EAAS,KAAM,CAC5C,IAAKugB,EACL,OAAA1rC,EACA,UAAW,GACX,QAAS,GACT,MAAO,KAAK,MAKZ,YAAA0e,CAAA,CACD,EAGD,GAAIyM,EAAS,aAAe,IAAMA,EAAS,SAAW,GAAI,CACxDqgB,EAAsBrgB,EAAS,KAAK,EAAE,EAAI,CACxC,KAAMjC,EACN,SAAAiC,CAAA,EAEF,MACF,CAOA,MAAMwgB,EAAY3rC,EAAmB,QAAQc,CAAe,EAC5D,GACE6qC,GACAA,EAAS,OAASjrC,GAAS,SAC3ByqB,EAAS,KAAK,OAASzqB,GAAS,KAChC,CACA,MAAMkrC,EAAsB,MAAM,QAAQ9qC,EAAO,UAAU,EACvDA,EAAO,WACP,MAAM,KAAKA,EAAO,UAAU,EAChC,GAAI6qC,EAAS,UAAY,WAMvB,UAAW9tC,KAAK+tC,EACV/tC,EAAE,WAAaiD,EAAO,WACxBA,EAAO,YAAYjD,CAAkB,UAIzC8tC,EAAS,UAAY,SACrBC,EAAoB,SAAW,EAO/B,UAAWt0C,KAAWs0C,EAElBt0C,EAAQ,WAAawJ,EAAO,WAC5B,CAACd,EAAO,QAAQ1I,CAAO,IAEvB4xB,EAAO,YAAc5xB,EAAQ,YAC7BwJ,EAAO,YAAYxJ,CAAO,EAIlC,UAAWq0C,GAAA,KAAA,OAAAA,EAAU,QAASjrC,GAAS,SAAU,CAM/C,MAAMmrC,EAAY/qC,EAMhBqqB,EAAS,KAAK,OAASzqB,GAAS,gBAChCzM,EAAA43C,EAAU,WAAW,CAAC,IAAtB,KAAA,OAAA53C,EAAyB,YAAa,KAAK,oBAE3C43C,EAAU,YAAYA,EAAU,WAAW,CAAC,CAAkB,EAK5D3iB,EAAO,WAAa,QAAU2iB,EAAU,iBAC1CA,EAAU,YACRA,EAAU,eAAA,CAEhB,CAiCA,GA/BIpiB,GAAYA,EAAS,aAAeA,EAAS,YAAY,WAC1D3oB,EAAiB,aAChBooB,EACAO,EAAS,WAAA,EAEFte,GAAQA,EAAK,WAGrBrK,EAAiB,SAASqK,CAAa,EACnCrK,EAAiB,aAAaooB,EAAiB/d,CAAa,EAC5DrK,EAAiB,aAAaooB,EAAiB,IAAI,EAEvDpoB,EAAiB,YAAYooB,CAAe,EAK/CxK,EAAYwK,EAAQiC,EAAS,KAAK,EAAE,EAOlC,KAAK,iBACLjC,EAAO,WAAa,SACpBpoB,EAAO,WAAa,WACnB5M,EAAA4M,EAA0B,QAA1B,KAAA,OAAA5M,EAAiC,QAAS,IAE1C4M,EAA0B,MAAQ,CAAA,GAEjC6qB,GAAmBzC,EAAQ,KAAK,MAAM,EAAG,CAC3C,MAAM4G,EAAW,KAAK,OAAO,MAAM5G,CAA2B,EACxDohB,EAAkB,KAAK,iBAAiB,KAC3Ctf,GAAMA,EAAE,WAAa8E,CAAA,EAEpBwa,IACF,KAAK,uBACHA,EACAphB,CAAA,EAEF,KAAK,iBAAmB,KAAK,iBAAiB,OAC3C8B,GAAMA,IAAMsf,CAAA,EAGnB,EAEInf,EAAS,YAAcA,EAAS,SAClC,KAAK,0BACHqgB,EACA1qC,EACAooB,EACAiC,CAAA,CAGN,EAEArB,EAAE,KAAK,QAASqB,GAAa,CAC3BsgB,EAAWtgB,CAAQ,CACrB,CAAC,EAED,MAAM0X,EAAY,YAAY,IAAA,EAE9B,KAAOhY,EAAM,QAAQ,CAEnB,MAAMihB,EAAelhB,GAAoBC,CAAK,EAI9C,GAFAA,EAAM,OAAS,EAEX,YAAY,IAAA,EAAQgY,EAAY,IAAK,CACvC,KAAK,KACH,2DACAiJ,CAAA,EAEF,KACF,CAEA,UAAWpgB,KAAQogB,EACF9rC,EAAO,QAAQ0rB,EAAK,MAAM,QAAQ,EAO/CD,GAAmBC,EAAOP,GAAa,CACrCsgB,EAAWtgB,CAAQ,CACrB,CAAC,EAPD,KAAK,MACH,gEACAO,CAAA,CAQR,CAEI,OAAO,KAAK8f,CAAqB,EAAE,QACrC,OAAO,OAAO,KAAK,2BAA4BA,CAAqB,EAGtEhf,GAAoB1C,EAAE,KAAK,EAAE,QAASqB,GAAa,OACjD,MAAMjC,EAASlpB,EAAO,QAAQmrB,EAAS,EAAE,EACzC,GAAI,CAACjC,EACH,OAAIY,EAAE,QAAQ,KAAMwU,GAAMA,EAAE,KAAOnT,EAAS,EAAE,EAE5C,OAEK,KAAK,iBAAiBrB,EAAGqB,EAAS,EAAE,EAQ7C,GANAjC,EAAO,YAAciC,EAAS,MAM1B,KAAK,gBAAiB,CACxB,MAAMrqB,EAASooB,EAAO,aAClBj1B,EAAA6M,GAAA,KAAA,OAAAA,EAAQ,QAAR,KAAA,OAAA7M,EAAe,QAAS,IAAG6M,EAAO,MAAQ,CAAA,EAChD,CACF,CAAC,EACDgpB,EAAE,WAAW,QAASqB,GAAa,OACjC,MAAMjC,EAASlpB,EAAO,QAAQmrB,EAAS,EAAE,EACzC,GAAI,CAACjC,EACH,OAAIY,EAAE,QAAQ,KAAMwU,GAAMA,EAAE,KAAOnT,EAAS,EAAE,EAE5C,OAEK,KAAK,iBAAiBrB,EAAGqB,EAAS,EAAE,EAE7C,UAAWqE,KAAiBrE,EAAS,WACnC,GAAI,OAAOqE,GAAkB,SAAU,CACrC,MAAM/7B,EAAQ03B,EAAS,WAAWqE,CAAa,EAC/C,GAAI/7B,IAAU,KACXy1B,EAA+B,gBAAgBsG,CAAa,EACzDA,IAAkB,QACpB6Y,GAAyBnf,EAAQiC,CAAQ,UAClC,OAAO13B,GAAU,SAC1B,GAAI,CAEF,GACE+7B,IAAkB,aACjBtG,EAAO,WAAa,QAAUA,EAAO,WAAa,SAEnD,GAAI,CACF,MAAM6iB,EAAQ/rC,EAAO,QACnBkpB,CAAA,EAEF,OAAO,OACL6iB,EAAM,WACN5gB,EAAS,UAAA,EAEX,MAAMzE,EAAUjI,GAAgBstB,EAAO,CACrC,IAAK7iB,EAAO,cACZ,OAAAlpB,EACA,UAAW,GACX,QAAS,GACT,MAAO,KAAK,KAAA,CACb,EACKgsC,EAAc9iB,EAAO,YACrBtzB,EAAaszB,EAAO,WAC1B,GAAIxC,GAAW9wB,EAAY,CACzBA,EAAW,YAAYszB,CAAuB,EAC9CtzB,EAAW,aACT8wB,EACAslB,CAAA,EAEFhsC,EAAO,QAAQmrB,EAAS,GAAIzE,CAAwB,EACpD,KACF,CACF,OAAS1xB,EAAG,CAEZ,CAEF,GAAIw6B,IAAkB,SAAWtG,EAAO,WAAa,WAAY,CAI/D,MAAMoG,EAAWpG,EACjBoG,EAAS,WAAW,QAASzxB,GAC3ByxB,EAAS,YAAYzxB,CAAU,CAAA,EAEjC,MAAMouC,GAAKh4C,EAAAi1B,EAAO,gBAAP,KAAA,OAAAj1B,EAAsB,eAAeR,CAAA,EAC5Cw4C,GACF3c,EAAS,YAAY2c,CAAW,CAEpC,MACG/iB,EAA+B,aAC9BsG,EACA/7B,CAAA,EAKF+7B,IAAkB,gBAClBtG,EAAO,WAAa,UAEpB2e,GAAsB3e,EAAQiC,CAAQ,CAE1C,OAASnzB,EAAO,CACd,KAAK,KACH,qDACAA,CAAA,CAEJ,SACSw3B,IAAkB,QAAS,CACpC,MAAM0c,EAAcz4C,EACd04C,EAAWjjB,EACjB,UAAWvxB,KAAKu0C,EACd,GAAIA,EAAYv0C,CAAC,IAAM,GACrBw0C,EAAS,MAAM,eAAex0C,CAAC,UACtBu0C,EAAYv0C,CAAC,YAAa,MAAO,CAC1C,MAAMy0C,EAAMF,EAAYv0C,CAAC,EACzBw0C,EAAS,MAAM,YAAYx0C,EAAGy0C,EAAI,CAAC,EAAGA,EAAI,CAAC,CAAC,CAC9C,KAAO,CACL,MAAMC,EAAMH,EAAYv0C,CAAC,EACzBw0C,EAAS,MAAM,YAAYx0C,EAAG00C,CAAG,CACnC,CAEJ,CACF,CAEJ,CAAC,CACH,CAQQ,YAAYviB,EAAe6b,EAAiB,SAClD,MAAMzc,EAAS,KAAK,OAAO,QAAQY,EAAE,EAAE,EACvC,GAAI,CAACZ,EACH,OAAO,KAAK,kBAAkBY,EAAGA,EAAE,EAAE,EAEvC,MAAMhnB,EAAK,KAAK,OAAO,QAAQomB,CAAM,EACrC,GAAIA,IAAW,KAAK,OAAO,iBACzBj1B,EAAA,KAAK,OAAO,gBAAZ,MAAAA,EAA2B,SAAS,CAClC,IAAK61B,EAAE,EACP,KAAMA,EAAE,EACR,SAAU6b,EAAS,OAAS,QAAA,CAAA,WAErB7iC,GAAA,KAAA,OAAAA,EAAI,QAASpC,GAAS,UAE9BxM,EAAAg1B,EAAoB,cAApB,MAAAh1B,EAAiC,SAAS,CACzC,IAAK41B,EAAE,EACP,KAAMA,EAAE,EACR,SAAU6b,EAAS,OAAS,QAAA,CAAA,MAG9B,IAAI,CACDzc,EAAmB,SAAS,CAC3B,IAAKY,EAAE,EACP,KAAMA,EAAE,EACR,SAAU6b,EAAS,OAAS,QAAA,CAC7B,CACH,OAAS3tC,EAAO,CAKhB,CAEJ,CAEQ,WAAW8xB,EAAc,CAC/B,MAAMZ,EAAS,KAAK,OAAO,QAAQY,EAAE,EAAE,EACvC,GAAI,CAACZ,EACH,OAAO,KAAK,kBAAkBY,EAAGA,EAAE,EAAE,EAEvC,GAAI,CACDZ,EAA4B,QAAUY,EAAE,UACxCZ,EAA4B,MAAQY,EAAE,IACzC,OAAS9xB,EAAO,CAEhB,CACF,CAEQ,eAAe8xB,EAAkB,CACvC,GAAI,CACF,MAAMwiB,EAAA,IAAmB,IACnB/U,EAASzN,EAAE,OAAO,IAAI,CAAC,CAAE,MAAA1iB,EAAO,YAAAswB,EAAa,IAAArwB,EAAK,UAAAuK,CAAA,IAAgB,CACtE,MAAM6lB,EAAiB,KAAK,OAAO,QAAQrwB,CAAK,EAC1CuwB,EAAe,KAAK,OAAO,QAAQtwB,CAAG,EAE5C,GAAI,CAACowB,GAAkB,CAACE,EAAc,OAEtC,MAAMne,EAAS,IAAI,MAEnBA,EAAO,SAASie,EAAgBC,CAAW,EAC3Cle,EAAO,OAAOme,EAAc/lB,CAAS,EACrC,MAAMzU,EAAMs6B,EAAe,cACrBH,EAAYn6B,GAAA,KAAA,OAAAA,EAAK,aAAA,EACvB,OAAAm6B,GAAagV,EAAa,IAAIhV,CAAS,EAEhC,CACL,MAAO9d,EACP,UAAA8d,CAAA,CAEJ,CAAC,EAEDgV,EAAa,QAAS30C,GAAMA,EAAE,gBAAA,CAAiB,EAE/C4/B,EAAO,QAAS+G,GAAAA,OAAM,OAAAA,KAAKrqC,EAAAqqC,EAAE,YAAF,KAAA,OAAArqC,EAAa,SAASqqC,EAAE,KAAA,EAAA,CAAM,CAC3D,OAAStmC,EAAO,CAEhB,CACF,CAEQ,wBACNiU,EACA,OACA,IAAI+Y,EAAmC,KACnC/Y,EAAK,QAAS+Y,EAAa,KAAK,YAAY,SAAS/Y,EAAK,OAAO,EAC5DA,EAAK,KACZ+Y,IACG/wB,EAAA,KAAK,OAAO,QAAQgY,EAAK,EAAE,IAA3B,KAAA,OAAAhY,EAAmD,QAAS,MAC5D+wB,IACD/Y,EAAK,SAAWqhB,EAAkB,eACpC,KAAK,oBAAoBrhB,EAAM+Y,CAAU,EAClC/Y,EAAK,SAAWqhB,EAAkB,kBACzC,KAAK,sBAAsBrhB,EAAM+Y,CAAU,EAC/C,CAEQ,oBACN/Y,EACA+Y,EACA,aA0CA,IAzCA/wB,EAAAgY,EAAK,OAAL,MAAAhY,EAAW,QAAQ,CAAC,CAAE,KAAAuD,EAAM,MAAO80B,CAAA,IAAkB,CACnD,GAAI,CACF,GAAI,MAAM,QAAQA,CAAW,EAAG,CAC9B,KAAM,CAAE,UAAAC,EAAW,MAAAx1B,CAAAA,EAAUs1B,GAAqBC,CAAW,EAC1CF,GAAcpH,EAAW,SAAUuH,CAAS,EACpD,WAAW/0B,EAAMT,CAAK,CACnC,KAAO,CACL,MAAMA,EACJu1B,IAAgB,OACZ,OACA,KAAK,IAAIA,EAAatH,EAAW,SAAS,MAAM,EACtDA,GAAA,MAAAA,EAAY,WAAWxtB,EAAMT,CAAAA,CAC/B,CACF,OAAS/B,EAAG,CASZ,CACF,CAAA,GAEAd,EAAA+X,EAAK,UAAL,MAAA/X,EAAc,QAAQ,CAAC,CAAE,MAAOo4B,CAAA,IAAkB,CAChD,GAAI,CACF,GAAI,MAAM,QAAQA,CAAW,EAAG,CAC9B,KAAM,CAAE,UAAAC,EAAW,MAAAx1B,CAAAA,EAAUs1B,GAAqBC,CAAW,EAC1CF,GAAcpH,EAAW,SAAUuH,CAAS,EACpD,WAAWx1B,GAAS,CAAC,CAClC,MACEiuB,GAAA,MAAAA,EAAY,WAAWsH,CAAA,CAE3B,OAASt3B,EAAG,CAIZ,CACF,CAAA,EAEIiX,EAAK,QACP,GAAI,EACGwpB,EAAAzQ,EAAW,UAAX,MAAAyQ,EAAA,KAAAzQ,EAAqB/Y,EAAK,OAAA,CACjC,OAASjX,EAAG,CAEZ,CAEF,GAAIiX,EAAK,YACP,GAAI,EACFie,EAAAlF,EAAW,cAAX,MAAAkF,EAAA,KAAAlF,EAAyB/Y,EAAK,WAAA,CAChC,OAASjX,EAAG,CAEZ,CACJ,CAEQ,sBACNiX,EACA+Y,EACA,SACA,GAAI/Y,EAAK,IAAK,CACZ,MAAMzU,EAAO40B,GACXpH,EAAW,MACX/Y,EAAK,KAAA,GAEPhY,EAAAuD,GAAA,KAAA,OAAAA,EAAM,QAAN,MAAAvD,EAAa,YACXgY,EAAK,IAAI,SACTA,EAAK,IAAI,MACTA,EAAK,IAAI,QAAA,CAEb,CAEA,GAAIA,EAAK,OAAQ,CACf,MAAMzU,EAAO40B,GACXpH,EAAW,MACX/Y,EAAK,KAAA,GAEP/X,EAAAsD,GAAA,KAAA,OAAAA,EAAM,QAAN,MAAAtD,EAAa,eAAe+X,EAAK,OAAO,QAAA,CAC1C,CACF,CAEQ,uBAAuBA,EAA6B,OAC1D,MAAMsgC,EAAa,KAAK,OAAO,QAAQtgC,EAAK,EAAE,EAC9C,GAAI,CAACsgC,EAAY,QAEjBt4C,EAAAgY,EAAK,SAAL,MAAAhY,EAAa,QAASosB,GAAU,OAC9B,IAAImsB,EAAsC,KAKtCC,EAA6B,KAMjC,GALItgB,GAAcogB,CAAU,EAC1BE,IAAax4C,EAAAs4C,EAAW,gBAAX,KAAA,OAAAt4C,EAA0B,cAAe,KAC/Cs4C,EAAW,WAAa,cAC/BE,EAAcF,EAAwB,aAEpC,EAACE,EACL,GAAI,CACFD,EAAgB,IAAIC,EAAW,cAC/B,KAAK,YAAY,IAAID,EAAensB,EAAM,OAAO,EAEjD,KAAK,oBACH,CACE,OAAQiN,EAAkB,eAC1B,KAAMjN,EAAM,KAAA,EAEdmsB,CAAA,CAEJ,OAASx3C,EAAG,CAEZ,CACF,CAAA,EAEA,MAAM03C,EAAiB,GACvB,IAAIlV,EAAQ,EACZ,MAAMmV,EAAmB,CAACJ,EAAkBK,IAAuB,CACjE,MAAMC,EAAgBD,EACnB,IAAKrY,GAAY,KAAK,YAAY,SAASA,CAAO,CAAC,EACnD,OAAQlU,GAAUA,IAAU,IAAI,EAC/B8L,GAAcogB,CAAU,EAEzBA,EAA2B,WAAY,mBACtCM,EACKN,EAAW,WAAa,cAC9BA,EAAwB,mBAAqBM,GAM5CA,EAAc,SAAWD,EAAS,QAAUpV,EAAQkV,IACtD,WACE,IAAMC,EAAiBJ,EAAYK,CAAQ,EAC3C,EAAI,IAAMpV,CAAA,EAEZA,IAEJ,EACAmV,EAAiBJ,EAAYtgC,EAAK,QAAQ,CAC5C,CAEQ,0BACNsE,EACAzP,EACAooB,EACA4jB,EACA,CACA,KAAM,CAAE,WAAAC,EAAY,OAAA3hB,CAAA,EAAW0hB,EACzBE,EAAgBD,GAAcx8B,EAAIw8B,CAAU,EAC5CE,EAAY7hB,GAAU7a,EAAI6a,CAAM,EACtC,GAAI4hB,EAAe,CACjB,KAAM,CAAE,KAAAn0C,EAAM,SAAAsyB,CAAA,EAAa6hB,EAC3BlsC,EAAO,aAAajI,EAAuBqwB,CAAuB,EAClE,OAAO3Y,EAAI4a,EAAS,KAAK,EAAE,EAC3B,OAAO,KAAK,2BAA2BA,EAAS,KAAK,EAAE,GACnDA,EAAS,YAAcA,EAAS,SAClC,KAAK,0BAA0B5a,EAAKzP,EAAQjI,EAAMsyB,CAAQ,CAE9D,CACA,GAAI8hB,EAAW,CACb,KAAM,CAAE,KAAAp0C,EAAM,SAAAsyB,CAAA,EAAa8hB,EAC3BnsC,EAAO,aACLjI,EACAqwB,EAAO,WAAA,EAET,OAAO3Y,EAAI4a,EAAS,KAAK,EAAE,EAC3B,OAAO,KAAK,2BAA2BA,EAAS,KAAK,EAAE,GACnDA,EAAS,YAAcA,EAAS,SAClC,KAAK,0BAA0B5a,EAAKzP,EAAQjI,EAAMsyB,CAAQ,CAE9D,CACF,CAEQ,aACNnxB,EACAC,EACAvB,EACAitC,EACAuH,EACA,CACA,MAAMhkB,EAAS,KAAK,OAAO,QAAQxwB,CAAE,EACrC,GAAI,CAACwwB,EACH,OAAO,KAAK,kBAAkBgkB,EAAWx0C,CAAE,EAG7C,MAAMy0C,EAAOthB,GAAiB3C,EAAQ,KAAK,MAAM,EAC3CkkB,EAAKpzC,EAAImzC,EAAK,cAAgBA,EAAK,EACnCE,EAAKpzC,EAAIkzC,EAAK,cAAgBA,EAAK,EAEzC,KAAK,MAAM,MAAM,KAAO,GAAGC,CAAE,KAC7B,KAAK,MAAM,MAAM,IAAM,GAAGC,CAAE,KACvB1H,GACH,KAAK,cAAc,CAAE,EAAGyH,EAAI,EAAGC,CAAA,CAAI,EAErC,KAAK,cAAcnkB,CAAiB,CACtC,CAEQ,cAAcxe,EAAoC,CACxD,GAAI,CAAC,KAAK,UACR,OAGF,KAAM,CAAE,QAAA4iC,EAAS,UAAAC,EAAW,YAAAC,EAAa,SAAAnG,CAAA,EACvC,KAAK,OAAO,YAAc,GACtBsB,GACA,OAAO,OAAO,CAAA,EAAIA,GAAwB,KAAK,OAAO,SAAS,EAE/D8E,EAAO,IAAM,CACjB,GAAI,CAAC,KAAK,UACR,OAEF,MAAM3zC,EAAM,KAAK,UAAU,WAAW,IAAI,EACtC,CAACA,GAAO,CAAC,KAAK,cAAc,SAGhCA,EAAI,UAAU,EAAG,EAAG,KAAK,UAAU,MAAO,KAAK,UAAU,MAAM,EAC/DA,EAAI,UAAA,EACJA,EAAI,UAAYyzC,EAChBzzC,EAAI,QAAUwzC,EACdxzC,EAAI,YAAc0zC,EAClB1zC,EAAI,OAAO,KAAK,cAAc,CAAC,EAAE,EAAG,KAAK,cAAc,CAAC,EAAE,CAAC,EAC3D,KAAK,cAAc,QAAS03B,GAAM13B,EAAI,OAAO03B,EAAE,EAAGA,EAAE,CAAC,CAAC,EACtD13B,EAAI,OAAA,EACN,EAEA,KAAK,cAAc,KAAK4Q,CAAQ,EAChC+iC,EAAA,EACA,WAAW,IAAM,CACf,KAAK,cAAgB,KAAK,cAAc,OAAQjc,GAAMA,IAAM9mB,CAAQ,EACpE+iC,EAAA,CACF,EAAGpG,EAAW,KAAK,aAAa,MAAM,QAAQ,MAAM,KAAK,CAC3D,CAEQ,cAAcppC,EAAa,QAChChK,EAAA,KAAK,qBAAuB,KAAK,OAAO,kBAAxC,MAAAA,EACG,iBAAiB,WAAA,EAClB,QAASy5C,GAAc,CACtBA,EAAU,UAAU,OAAO,QAAQ,CACrC,CAAA,EACF,KAAK,oBAAsBzvC,EAAG,YAAA,EAC9B,IAAI0vC,EAA4B1vC,EAChC,KAAO0vC,GACDA,EAAU,WACZA,EAAU,UAAU,IAAI,QAAQ,EAElCA,EAAYA,EAAU,aAE1B,CAEQ,kBAAkBzyB,EAA+B,CACvD,OAAIA,EAAM,OAASkS,EAAU,oBACpB,GAGPlS,EAAM,KAAK,OAASoS,EAAkB,UACtCpS,EAAM,KAAK,QAAUoS,EAAkB,KAE3C,CAEQ,cAAe,CACrB,KAAK,yBAA2B,KAC5B,MAAK,aAAa,MAAM,QAAQ,QAAQ,IAG5C,KAAK,aAAa,KAAK,CAAE,KAAM,gBAAA,CAAkB,EACjD,KAAK,QAAQ,KAAKU,EAAe,QAAS,CACxC,MAAO,KAAK,aAAa,MAAM,QAAQ,WAAA,CACxC,EACH,CAEQ,iBAAiBlE,EAAoBpxB,EAAY,CACvD,KAAK,KAAK,iBAAiBA,CAAE,gBAAiBoxB,CAAC,CACjD,CAEQ,yBACNA,EACA9xB,EACA,CACA,KAAK,KAAK,6BAA8BA,EAAO,mBAAoB8xB,CAAC,CACtE,CAEQ,kBAAkBA,EAAoBpxB,EAAY,CAOxD,KAAK,MAAM,iBAAiBA,CAAE,gBAAiBoxB,CAAC,CAClD,CAEQ,QAAQpc,EAAuC,CAChD,KAAK,OAAO,aAGjB,KAAK,OAAO,OAAO,KAAKg7B,GAAuB,GAAGh7B,CAAI,CACxD,CAEQ,SAASA,EAAsC,CAChD,KAAK,OAAO,WAGjB,KAAK,OAAO,OAAO,IAAIg7B,GAAuB,GAAGh7B,CAAI,CACvD,CACF,CC/vEA,KAAM,CAAE,eAAAkgC,EAAA,EAAmB5O,GACrB,CAAE,WAAA6O,EAAA,EAAe7O,GACjB,CAAE,iBAAAJ,EAAA,EAAqBI",
|
|
6
6
|
"names": ["__defProp", "__defNormalProp", "obj", "key", "value", "__publicField", "NodeType$1", "NodeType2", "testableAccessors", "testableMethods", "untaintedBasePrototype", "angularZoneUnpatchedAlternative", "_a", "_b", "angularUnpatchedVersionSymbol", "getUntaintedPrototype", "candidate", "defaultPrototype", "accessorNames", "isUntaintedAccessors", "accessor", "methodNames", "isUntaintedMethods", "method", "iframeEl", "win", "untaintedObject", "e", "untaintedAccessorCache", "getUntaintedAccessor", "instance", "cacheKey", "untaintedPrototype", "untaintedAccessor", "untaintedMethodCache", "getUntaintedMethod", "untaintedMethod", "childNodes", "n", "parentNode", "parentElement", "textContent", "contains", "other", "getRootNode", "host", "styleSheets", "shadowRoot", "querySelector", "selectors", "querySelectorAll", "mutationObserverCtor", "patch", "source", "name", "replacement", "original", "wrapped", "index", "isElement", "isShadowRoot", "hostEl", "isNativeShadowDom", "shadowRoot2", "fixBrowserCompatibilityIssuesInCSS", "cssText", "escapeImportStatement", "rule", "statement", "stringifyStylesheet", "s", "rules", "sheetHref", "stringifiedRules", "stringifyRule", "error", "isCSSImportRule", "importStringified", "absolutifyURLs", "ruleStringified", "isCSSStyleRule", "fixSafariColons", "cssStringified", "regex", "Mirror", "id", "childNode", "shadowRootEl", "node", "meta", "oldNode", "createMirror", "maskInputValue", "element", "maskInputOptions", "tagName", "type", "maskInputFn", "text", "actualType", "toLowerCase", "str", "ORIGINAL_ATTRIBUTE_NAME", "is2DCanvasBlank", "canvas", "ctx", "chunkSize", "x", "y", "getImageData", "originalGetImageData", "pixel", "isNodeMetaEqual", "a", "b", "getInputType", "extractFileExtension", "path", "baseURL", "url", "err", "match", "extractOrigin", "origin", "URL_IN_CSS_REF", "URL_PROTOCOL_MATCH", "URL_WWW_MATCH", "DATA_URI", "href", "quote1", "path1", "quote2", "path2", "path3", "filePath", "maybeQuote", "stack", "parts", "part", "STRIPED_PLACEHOLDER_SVG", "MAX_IMAGE_DIMENSION_FOR_RECOMPRESSION", "recompressBase64Image", "img", "dataURL", "quality", "checkDataURLSize", "maxLength", "_id", "tagNameRegex", "IGNORED_NODE", "genId", "getValidTagName", "processedTagName", "canvasService", "canvasCtx", "SRCSET_NOT_SPACES", "SRCSET_COMMAS_OR_SPACES", "getAbsoluteSrcsetString", "doc", "attributeValue", "pos", "collectCharacters", "regEx", "chars", "output", "absoluteToDoc", "descriptorsStr", "inParens", "c", "cachedDocument", "getHref", "isSVGElement", "el", "customHref", "transformAttribute", "dataURLOptions", "transformedValue", "processedDataURL", "ignoreAttribute", "_value", "_isBlockedElement", "blockClass", "blockSelector", "eIndex", "className", "classMatchesRegex", "checkAncestors", "needMaskingText", "maskTextClass", "maskTextSelector", "onceIframeLoaded", "listener", "iframeLoadTimeout", "fired", "readyState", "timer", "blankUrl", "onceStylesheetLoaded", "link", "styleSheetLoadTimeout", "styleSheetLoaded", "serializeNode", "options", "mirror", "needsMask", "inlineStylesheet", "maskTextFn", "inlineImages", "recordCanvas", "keepIframeSrcFn", "newlyAddedElement", "rootId", "getRootId", "NodeType", "serializeElementNode", "serializeTextNode", "docId", "parent", "parentTagName", "isStyle", "isScript", "findStylesheet", "hrefFrom", "needBlock", "attributes", "len", "i", "attr", "stylesheet", "rootDomain", "stylesheetPath", "potentialStylesheetHref", "checked", "canvasDataURL", "blankCanvas", "blankCanvasDataURL", "image", "imageSrc", "priorCrossOrigin", "recordInlineImage", "mediaAttributes", "width", "height", "left", "top", "isCustomElement", "lowerIfExists", "maybeAttr", "slimDOMExcluded", "sn", "slimDOMOptions", "DEFAULT_MAX_DEPTH", "_maxDepthWarned", "_maxDepthReached", "wasMaxDepthReached", "resetMaxDepthState", "serializeNodeWithId", "skipChild", "onSerialize", "onIframeLoad", "onStylesheetLoad", "stylesheetLoadTimeout", "depth", "maxDepth", "preserveWhiteSpace", "_serializedNode", "serializedNode", "recordChild", "bypassOptions", "childN", "serializedChildNode", "iframeDoc", "serializedIframeNode", "serializedLinkNode", "snapshot", "maskAllInputs", "slimDOM", "MEDIA_SELECTOR", "MEDIA_SELECTOR_GLOBAL", "mediaSelectorPlugin", "atrule", "pseudoClassPlugin", "fixed", "rule2", "selector", "getDefaultExportFromCjs", "getAugmentedNamespace", "f2", "a2", "a3", "k", "d2", "picocolors_browser", "hasRequiredPicocolors_browser", "requirePicocolors_browser", "create", "__viteBrowserExternal", "__viteBrowserExternal$1", "require$$2", "cssSyntaxError", "hasRequiredCssSyntaxError", "requireCssSyntaxError", "pico", "terminalHighlight", "CssSyntaxError", "message", "line", "column", "file", "plugin", "color", "css", "aside", "mark", "highlight", "bold", "gray", "red", "lines", "start", "end", "maxWidth", "number", "gutter", "padding", "subLineStart", "subLineEnd", "subLine", "spacing2", "spacing", "code", "stringifier", "hasRequiredStringifier", "requireStringifier", "DEFAULT_RAW", "capitalize", "Stringifier", "builder", "node2", "semicolon", "params", "detect", "buf", "indent", "step", "between", "after", "last", "child", "before", "right", "string", "own", "root2", "p2", "prop", "raw", "stringify_1", "hasRequiredStringify", "requireStringify", "stringify", "symbols", "hasRequiredSymbols", "requireSymbols", "hasRequiredNode", "requireNode", "isClean", "my", "cloneNode", "cloned", "j2", "sourceOffset", "inputCSS", "position", "offset", "Node", "defaults", "s2", "add", "overrides", "keepBetween", "opts", "next", "inputString", "defaultType", "nodes", "bookmark", "foundSelf", "result2", "_", "inputs", "emitInputs", "inputsNextIndex", "inputId", "input2", "stringifier2", "data", "comment", "hasRequiredComment", "requireComment", "Comment", "declaration", "hasRequiredDeclaration", "requireDeclaration", "Declaration", "__spreadProps", "__spreadValues", "container", "hasRequiredContainer", "requireContainer", "AtRule", "parse", "Root", "Rule", "cleanSource", "markTreeDirty", "Container", "children", "callback", "iterator", "condition", "args", "cb", "exist", "existIndex", "sample", "pattern", "decl", "e2", "dependant", "atRule", "hasRequiredAtRule", "requireAtRule", "document", "hasRequiredDocument", "requireDocument", "LazyResult", "Processor", "Document", "nonSecure", "hasRequiredNonSecure", "requireNonSecure", "urlAlphabet", "size", "alphabet", "defaultSize", "previousMap", "hasRequiredPreviousMap", "requirePreviousMap", "existsSync", "readFileSync", "dirname", "join", "SourceMapConsumer", "SourceMapGenerator", "fromBase64", "PreviousMap", "prev", "baseCharsetUri", "baseUri", "charsetUri", "uri", "uriMatch", "baseUriMatch", "encoding", "sourceMapString", "map", "comments", "prevPath", "input", "hasRequiredInput", "requireInput", "nanoid", "isAbsolute", "resolve", "fileURLToPath", "pathToFileURL", "lineToIndexCache", "sourceMapAvailable", "pathAvailable", "getLineToIndex", "lineToIndex", "prevIndex", "l2", "Input", "endColumn", "endLine", "endOffset", "lastLine", "min", "max", "mid", "consumer", "from", "to", "fromUrl", "json", "root", "hasRequiredRoot", "requireRoot", "ignore", "list_1", "hasRequiredList", "requireList", "list", "spaces", "separators", "array", "current", "split", "func", "inQuote", "prevQuote", "escape", "letter", "hasRequiredRule", "requireRule", "values", "sep", "fromJSON_1", "hasRequiredFromJSON", "requireFromJSON", "fromJSON", "ownInputs", "__objRest", "inputHydrated", "mapGenerator", "hasRequiredMapGenerator", "requireMapGenerator", "relative", "MapGenerator", "cssString", "content", "eol", "noSource", "mapping", "annotation", "cached", "already", "fileURL", "tokenize", "hasRequiredTokenize", "requireTokenize", "SINGLE_QUOTE", "DOUBLE_QUOTE", "BACKSLASH", "SLASH", "NEWLINE", "SPACE", "FEED", "TAB", "CR", "OPEN_SQUARE", "CLOSE_SQUARE", "OPEN_PARENTHESES", "CLOSE_PARENTHESES", "OPEN_CURLY", "CLOSE_CURLY", "SEMICOLON", "ASTERISK", "COLON", "AT", "RE_AT_END", "RE_WORD_END", "RE_BAD_BRACKET", "RE_HEX_ESCAPE", "quote", "currentToken", "escaped", "escapePos", "length", "buffer", "returned", "unclosed", "what", "endOfFile", "nextToken", "ignoreUnclosed", "controlChar", "back", "token", "parser", "hasRequiredParser", "requireParser", "tokenizer", "SAFE_COMMENT_NEIGHBOR", "findLastWithPosition", "tokens", "Parser", "shift", "open", "brackets", "colon", "founded", "customProperty", "firstSpaces", "cache", "bracket", "clean", "all", "lastTokenType", "parse_1", "hasRequiredParse", "requireParse", "parser2", "warning", "hasRequiredWarning", "requireWarning", "Warning", "range", "opt", "result", "hasRequiredResult", "requireResult", "Result", "processor2", "warning2", "warnOnce", "hasRequiredWarnOnce", "requireWarnOnce", "printed", "lazyResult", "hasRequiredLazyResult", "requireLazyResult", "warnOnce2", "TYPE_TO_CLASS_NAME", "PLUGIN_PROPS", "NOT_VISITORS", "CHILDREN", "isPromise", "getEvents", "toStack", "events", "cleanMarks", "postcss2", "onRejected", "onFinally", "event", "filter", "promise", "visitor", "roots", "subRoot", "onFulfilled", "visitors", "visit2", "noWorkResult", "hasRequiredNoWorkResult", "requireNoWorkResult", "NoWorkResult", "self", "generatedCSS", "generatedMap", "processor", "hasRequiredProcessor", "requireProcessor", "plugins", "normalized", "postcss_1", "hasRequiredPostcss", "requirePostcss", "initializer", "warningPrinted", "creator", "transformer", "processOpts", "pluginOpts", "safeParser$1", "hasRequiredSafeParser", "requireSafeParser", "SafeParser", "nextStart", "prevEnd", "safeParse", "hasRequiredSafeParse", "requireSafeParse", "safeParseExports", "safeParser", "postcssExports", "postcss", "tagMap", "getTagName", "adaptCssForReplay", "cachedStyle", "createCache", "safeDocNode", "stringContent", "buildNode", "hackCss", "specialAttributes", "isTextarea", "isRemoteOrDynamicCss", "buildNodeWithSN", "afterAppend", "nodeInMirror", "htmlElement", "body", "visit", "onVisit", "walk", "handleScroll", "rebuild", "visitedNode", "__defProp2", "__defNormalProp2", "__publicField2", "Mirror$1", "createMirror$1", "index2", "document$1", "Document2", "parseCSSText", "res", "listDelimiter", "propertyDelimiter", "comment2", "item", "tmp", "camelize", "toCSSText", "style", "properties", "normalizedName", "hyphenate", "camelizeRE", "CUSTOM_PROPERTY_REGEX", "hyphenateRE", "BaseRRNode", "_args", "childNodes2", "childIterator", "_newChild", "_refChild", "_node", "BaseRRDocument", "newChild", "nodeType", "appendChild", "refChild", "insertBefore", "removeChild", "publicId", "doctype", "_namespace", "_qualifiedName", "_doctype", "qualifiedName", "systemId", "BaseRRDocumentType", "BaseRRElement", "_namespaceURI", "BaseRRText", "BaseRRComment", "CDATASection", "BaseRRCDATASection", "textContent2", "ClassList", "newClassName", "hyphenateRE2", "priority", "attribute", "_init", "_event", "attributeString", "BaseRRMediaElement", "BaseRRDialogElement", "classText", "onChange", "classNames", "classes", "NAMESPACES", "SVGTagMap", "createdNodeSet", "diff", "oldTree", "newTree", "replayer", "rrnodeMirror", "diffBeforeUpdatingChildren", "diffChildren", "diffAfterUpdatingChildren", "sameNodeType", "calibratedOldTree", "createOrGetNode", "nodeMatching", "newMeta", "oldElement", "newRRElement", "oldContentDocument", "diffProps", "scrollData", "oldMediaElement", "newMediaRRElement", "rrCanvasElement", "canvasMutation", "styleSheet", "dialog", "rrDialog", "wasOpen", "wasModal", "shouldBeOpen", "shouldBeModal", "modalChanged", "openChanged", "oldAttributes", "newAttributes", "newValue", "oldChildren", "newChildren", "oldStartIndex", "oldEndIndex", "newStartIndex", "newEndIndex", "oldStartNode", "oldEndNode", "newStartNode", "newEndNode", "oldIdToIndex", "indexInOld", "oldChild2", "nodeToMove", "newNode", "referenceRRNode", "referenceNode", "oldChild", "rrNode", "domMirror", "nodeId", "node1", "rrdomMirror", "node1Id", "node2Id", "RRDocument", "documentTypeNode", "RRDocumentType", "upperTagName", "RRMediaElement", "RRIFrameElement", "RRCanvasElement", "RRStyleElement", "RRDialogElement", "RRElement", "commentNode", "RRComment", "sectionNode", "RRCDATASection", "textNode", "RRText", "buildFromNode", "rrdom", "parentRRNode", "documentType", "elementNode", "rrElement", "getDefaultSN", "buildFromDom", "dom", "walk2", "Mirror2", "on", "fn", "target", "DEPARTED_MIRROR_ACCESS_WARNING", "_mirror", "receiver", "throttle", "wait", "timeout", "previous", "now", "remaining", "context", "hookSetter", "d", "isRevoked", "nowTimestamp", "getWindowScroll", "_d", "getWindowHeight", "getWindowWidth", "closestElementOfNode", "isBlocked", "isSerialized", "isIgnored", "isAncestorRemoved", "legacy_isTouchEvent", "polyfill", "queueToResolveTrees", "queue", "queueNodeMap", "putIntoMap", "m", "nodeInTree", "queueNodeTrees", "mutation", "nextId", "parentId", "nextInTree", "idx", "parentInTree", "iterateResolveTree", "tree", "isSerializedIframe", "isSerializedStylesheet", "getBaseDimension", "rootIframe", "frameElement", "frameDimension", "frameBaseDimension", "relativeScale", "hasShadowRoot", "getNestedRule", "getPositionsAndIndex", "nestedIndex", "positions", "uniqueTextMutations", "mutations", "idSet", "uniqueMutations", "StyleSheetMirror", "newId", "getShadowHost", "shadowHost", "getRootShadowHost", "rootShadowHost", "shadowHostInDom", "inDom", "EventType", "EventType2", "IncrementalSource", "IncrementalSource2", "MouseInteractions", "MouseInteractions2", "PointerTypes", "PointerTypes2", "CanvasContext", "CanvasContext2", "MediaInteractions", "MediaInteractions2", "ReplayerEvents", "ReplayerEvents2", "isNodeInLinkedList", "DoubleLinkedList", "moveKey", "MutationBuffer", "adds", "addedIds", "addList", "getNextId", "ns", "pushAdd", "currentN", "iframe", "childSn", "isParentRemoved", "isAncestorInSet", "tailNode", "unhandledNode", "payload", "diffAsStr", "unchangedAsStr", "textarea", "cn", "attributeName", "old", "pname", "newPriority", "deepDelete", "processRemoves", "targetId", "addsSet", "removes", "_isParentRemoved", "set", "_isAncestorInSet", "errorHandler", "registerErrorHandler", "handler", "unregisterErrorHandler", "callbackWrapper", "rest", "mutationBuffers", "getEventTarget", "initMutationObserver", "rootEl", "mutationBuffer", "observer", "initMoveObserver", "mousemoveCb", "sampling", "threshold", "callbackThreshold", "timeBaseline", "wrappedCb", "totalOffset", "p", "updatePosition", "evt", "clientX", "clientY", "handlers", "h", "initMouseInteractionObserver", "mouseInteractionCb", "disableMap", "currentPointerType", "getHandler", "eventKey", "pointerType", "thisEventKey", "eventName", "initScrollObserver", "scrollCb", "scrollLeftTop", "initViewportResizeObserver", "viewportResizeCb", "lastH", "lastW", "updateDimension", "INPUT_TAGS", "lastInputValueMap", "initInputObserver", "inputCb", "ignoreClass", "ignoreSelector", "userTriggeredOnInput", "eventHandler", "userTriggered", "isChecked", "cbWithDedup", "v", "lastInputValue", "currentWindow", "propertyDescriptor", "hookProperties", "getNestedCSSRulePositions", "recurse", "childRule", "hasNestedCSSRule", "getIdAndStyleId", "sheet", "styleMirror", "styleId", "initStyleSheetObserver", "styleSheetRuleCb", "stylesheetManager", "insertRule", "thisArg", "argumentsList", "styleBlock", "deleteRule", "replace", "replaceSync", "supportedNestedCSSRuleTypes", "canMonkeyPatchNestedCSSRule", "unmodifiedFunctions", "typeKey", "initAdoptedStyleSheetObserver", "hostId", "patchTarget", "_c", "originalPropertyDescriptor", "sheets", "initStyleDeclarationObserver", "styleDeclarationCb", "ignoreCSSAttributes", "setProperty", "property", "removeProperty", "initMediaInteractionObserver", "mediaInteractionCb", "currentTime", "volume", "muted", "playbackRate", "loop", "initFontObserver", "fontCb", "fontMap", "originalFontFace", "family", "descriptors", "fontFace", "restoreHandler", "initSelectionObserver", "param", "selectionCb", "collapsed", "updateSelection", "selection", "ranges", "count", "startContainer", "startOffset", "endContainer", "initCustomElementObserver", "customElementCb", "constructor", "mergeHooks", "o", "hooks", "mutationCb", "canvasMutationCb", "initObservers", "mutationObserver", "mousemoveHandler", "mouseInteractionHandler", "scrollHandler", "viewportResizeHandler", "inputHandler", "mediaInteractionHandler", "styleSheetObserver", "adoptedStyleSheetObserver", "styleDeclarationObserver", "fontObserver", "selectionObserver", "customElementObserver", "pluginHandlers", "CrossOriginIframeMirror", "generateIdFn", "remoteId", "idToRemoteMap", "remoteToIdMap", "idToRemoteIdMap", "remoteIdToIdMap", "ids", "IframeManager", "iframeId", "nestedHandler", "crossOriginMessageEvent", "transformedEvent", "iframeMirror", "keys", "entry", "contentWindow", "ShadowDomManager", "iframeElement", "manager", "option", "sRoot", "lookup", "encode", "arraybuffer", "bytes", "base64", "decode", "bufferLength", "encoded1", "encoded2", "encoded3", "encoded4", "canvasVarMap", "variableListFor", "ctor", "contextMap", "saveWebGLVar", "isInstanceOfWebGLObject", "serializeArg", "arg", "src", "serializeArgs", "initCanvas2DMutationObserver", "props2D", "recordArgs", "hookHandler", "getNormalizedContextName", "contextType", "initCanvasContextObserver", "setPreserveDrawingBufferToTrue", "ctxName", "contextAttributes", "patchGLPrototype", "prototype", "props", "initCanvasWebGLMutationObserver", "CanvasManager", "fps", "canvasContextReset", "snapshotInProgressMap", "worker", "ImageBitmapDataURLWorker", "timeBetweenSnapshots", "lastSnapshotTime", "rafId", "getCanvas", "matchedCanvas", "searchCanvas", "haystack", "elem", "takeCanvasSnapshots", "timestamp", "bitmap", "canvas2DReset", "canvasWebGL1and2Reset", "setLatestRAFTimestamp", "_values", "valuesWithType", "StylesheetManager", "linkEl", "adoptedStyleSheetData", "styles", "r", "_linkEl", "ProcessedNodeManager", "thisBuffer", "buffers", "wrappedEmit", "takeFullSnapshot", "canvasManager", "recording", "cleanFrame", "record", "emit", "checkoutEveryNms", "checkoutEveryNth", "_maskInputOptions", "_slimDOMOptions", "packFn", "_dataURLOptions", "mousemoveWait", "recordDOM", "recordCrossOriginIframes", "recordAfter", "collectFonts", "inEmittingFrame", "passEmitsToParent", "lastFullSnapshotEvent", "incrementalSnapshotCount", "eventProcessor", "isCheckout", "exceedCount", "exceedTime", "wrappedMutationEmit", "iframeManager", "wrappedScrollEmit", "wrappedCanvasMutationEmit", "wrappedAdoptedStyleSheetEmit", "processedNodeManager", "shadowDomManager", "observe", "loadListener", "init", "tag", "mitt$1", "t", "w", "Element", "SCROLL_TIME", "scrollElement", "isMicrosoftBrowser", "userAgent", "userAgentPatterns", "ROUNDING_TOLERANCE", "ease", "shouldBailOut", "firstArg", "hasScrollableSpace", "axis", "canOverflow", "overflowValue", "isScrollable", "isScrollableY", "isScrollableX", "findScrollableParent", "time", "currentX", "currentY", "elapsed", "smoothScroll", "scrollable", "startX", "startY", "startTime", "scrollableParent", "parentRects", "clientRects", "Timer", "actions", "config", "action", "rafWasActive", "speed", "addDelay", "baselineTime", "firstOffset", "firstTimestamp", "u", "f", "l", "g", "S", "j", "E", "R", "N", "O", "T", "q", "z", "A", "B", "C", "discardPriorSnapshots", "createPlayerService", "getCastFn", "applyEventsSynchronously", "emitter", "playerMachine", "createMachine", "assign", "timeOffset", "lastPlayedEvent", "neededEvents", "lastPlayedTimestamp", "syncEvents", "castFn", "machineEvent", "insertionIndex", "isSync", "interpret", "createSpeedService", "speedMachine", "webGLVarMap", "deserializeArg", "imageMap", "preload", "blobContents", "getContext", "WebGLVariableConstructorsNames", "saveToWebGLVarMap", "variables", "webglMutation", "debugMode", "mutationArgsPromises", "canvasEventMap", "precomputedMutation", "commands", "command", "canvas2DMutation", "SUPPORTED_MEDIA_ELEMENT_NAMES", "MediaManager", "_mediaState", "mediaState", "mediaPlaybackOffset", "duration", "seekToTime", "onLoadedMetadata", "lastState", "_e", "isPlaying", "playerIsPaused", "currentTimeAtLastInteraction", "applyDialogToTopLevel", "attributeMutation", "RRNode", "oldIsOpen", "oldIsModalState", "rrOpenMode", "newIsOpen", "newIsModalState", "removeDialogFromTopLevel", "SKIP_TIME_INTERVAL", "mitt", "mittProxy.default", "mittProxy", "REPLAY_CONSOLE_PREFIX", "defaultMouseTailConfig", "indicatesTouchDevice", "Replayer", "dimension", "skipTime", "last_index", "finish", "finish_buffer", "defaultConfig", "flushHandler", "replayerHandler", "canvasEvent", "canvasMutationData", "realNode", "playBackHandler", "a1", "state", "firstMeta", "firstFullsnapshot", "delay", "firstEvent", "lastEvent", "rawEvent", "smoothscrollPolyfill", "collectedIframes", "collectedDialogs", "builtNode", "mutationInQueue", "documentElement", "head", "injectStylesRules", "getInjectStyleRules", "styleEl", "collected", "unloadSheets", "beforeLoadState", "stateHandler", "unsubscribe", "promises", "imgd", "status", "lastPosition", "triggerFocus", "mediaEl", "virtualNode", "legacy_missingNodeMap", "appendNode", "targetDoc", "parentSn", "prospectiveSiblings", "parentDoc", "resolveTrees", "newSn", "siblingNode", "tn", "styleValues", "targetEl", "svp", "svs", "selectionSet", "targetHost", "newStyleSheet", "hostWindow", "MAX_RETRY_TIME", "adoptStyleSheets", "styleIds", "stylesToAdopt", "targetMutation", "previousId", "previousInMap", "nextInMap", "debugData", "base", "_x", "_y", "lineCap", "lineWidth", "strokeStyle", "draw", "hoveredEl", "currentEl", "addCustomEvent", "freezePage"]
|
|
7
7
|
}
|