{"version":3,"file":"index.mjs","sources":["../../browser/dist/esm/index.js","../src/factory.tsx","../src/index.tsx"],"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 _a;\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar NodeType$3 = /* @__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$3 || {});\nconst testableAccessors$1 = {\n  Node: [\n    \"childNodes\",\n    \"parentNode\",\n    \"parentElement\",\n    \"textContent\",\n    \"ownerDocument\"\n  ],\n  ShadowRoot: [\"host\", \"styleSheets\"],\n  Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n  MutationObserver: []\n};\nconst testableMethods$1 = {\n  Node: [\"contains\", \"getRootNode\"],\n  ShadowRoot: [\"getSelection\"],\n  Element: [],\n  MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype$1 = {};\nconst isAngularZonePresent$1 = () => {\n  return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype$1(key) {\n  if (untaintedBasePrototype$1[key])\n    return untaintedBasePrototype$1[key];\n  const defaultObj = globalThis[key];\n  const defaultPrototype = defaultObj.prototype;\n  const accessorNames = key in testableAccessors$1 ? testableAccessors$1[key] : void 0;\n  const isUntaintedAccessors = Boolean(\n    accessorNames && // @ts-expect-error 2345\n    accessorNames.every(\n      (accessor) => {\n        var _a2, _b;\n        return Boolean(\n          (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n        );\n      }\n    )\n  );\n  const methodNames = key in testableMethods$1 ? testableMethods$1[key] : void 0;\n  const isUntaintedMethods = Boolean(\n    methodNames && methodNames.every(\n      // @ts-expect-error 2345\n      (method) => {\n        var _a2;\n        return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n      }\n    )\n  );\n  if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent$1()) {\n    untaintedBasePrototype$1[key] = defaultObj.prototype;\n    return defaultObj.prototype;\n  }\n  try {\n    const iframeEl = document.createElement(\"iframe\");\n    document.body.appendChild(iframeEl);\n    const win = iframeEl.contentWindow;\n    if (!win) return defaultObj.prototype;\n    const untaintedObject = win[key].prototype;\n    document.body.removeChild(iframeEl);\n    if (!untaintedObject) return defaultPrototype;\n    return untaintedBasePrototype$1[key] = untaintedObject;\n  } catch {\n    return defaultPrototype;\n  }\n}\nconst untaintedAccessorCache$1 = {};\nfunction getUntaintedAccessor$1(key, instance, accessor) {\n  var _a2;\n  const cacheKey = `${key}.${String(accessor)}`;\n  if (untaintedAccessorCache$1[cacheKey])\n    return untaintedAccessorCache$1[cacheKey].call(\n      instance\n    );\n  const untaintedPrototype = getUntaintedPrototype$1(key);\n  const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n    untaintedPrototype,\n    accessor\n  )) == null ? void 0 : _a2.get;\n  if (!untaintedAccessor) return instance[accessor];\n  untaintedAccessorCache$1[cacheKey] = untaintedAccessor;\n  return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache$1 = {};\nfunction getUntaintedMethod$1(key, instance, method) {\n  const cacheKey = `${key}.${String(method)}`;\n  if (untaintedMethodCache$1[cacheKey])\n    return untaintedMethodCache$1[cacheKey].bind(\n      instance\n    );\n  const untaintedPrototype = getUntaintedPrototype$1(key);\n  const untaintedMethod = untaintedPrototype[method];\n  if (typeof untaintedMethod !== \"function\") return instance[method];\n  untaintedMethodCache$1[cacheKey] = untaintedMethod;\n  return untaintedMethod.bind(instance);\n}\nfunction ownerDocument$1(n2) {\n  return getUntaintedAccessor$1(\"Node\", n2, \"ownerDocument\");\n}\nfunction childNodes$1(n2) {\n  return getUntaintedAccessor$1(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode$1(n2) {\n  return getUntaintedAccessor$1(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement$1(n2) {\n  return getUntaintedAccessor$1(\"Node\", n2, \"parentElement\");\n}\nfunction textContent$1(n2) {\n  return getUntaintedAccessor$1(\"Node\", n2, \"textContent\");\n}\nfunction contains$1(n2, other) {\n  return getUntaintedMethod$1(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode$1(n2) {\n  return getUntaintedMethod$1(\"Node\", n2, \"getRootNode\")();\n}\nfunction host$1(n2) {\n  if (!n2 || !(\"host\" in n2)) return null;\n  return getUntaintedAccessor$1(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets$1(n2) {\n  return n2.styleSheets;\n}\nfunction shadowRoot$1(n2) {\n  if (!n2 || !(\"shadowRoot\" in n2)) return null;\n  return getUntaintedAccessor$1(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector$1(n2, selectors) {\n  return getUntaintedAccessor$1(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll$1(n2, selectors) {\n  return getUntaintedAccessor$1(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor$1() {\n  return getUntaintedPrototype$1(\"MutationObserver\").constructor;\n}\nfunction patch$1(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$1 = {\n  ownerDocument: ownerDocument$1,\n  childNodes: childNodes$1,\n  parentNode: parentNode$1,\n  parentElement: parentElement$1,\n  textContent: textContent$1,\n  contains: contains$1,\n  getRootNode: getRootNode$1,\n  host: host$1,\n  styleSheets: styleSheets$1,\n  shadowRoot: shadowRoot$1,\n  querySelector: querySelector$1,\n  querySelectorAll: querySelectorAll$1,\n  mutationObserver: mutationObserverCtor$1,\n  patch: patch$1\n};\nfunction isElement(n2) {\n  return n2.nodeType === n2.ELEMENT_NODE;\n}\nfunction isShadowRoot(n2) {\n  const hostEl = (\n    // anchor and textarea elements also have a `host` property\n    // but only shadow roots have a `mode` property\n    n2 && \"host\" in n2 && \"mode\" in n2 && index$1.host(n2) || null\n  );\n  return Boolean(\n    hostEl && \"shadowRoot\" in hostEl && index$1.shadowRoot(hostEl) === n2\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(rule2) {\n  const { cssText } = rule2;\n  if (cssText.split('\"').length < 3) return cssText;\n  const statement = [\"@import\", `url(${JSON.stringify(rule2.href)})`];\n  if (rule2.layerName === \"\") {\n    statement.push(`layer`);\n  } else if (rule2.layerName) {\n    statement.push(`layer(${rule2.layerName})`);\n  }\n  if (rule2.supportsText) {\n    statement.push(`supports(${rule2.supportsText})`);\n  }\n  if (rule2.media.length) {\n    statement.push(rule2.media.mediaText);\n  }\n  return statement.join(\" \") + \";\";\n}\nfunction stringifyStylesheet(s2) {\n  try {\n    const rules2 = s2.rules || s2.cssRules;\n    if (!rules2) {\n      return null;\n    }\n    let sheetHref = s2.href;\n    if (!sheetHref && s2.ownerNode) {\n      sheetHref = s2.ownerNode.baseURI;\n    }\n    const stringifiedRules = Array.from(\n      rules2,\n      (rule2) => stringifyRule(rule2, sheetHref)\n    ).join(\"\");\n    return fixBrowserCompatibilityIssuesInCSS(stringifiedRules);\n  } catch (error) {\n    return null;\n  }\n}\nfunction stringifyRule(rule2, sheetHref) {\n  if (isCSSImportRule(rule2)) {\n    let importStringified;\n    try {\n      importStringified = // for same-origin stylesheets,\n      // we can access the imported stylesheet rules directly\n      stringifyStylesheet(rule2.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n      escapeImportStatement(rule2);\n    } catch (error) {\n      importStringified = rule2.cssText;\n    }\n    if (rule2.styleSheet.href) {\n      return absolutifyURLs(importStringified, rule2.styleSheet.href);\n    }\n    return importStringified;\n  } else {\n    let ruleStringified = rule2.cssText;\n    if (isCSSStyleRule(rule2) && rule2.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(rule2) {\n  return \"styleSheet\" in rule2;\n}\nfunction isCSSStyleRule(rule2) {\n  return \"selectorText\" in rule2;\n}\nclass Mirror {\n  constructor() {\n    __publicField$1(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n    __publicField$1(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n  }\n  getId(n2) {\n    var _a2;\n    if (!n2) return -1;\n    const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.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(n2) {\n    return this.nodeMetaMap.get(n2) || null;\n  }\n  // removes the node from idNodeMap\n  // doesn't remove the node from nodeMetaMap\n  removeNodeFromMap(n2) {\n    const id = this.getId(n2);\n    this.idNodeMap.delete(id);\n    if (n2.childNodes) {\n      n2.childNodes.forEach(\n        (childNode) => this.removeNodeFromMap(childNode)\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(n2, meta) {\n    const id = meta.id;\n    this.idNodeMap.set(id, n2);\n    this.nodeMetaMap.set(n2, meta);\n  }\n  replace(id, n2) {\n    const oldNode = this.getNode(id);\n    if (oldNode) {\n      const meta = this.nodeMetaMap.get(oldNode);\n      if (meta) this.nodeMetaMap.set(n2, meta);\n    }\n    this.idNodeMap.set(id, n2);\n  }\n  reset() {\n    this.idNodeMap = /* @__PURE__ */ new Map();\n    this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n  }\n}\nfunction createMirror$2() {\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 x2 = 0; x2 < canvas.width; x2 += 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          x2,\n          y,\n          Math.min(chunkSize, canvas.width - x2),\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 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}\nfunction normalizeCssString(cssText, _testNoPxNorm = false) {\n  if (_testNoPxNorm) {\n    return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\");\n  } else {\n    return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\").replace(/0px/g, \"0\");\n  }\n}\nfunction splitCssText(cssText, style, _testNoPxNorm = false) {\n  const childNodes2 = Array.from(style.childNodes);\n  const splits = [];\n  let iterCount = 0;\n  if (childNodes2.length > 1 && cssText && typeof cssText === \"string\") {\n    let cssTextNorm = normalizeCssString(cssText, _testNoPxNorm);\n    const normFactor = cssTextNorm.length / cssText.length;\n    for (let i2 = 1; i2 < childNodes2.length; i2++) {\n      if (childNodes2[i2].textContent && typeof childNodes2[i2].textContent === \"string\") {\n        const textContentNorm = normalizeCssString(\n          childNodes2[i2].textContent,\n          _testNoPxNorm\n        );\n        const jLimit = 100;\n        let j = 3;\n        for (; j < textContentNorm.length; j++) {\n          if (\n            // keep consuming css identifiers (to get a decent chunk more quickly)\n            textContentNorm[j].match(/[a-zA-Z0-9]/) || // substring needs to be unique to this section\n            textContentNorm.indexOf(textContentNorm.substring(0, j), 1) !== -1\n          ) {\n            continue;\n          }\n          break;\n        }\n        for (; j < textContentNorm.length; j++) {\n          let startSubstring = textContentNorm.substring(0, j);\n          let cssNormSplits = cssTextNorm.split(startSubstring);\n          let splitNorm = -1;\n          if (cssNormSplits.length === 2) {\n            splitNorm = cssNormSplits[0].length;\n          } else if (cssNormSplits.length > 2 && cssNormSplits[0] === \"\" && childNodes2[i2 - 1].textContent !== \"\") {\n            splitNorm = cssTextNorm.indexOf(startSubstring, 1);\n          } else if (cssNormSplits.length === 1) {\n            startSubstring = startSubstring.substring(\n              0,\n              startSubstring.length - 1\n            );\n            cssNormSplits = cssTextNorm.split(startSubstring);\n            if (cssNormSplits.length <= 1) {\n              splits.push(cssText);\n              return splits;\n            }\n            j = jLimit + 1;\n          } else if (j === textContentNorm.length - 1) {\n            splitNorm = cssTextNorm.indexOf(startSubstring);\n          }\n          if (cssNormSplits.length >= 2 && j > jLimit) {\n            const prevTextContent = childNodes2[i2 - 1].textContent;\n            if (prevTextContent && typeof prevTextContent === \"string\") {\n              const prevMinLength = normalizeCssString(prevTextContent).length;\n              splitNorm = cssTextNorm.indexOf(startSubstring, prevMinLength);\n            }\n            if (splitNorm === -1) {\n              splitNorm = cssNormSplits[0].length;\n            }\n          }\n          if (splitNorm !== -1) {\n            let k = Math.floor(splitNorm / normFactor);\n            for (; k > 0 && k < cssText.length; ) {\n              iterCount += 1;\n              if (iterCount > 50 * childNodes2.length) {\n                splits.push(cssText);\n                return splits;\n              }\n              const normPart = normalizeCssString(\n                cssText.substring(0, k),\n                _testNoPxNorm\n              );\n              if (normPart.length === splitNorm) {\n                splits.push(cssText.substring(0, k));\n                cssText = cssText.substring(k);\n                cssTextNorm = cssTextNorm.substring(splitNorm);\n                break;\n              } else if (normPart.length < splitNorm) {\n                k += Math.max(\n                  1,\n                  Math.floor((splitNorm - normPart.length) / normFactor)\n                );\n              } else {\n                k -= Math.max(\n                  1,\n                  Math.floor((normPart.length - splitNorm) * normFactor)\n                );\n              }\n            }\n            break;\n          }\n        }\n      }\n    }\n  }\n  splits.push(cssText);\n  return splits;\n}\nfunction markCssSplits(cssText, style) {\n  return splitCssText(cssText, style).join(\"/* rr_split */\");\n}\nlet _id = 1;\nconst tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nconst IGNORED_NODE = -2;\nfunction genId() {\n  return _id++;\n}\nfunction getValidTagName$1(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 chars2;\n    const match = regEx.exec(attributeValue.substring(pos));\n    if (match) {\n      chars2 = match[0];\n      pos += chars2.length;\n      return chars2;\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 c2 = attributeValue.charAt(pos);\n        if (c2 === \"\") {\n          output.push((url + descriptorsStr).trim());\n          break;\n        } else if (!inParens) {\n          if (c2 === \",\") {\n            pos += 1;\n            output.push((url + descriptorsStr).trim());\n            break;\n          } else if (c2 === \"(\") {\n            inParens = true;\n          }\n        } else {\n          if (c2 === \")\") {\n            inParens = false;\n          }\n        }\n        descriptorsStr += c2;\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 a2 = cachedDocument.get(doc);\n  if (!a2) {\n    a2 = doc.createElement(\"a\");\n    cachedDocument.set(doc, a2);\n  }\n  if (!customHref) {\n    customHref = \"\";\n  } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n    return customHref;\n  }\n  a2.setAttribute(\"href\", customHref);\n  return a2.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n  if (!value) {\n    return value;\n  }\n  if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n    return absoluteToDoc(doc, value);\n  } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n    return absoluteToDoc(doc, value);\n  } else if (name === \"background\" && [\"table\", \"td\", \"th\"].includes(tagName)) {\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 [\"video\", \"audio\"].includes(tagName) && 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 (e2) {\n  }\n  return false;\n}\nfunction classMatchesRegex(node2, regex, checkAncestors) {\n  if (!node2) return false;\n  if (node2.nodeType !== node2.ELEMENT_NODE) {\n    if (!checkAncestors) return false;\n    return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n  }\n  for (let eIndex = node2.classList.length; eIndex--; ) {\n    const className = node2.classList[eIndex];\n    if (regex.test(className)) {\n      return true;\n    }\n  }\n  if (!checkAncestors) return false;\n  return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n}\nfunction needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) {\n  let el;\n  if (isElement(node2)) {\n    el = node2;\n    if (!index$1.childNodes(el).length) {\n      return false;\n    }\n  } else if (index$1.parentElement(node2) === null) {\n    return false;\n  } else {\n    el = index$1.parentElement(node2);\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 (e2) {\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(n2, options) {\n  const {\n    doc,\n    mirror: mirror2,\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    cssCaptured = false\n  } = options;\n  const rootId = getRootId(doc, mirror2);\n  switch (n2.nodeType) {\n    case n2.DOCUMENT_NODE:\n      if (n2.compatMode !== \"CSS1Compat\") {\n        return {\n          type: NodeType$3.Document,\n          childNodes: [],\n          compatMode: n2.compatMode\n          // probably \"BackCompat\"\n        };\n      } else {\n        return {\n          type: NodeType$3.Document,\n          childNodes: []\n        };\n      }\n    case n2.DOCUMENT_TYPE_NODE:\n      return {\n        type: NodeType$3.DocumentType,\n        name: n2.name,\n        publicId: n2.publicId,\n        systemId: n2.systemId,\n        rootId\n      };\n    case n2.ELEMENT_NODE:\n      return serializeElementNode(n2, {\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 n2.TEXT_NODE:\n      return serializeTextNode(n2, {\n        doc,\n        needsMask,\n        maskTextFn,\n        rootId,\n        cssCaptured\n      });\n    case n2.CDATA_SECTION_NODE:\n      return {\n        type: NodeType$3.CDATA,\n        textContent: \"\",\n        rootId\n      };\n    case n2.COMMENT_NODE:\n      return {\n        type: NodeType$3.Comment,\n        textContent: index$1.textContent(n2) || \"\",\n        rootId\n      };\n    default:\n      return false;\n  }\n}\nfunction getRootId(doc, mirror2) {\n  if (!mirror2.hasNode(doc)) return void 0;\n  const docId = mirror2.getId(doc);\n  return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n2, options) {\n  const { needsMask, maskTextFn, rootId, cssCaptured } = options;\n  const parent = index$1.parentNode(n2);\n  const parentTagName = parent && parent.tagName;\n  let textContent2 = \"\";\n  const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n  const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n  if (isScript) {\n    textContent2 = \"SCRIPT_PLACEHOLDER\";\n  } else if (!cssCaptured) {\n    textContent2 = index$1.textContent(n2);\n    if (isStyle && textContent2) {\n      textContent2 = absolutifyURLs(textContent2, getHref(options.doc));\n    }\n  }\n  if (!isStyle && !isScript && textContent2 && needsMask) {\n    textContent2 = maskTextFn ? maskTextFn(textContent2, index$1.parentElement(n2)) : textContent2.replace(/[\\S]/g, \"*\");\n  }\n  return {\n    type: NodeType$3.Text,\n    textContent: textContent2 || \"\",\n    rootId\n  };\n}\nfunction serializeElementNode(n2, options) {\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(n2, blockClass, blockSelector);\n  const tagName = getValidTagName$1(n2);\n  let attributes = {};\n  const len = n2.attributes.length;\n  for (let i2 = 0; i2 < len; i2++) {\n    const attr = n2.attributes[i2];\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  }\n  if (tagName === \"link\" && inlineStylesheet) {\n    const stylesheet = Array.from(doc.styleSheets).find((s2) => {\n      return s2.href === n2.href;\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  if (tagName === \"style\" && n2.sheet) {\n    let cssText = stringifyStylesheet(\n      n2.sheet\n    );\n    if (cssText) {\n      if (n2.childNodes.length > 1) {\n        cssText = markCssSplits(cssText, n2);\n      }\n      attributes._cssText = cssText;\n    }\n  }\n  if ([\"input\", \"textarea\", \"select\"].includes(tagName)) {\n    const value = n2.value;\n    const checked = n2.checked;\n    if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n      attributes.value = maskInputValue({\n        element: n2,\n        type: getInputType(n2),\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 (n2.selected && !maskInputOptions[\"select\"]) {\n      attributes.selected = true;\n    } else {\n      delete attributes.selected;\n    }\n  }\n  if (tagName === \"dialog\" && n2.open) {\n    attributes.rr_open_mode = n2.matches(\"dialog:modal\") ? \"modal\" : \"non-modal\";\n  }\n  if (tagName === \"canvas\" && recordCanvas) {\n    if (n2.__context === \"2d\") {\n      if (!is2DCanvasBlank(n2)) {\n        attributes.rr_dataURL = n2.toDataURL(\n          dataURLOptions.type,\n          dataURLOptions.quality\n        );\n      }\n    } else if (!(\"__context\" in n2)) {\n      const canvasDataURL = n2.toDataURL(\n        dataURLOptions.type,\n        dataURLOptions.quality\n      );\n      const blankCanvas = doc.createElement(\"canvas\");\n      blankCanvas.width = n2.width;\n      blankCanvas.height = n2.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 = n2;\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 ([\"audio\", \"video\"].includes(tagName)) {\n    const mediaAttributes = attributes;\n    mediaAttributes.rr_mediaState = n2.paused ? \"paused\" : \"played\";\n    mediaAttributes.rr_mediaCurrentTime = n2.currentTime;\n    mediaAttributes.rr_mediaPlaybackRate = n2.playbackRate;\n    mediaAttributes.rr_mediaMuted = n2.muted;\n    mediaAttributes.rr_mediaLoop = n2.loop;\n    mediaAttributes.rr_mediaVolume = n2.volume;\n  }\n  if (!newlyAddedElement) {\n    if (n2.scrollLeft) {\n      attributes.rr_scrollLeft = n2.scrollLeft;\n    }\n    if (n2.scrollTop) {\n      attributes.rr_scrollTop = n2.scrollTop;\n    }\n  }\n  if (needBlock) {\n    const { width, height } = n2.getBoundingClientRect();\n    attributes = {\n      class: attributes.class,\n      rr_width: `${width}px`,\n      rr_height: `${height}px`\n    };\n  }\n  if (tagName === \"iframe\" && !keepIframeSrcFn(attributes.src)) {\n    if (!n2.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 (e2) {\n  }\n  return {\n    type: NodeType$3.Element,\n    tagName,\n    attributes,\n    childNodes: [],\n    isSVG: isSVGElement(n2) || 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 slimDOMDefaults(_slimDOMOptions) {\n  if (_slimDOMOptions === true || _slimDOMOptions === \"all\") {\n    return {\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  } else if (_slimDOMOptions) {\n    return _slimDOMOptions;\n  }\n  return {};\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n  if (slimDOMOptions.comment && sn.type === NodeType$3.Comment) {\n    return true;\n  } else if (sn.type === NodeType$3.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}\nfunction serializeNodeWithId(n2, options) {\n  const {\n    doc,\n    mirror: mirror2,\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    cssCaptured = false\n  } = options;\n  let { needsMask } = options;\n  let { preserveWhiteSpace = true } = options;\n  if (!needsMask) {\n    const checkAncestors = needsMask === void 0;\n    needsMask = needMaskingText(\n      n2,\n      maskTextClass,\n      maskTextSelector,\n      checkAncestors\n    );\n  }\n  const _serializedNode = serializeNode(n2, {\n    doc,\n    mirror: mirror2,\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    cssCaptured\n  });\n  if (!_serializedNode) {\n    console.warn(n2, \"not serialized\");\n    return null;\n  }\n  let id;\n  if (mirror2.hasNode(n2)) {\n    id = mirror2.getId(n2);\n  } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType$3.Text && !_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  mirror2.add(n2, serializedNode);\n  if (id === IGNORED_NODE) {\n    return null;\n  }\n  if (onSerialize) {\n    onSerialize(n2);\n  }\n  let recordChild = !skipChild;\n  if (serializedNode.type === NodeType$3.Element) {\n    recordChild = recordChild && !serializedNode.needBlock;\n    delete serializedNode.needBlock;\n    const shadowRootEl = index$1.shadowRoot(n2);\n    if (shadowRootEl && isNativeShadowDom(shadowRootEl))\n      serializedNode.isShadowHost = true;\n  }\n  if ((serializedNode.type === NodeType$3.Document || serializedNode.type === NodeType$3.Element) && recordChild) {\n    if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"head\") {\n      preserveWhiteSpace = false;\n    }\n    const bypassOptions = {\n      doc,\n      mirror: mirror2,\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      cssCaptured: false\n    };\n    if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n    else {\n      if (serializedNode.type === NodeType$3.Element && serializedNode.attributes._cssText !== void 0 && typeof serializedNode.attributes._cssText === \"string\") {\n        bypassOptions.cssCaptured = true;\n      }\n      for (const childN of Array.from(index$1.childNodes(n2))) {\n        const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n        if (serializedChildNode) {\n          serializedNode.childNodes.push(serializedChildNode);\n        }\n      }\n    }\n    let shadowRootEl = null;\n    if (isElement(n2) && (shadowRootEl = index$1.shadowRoot(n2))) {\n      for (const childN of Array.from(index$1.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$1.parentNode(n2);\n  if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n    serializedNode.isShadow = true;\n  }\n  if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"iframe\") {\n    onceIframeLoaded(\n      n2,\n      () => {\n        const iframeDoc = n2.contentDocument;\n        if (iframeDoc && onIframeLoad) {\n          const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n            doc: iframeDoc,\n            mirror: mirror2,\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          });\n          if (serializedIframeNode) {\n            onIframeLoad(\n              n2,\n              serializedIframeNode\n            );\n          }\n        }\n      },\n      iframeLoadTimeout\n    );\n  }\n  if (serializedNode.type === NodeType$3.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      n2,\n      () => {\n        if (onStylesheetLoad) {\n          const serializedLinkNode = serializeNodeWithId(n2, {\n            doc,\n            mirror: mirror2,\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          });\n          if (serializedLinkNode) {\n            onStylesheetLoad(\n              n2,\n              serializedLinkNode\n            );\n          }\n        }\n      },\n      stylesheetLoadTimeout\n    );\n  }\n  return serializedNode;\n}\nfunction snapshot(n2, options) {\n  const {\n    mirror: mirror2 = 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  } = 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 = slimDOMDefaults(slimDOM);\n  return serializeNodeWithId(n2, {\n    doc: n2,\n    mirror: mirror2,\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  });\n}\nfunction getDefaultExportFromCjs$1(x2) {\n  return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace$1(n2) {\n  if (n2.__esModule) return n2;\n  var f2 = n2.default;\n  if (typeof f2 == \"function\") {\n    var a2 = function a22() {\n      if (this instanceof a22) {\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(n2).forEach(function(k) {\n    var d = Object.getOwnPropertyDescriptor(n2, k);\n    Object.defineProperty(a2, k, d.get ? d : {\n      enumerable: true,\n      get: function() {\n        return n2[k];\n      }\n    });\n  });\n  return a2;\n}\nvar picocolors_browser$1 = { exports: {} };\nvar x$1 = String;\nvar create$1 = function() {\n  return { isColorSupported: false, reset: x$1, bold: x$1, dim: x$1, italic: x$1, underline: x$1, inverse: x$1, hidden: x$1, strikethrough: x$1, black: x$1, red: x$1, green: x$1, yellow: x$1, blue: x$1, magenta: x$1, cyan: x$1, white: x$1, gray: x$1, bgBlack: x$1, bgRed: x$1, bgGreen: x$1, bgYellow: x$1, bgBlue: x$1, bgMagenta: x$1, bgCyan: x$1, bgWhite: x$1 };\n};\npicocolors_browser$1.exports = create$1();\npicocolors_browser$1.exports.createColors = create$1;\nvar picocolors_browserExports$1 = picocolors_browser$1.exports;\nconst __viteBrowserExternal$2 = {};\nconst __viteBrowserExternal$1$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n  __proto__: null,\n  default: __viteBrowserExternal$2\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2$1 = /* @__PURE__ */ getAugmentedNamespace$1(__viteBrowserExternal$1$1);\nlet pico$1 = picocolors_browserExports$1;\nlet terminalHighlight$1$1 = require$$2$1;\nlet CssSyntaxError$3$1 = class CssSyntaxError extends Error {\n  constructor(message, line, column, source, file, plugin22) {\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 (plugin22) {\n      this.plugin = plugin22;\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$1.isColorSupported;\n    if (terminalHighlight$1$1) {\n      if (color) css = terminalHighlight$1$1(css);\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    let mark, aside;\n    if (color) {\n      let { bold, gray, red } = pico$1.createColors(true);\n      mark = (text) => bold(red(text));\n      aside = (text) => gray(text);\n    } else {\n      mark = aside = (str) => str;\n    }\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        let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n        return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n      }\n      return \" \" + aside(gutter) + 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};\nvar cssSyntaxError$1 = CssSyntaxError$3$1;\nCssSyntaxError$3$1.default = CssSyntaxError$3$1;\nvar symbols$1 = {};\nsymbols$1.isClean = Symbol(\"isClean\");\nsymbols$1.my = Symbol(\"my\");\nconst DEFAULT_RAW$1 = {\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};\nfunction capitalize$1(str) {\n  return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2$1 = 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 i2 = 0; i2 < node2.nodes.length; i2++) {\n      let child = node2.nodes[i2];\n      let before = this.raw(child, \"before\");\n      if (before) this.builder(before);\n      this.stringify(child, last !== i2 || 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$1[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$1(detect);\n      if (this[method]) {\n        value = this[method](root2, node2);\n      } else {\n        root2.walk((i2) => {\n          value = i2.raws[own];\n          if (typeof value !== \"undefined\") return false;\n        });\n      }\n    }\n    if (typeof value === \"undefined\") value = DEFAULT_RAW$1[detect];\n    root2.rawCache[detect] = value;\n    return value;\n  }\n  rawBeforeClose(root2) {\n    let value;\n    root2.walk((i2) => {\n      if (i2.nodes && i2.nodes.length > 0) {\n        if (typeof i2.raws.after !== \"undefined\") {\n          value = i2.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((i2) => {\n      if (typeof i2.raws.before !== \"undefined\") {\n        value = i2.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((i2) => {\n      if (typeof i2.raws.before !== \"undefined\") {\n        value = i2.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((i2) => {\n      if (i2.type !== \"decl\") {\n        value = i2.raws.between;\n        if (typeof value !== \"undefined\") return false;\n      }\n    });\n    return value;\n  }\n  rawBeforeRule(root2) {\n    let value;\n    root2.walk((i2) => {\n      if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n        if (typeof i2.raws.before !== \"undefined\") {\n          value = i2.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((i2) => {\n      if (typeof i2.raws.between !== \"undefined\") {\n        value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n        return false;\n      }\n    });\n    return value;\n  }\n  rawEmptyBody(root2) {\n    let value;\n    root2.walk((i2) => {\n      if (i2.nodes && i2.nodes.length === 0) {\n        value = i2.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((i2) => {\n      let p = i2.parent;\n      if (p && p !== root2 && p.parent && p.parent === root2) {\n        if (typeof i2.raws.before !== \"undefined\") {\n          let parts = i2.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((i2) => {\n      if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n        value = i2.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};\nvar stringifier$1 = Stringifier$2$1;\nStringifier$2$1.default = Stringifier$2$1;\nlet Stringifier$1$1 = stringifier$1;\nfunction stringify$4$1(node2, builder) {\n  let str = new Stringifier$1$1(builder);\n  str.stringify(node2);\n}\nvar stringify_1$1 = stringify$4$1;\nstringify$4$1.default = stringify$4$1;\nlet { isClean: isClean$2$1, my: my$2$1 } = symbols$1;\nlet CssSyntaxError$2$1 = cssSyntaxError$1;\nlet Stringifier2$1 = stringifier$1;\nlet stringify$3$1 = stringify_1$1;\nfunction cloneNode$1(obj, parent) {\n  let cloned = new obj.constructor();\n  for (let i2 in obj) {\n    if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n      continue;\n    }\n    if (i2 === \"proxyCache\") continue;\n    let value = obj[i2];\n    let type = typeof value;\n    if (i2 === \"parent\" && type === \"object\") {\n      if (parent) cloned[i2] = parent;\n    } else if (i2 === \"source\") {\n      cloned[i2] = value;\n    } else if (Array.isArray(value)) {\n      cloned[i2] = value.map((j) => cloneNode$1(j, cloned));\n    } else {\n      if (type === \"object\" && value !== null) value = cloneNode$1(value);\n      cloned[i2] = value;\n    }\n  }\n  return cloned;\n}\nlet Node$4$1 = class Node2 {\n  constructor(defaults = {}) {\n    this.raws = {};\n    this[isClean$2$1] = false;\n    this[my$2$1] = 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$1(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$2$1(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  markDirty() {\n    if (this[isClean$2$1]) {\n      this[isClean$2$1] = false;\n      let next = this;\n      while (next = next.parent) {\n        next[isClean$2$1] = 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, stringRepresentation) {\n    let pos = this.source.start;\n    if (opts.index) {\n      pos = this.positionInside(opts.index, stringRepresentation);\n    } else if (opts.word) {\n      stringRepresentation = this.toString();\n      let index2 = stringRepresentation.indexOf(opts.word);\n      if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n    }\n    return pos;\n  }\n  positionInside(index2, stringRepresentation) {\n    let string = stringRepresentation || this.toString();\n    let column = this.source.start.column;\n    let line = this.source.start.line;\n    for (let i2 = 0; i2 < index2; i2++) {\n      if (string[i2] === \"\\n\") {\n        column = 1;\n        line += 1;\n      } else {\n        column += 1;\n      }\n    }\n    return { column, line };\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 start = {\n      column: this.source.start.column,\n      line: this.source.start.line\n    };\n    let end = this.source.end ? {\n      column: this.source.end.column + 1,\n      line: this.source.end.line\n    } : {\n      column: start.column + 1,\n      line: start.line\n    };\n    if (opts.word) {\n      let stringRepresentation = this.toString();\n      let index2 = stringRepresentation.indexOf(opts.word);\n      if (index2 !== -1) {\n        start = this.positionInside(index2, stringRepresentation);\n        end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n      }\n    } else {\n      if (opts.start) {\n        start = {\n          column: opts.start.column,\n          line: opts.start.line\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        };\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 = { column: start.column + 1, line: start.line };\n    }\n    return { end, start };\n  }\n  raw(prop, defaultType) {\n    let str = new Stringifier2$1();\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((i2) => {\n          if (typeof i2 === \"object\" && i2.toJSON) {\n            return i2.toJSON(null, inputs);\n          } else {\n            return i2;\n          }\n        });\n      } else if (typeof value === \"object\" && value.toJSON) {\n        fixed[name] = value.toJSON(null, inputs);\n      } else if (name === \"source\") {\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$3$1) {\n    if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n    let result2 = \"\";\n    stringifier2(this, (i2) => {\n      result2 += i2;\n    });\n    return result2;\n  }\n  warn(result2, text, opts) {\n    let data = { node: this };\n    for (let i2 in opts) data[i2] = opts[i2];\n    return result2.warn(text, data);\n  }\n  get proxyOf() {\n    return this;\n  }\n};\nvar node$1 = Node$4$1;\nNode$4$1.default = Node$4$1;\nlet Node$3$1 = node$1;\nlet Declaration$4$1 = class Declaration extends Node$3$1 {\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  get variable() {\n    return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n  }\n};\nvar declaration$1 = Declaration$4$1;\nDeclaration$4$1.default = Declaration$4$1;\nlet urlAlphabet$1 = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet nanoid$1$1 = (size = 21) => {\n  let id = \"\";\n  let i2 = size;\n  while (i2--) {\n    id += urlAlphabet$1[Math.random() * 64 | 0];\n  }\n  return id;\n};\nvar nonSecure$1 = { nanoid: nanoid$1$1};\nlet { SourceMapConsumer: SourceMapConsumer$2$1, SourceMapGenerator: SourceMapGenerator$2$1 } = require$$2$1;\nlet { existsSync: existsSync$1, readFileSync: readFileSync$1 } = require$$2$1;\nlet { dirname: dirname$1$1, join: join$1 } = require$$2$1;\nfunction fromBase64$1(str) {\n  if (Buffer) {\n    return Buffer.from(str, \"base64\").toString();\n  } else {\n    return window.atob(str);\n  }\n}\nlet PreviousMap$2$1 = 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$1$1(this.mapFile);\n    if (text) this.text = text;\n  }\n  consumer() {\n    if (!this.consumerCache) {\n      this.consumerCache = new SourceMapConsumer$2$1(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    if (charsetUri.test(text) || uri.test(text)) {\n      return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n    }\n    if (baseCharsetUri.test(text) || baseUri.test(text)) {\n      return fromBase64$1(text.substr(RegExp.lastMatch.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=/gm);\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$1$1(path);\n    if (existsSync$1(path)) {\n      this.mapFile = path;\n      return readFileSync$1(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$2$1) {\n        return SourceMapGenerator$2$1.fromSourceMap(prev).toString();\n      } else if (prev instanceof SourceMapGenerator$2$1) {\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$1(dirname$1$1(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};\nvar previousMap$1 = PreviousMap$2$1;\nPreviousMap$2$1.default = PreviousMap$2$1;\nlet { SourceMapConsumer: SourceMapConsumer$1$1, SourceMapGenerator: SourceMapGenerator$1$1 } = require$$2$1;\nlet { fileURLToPath: fileURLToPath$1, pathToFileURL: pathToFileURL$1$1 } = require$$2$1;\nlet { isAbsolute: isAbsolute$1, resolve: resolve$1$1 } = require$$2$1;\nlet { nanoid: nanoid$2 } = nonSecure$1;\nlet terminalHighlight$2 = require$$2$1;\nlet CssSyntaxError$1$1 = cssSyntaxError$1;\nlet PreviousMap$1$1 = previousMap$1;\nlet fromOffsetCache$1 = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1$1 = Boolean(SourceMapConsumer$1$1 && SourceMapGenerator$1$1);\nlet pathAvailable$1$1 = Boolean(resolve$1$1 && isAbsolute$1);\nlet Input$4$1 = class Input {\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    if (opts.from) {\n      if (!pathAvailable$1$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute$1(opts.from)) {\n        this.file = opts.from;\n      } else {\n        this.file = resolve$1$1(opts.from);\n      }\n    }\n    if (pathAvailable$1$1 && sourceMapAvailable$1$1) {\n      let map = new PreviousMap$1$1(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$2(6) + \">\";\n    }\n    if (this.map) this.map.file = this.from;\n  }\n  error(message, line, column, opts = {}) {\n    let result2, endLine, endColumn;\n    if (line && typeof line === \"object\") {\n      let start = line;\n      let end = column;\n      if (typeof start.offset === \"number\") {\n        let pos = this.fromOffset(start.offset);\n        line = pos.line;\n        column = pos.col;\n      } else {\n        line = start.line;\n        column = start.column;\n      }\n      if (typeof end.offset === \"number\") {\n        let pos = this.fromOffset(end.offset);\n        endLine = pos.line;\n        endColumn = pos.col;\n      } else {\n        endLine = end.line;\n        endColumn = end.column;\n      }\n    } else if (!column) {\n      let pos = this.fromOffset(line);\n      line = pos.line;\n      column = pos.col;\n    }\n    let origin = this.origin(line, column, endLine, endColumn);\n    if (origin) {\n      result2 = new CssSyntaxError$1$1(\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$1$1(\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, line, source: this.css };\n    if (this.file) {\n      if (pathToFileURL$1$1) {\n        result2.input.url = pathToFileURL$1$1(this.file).toString();\n      }\n      result2.input.file = this.file;\n    }\n    return result2;\n  }\n  fromOffset(offset) {\n    let lastLine, lineToIndex;\n    if (!this[fromOffsetCache$1]) {\n      let lines = this.css.split(\"\\n\");\n      lineToIndex = new Array(lines.length);\n      let prevIndex = 0;\n      for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n        lineToIndex[i2] = prevIndex;\n        prevIndex += lines[i2].length + 1;\n      }\n      this[fromOffsetCache$1] = lineToIndex;\n    } else {\n      lineToIndex = this[fromOffsetCache$1];\n    }\n    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$1$1(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$1(from.source)) {\n      fromUrl = pathToFileURL$1$1(from.source);\n    } else {\n      fromUrl = new URL(\n        from.source,\n        this.map.consumer().sourceRoot || pathToFileURL$1$1(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$1) {\n        result2.file = fileURLToPath$1(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  get from() {\n    return this.file || this.id;\n  }\n};\nvar input$1 = Input$4$1;\nInput$4$1.default = Input$4$1;\nif (terminalHighlight$2 && terminalHighlight$2.registerInput) {\n  terminalHighlight$2.registerInput(Input$4$1);\n}\nlet { SourceMapConsumer: SourceMapConsumer$3, SourceMapGenerator: SourceMapGenerator$3 } = require$$2$1;\nlet { dirname: dirname$2, relative: relative$1, resolve: resolve$2, sep: sep$1 } = require$$2$1;\nlet { pathToFileURL: pathToFileURL$2 } = require$$2$1;\nlet Input$3$1 = input$1;\nlet sourceMapAvailable$2 = Boolean(SourceMapConsumer$3 && SourceMapGenerator$3);\nlet pathAvailable$2 = Boolean(dirname$2 && resolve$2 && relative$1 && sep$1);\nlet MapGenerator$2$1 = class MapGenerator {\n  constructor(stringify2, root2, opts, cssString) {\n    this.stringify = stringify2;\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$2(prev.file);\n      let map;\n      if (this.mapOpts.sourcesContent === false) {\n        map = new SourceMapConsumer$3(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 i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n        node2 = this.root.nodes[i2];\n        if (node2.type !== \"comment\") continue;\n        if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n          this.root.removeChild(i2);\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$2 && sourceMapAvailable$2 && this.isMap()) {\n      return this.generateMap();\n    } else {\n      let result2 = \"\";\n      this.stringify(this.root, (i2) => {\n        result2 += i2;\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$3.fromSourceMap(prev, {\n        ignoreInvalidMapping: true\n      });\n    } else {\n      this.map = new SourceMapGenerator$3({\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$3({\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 lines, last;\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 p = node2.parent || { raws: {} };\n        let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n        if (!childless || node2 !== p.last || p.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((i2) => i2.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((i2) => i2.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((i2) => i2.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$2(this.opts.to) : \".\";\n    if (typeof this.mapOpts.annotation === \"string\") {\n      from = dirname$2(resolve$2(from, this.mapOpts.annotation));\n    }\n    let path = relative$1(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$3$1(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$2) {\n      let fileURL = pathToFileURL$2(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$1 === \"\\\\\") {\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};\nvar mapGenerator$1 = MapGenerator$2$1;\nlet Node$2$1 = node$1;\nlet Comment$4$1 = class Comment extends Node$2$1 {\n  constructor(defaults) {\n    super(defaults);\n    this.type = \"comment\";\n  }\n};\nvar comment$1 = Comment$4$1;\nComment$4$1.default = Comment$4$1;\nlet { isClean: isClean$1$1, my: my$1$1 } = symbols$1;\nlet Declaration$3$1 = declaration$1;\nlet Comment$3$1 = comment$1;\nlet Node$1$1 = node$1;\nlet parse$4$1, Rule$4$1, AtRule$4$1, Root$6$1;\nfunction cleanSource$1(nodes) {\n  return nodes.map((i2) => {\n    if (i2.nodes) i2.nodes = cleanSource$1(i2.nodes);\n    delete i2.source;\n    return i2;\n  });\n}\nfunction markDirtyUp$1(node2) {\n  node2[isClean$1$1] = false;\n  if (node2.proxyOf.nodes) {\n    for (let i2 of node2.proxyOf.nodes) {\n      markDirtyUp$1(i2);\n    }\n  }\n}\nlet Container$7$1 = class Container extends Node$1$1 {\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((i2) => {\n                if (typeof i2 === \"function\") {\n                  return (child, index2) => i2(child.toProxy(), index2);\n                } else {\n                  return i2;\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((i2) => i2.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(add, this.proxyOf.nodes[existIndex], type).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$1(parse$4$1(nodes).nodes);\n    } else if (typeof nodes === \"undefined\") {\n      nodes = [];\n    } else if (Array.isArray(nodes)) {\n      nodes = nodes.slice(0);\n      for (let i2 of nodes) {\n        if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n      }\n    } else if (nodes.type === \"root\" && this.type !== \"document\") {\n      nodes = nodes.nodes.slice(0);\n      for (let i2 of nodes) {\n        if (i2.parent) i2.parent.removeChild(i2, \"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$3$1(nodes)];\n    } else if (nodes.selector) {\n      nodes = [new Rule$4$1(nodes)];\n    } else if (nodes.name) {\n      nodes = [new AtRule$4$1(nodes)];\n    } else if (nodes.text) {\n      nodes = [new Comment$3$1(nodes)];\n    } else {\n      throw new Error(\"Unknown node type in node creation\");\n    }\n    let processed = nodes.map((i2) => {\n      if (!i2[my$1$1]) Container.rebuild(i2);\n      i2 = i2.proxyOf;\n      if (i2.parent) i2.parent.removeChild(i2);\n      if (i2[isClean$1$1]) markDirtyUp$1(i2);\n      if (typeof i2.raws.before === \"undefined\") {\n        if (sample && typeof sample.raws.before !== \"undefined\") {\n          i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n        }\n      }\n      i2.parent = this.proxyOf;\n      return i2;\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, i2) => {\n      let result2;\n      try {\n        result2 = callback(child, i2);\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, i2) => {\n        if (child.type === \"atrule\") {\n          return callback(child, i2);\n        }\n      });\n    }\n    if (name instanceof RegExp) {\n      return this.walk((child, i2) => {\n        if (child.type === \"atrule\" && name.test(child.name)) {\n          return callback(child, i2);\n        }\n      });\n    }\n    return this.walk((child, i2) => {\n      if (child.type === \"atrule\" && child.name === name) {\n        return callback(child, i2);\n      }\n    });\n  }\n  walkComments(callback) {\n    return this.walk((child, i2) => {\n      if (child.type === \"comment\") {\n        return callback(child, i2);\n      }\n    });\n  }\n  walkDecls(prop, callback) {\n    if (!callback) {\n      callback = prop;\n      return this.walk((child, i2) => {\n        if (child.type === \"decl\") {\n          return callback(child, i2);\n        }\n      });\n    }\n    if (prop instanceof RegExp) {\n      return this.walk((child, i2) => {\n        if (child.type === \"decl\" && prop.test(child.prop)) {\n          return callback(child, i2);\n        }\n      });\n    }\n    return this.walk((child, i2) => {\n      if (child.type === \"decl\" && child.prop === prop) {\n        return callback(child, i2);\n      }\n    });\n  }\n  walkRules(selector, callback) {\n    if (!callback) {\n      callback = selector;\n      return this.walk((child, i2) => {\n        if (child.type === \"rule\") {\n          return callback(child, i2);\n        }\n      });\n    }\n    if (selector instanceof RegExp) {\n      return this.walk((child, i2) => {\n        if (child.type === \"rule\" && selector.test(child.selector)) {\n          return callback(child, i2);\n        }\n      });\n    }\n    return this.walk((child, i2) => {\n      if (child.type === \"rule\" && child.selector === selector) {\n        return callback(child, i2);\n      }\n    });\n  }\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};\nContainer$7$1.registerParse = (dependant) => {\n  parse$4$1 = dependant;\n};\nContainer$7$1.registerRule = (dependant) => {\n  Rule$4$1 = dependant;\n};\nContainer$7$1.registerAtRule = (dependant) => {\n  AtRule$4$1 = dependant;\n};\nContainer$7$1.registerRoot = (dependant) => {\n  Root$6$1 = dependant;\n};\nvar container$1 = Container$7$1;\nContainer$7$1.default = Container$7$1;\nContainer$7$1.rebuild = (node2) => {\n  if (node2.type === \"atrule\") {\n    Object.setPrototypeOf(node2, AtRule$4$1.prototype);\n  } else if (node2.type === \"rule\") {\n    Object.setPrototypeOf(node2, Rule$4$1.prototype);\n  } else if (node2.type === \"decl\") {\n    Object.setPrototypeOf(node2, Declaration$3$1.prototype);\n  } else if (node2.type === \"comment\") {\n    Object.setPrototypeOf(node2, Comment$3$1.prototype);\n  } else if (node2.type === \"root\") {\n    Object.setPrototypeOf(node2, Root$6$1.prototype);\n  }\n  node2[my$1$1] = true;\n  if (node2.nodes) {\n    node2.nodes.forEach((child) => {\n      Container$7$1.rebuild(child);\n    });\n  }\n};\nlet Container$6$1 = container$1;\nlet LazyResult$4$1, Processor$3$1;\nlet Document$3$1 = class Document2 extends Container$6$1 {\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$4$1(new Processor$3$1(), this, opts);\n    return lazy.stringify();\n  }\n};\nDocument$3$1.registerLazyResult = (dependant) => {\n  LazyResult$4$1 = dependant;\n};\nDocument$3$1.registerProcessor = (dependant) => {\n  Processor$3$1 = dependant;\n};\nvar document$1$1 = Document$3$1;\nDocument$3$1.default = Document$3$1;\nlet printed$1 = {};\nvar warnOnce$2$1 = function warnOnce(message) {\n  if (printed$1[message]) return;\n  printed$1[message] = true;\n  if (typeof console !== \"undefined\" && console.warn) {\n    console.warn(message);\n  }\n};\nlet Warning$2$1 = 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};\nvar warning$1 = Warning$2$1;\nWarning$2$1.default = Warning$2$1;\nlet Warning$1$1 = warning$1;\nlet Result$3$1 = class Result {\n  constructor(processor2, root2, opts) {\n    this.processor = processor2;\n    this.messages = [];\n    this.root = root2;\n    this.opts = opts;\n    this.css = void 0;\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$1$1(text, opts);\n    this.messages.push(warning2);\n    return warning2;\n  }\n  warnings() {\n    return this.messages.filter((i2) => i2.type === \"warning\");\n  }\n  get content() {\n    return this.css;\n  }\n};\nvar result$1 = Result$3$1;\nResult$3$1.default = Result$3$1;\nconst SINGLE_QUOTE$1 = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE$1 = '\"'.charCodeAt(0);\nconst BACKSLASH$1 = \"\\\\\".charCodeAt(0);\nconst SLASH$1 = \"/\".charCodeAt(0);\nconst NEWLINE$1 = \"\\n\".charCodeAt(0);\nconst SPACE$1 = \" \".charCodeAt(0);\nconst FEED$1 = \"\\f\".charCodeAt(0);\nconst TAB$1 = \"\t\".charCodeAt(0);\nconst CR$1 = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE$1 = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE$1 = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES$1 = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES$1 = \")\".charCodeAt(0);\nconst OPEN_CURLY$1 = \"{\".charCodeAt(0);\nconst CLOSE_CURLY$1 = \"}\".charCodeAt(0);\nconst SEMICOLON$1 = \";\".charCodeAt(0);\nconst ASTERISK$1 = \"*\".charCodeAt(0);\nconst COLON$1 = \":\".charCodeAt(0);\nconst AT$1 = \"@\".charCodeAt(0);\nconst RE_AT_END$1 = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END$1 = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET$1 = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE$1 = /[\\da-f]/i;\nvar tokenize$1 = function tokenizer(input2, options = {}) {\n  let css = input2.css.valueOf();\n  let ignore = options.ignoreErrors;\n  let code, next, quote, content, escape;\n  let escaped, escapePos, prev, n2, currentToken;\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$1:\n      case SPACE$1:\n      case TAB$1:\n      case CR$1:\n      case FEED$1: {\n        next = pos;\n        do {\n          next += 1;\n          code = css.charCodeAt(next);\n        } while (code === SPACE$1 || code === NEWLINE$1 || code === TAB$1 || code === CR$1 || code === FEED$1);\n        currentToken = [\"space\", css.slice(pos, next)];\n        pos = next - 1;\n        break;\n      }\n      case OPEN_SQUARE$1:\n      case CLOSE_SQUARE$1:\n      case OPEN_CURLY$1:\n      case CLOSE_CURLY$1:\n      case COLON$1:\n      case SEMICOLON$1:\n      case CLOSE_PARENTHESES$1: {\n        let controlChar = String.fromCharCode(code);\n        currentToken = [controlChar, controlChar, pos];\n        break;\n      }\n      case OPEN_PARENTHESES$1: {\n        prev = buffer.length ? buffer.pop()[1] : \"\";\n        n2 = css.charCodeAt(pos + 1);\n        if (prev === \"url\" && n2 !== SINGLE_QUOTE$1 && n2 !== DOUBLE_QUOTE$1 && n2 !== SPACE$1 && n2 !== NEWLINE$1 && n2 !== TAB$1 && n2 !== FEED$1 && n2 !== CR$1) {\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$1) {\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$1.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$1:\n      case DOUBLE_QUOTE$1: {\n        quote = code === SINGLE_QUOTE$1 ? \"'\" : '\"';\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$1) {\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$1: {\n        RE_AT_END$1.lastIndex = pos + 1;\n        RE_AT_END$1.test(css);\n        if (RE_AT_END$1.lastIndex === 0) {\n          next = css.length - 1;\n        } else {\n          next = RE_AT_END$1.lastIndex - 2;\n        }\n        currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n        pos = next;\n        break;\n      }\n      case BACKSLASH$1: {\n        next = pos;\n        escape = true;\n        while (css.charCodeAt(next + 1) === BACKSLASH$1) {\n          next += 1;\n          escape = !escape;\n        }\n        code = css.charCodeAt(next + 1);\n        if (escape && code !== SLASH$1 && code !== SPACE$1 && code !== NEWLINE$1 && code !== TAB$1 && code !== CR$1 && code !== FEED$1) {\n          next += 1;\n          if (RE_HEX_ESCAPE$1.test(css.charAt(next))) {\n            while (RE_HEX_ESCAPE$1.test(css.charAt(next + 1))) {\n              next += 1;\n            }\n            if (css.charCodeAt(next + 1) === SPACE$1) {\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$1 && css.charCodeAt(pos + 1) === ASTERISK$1) {\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$1.lastIndex = pos + 1;\n          RE_WORD_END$1.test(css);\n          if (RE_WORD_END$1.lastIndex === 0) {\n            next = css.length - 1;\n          } else {\n            next = RE_WORD_END$1.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};\nlet Container$5$1 = container$1;\nlet AtRule$3$1 = class AtRule extends Container$5$1 {\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};\nvar atRule$1 = AtRule$3$1;\nAtRule$3$1.default = AtRule$3$1;\nContainer$5$1.registerAtRule(AtRule$3$1);\nlet Container$4$1 = container$1;\nlet LazyResult$3$1, Processor$2$1;\nlet Root$5$1 = class Root extends Container$4$1 {\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$3$1(new Processor$2$1(), this, opts);\n    return lazy.stringify();\n  }\n};\nRoot$5$1.registerLazyResult = (dependant) => {\n  LazyResult$3$1 = dependant;\n};\nRoot$5$1.registerProcessor = (dependant) => {\n  Processor$2$1 = dependant;\n};\nvar root$1 = Root$5$1;\nRoot$5$1.default = Root$5$1;\nContainer$4$1.registerRoot(Root$5$1);\nlet list$2$1 = {\n  comma(string) {\n    return list$2$1.split(string, [\",\"], true);\n  },\n  space(string) {\n    let spaces = [\" \", \"\\n\", \"\t\"];\n    return list$2$1.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};\nvar list_1$1 = list$2$1;\nlist$2$1.default = list$2$1;\nlet Container$3$1 = container$1;\nlet list$1$1 = list_1$1;\nlet Rule$3$1 = class Rule extends Container$3$1 {\n  constructor(defaults) {\n    super(defaults);\n    this.type = \"rule\";\n    if (!this.nodes) this.nodes = [];\n  }\n  get selectors() {\n    return list$1$1.comma(this.selector);\n  }\n  set selectors(values) {\n    let match = this.selector ? this.selector.match(/,\\s*/) : null;\n    let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n    this.selector = values.join(sep2);\n  }\n};\nvar rule$1 = Rule$3$1;\nRule$3$1.default = Rule$3$1;\nContainer$3$1.registerRule(Rule$3$1);\nlet Declaration$2$1 = declaration$1;\nlet tokenizer2$1 = tokenize$1;\nlet Comment$2$1 = comment$1;\nlet AtRule$2$1 = atRule$1;\nlet Root$4$1 = root$1;\nlet Rule$2$1 = rule$1;\nconst SAFE_COMMENT_NEIGHBOR$1 = {\n  empty: true,\n  space: true\n};\nfunction findLastWithPosition$1(tokens) {\n  for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n    let token = tokens[i2];\n    let pos = token[3] || token[2];\n    if (pos) return pos;\n  }\n}\nlet Parser$1$1 = class Parser {\n  constructor(input2) {\n    this.input = input2;\n    this.root = new Root$4$1();\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$2$1();\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 j = colon - 1; j >= 0; j--) {\n      token = tokens[j];\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 token, type, prev;\n    for (let [i2, 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 i2;\n        }\n      }\n      prev = token;\n    }\n    return false;\n  }\n  comment(token) {\n    let node2 = new Comment$2$1();\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 = tokenizer2$1(this.input);\n  }\n  decl(tokens, customProperty) {\n    let node2 = new Declaration$2$1();\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$1(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 i2 = tokens.length - 1; i2 >= 0; i2--) {\n      token = tokens[i2];\n      if (token[1].toLowerCase() === \"!important\") {\n        node2.important = true;\n        let string = this.stringFrom(tokens, i2);\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 j = i2; j > 0; j--) {\n          let type = cache[j][0];\n          if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n            break;\n          }\n          str = cache.pop()[1] + str;\n        }\n        if (str.trim().indexOf(\"!\") === 0) {\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((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n    if (hasWord) {\n      node2.raws.between += firstSpaces.map((i2) => i2[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$2$1();\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      }\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 i2 = 0; i2 < length; i2 += 1) {\n      token = tokens[i2];\n      type = token[0];\n      if (type === \"space\" && i2 === length - 1 && !customProperty) {\n        clean = false;\n      } else if (type === \"comment\") {\n        prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n        next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n        if (!SAFE_COMMENT_NEIGHBOR$1[prev] && !SAFE_COMMENT_NEIGHBOR$1[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, i2) => all + i2[1], \"\");\n      node2.raws[prop] = { raw, value };\n    }\n    node2[prop] = value;\n  }\n  rule(tokens) {\n    tokens.pop();\n    let node2 = new Rule$2$1();\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 i2 = from; i2 < tokens.length; i2++) {\n      result2 += tokens[i2][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\",\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};\nvar parser$1 = Parser$1$1;\nlet Container$2$1 = container$1;\nlet Parser2$1 = parser$1;\nlet Input$2$1 = input$1;\nfunction parse$3$1(css, opts) {\n  let input2 = new Input$2$1(css, opts);\n  let parser2 = new Parser2$1(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}\nvar parse_1$1 = parse$3$1;\nparse$3$1.default = parse$3$1;\nContainer$2$1.registerParse(parse$3$1);\nlet { isClean: isClean$3, my: my$3 } = symbols$1;\nlet MapGenerator$1$1 = mapGenerator$1;\nlet stringify$2$1 = stringify_1$1;\nlet Container$1$1 = container$1;\nlet Document$2$1 = document$1$1;\nlet warnOnce$1$1 = warnOnce$2$1;\nlet Result$2$1 = result$1;\nlet parse$2$1 = parse_1$1;\nlet Root$3$1 = root$1;\nconst TYPE_TO_CLASS_NAME$1 = {\n  atrule: \"AtRule\",\n  comment: \"Comment\",\n  decl: \"Declaration\",\n  document: \"Document\",\n  root: \"Root\",\n  rule: \"Rule\"\n};\nconst PLUGIN_PROPS$1 = {\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};\nconst NOT_VISITORS$1 = {\n  Once: true,\n  postcssPlugin: true,\n  prepare: true\n};\nconst CHILDREN$1 = 0;\nfunction isPromise$1(obj) {\n  return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents$1(node2) {\n  let key = false;\n  let type = TYPE_TO_CLASS_NAME$1[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$1,\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$1, type + \"Exit\"];\n  } else {\n    return [type, type + \"Exit\"];\n  }\n}\nfunction toStack$1(node2) {\n  let events;\n  if (node2.type === \"document\") {\n    events = [\"Document\", CHILDREN$1, \"DocumentExit\"];\n  } else if (node2.type === \"root\") {\n    events = [\"Root\", CHILDREN$1, \"RootExit\"];\n  } else {\n    events = getEvents$1(node2);\n  }\n  return {\n    eventIndex: 0,\n    events,\n    iterator: 0,\n    node: node2,\n    visitorIndex: 0,\n    visitors: []\n  };\n}\nfunction cleanMarks$1(node2) {\n  node2[isClean$3] = false;\n  if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks$1(i2));\n  return node2;\n}\nlet postcss$2$1 = {};\nlet LazyResult$2$1 = class LazyResult {\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$1(css);\n    } else if (css instanceof LazyResult || css instanceof Result$2$1) {\n      root2 = cleanMarks$1(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$2$1;\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$3]) {\n        Container$1$1.rebuild(root2);\n      }\n    }\n    this.result = new Result$2$1(processor2, root2, opts);\n    this.helpers = { ...postcss$2$1, postcss: postcss$2$1, result: this.result };\n    this.plugins = this.processor.plugins.map((plugin22) => {\n      if (typeof plugin22 === \"object\" && plugin22.prepare) {\n        return { ...plugin22, ...plugin22.prepare(this.result) };\n      } else {\n        return plugin22;\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 plugin22 = 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 = plugin22.postcssPlugin;\n        error.setMessage();\n      } else if (plugin22.postcssVersion) {\n        if (process.env.NODE_ENV !== \"production\") {\n          let pluginName = plugin22.postcssPlugin;\n          let pluginVer = plugin22.postcssVersion;\n          let runtimeVer = this.result.processor.version;\n          let a2 = pluginVer.split(\".\");\n          let b = runtimeVer.split(\".\");\n          if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[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 = (plugin22, type, cb) => {\n      if (!this.listeners[type]) this.listeners[type] = [];\n      this.listeners[type].push([plugin22, cb]);\n    };\n    for (let plugin22 of this.plugins) {\n      if (typeof plugin22 === \"object\") {\n        for (let event in plugin22) {\n          if (!PLUGIN_PROPS$1[event] && /^[A-Z]/.test(event)) {\n            throw new Error(\n              `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n            );\n          }\n          if (!NOT_VISITORS$1[event]) {\n            if (typeof plugin22[event] === \"object\") {\n              for (let filter in plugin22[event]) {\n                if (filter === \"*\") {\n                  add(plugin22, event, plugin22[event][filter]);\n                } else {\n                  add(\n                    plugin22,\n                    event + \"-\" + filter.toLowerCase(),\n                    plugin22[event][filter]\n                  );\n                }\n              }\n            } else if (typeof plugin22[event] === \"function\") {\n              add(plugin22, event, plugin22[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 i2 = 0; i2 < this.plugins.length; i2++) {\n      let plugin22 = this.plugins[i2];\n      let promise = this.runOnRoot(plugin22);\n      if (isPromise$1(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$3]) {\n        root2[isClean$3] = true;\n        let stack = [toStack$1(root2)];\n        while (stack.length > 0) {\n          let promise = this.visitTick(stack);\n          if (isPromise$1(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 [plugin22, visitor] of this.listeners.OnceExit) {\n          this.result.lastPlugin = plugin22;\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(plugin22) {\n    this.result.lastPlugin = plugin22;\n    try {\n      if (typeof plugin22 === \"object\" && plugin22.Once) {\n        if (this.result.root.type === \"document\") {\n          let roots = this.result.root.nodes.map(\n            (root2) => plugin22.Once(root2, this.helpers)\n          );\n          if (isPromise$1(roots[0])) {\n            return Promise.all(roots);\n          }\n          return roots;\n        }\n        return plugin22.Once(this.result.root, this.helpers);\n      } else if (typeof plugin22 === \"function\") {\n        return plugin22(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$2$1;\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$1$1(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 plugin22 of this.plugins) {\n      let promise = this.runOnRoot(plugin22);\n      if (isPromise$1(promise)) {\n        throw this.getAsyncError();\n      }\n    }\n    this.prepareVisitors();\n    if (this.hasListener) {\n      let root2 = this.result.root;\n      while (!root2[isClean$3]) {\n        root2[isClean$3] = 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        warnOnce$1$1(\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 [plugin22, visitor] of visitors) {\n      this.result.lastPlugin = plugin22;\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$1(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 [plugin22, 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 = plugin22;\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$3]) {\n          child[isClean$3] = true;\n          stack.push(toStack$1(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$1) {\n        if (node2.nodes && node2.nodes.length) {\n          node2[isClean$3] = 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$3] = true;\n    let events = getEvents$1(node2);\n    for (let event of events) {\n      if (event === CHILDREN$1) {\n        if (node2.nodes) {\n          node2.each((child) => {\n            if (!child[isClean$3]) 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  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};\nLazyResult$2$1.registerPostcss = (dependant) => {\n  postcss$2$1 = dependant;\n};\nvar lazyResult$1 = LazyResult$2$1;\nLazyResult$2$1.default = LazyResult$2$1;\nRoot$3$1.registerLazyResult(LazyResult$2$1);\nDocument$2$1.registerLazyResult(LazyResult$2$1);\nlet MapGenerator2$1 = mapGenerator$1;\nlet stringify$1$1 = stringify_1$1;\nlet warnOnce2$1 = warnOnce$2$1;\nlet parse$1$1 = parse_1$1;\nconst Result$1$1 = result$1;\nlet NoWorkResult$1$1 = class NoWorkResult {\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$1$1;\n    this.result = new Result$1$1(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 MapGenerator2$1(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$1(\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  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$1$1;\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};\nvar noWorkResult$1 = NoWorkResult$1$1;\nNoWorkResult$1$1.default = NoWorkResult$1$1;\nlet NoWorkResult2$1 = noWorkResult$1;\nlet LazyResult$1$1 = lazyResult$1;\nlet Document$1$1 = document$1$1;\nlet Root$2$1 = root$1;\nlet Processor$1$1 = class Processor {\n  constructor(plugins = []) {\n    this.version = \"8.4.38\";\n    this.plugins = this.normalize(plugins);\n  }\n  normalize(plugins) {\n    let normalized = [];\n    for (let i2 of plugins) {\n      if (i2.postcss === true) {\n        i2 = i2();\n      } else if (i2.postcss) {\n        i2 = i2.postcss;\n      }\n      if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n        normalized = normalized.concat(i2.plugins);\n      } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n        normalized.push(i2);\n      } else if (typeof i2 === \"function\") {\n        normalized.push(i2);\n      } else if (typeof i2 === \"object\" && (i2.parse || i2.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(i2 + \" 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 NoWorkResult2$1(this, css, opts);\n    } else {\n      return new LazyResult$1$1(this, css, opts);\n    }\n  }\n  use(plugin22) {\n    this.plugins = this.plugins.concat(this.normalize([plugin22]));\n    return this;\n  }\n};\nvar processor$1 = Processor$1$1;\nProcessor$1$1.default = Processor$1$1;\nRoot$2$1.registerProcessor(Processor$1$1);\nDocument$1$1.registerProcessor(Processor$1$1);\nlet Declaration$1$1 = declaration$1;\nlet PreviousMap2$1 = previousMap$1;\nlet Comment$1$1 = comment$1;\nlet AtRule$1$1 = atRule$1;\nlet Input$1$1 = input$1;\nlet Root$1$1 = root$1;\nlet Rule$1$1 = rule$1;\nfunction fromJSON$1$1(json, inputs) {\n  if (Array.isArray(json)) return json.map((n2) => fromJSON$1$1(n2));\n  let { inputs: ownInputs, ...defaults } = json;\n  if (ownInputs) {\n    inputs = [];\n    for (let input2 of ownInputs) {\n      let inputHydrated = { ...input2, __proto__: Input$1$1.prototype };\n      if (inputHydrated.map) {\n        inputHydrated.map = {\n          ...inputHydrated.map,\n          __proto__: PreviousMap2$1.prototype\n        };\n      }\n      inputs.push(inputHydrated);\n    }\n  }\n  if (defaults.nodes) {\n    defaults.nodes = json.nodes.map((n2) => fromJSON$1$1(n2, 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$1$1(defaults);\n  } else if (defaults.type === \"decl\") {\n    return new Declaration$1$1(defaults);\n  } else if (defaults.type === \"rule\") {\n    return new Rule$1$1(defaults);\n  } else if (defaults.type === \"comment\") {\n    return new Comment$1$1(defaults);\n  } else if (defaults.type === \"atrule\") {\n    return new AtRule$1$1(defaults);\n  } else {\n    throw new Error(\"Unknown node type: \" + json.type);\n  }\n}\nvar fromJSON_1$1 = fromJSON$1$1;\nfromJSON$1$1.default = fromJSON$1$1;\nlet CssSyntaxError2$1 = cssSyntaxError$1;\nlet Declaration2$1 = declaration$1;\nlet LazyResult2$1 = lazyResult$1;\nlet Container2$1 = container$1;\nlet Processor2$1 = processor$1;\nlet stringify$5 = stringify_1$1;\nlet fromJSON$2 = fromJSON_1$1;\nlet Document22 = document$1$1;\nlet Warning2$1 = warning$1;\nlet Comment2$1 = comment$1;\nlet AtRule2$1 = atRule$1;\nlet Result2$1 = result$1;\nlet Input2$1 = input$1;\nlet parse$5 = parse_1$1;\nlet list$3 = list_1$1;\nlet Rule2$1 = rule$1;\nlet Root2$1 = root$1;\nlet Node2$1 = node$1;\nfunction postcss$3(...plugins) {\n  if (plugins.length === 1 && Array.isArray(plugins[0])) {\n    plugins = plugins[0];\n  }\n  return new Processor2$1(plugins);\n}\npostcss$3.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 Processor2$1().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 postcss$3([creator(pluginOpts)]).process(css, processOpts);\n  };\n  return creator;\n};\npostcss$3.stringify = stringify$5;\npostcss$3.parse = parse$5;\npostcss$3.fromJSON = fromJSON$2;\npostcss$3.list = list$3;\npostcss$3.comment = (defaults) => new Comment2$1(defaults);\npostcss$3.atRule = (defaults) => new AtRule2$1(defaults);\npostcss$3.decl = (defaults) => new Declaration2$1(defaults);\npostcss$3.rule = (defaults) => new Rule2$1(defaults);\npostcss$3.root = (defaults) => new Root2$1(defaults);\npostcss$3.document = (defaults) => new Document22(defaults);\npostcss$3.CssSyntaxError = CssSyntaxError2$1;\npostcss$3.Declaration = Declaration2$1;\npostcss$3.Container = Container2$1;\npostcss$3.Processor = Processor2$1;\npostcss$3.Document = Document22;\npostcss$3.Comment = Comment2$1;\npostcss$3.Warning = Warning2$1;\npostcss$3.AtRule = AtRule2$1;\npostcss$3.Result = Result2$1;\npostcss$3.Input = Input2$1;\npostcss$3.Rule = Rule2$1;\npostcss$3.Root = Root2$1;\npostcss$3.Node = Node2$1;\nLazyResult2$1.registerPostcss(postcss$3);\nvar postcss_1$1 = postcss$3;\npostcss$3.default = postcss$3;\nconst postcss$1$1 = /* @__PURE__ */ getDefaultExportFromCjs$1(postcss_1$1);\npostcss$1$1.stringify;\npostcss$1$1.fromJSON;\npostcss$1$1.plugin;\npostcss$1$1.parse;\npostcss$1$1.list;\npostcss$1$1.document;\npostcss$1$1.comment;\npostcss$1$1.atRule;\npostcss$1$1.rule;\npostcss$1$1.decl;\npostcss$1$1.root;\npostcss$1$1.CssSyntaxError;\npostcss$1$1.Declaration;\npostcss$1$1.Container;\npostcss$1$1.Processor;\npostcss$1$1.Document;\npostcss$1$1.Comment;\npostcss$1$1.Warning;\npostcss$1$1.AtRule;\npostcss$1$1.Result;\npostcss$1$1.Input;\npostcss$1$1.Rule;\npostcss$1$1.Root;\npostcss$1$1.Node;\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);\nfunction getDefaultExportFromCjs(x2) {\n  return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace(n2) {\n  if (n2.__esModule) return n2;\n  var f2 = n2.default;\n  if (typeof f2 == \"function\") {\n    var a2 = function a22() {\n      if (this instanceof a22) {\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(n2).forEach(function(k) {\n    var d = Object.getOwnPropertyDescriptor(n2, k);\n    Object.defineProperty(a2, k, d.get ? d : {\n      enumerable: true,\n      get: function() {\n        return n2[k];\n      }\n    });\n  });\n  return a2;\n}\nvar picocolors_browser = { exports: {} };\nvar x$2 = String;\nvar create = function() {\n  return { isColorSupported: false, reset: x$2, bold: x$2, dim: x$2, italic: x$2, underline: x$2, inverse: x$2, hidden: x$2, strikethrough: x$2, black: x$2, red: x$2, green: x$2, yellow: x$2, blue: x$2, magenta: x$2, cyan: x$2, white: x$2, gray: x$2, bgBlack: x$2, bgRed: x$2, bgGreen: x$2, bgYellow: x$2, bgBlue: x$2, bgMagenta: x$2, bgCyan: x$2, bgWhite: x$2 };\n};\npicocolors_browser.exports = create();\npicocolors_browser.exports.createColors = create;\nvar picocolors_browserExports = picocolors_browser.exports;\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);\nlet pico = picocolors_browserExports;\nlet terminalHighlight$1 = require$$2;\nlet CssSyntaxError$3 = class CssSyntaxError2 extends Error {\n  constructor(message, line, column, source, file, plugin22) {\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 (plugin22) {\n      this.plugin = plugin22;\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, CssSyntaxError2);\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    if (terminalHighlight$1) {\n      if (color) css = terminalHighlight$1(css);\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    let mark, aside;\n    if (color) {\n      let { bold, gray, red } = pico.createColors(true);\n      mark = (text) => bold(red(text));\n      aside = (text) => gray(text);\n    } else {\n      mark = aside = (str) => str;\n    }\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        let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n        return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n      }\n      return \" \" + aside(gutter) + 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};\nvar cssSyntaxError = CssSyntaxError$3;\nCssSyntaxError$3.default = CssSyntaxError$3;\nvar symbols = {};\nsymbols.isClean = Symbol(\"isClean\");\nsymbols.my = Symbol(\"my\");\nconst 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};\nfunction capitalize(str) {\n  return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2 = class Stringifier2 {\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 i2 = 0; i2 < node2.nodes.length; i2++) {\n      let child = node2.nodes[i2];\n      let before = this.raw(child, \"before\");\n      if (before) this.builder(before);\n      this.stringify(child, last !== i2 || 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((i2) => {\n          value = i2.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((i2) => {\n      if (i2.nodes && i2.nodes.length > 0) {\n        if (typeof i2.raws.after !== \"undefined\") {\n          value = i2.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((i2) => {\n      if (typeof i2.raws.before !== \"undefined\") {\n        value = i2.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((i2) => {\n      if (typeof i2.raws.before !== \"undefined\") {\n        value = i2.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((i2) => {\n      if (i2.type !== \"decl\") {\n        value = i2.raws.between;\n        if (typeof value !== \"undefined\") return false;\n      }\n    });\n    return value;\n  }\n  rawBeforeRule(root2) {\n    let value;\n    root2.walk((i2) => {\n      if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n        if (typeof i2.raws.before !== \"undefined\") {\n          value = i2.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((i2) => {\n      if (typeof i2.raws.between !== \"undefined\") {\n        value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n        return false;\n      }\n    });\n    return value;\n  }\n  rawEmptyBody(root2) {\n    let value;\n    root2.walk((i2) => {\n      if (i2.nodes && i2.nodes.length === 0) {\n        value = i2.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((i2) => {\n      let p = i2.parent;\n      if (p && p !== root2 && p.parent && p.parent === root2) {\n        if (typeof i2.raws.before !== \"undefined\") {\n          let parts = i2.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((i2) => {\n      if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n        value = i2.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};\nvar stringifier = Stringifier$2;\nStringifier$2.default = Stringifier$2;\nlet Stringifier$1 = stringifier;\nfunction stringify$4(node2, builder) {\n  let str = new Stringifier$1(builder);\n  str.stringify(node2);\n}\nvar stringify_1 = stringify$4;\nstringify$4.default = stringify$4;\nlet { isClean: isClean$2, my: my$2 } = symbols;\nlet CssSyntaxError$2 = cssSyntaxError;\nlet Stringifier22 = stringifier;\nlet stringify$3 = stringify_1;\nfunction cloneNode(obj, parent) {\n  let cloned = new obj.constructor();\n  for (let i2 in obj) {\n    if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n      continue;\n    }\n    if (i2 === \"proxyCache\") continue;\n    let value = obj[i2];\n    let type = typeof value;\n    if (i2 === \"parent\" && type === \"object\") {\n      if (parent) cloned[i2] = parent;\n    } else if (i2 === \"source\") {\n      cloned[i2] = value;\n    } else if (Array.isArray(value)) {\n      cloned[i2] = value.map((j) => cloneNode(j, cloned));\n    } else {\n      if (type === \"object\" && value !== null) value = cloneNode(value);\n      cloned[i2] = value;\n    }\n  }\n  return cloned;\n}\nlet Node$4 = class Node3 {\n  constructor(defaults = {}) {\n    this.raws = {};\n    this[isClean$2] = false;\n    this[my$2] = 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$2(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  markDirty() {\n    if (this[isClean$2]) {\n      this[isClean$2] = false;\n      let next = this;\n      while (next = next.parent) {\n        next[isClean$2] = 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, stringRepresentation) {\n    let pos = this.source.start;\n    if (opts.index) {\n      pos = this.positionInside(opts.index, stringRepresentation);\n    } else if (opts.word) {\n      stringRepresentation = this.toString();\n      let index2 = stringRepresentation.indexOf(opts.word);\n      if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n    }\n    return pos;\n  }\n  positionInside(index2, stringRepresentation) {\n    let string = stringRepresentation || this.toString();\n    let column = this.source.start.column;\n    let line = this.source.start.line;\n    for (let i2 = 0; i2 < index2; i2++) {\n      if (string[i2] === \"\\n\") {\n        column = 1;\n        line += 1;\n      } else {\n        column += 1;\n      }\n    }\n    return { column, line };\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 start = {\n      column: this.source.start.column,\n      line: this.source.start.line\n    };\n    let end = this.source.end ? {\n      column: this.source.end.column + 1,\n      line: this.source.end.line\n    } : {\n      column: start.column + 1,\n      line: start.line\n    };\n    if (opts.word) {\n      let stringRepresentation = this.toString();\n      let index2 = stringRepresentation.indexOf(opts.word);\n      if (index2 !== -1) {\n        start = this.positionInside(index2, stringRepresentation);\n        end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n      }\n    } else {\n      if (opts.start) {\n        start = {\n          column: opts.start.column,\n          line: opts.start.line\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        };\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 = { column: start.column + 1, line: start.line };\n    }\n    return { end, start };\n  }\n  raw(prop, defaultType) {\n    let str = new Stringifier22();\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((i2) => {\n          if (typeof i2 === \"object\" && i2.toJSON) {\n            return i2.toJSON(null, inputs);\n          } else {\n            return i2;\n          }\n        });\n      } else if (typeof value === \"object\" && value.toJSON) {\n        fixed[name] = value.toJSON(null, inputs);\n      } else if (name === \"source\") {\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$3) {\n    if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n    let result2 = \"\";\n    stringifier2(this, (i2) => {\n      result2 += i2;\n    });\n    return result2;\n  }\n  warn(result2, text, opts) {\n    let data = { node: this };\n    for (let i2 in opts) data[i2] = opts[i2];\n    return result2.warn(text, data);\n  }\n  get proxyOf() {\n    return this;\n  }\n};\nvar node = Node$4;\nNode$4.default = Node$4;\nlet Node$3 = node;\nlet Declaration$4 = class Declaration2 extends Node$3 {\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  get variable() {\n    return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n  }\n};\nvar declaration = Declaration$4;\nDeclaration$4.default = Declaration$4;\nlet urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet nanoid$1 = (size = 21) => {\n  let id = \"\";\n  let i2 = size;\n  while (i2--) {\n    id += urlAlphabet[Math.random() * 64 | 0];\n  }\n  return id;\n};\nvar nonSecure = { nanoid: nanoid$1};\nlet { SourceMapConsumer: SourceMapConsumer$2, SourceMapGenerator: SourceMapGenerator$2 } = require$$2;\nlet { existsSync, readFileSync } = require$$2;\nlet { dirname: dirname$1, join } = require$$2;\nfunction fromBase64(str) {\n  if (Buffer) {\n    return Buffer.from(str, \"base64\").toString();\n  } else {\n    return window.atob(str);\n  }\n}\nlet PreviousMap$2 = class PreviousMap2 {\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$1(this.mapFile);\n    if (text) this.text = text;\n  }\n  consumer() {\n    if (!this.consumerCache) {\n      this.consumerCache = new SourceMapConsumer$2(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    if (charsetUri.test(text) || uri.test(text)) {\n      return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n    }\n    if (baseCharsetUri.test(text) || baseUri.test(text)) {\n      return fromBase64(text.substr(RegExp.lastMatch.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=/gm);\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$1(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$2) {\n        return SourceMapGenerator$2.fromSourceMap(prev).toString();\n      } else if (prev instanceof SourceMapGenerator$2) {\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$1(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};\nvar previousMap = PreviousMap$2;\nPreviousMap$2.default = PreviousMap$2;\nlet { SourceMapConsumer: SourceMapConsumer$1, SourceMapGenerator: SourceMapGenerator$1 } = require$$2;\nlet { fileURLToPath, pathToFileURL: pathToFileURL$1 } = require$$2;\nlet { isAbsolute, resolve: resolve$1 } = require$$2;\nlet { nanoid } = nonSecure;\nlet terminalHighlight = require$$2;\nlet CssSyntaxError$1 = cssSyntaxError;\nlet PreviousMap$1 = previousMap;\nlet fromOffsetCache = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1 = Boolean(SourceMapConsumer$1 && SourceMapGenerator$1);\nlet pathAvailable$1 = Boolean(resolve$1 && isAbsolute);\nlet Input$4 = class Input2 {\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    if (opts.from) {\n      if (!pathAvailable$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n        this.file = opts.from;\n      } else {\n        this.file = resolve$1(opts.from);\n      }\n    }\n    if (pathAvailable$1 && sourceMapAvailable$1) {\n      let map = new PreviousMap$1(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 result2, endLine, endColumn;\n    if (line && typeof line === \"object\") {\n      let start = line;\n      let end = column;\n      if (typeof start.offset === \"number\") {\n        let pos = this.fromOffset(start.offset);\n        line = pos.line;\n        column = pos.col;\n      } else {\n        line = start.line;\n        column = start.column;\n      }\n      if (typeof end.offset === \"number\") {\n        let pos = this.fromOffset(end.offset);\n        endLine = pos.line;\n        endColumn = pos.col;\n      } else {\n        endLine = end.line;\n        endColumn = end.column;\n      }\n    } else if (!column) {\n      let pos = this.fromOffset(line);\n      line = pos.line;\n      column = pos.col;\n    }\n    let origin = this.origin(line, column, endLine, endColumn);\n    if (origin) {\n      result2 = new CssSyntaxError$1(\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$1(\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, line, source: this.css };\n    if (this.file) {\n      if (pathToFileURL$1) {\n        result2.input.url = pathToFileURL$1(this.file).toString();\n      }\n      result2.input.file = this.file;\n    }\n    return result2;\n  }\n  fromOffset(offset) {\n    let lastLine, lineToIndex;\n    if (!this[fromOffsetCache]) {\n      let lines = this.css.split(\"\\n\");\n      lineToIndex = new Array(lines.length);\n      let prevIndex = 0;\n      for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n        lineToIndex[i2] = prevIndex;\n        prevIndex += lines[i2].length + 1;\n      }\n      this[fromOffsetCache] = lineToIndex;\n    } else {\n      lineToIndex = this[fromOffsetCache];\n    }\n    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$1(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$1(from.source);\n    } else {\n      fromUrl = new URL(\n        from.source,\n        this.map.consumer().sourceRoot || pathToFileURL$1(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  get from() {\n    return this.file || this.id;\n  }\n};\nvar input = Input$4;\nInput$4.default = Input$4;\nif (terminalHighlight && terminalHighlight.registerInput) {\n  terminalHighlight.registerInput(Input$4);\n}\nlet { SourceMapConsumer, SourceMapGenerator } = require$$2;\nlet { dirname, relative, resolve, sep } = require$$2;\nlet { pathToFileURL } = require$$2;\nlet Input$3 = input;\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\nlet pathAvailable = Boolean(dirname && resolve && relative && sep);\nlet MapGenerator$2 = class MapGenerator2 {\n  constructor(stringify2, root2, opts, cssString) {\n    this.stringify = stringify2;\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 i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n        node2 = this.root.nodes[i2];\n        if (node2.type !== \"comment\") continue;\n        if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n          this.root.removeChild(i2);\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, (i2) => {\n        result2 += i2;\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 lines, last;\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 p = node2.parent || { raws: {} };\n        let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n        if (!childless || node2 !== p.last || p.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((i2) => i2.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((i2) => i2.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((i2) => i2.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$3(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};\nvar mapGenerator = MapGenerator$2;\nlet Node$2 = node;\nlet Comment$4 = class Comment2 extends Node$2 {\n  constructor(defaults) {\n    super(defaults);\n    this.type = \"comment\";\n  }\n};\nvar comment = Comment$4;\nComment$4.default = Comment$4;\nlet { isClean: isClean$1, my: my$1 } = symbols;\nlet Declaration$3 = declaration;\nlet Comment$3 = comment;\nlet Node$1 = node;\nlet parse$4, Rule$4, AtRule$4, Root$6;\nfunction cleanSource(nodes) {\n  return nodes.map((i2) => {\n    if (i2.nodes) i2.nodes = cleanSource(i2.nodes);\n    delete i2.source;\n    return i2;\n  });\n}\nfunction markDirtyUp(node2) {\n  node2[isClean$1] = false;\n  if (node2.proxyOf.nodes) {\n    for (let i2 of node2.proxyOf.nodes) {\n      markDirtyUp(i2);\n    }\n  }\n}\nlet Container$7 = class Container2 extends Node$1 {\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((i2) => {\n                if (typeof i2 === \"function\") {\n                  return (child, index2) => i2(child.toProxy(), index2);\n                } else {\n                  return i2;\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((i2) => i2.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(add, this.proxyOf.nodes[existIndex], type).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$4(nodes).nodes);\n    } else if (typeof nodes === \"undefined\") {\n      nodes = [];\n    } else if (Array.isArray(nodes)) {\n      nodes = nodes.slice(0);\n      for (let i2 of nodes) {\n        if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n      }\n    } else if (nodes.type === \"root\" && this.type !== \"document\") {\n      nodes = nodes.nodes.slice(0);\n      for (let i2 of nodes) {\n        if (i2.parent) i2.parent.removeChild(i2, \"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$3(nodes)];\n    } else if (nodes.selector) {\n      nodes = [new Rule$4(nodes)];\n    } else if (nodes.name) {\n      nodes = [new AtRule$4(nodes)];\n    } else if (nodes.text) {\n      nodes = [new Comment$3(nodes)];\n    } else {\n      throw new Error(\"Unknown node type in node creation\");\n    }\n    let processed = nodes.map((i2) => {\n      if (!i2[my$1]) Container2.rebuild(i2);\n      i2 = i2.proxyOf;\n      if (i2.parent) i2.parent.removeChild(i2);\n      if (i2[isClean$1]) markDirtyUp(i2);\n      if (typeof i2.raws.before === \"undefined\") {\n        if (sample && typeof sample.raws.before !== \"undefined\") {\n          i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n        }\n      }\n      i2.parent = this.proxyOf;\n      return i2;\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, i2) => {\n      let result2;\n      try {\n        result2 = callback(child, i2);\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, i2) => {\n        if (child.type === \"atrule\") {\n          return callback(child, i2);\n        }\n      });\n    }\n    if (name instanceof RegExp) {\n      return this.walk((child, i2) => {\n        if (child.type === \"atrule\" && name.test(child.name)) {\n          return callback(child, i2);\n        }\n      });\n    }\n    return this.walk((child, i2) => {\n      if (child.type === \"atrule\" && child.name === name) {\n        return callback(child, i2);\n      }\n    });\n  }\n  walkComments(callback) {\n    return this.walk((child, i2) => {\n      if (child.type === \"comment\") {\n        return callback(child, i2);\n      }\n    });\n  }\n  walkDecls(prop, callback) {\n    if (!callback) {\n      callback = prop;\n      return this.walk((child, i2) => {\n        if (child.type === \"decl\") {\n          return callback(child, i2);\n        }\n      });\n    }\n    if (prop instanceof RegExp) {\n      return this.walk((child, i2) => {\n        if (child.type === \"decl\" && prop.test(child.prop)) {\n          return callback(child, i2);\n        }\n      });\n    }\n    return this.walk((child, i2) => {\n      if (child.type === \"decl\" && child.prop === prop) {\n        return callback(child, i2);\n      }\n    });\n  }\n  walkRules(selector, callback) {\n    if (!callback) {\n      callback = selector;\n      return this.walk((child, i2) => {\n        if (child.type === \"rule\") {\n          return callback(child, i2);\n        }\n      });\n    }\n    if (selector instanceof RegExp) {\n      return this.walk((child, i2) => {\n        if (child.type === \"rule\" && selector.test(child.selector)) {\n          return callback(child, i2);\n        }\n      });\n    }\n    return this.walk((child, i2) => {\n      if (child.type === \"rule\" && child.selector === selector) {\n        return callback(child, i2);\n      }\n    });\n  }\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};\nContainer$7.registerParse = (dependant) => {\n  parse$4 = dependant;\n};\nContainer$7.registerRule = (dependant) => {\n  Rule$4 = dependant;\n};\nContainer$7.registerAtRule = (dependant) => {\n  AtRule$4 = dependant;\n};\nContainer$7.registerRoot = (dependant) => {\n  Root$6 = dependant;\n};\nvar container = Container$7;\nContainer$7.default = Container$7;\nContainer$7.rebuild = (node2) => {\n  if (node2.type === \"atrule\") {\n    Object.setPrototypeOf(node2, AtRule$4.prototype);\n  } else if (node2.type === \"rule\") {\n    Object.setPrototypeOf(node2, Rule$4.prototype);\n  } else if (node2.type === \"decl\") {\n    Object.setPrototypeOf(node2, Declaration$3.prototype);\n  } else if (node2.type === \"comment\") {\n    Object.setPrototypeOf(node2, Comment$3.prototype);\n  } else if (node2.type === \"root\") {\n    Object.setPrototypeOf(node2, Root$6.prototype);\n  }\n  node2[my$1] = true;\n  if (node2.nodes) {\n    node2.nodes.forEach((child) => {\n      Container$7.rebuild(child);\n    });\n  }\n};\nlet Container$6 = container;\nlet LazyResult$4, Processor$3;\nlet Document$3 = class Document23 extends Container$6 {\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$4(new Processor$3(), this, opts);\n    return lazy.stringify();\n  }\n};\nDocument$3.registerLazyResult = (dependant) => {\n  LazyResult$4 = dependant;\n};\nDocument$3.registerProcessor = (dependant) => {\n  Processor$3 = dependant;\n};\nvar document$1 = Document$3;\nDocument$3.default = Document$3;\nlet printed = {};\nvar warnOnce$2 = 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};\nlet Warning$2 = class Warning2 {\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};\nvar warning = Warning$2;\nWarning$2.default = Warning$2;\nlet Warning$1 = warning;\nlet Result$3 = class Result2 {\n  constructor(processor2, root2, opts) {\n    this.processor = processor2;\n    this.messages = [];\n    this.root = root2;\n    this.opts = opts;\n    this.css = void 0;\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$1(text, opts);\n    this.messages.push(warning2);\n    return warning2;\n  }\n  warnings() {\n    return this.messages.filter((i2) => i2.type === \"warning\");\n  }\n  get content() {\n    return this.css;\n  }\n};\nvar result = Result$3;\nResult$3.default = Result$3;\nconst SINGLE_QUOTE = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0);\nconst BACKSLASH = \"\\\\\".charCodeAt(0);\nconst SLASH = \"/\".charCodeAt(0);\nconst NEWLINE = \"\\n\".charCodeAt(0);\nconst SPACE = \" \".charCodeAt(0);\nconst FEED = \"\\f\".charCodeAt(0);\nconst TAB = \"\t\".charCodeAt(0);\nconst CR = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES = \")\".charCodeAt(0);\nconst OPEN_CURLY = \"{\".charCodeAt(0);\nconst CLOSE_CURLY = \"}\".charCodeAt(0);\nconst SEMICOLON = \";\".charCodeAt(0);\nconst ASTERISK = \"*\".charCodeAt(0);\nconst COLON = \":\".charCodeAt(0);\nconst AT = \"@\".charCodeAt(0);\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE = /[\\da-f]/i;\nvar tokenize = function tokenizer2(input2, options = {}) {\n  let css = input2.css.valueOf();\n  let ignore = options.ignoreErrors;\n  let code, next, quote, content, escape;\n  let escaped, escapePos, prev, n2, currentToken;\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        n2 = css.charCodeAt(pos + 1);\n        if (prev === \"url\" && n2 !== SINGLE_QUOTE && n2 !== DOUBLE_QUOTE && n2 !== SPACE && n2 !== NEWLINE && n2 !== TAB && n2 !== FEED && n2 !== 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};\nlet Container$5 = container;\nlet AtRule$3 = class AtRule2 extends Container$5 {\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};\nvar atRule = AtRule$3;\nAtRule$3.default = AtRule$3;\nContainer$5.registerAtRule(AtRule$3);\nlet Container$4 = container;\nlet LazyResult$3, Processor$2;\nlet Root$5 = class Root2 extends Container$4 {\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$3(new Processor$2(), this, opts);\n    return lazy.stringify();\n  }\n};\nRoot$5.registerLazyResult = (dependant) => {\n  LazyResult$3 = dependant;\n};\nRoot$5.registerProcessor = (dependant) => {\n  Processor$2 = dependant;\n};\nvar root = Root$5;\nRoot$5.default = Root$5;\nContainer$4.registerRoot(Root$5);\nlet list$2 = {\n  comma(string) {\n    return list$2.split(string, [\",\"], true);\n  },\n  space(string) {\n    let spaces = [\" \", \"\\n\", \"\t\"];\n    return list$2.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};\nvar list_1 = list$2;\nlist$2.default = list$2;\nlet Container$3 = container;\nlet list$1 = list_1;\nlet Rule$3 = class Rule2 extends Container$3 {\n  constructor(defaults) {\n    super(defaults);\n    this.type = \"rule\";\n    if (!this.nodes) this.nodes = [];\n  }\n  get selectors() {\n    return list$1.comma(this.selector);\n  }\n  set selectors(values) {\n    let match = this.selector ? this.selector.match(/,\\s*/) : null;\n    let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n    this.selector = values.join(sep2);\n  }\n};\nvar rule = Rule$3;\nRule$3.default = Rule$3;\nContainer$3.registerRule(Rule$3);\nlet Declaration$2 = declaration;\nlet tokenizer22 = tokenize;\nlet Comment$2 = comment;\nlet AtRule$2 = atRule;\nlet Root$4 = root;\nlet Rule$2 = rule;\nconst SAFE_COMMENT_NEIGHBOR = {\n  empty: true,\n  space: true\n};\nfunction findLastWithPosition(tokens) {\n  for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n    let token = tokens[i2];\n    let pos = token[3] || token[2];\n    if (pos) return pos;\n  }\n}\nlet Parser$1 = class Parser2 {\n  constructor(input2) {\n    this.input = input2;\n    this.root = new Root$4();\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$2();\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 j = colon - 1; j >= 0; j--) {\n      token = tokens[j];\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 token, type, prev;\n    for (let [i2, 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 i2;\n        }\n      }\n      prev = token;\n    }\n    return false;\n  }\n  comment(token) {\n    let node2 = new Comment$2();\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 = tokenizer22(this.input);\n  }\n  decl(tokens, customProperty) {\n    let node2 = new Declaration$2();\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 i2 = tokens.length - 1; i2 >= 0; i2--) {\n      token = tokens[i2];\n      if (token[1].toLowerCase() === \"!important\") {\n        node2.important = true;\n        let string = this.stringFrom(tokens, i2);\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 j = i2; j > 0; j--) {\n          let type = cache[j][0];\n          if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n            break;\n          }\n          str = cache.pop()[1] + str;\n        }\n        if (str.trim().indexOf(\"!\") === 0) {\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((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n    if (hasWord) {\n      node2.raws.between += firstSpaces.map((i2) => i2[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$2();\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      }\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 i2 = 0; i2 < length; i2 += 1) {\n      token = tokens[i2];\n      type = token[0];\n      if (type === \"space\" && i2 === length - 1 && !customProperty) {\n        clean = false;\n      } else if (type === \"comment\") {\n        prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n        next = tokens[i2 + 1] ? tokens[i2 + 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, i2) => all + i2[1], \"\");\n      node2.raws[prop] = { raw, value };\n    }\n    node2[prop] = value;\n  }\n  rule(tokens) {\n    tokens.pop();\n    let node2 = new Rule$2();\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 i2 = from; i2 < tokens.length; i2++) {\n      result2 += tokens[i2][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\",\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};\nvar parser = Parser$1;\nlet Container$2 = container;\nlet Parser22 = parser;\nlet Input$2 = input;\nfunction parse$3(css, opts) {\n  let input2 = new Input$2(css, opts);\n  let parser2 = new Parser22(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}\nvar parse_1 = parse$3;\nparse$3.default = parse$3;\nContainer$2.registerParse(parse$3);\nlet { isClean, my } = symbols;\nlet MapGenerator$1 = mapGenerator;\nlet stringify$2 = stringify_1;\nlet Container$1 = container;\nlet Document$2 = document$1;\nlet warnOnce$1 = warnOnce$2;\nlet Result$2 = result;\nlet parse$2 = parse_1;\nlet Root$3 = root;\nconst TYPE_TO_CLASS_NAME = {\n  atrule: \"AtRule\",\n  comment: \"Comment\",\n  decl: \"Declaration\",\n  document: \"Document\",\n  root: \"Root\",\n  rule: \"Rule\"\n};\nconst 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};\nconst NOT_VISITORS = {\n  Once: true,\n  postcssPlugin: true,\n  prepare: true\n};\nconst CHILDREN = 0;\nfunction isPromise(obj) {\n  return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction 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}\nfunction 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}\nfunction cleanMarks(node2) {\n  node2[isClean] = false;\n  if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks(i2));\n  return node2;\n}\nlet postcss$2 = {};\nlet LazyResult$2 = class LazyResult2 {\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 LazyResult2 || css instanceof Result$2) {\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$2;\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$1.rebuild(root2);\n      }\n    }\n    this.result = new Result$2(processor2, root2, opts);\n    this.helpers = { ...postcss$2, postcss: postcss$2, result: this.result };\n    this.plugins = this.processor.plugins.map((plugin22) => {\n      if (typeof plugin22 === \"object\" && plugin22.prepare) {\n        return { ...plugin22, ...plugin22.prepare(this.result) };\n      } else {\n        return plugin22;\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 plugin22 = 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 = plugin22.postcssPlugin;\n        error.setMessage();\n      } else if (plugin22.postcssVersion) {\n        if (process.env.NODE_ENV !== \"production\") {\n          let pluginName = plugin22.postcssPlugin;\n          let pluginVer = plugin22.postcssVersion;\n          let runtimeVer = this.result.processor.version;\n          let a2 = pluginVer.split(\".\");\n          let b = runtimeVer.split(\".\");\n          if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[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 = (plugin22, type, cb) => {\n      if (!this.listeners[type]) this.listeners[type] = [];\n      this.listeners[type].push([plugin22, cb]);\n    };\n    for (let plugin22 of this.plugins) {\n      if (typeof plugin22 === \"object\") {\n        for (let event in plugin22) {\n          if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n            throw new Error(\n              `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n            );\n          }\n          if (!NOT_VISITORS[event]) {\n            if (typeof plugin22[event] === \"object\") {\n              for (let filter in plugin22[event]) {\n                if (filter === \"*\") {\n                  add(plugin22, event, plugin22[event][filter]);\n                } else {\n                  add(\n                    plugin22,\n                    event + \"-\" + filter.toLowerCase(),\n                    plugin22[event][filter]\n                  );\n                }\n              }\n            } else if (typeof plugin22[event] === \"function\") {\n              add(plugin22, event, plugin22[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 i2 = 0; i2 < this.plugins.length; i2++) {\n      let plugin22 = this.plugins[i2];\n      let promise = this.runOnRoot(plugin22);\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 [plugin22, visitor] of this.listeners.OnceExit) {\n          this.result.lastPlugin = plugin22;\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(plugin22) {\n    this.result.lastPlugin = plugin22;\n    try {\n      if (typeof plugin22 === \"object\" && plugin22.Once) {\n        if (this.result.root.type === \"document\") {\n          let roots = this.result.root.nodes.map(\n            (root2) => plugin22.Once(root2, this.helpers)\n          );\n          if (isPromise(roots[0])) {\n            return Promise.all(roots);\n          }\n          return roots;\n        }\n        return plugin22.Once(this.result.root, this.helpers);\n      } else if (typeof plugin22 === \"function\") {\n        return plugin22(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$2;\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$1(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 plugin22 of this.plugins) {\n      let promise = this.runOnRoot(plugin22);\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        warnOnce$1(\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 [plugin22, visitor] of visitors) {\n      this.result.lastPlugin = plugin22;\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 [plugin22, 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 = plugin22;\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  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};\nLazyResult$2.registerPostcss = (dependant) => {\n  postcss$2 = dependant;\n};\nvar lazyResult = LazyResult$2;\nLazyResult$2.default = LazyResult$2;\nRoot$3.registerLazyResult(LazyResult$2);\nDocument$2.registerLazyResult(LazyResult$2);\nlet MapGenerator22 = mapGenerator;\nlet stringify$1 = stringify_1;\nlet warnOnce22 = warnOnce$2;\nlet parse$1 = parse_1;\nconst Result$1 = result;\nlet NoWorkResult$1 = class NoWorkResult2 {\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$1;\n    this.result = new Result$1(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 MapGenerator22(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        warnOnce22(\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  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$1;\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};\nvar noWorkResult = NoWorkResult$1;\nNoWorkResult$1.default = NoWorkResult$1;\nlet NoWorkResult22 = noWorkResult;\nlet LazyResult$1 = lazyResult;\nlet Document$1 = document$1;\nlet Root$2 = root;\nlet Processor$1 = class Processor2 {\n  constructor(plugins = []) {\n    this.version = \"8.4.38\";\n    this.plugins = this.normalize(plugins);\n  }\n  normalize(plugins) {\n    let normalized = [];\n    for (let i2 of plugins) {\n      if (i2.postcss === true) {\n        i2 = i2();\n      } else if (i2.postcss) {\n        i2 = i2.postcss;\n      }\n      if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n        normalized = normalized.concat(i2.plugins);\n      } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n        normalized.push(i2);\n      } else if (typeof i2 === \"function\") {\n        normalized.push(i2);\n      } else if (typeof i2 === \"object\" && (i2.parse || i2.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(i2 + \" 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 NoWorkResult22(this, css, opts);\n    } else {\n      return new LazyResult$1(this, css, opts);\n    }\n  }\n  use(plugin22) {\n    this.plugins = this.plugins.concat(this.normalize([plugin22]));\n    return this;\n  }\n};\nvar processor = Processor$1;\nProcessor$1.default = Processor$1;\nRoot$2.registerProcessor(Processor$1);\nDocument$1.registerProcessor(Processor$1);\nlet Declaration$1 = declaration;\nlet PreviousMap22 = previousMap;\nlet Comment$1 = comment;\nlet AtRule$1 = atRule;\nlet Input$1 = input;\nlet Root$1 = root;\nlet Rule$1 = rule;\nfunction fromJSON$1(json, inputs) {\n  if (Array.isArray(json)) return json.map((n2) => fromJSON$1(n2));\n  let { inputs: ownInputs, ...defaults } = json;\n  if (ownInputs) {\n    inputs = [];\n    for (let input2 of ownInputs) {\n      let inputHydrated = { ...input2, __proto__: Input$1.prototype };\n      if (inputHydrated.map) {\n        inputHydrated.map = {\n          ...inputHydrated.map,\n          __proto__: PreviousMap22.prototype\n        };\n      }\n      inputs.push(inputHydrated);\n    }\n  }\n  if (defaults.nodes) {\n    defaults.nodes = json.nodes.map((n2) => fromJSON$1(n2, 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$1(defaults);\n  } else if (defaults.type === \"decl\") {\n    return new Declaration$1(defaults);\n  } else if (defaults.type === \"rule\") {\n    return new Rule$1(defaults);\n  } else if (defaults.type === \"comment\") {\n    return new Comment$1(defaults);\n  } else if (defaults.type === \"atrule\") {\n    return new AtRule$1(defaults);\n  } else {\n    throw new Error(\"Unknown node type: \" + json.type);\n  }\n}\nvar fromJSON_1 = fromJSON$1;\nfromJSON$1.default = fromJSON$1;\nlet CssSyntaxError22 = cssSyntaxError;\nlet Declaration22 = declaration;\nlet LazyResult22 = lazyResult;\nlet Container22 = container;\nlet Processor22 = processor;\nlet stringify = stringify_1;\nlet fromJSON = fromJSON_1;\nlet Document222 = document$1;\nlet Warning22 = warning;\nlet Comment22 = comment;\nlet AtRule22 = atRule;\nlet Result22 = result;\nlet Input22 = input;\nlet parse = parse_1;\nlet list = list_1;\nlet Rule22 = rule;\nlet Root22 = root;\nlet Node22 = node;\nfunction postcss(...plugins) {\n  if (plugins.length === 1 && Array.isArray(plugins[0])) {\n    plugins = plugins[0];\n  }\n  return new Processor22(plugins);\n}\npostcss.plugin = function plugin2(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 Processor22().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 postcss([creator(pluginOpts)]).process(css, processOpts);\n  };\n  return creator;\n};\npostcss.stringify = stringify;\npostcss.parse = parse;\npostcss.fromJSON = fromJSON;\npostcss.list = list;\npostcss.comment = (defaults) => new Comment22(defaults);\npostcss.atRule = (defaults) => new AtRule22(defaults);\npostcss.decl = (defaults) => new Declaration22(defaults);\npostcss.rule = (defaults) => new Rule22(defaults);\npostcss.root = (defaults) => new Root22(defaults);\npostcss.document = (defaults) => new Document222(defaults);\npostcss.CssSyntaxError = CssSyntaxError22;\npostcss.Declaration = Declaration22;\npostcss.Container = Container22;\npostcss.Processor = Processor22;\npostcss.Document = Document222;\npostcss.Comment = Comment22;\npostcss.Warning = Warning22;\npostcss.AtRule = AtRule22;\npostcss.Result = Result22;\npostcss.Input = Input22;\npostcss.Rule = Rule22;\npostcss.Root = Root22;\npostcss.Node = Node22;\nLazyResult22.registerPostcss(postcss);\nvar postcss_1 = postcss;\npostcss.default = postcss;\nconst postcss$1 = /* @__PURE__ */ getDefaultExportFromCjs(postcss_1);\npostcss$1.stringify;\npostcss$1.fromJSON;\npostcss$1.plugin;\npostcss$1.parse;\npostcss$1.list;\npostcss$1.document;\npostcss$1.comment;\npostcss$1.atRule;\npostcss$1.rule;\npostcss$1.decl;\npostcss$1.root;\npostcss$1.CssSyntaxError;\npostcss$1.Declaration;\npostcss$1.Container;\npostcss$1.Processor;\npostcss$1.Document;\npostcss$1.Comment;\npostcss$1.Warning;\npostcss$1.AtRule;\npostcss$1.Result;\npostcss$1.Input;\npostcss$1.Rule;\npostcss$1.Root;\npostcss$1.Node;\nclass BaseRRNode {\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n  constructor(..._args) {\n    __publicField2(this, \"parentElement\", null);\n    __publicField2(this, \"parentNode\", null);\n    __publicField2(this, \"ownerDocument\");\n    __publicField2(this, \"firstChild\", null);\n    __publicField2(this, \"lastChild\", null);\n    __publicField2(this, \"previousSibling\", null);\n    __publicField2(this, \"nextSibling\", null);\n    __publicField2(this, \"ELEMENT_NODE\", 1);\n    __publicField2(this, \"TEXT_NODE\", 3);\n    __publicField2(this, \"nodeType\");\n    __publicField2(this, \"nodeName\");\n    __publicField2(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}\nconst testableAccessors = {\n  Node: [\n    \"childNodes\",\n    \"parentNode\",\n    \"parentElement\",\n    \"textContent\",\n    \"ownerDocument\"\n  ],\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 = {};\nconst isAngularZonePresent = () => {\n  return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype(key) {\n  if (untaintedBasePrototype[key])\n    return untaintedBasePrototype[key];\n  const defaultObj = globalThis[key];\n  const defaultPrototype = defaultObj.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 _a2, _b;\n        return Boolean(\n          (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.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 _a2;\n        return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n      }\n    )\n  );\n  if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) {\n    untaintedBasePrototype[key] = defaultObj.prototype;\n    return defaultObj.prototype;\n  }\n  try {\n    const iframeEl = document.createElement(\"iframe\");\n    document.body.appendChild(iframeEl);\n    const win = iframeEl.contentWindow;\n    if (!win) return defaultObj.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 _a2;\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 = (_a2 = Object.getOwnPropertyDescriptor(\n    untaintedPrototype,\n    accessor\n  )) == null ? void 0 : _a2.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 ownerDocument(n2) {\n  return getUntaintedAccessor(\"Node\", n2, \"ownerDocument\");\n}\nfunction childNodes(n2) {\n  return getUntaintedAccessor(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode(n2) {\n  return getUntaintedAccessor(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement(n2) {\n  return getUntaintedAccessor(\"Node\", n2, \"parentElement\");\n}\nfunction textContent(n2) {\n  return getUntaintedAccessor(\"Node\", n2, \"textContent\");\n}\nfunction contains(n2, other) {\n  return getUntaintedMethod(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode(n2) {\n  return getUntaintedMethod(\"Node\", n2, \"getRootNode\")();\n}\nfunction host(n2) {\n  if (!n2 || !(\"host\" in n2)) return null;\n  return getUntaintedAccessor(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets(n2) {\n  return n2.styleSheets;\n}\nfunction shadowRoot(n2) {\n  if (!n2 || !(\"shadowRoot\" in n2)) return null;\n  return getUntaintedAccessor(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector(n2, selectors) {\n  return getUntaintedAccessor(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n2, selectors) {\n  return getUntaintedAccessor(\"Element\", n2, \"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  ownerDocument,\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 on(type, fn, target = document) {\n  const options = { capture: true, passive: true };\n  target.addEventListener(type, fn, options);\n  return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\";\nlet _mirror = {\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      return Reflect.get(target, prop, receiver);\n    }\n  });\n}\nfunction throttle(func, wait, options = {}) {\n  let timeout = null;\n  let previous = 0;\n  return function(...args) {\n    const now = Date.now();\n    if (!previous && options.leading === false) {\n      previous = now;\n    }\n    const remaining = wait - (now - previous);\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}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n  const original = win.Object.getOwnPropertyDescriptor(target, key);\n  win.Object.defineProperty(\n    target,\n    key,\n    isRevoked ? d : {\n      set(value) {\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}\nlet nowTimestamp = Date.now;\nif (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString())) {\n  nowTimestamp = () => (/* @__PURE__ */ new Date()).getTime();\n}\nfunction getWindowScroll(win) {\n  var _a2, _b, _c, _d;\n  const doc = win.document;\n  return {\n    left: doc.scrollingElement ? doc.scrollingElement.scrollLeft : win.pageXOffset !== void 0 ? win.pageXOffset : doc.documentElement.scrollLeft || (doc == null ? void 0 : doc.body) && ((_a2 = index.parentElement(doc.body)) == null ? void 0 : _a2.scrollLeft) || ((_b = doc == null ? void 0 : doc.body) == null ? void 0 : _b.scrollLeft) || 0,\n    top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : (doc == null ? void 0 : doc.documentElement.scrollTop) || (doc == null ? void 0 : doc.body) && ((_c = index.parentElement(doc.body)) == null ? void 0 : _c.scrollTop) || ((_d = doc == null ? void 0 : doc.body) == null ? void 0 : _d.scrollTop) || 0\n  };\n}\nfunction getWindowHeight() {\n  return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;\n}\nfunction getWindowWidth() {\n  return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;\n}\nfunction closestElementOfNode(node2) {\n  if (!node2) {\n    return null;\n  }\n  const el = node2.nodeType === node2.ELEMENT_NODE ? node2 : index.parentElement(node2);\n  return el;\n}\nfunction isBlocked(node2, blockClass, blockSelector, checkAncestors) {\n  if (!node2) {\n    return false;\n  }\n  const el = closestElementOfNode(node2);\n  if (!el) {\n    return false;\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 (e2) {\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}\nfunction isSerialized(n2, mirror2) {\n  return mirror2.getId(n2) !== -1;\n}\nfunction isIgnored(n2, mirror2, slimDOMOptions) {\n  if (n2.tagName === \"TITLE\" && slimDOMOptions.headTitleMutations) {\n    return true;\n  }\n  return mirror2.getId(n2) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror2) {\n  if (isShadowRoot(target)) {\n    return false;\n  }\n  const id = mirror2.getId(target);\n  if (!mirror2.has(id)) {\n    return true;\n  }\n  const parent = index.parentNode(target);\n  if (parent && parent.nodeType === target.DOCUMENT_NODE) {\n    return false;\n  }\n  if (!parent) {\n    return true;\n  }\n  return isAncestorRemoved(parent, mirror2);\n}\nfunction legacy_isTouchEvent(event) {\n  return Boolean(event.changedTouches);\n}\nfunction polyfill$1(win = window) {\n  if (\"NodeList\" in win && !win.NodeList.prototype.forEach) {\n    win.NodeList.prototype.forEach = Array.prototype.forEach;\n  }\n  if (\"DOMTokenList\" in win && !win.DOMTokenList.prototype.forEach) {\n    win.DOMTokenList.prototype.forEach = Array.prototype.forEach;\n  }\n}\nfunction isSerializedIframe(n2, mirror2) {\n  return Boolean(n2.nodeName === \"IFRAME\" && mirror2.getMeta(n2));\n}\nfunction isSerializedStylesheet(n2, mirror2) {\n  return Boolean(\n    n2.nodeName === \"LINK\" && n2.nodeType === n2.ELEMENT_NODE && n2.getAttribute && n2.getAttribute(\"rel\") === \"stylesheet\" && mirror2.getMeta(n2)\n  );\n}\nfunction hasShadowRoot(n2) {\n  if (!n2) return false;\n  if (n2 instanceof BaseRRNode && \"shadowRoot\" in n2) {\n    return Boolean(n2.shadowRoot);\n  }\n  return Boolean(index.shadowRoot(n2));\n}\nclass StyleSheetMirror {\n  constructor() {\n    __publicField(this, \"id\", 1);\n    __publicField(this, \"styleIDMap\", /* @__PURE__ */ new WeakMap());\n    __publicField(this, \"idStyleMap\", /* @__PURE__ */ new Map());\n  }\n  getId(stylesheet) {\n    return this.styleIDMap.get(stylesheet) ?? -1;\n  }\n  has(stylesheet) {\n    return this.styleIDMap.has(stylesheet);\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, id) {\n    if (this.has(stylesheet)) return this.getId(stylesheet);\n    let newId;\n    if (id === void 0) {\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  getStyle(id) {\n    return this.idStyleMap.get(id) || null;\n  }\n  reset() {\n    this.styleIDMap = /* @__PURE__ */ new WeakMap();\n    this.idStyleMap = /* @__PURE__ */ new Map();\n    this.id = 1;\n  }\n  generateId() {\n    return this.id++;\n  }\n}\nfunction getShadowHost(n2) {\n  var _a2;\n  let shadowHost = null;\n  if (\"getRootNode\" in n2 && ((_a2 = index.getRootNode(n2)) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && index.host(index.getRootNode(n2)))\n    shadowHost = index.host(index.getRootNode(n2));\n  return shadowHost;\n}\nfunction getRootShadowHost(n2) {\n  let rootShadowHost = n2;\n  let shadowHost;\n  while (shadowHost = getShadowHost(rootShadowHost))\n    rootShadowHost = shadowHost;\n  return rootShadowHost;\n}\nfunction shadowHostInDom(n2) {\n  const doc = index.ownerDocument(n2);\n  if (!doc) return false;\n  const shadowHost = getRootShadowHost(n2);\n  return index.contains(doc, shadowHost);\n}\nfunction inDom(n2) {\n  const doc = index.ownerDocument(n2);\n  if (!doc) return false;\n  return index.contains(doc, n2) || shadowHostInDom(n2);\n}\nvar 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 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 || {});\nfunction isNodeInLinkedList(n2) {\n  return \"__ln\" in n2;\n}\nclass DoubleLinkedList {\n  constructor() {\n    __publicField(this, \"length\", 0);\n    __publicField(this, \"head\", null);\n    __publicField(this, \"tail\", null);\n  }\n  get(position) {\n    if (position >= this.length) {\n      throw new Error(\"Position outside of list range\");\n    }\n    let current = this.head;\n    for (let index2 = 0; index2 < position; index2++) {\n      current = (current == null ? void 0 : current.next) || null;\n    }\n    return current;\n  }\n  addNode(n2) {\n    const node2 = {\n      value: n2,\n      previous: null,\n      next: null\n    };\n    n2.__ln = node2;\n    if (n2.previousSibling && isNodeInLinkedList(n2.previousSibling)) {\n      const current = n2.previousSibling.__ln.next;\n      node2.next = current;\n      node2.previous = n2.previousSibling.__ln;\n      n2.previousSibling.__ln.next = node2;\n      if (current) {\n        current.previous = node2;\n      }\n    } else if (n2.nextSibling && isNodeInLinkedList(n2.nextSibling) && n2.nextSibling.__ln.previous) {\n      const current = n2.nextSibling.__ln.previous;\n      node2.previous = current;\n      node2.next = n2.nextSibling.__ln;\n      n2.nextSibling.__ln.previous = node2;\n      if (current) {\n        current.next = node2;\n      }\n    } else {\n      if (this.head) {\n        this.head.previous = node2;\n      }\n      node2.next = this.head;\n      this.head = node2;\n    }\n    if (node2.next === null) {\n      this.tail = node2;\n    }\n    this.length++;\n  }\n  removeNode(n2) {\n    const current = n2.__ln;\n    if (!this.head) {\n      return;\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 (n2.__ln) {\n      delete n2.__ln;\n    }\n    this.length--;\n  }\n}\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\nclass MutationBuffer {\n  constructor() {\n    __publicField(this, \"frozen\", false);\n    __publicField(this, \"locked\", false);\n    __publicField(this, \"texts\", []);\n    __publicField(this, \"attributes\", []);\n    __publicField(this, \"attributeMap\", /* @__PURE__ */ new WeakMap());\n    __publicField(this, \"removes\", []);\n    __publicField(this, \"mapRemoves\", []);\n    __publicField(this, \"movedMap\", {});\n    __publicField(this, \"addedSet\", /* @__PURE__ */ new Set());\n    __publicField(this, \"movedSet\", /* @__PURE__ */ new Set());\n    __publicField(this, \"droppedSet\", /* @__PURE__ */ new Set());\n    __publicField(this, \"removesSubTreeCache\", /* @__PURE__ */ new Set());\n    __publicField(this, \"mutationCb\");\n    __publicField(this, \"blockClass\");\n    __publicField(this, \"blockSelector\");\n    __publicField(this, \"maskTextClass\");\n    __publicField(this, \"maskTextSelector\");\n    __publicField(this, \"inlineStylesheet\");\n    __publicField(this, \"maskInputOptions\");\n    __publicField(this, \"maskTextFn\");\n    __publicField(this, \"maskInputFn\");\n    __publicField(this, \"keepIframeSrcFn\");\n    __publicField(this, \"recordCanvas\");\n    __publicField(this, \"inlineImages\");\n    __publicField(this, \"slimDOMOptions\");\n    __publicField(this, \"dataURLOptions\");\n    __publicField(this, \"doc\");\n    __publicField(this, \"mirror\");\n    __publicField(this, \"iframeManager\");\n    __publicField(this, \"stylesheetManager\");\n    __publicField(this, \"shadowDomManager\");\n    __publicField(this, \"canvasManager\");\n    __publicField(this, \"processedNodeManager\");\n    __publicField(this, \"unattachedDoc\");\n    __publicField(this, \"processMutations\", (mutations) => {\n      mutations.forEach(this.processMutation);\n      this.emit();\n    });\n    __publicField(this, \"emit\", () => {\n      if (this.frozen || this.locked) {\n        return;\n      }\n      const adds = [];\n      const addedIds = /* @__PURE__ */ new Set();\n      const addList = new DoubleLinkedList();\n      const getNextId = (n2) => {\n        let ns = n2;\n        let nextId = IGNORED_NODE;\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 = (n2) => {\n        const parent = index.parentNode(n2);\n        if (!parent || !inDom(n2)) {\n          return;\n        }\n        let cssCaptured = false;\n        if (n2.nodeType === Node.TEXT_NODE) {\n          const parentTag = parent.tagName;\n          if (parentTag === \"TEXTAREA\") {\n            return;\n          } else if (parentTag === \"STYLE\" && this.addedSet.has(parent)) {\n            cssCaptured = true;\n          }\n        }\n        const parentId = isShadowRoot(parent) ? this.mirror.getId(getShadowHost(n2)) : this.mirror.getId(parent);\n        const nextId = getNextId(n2);\n        if (parentId === -1 || nextId === -1) {\n          return addList.addNode(n2);\n        }\n        const sn = serializeNodeWithId(n2, {\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);\n            }\n            if (isSerializedStylesheet(currentN, this.mirror)) {\n              this.stylesheetManager.trackLinkElement(\n                currentN\n              );\n            }\n            if (hasShadowRoot(n2)) {\n              this.shadowDomManager.addShadowRoot(index.shadowRoot(n2), 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          cssCaptured\n        });\n        if (sn) {\n          adds.push({\n            parentId,\n            nextId,\n            node: sn\n          });\n          addedIds.add(sn.id);\n        }\n      };\n      while (this.mapRemoves.length) {\n        this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n      }\n      for (const n2 of this.movedSet) {\n        if (isParentRemoved(this.removesSubTreeCache, n2, this.mirror) && !this.movedSet.has(index.parentNode(n2))) {\n          continue;\n        }\n        pushAdd(n2);\n      }\n      for (const n2 of this.addedSet) {\n        if (!isAncestorInSet(this.droppedSet, n2) && !isParentRemoved(this.removesSubTreeCache, n2, this.mirror)) {\n          pushAdd(n2);\n        } else if (isAncestorInSet(this.movedSet, n2)) {\n          pushAdd(n2);\n        } else {\n          this.droppedSet.add(n2);\n        }\n      }\n      let candidate = null;\n      while (addList.length) {\n        let node2 = null;\n        if (candidate) {\n          const parentId = this.mirror.getId(index.parentNode(candidate.value));\n          const nextId = getNextId(candidate.value);\n          if (parentId !== -1 && nextId !== -1) {\n            node2 = candidate;\n          }\n        }\n        if (!node2) {\n          let tailNode = addList.tail;\n          while (tailNode) {\n            const _node = tailNode;\n            tailNode = tailNode.previous;\n            if (_node) {\n              const parentId = this.mirror.getId(index.parentNode(_node.value));\n              const nextId = getNextId(_node.value);\n              if (nextId === -1) continue;\n              else if (parentId !== -1) {\n                node2 = _node;\n                break;\n              } else {\n                const unhandledNode = _node.value;\n                const parent = index.parentNode(unhandledNode);\n                if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n                  const shadowHost = index.host(parent);\n                  const parentId2 = this.mirror.getId(shadowHost);\n                  if (parentId2 !== -1) {\n                    node2 = _node;\n                    break;\n                  }\n                }\n              }\n            }\n          }\n        }\n        if (!node2) {\n          while (addList.head) {\n            addList.removeNode(addList.head.value);\n          }\n          break;\n        }\n        candidate = node2.previous;\n        addList.removeNode(node2.value);\n        pushAdd(node2.value);\n      }\n      const payload = {\n        texts: this.texts.map((text) => {\n          const n2 = text.node;\n          const parent = index.parentNode(n2);\n          if (parent && parent.tagName === \"TEXTAREA\") {\n            this.genTextAreaValueMutation(parent);\n          }\n          return {\n            id: this.mirror.getId(n2),\n            value: text.value\n          };\n        }).filter((text) => !addedIds.has(text.id)).filter((text) => this.mirror.has(text.id)),\n        attributes: this.attributes.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            if (diffAsStr.length < attributes.style.length) {\n              if ((diffAsStr + unchangedAsStr).split(\"var(\").length === attributes.style.split(\"var(\").length) {\n                attributes.style = attribute.styleDiff;\n              }\n            }\n          }\n          return {\n            id: this.mirror.getId(attribute.node),\n            attributes\n          };\n        }).filter((attribute) => !addedIds.has(attribute.id)).filter((attribute) => this.mirror.has(attribute.id)),\n        removes: this.removes,\n        adds\n      };\n      if (!payload.texts.length && !payload.attributes.length && !payload.removes.length && !payload.adds.length) {\n        return;\n      }\n      this.texts = [];\n      this.attributes = [];\n      this.attributeMap = /* @__PURE__ */ new WeakMap();\n      this.removes = [];\n      this.addedSet = /* @__PURE__ */ new Set();\n      this.movedSet = /* @__PURE__ */ new Set();\n      this.droppedSet = /* @__PURE__ */ new Set();\n      this.removesSubTreeCache = /* @__PURE__ */ new Set();\n      this.movedMap = {};\n      this.mutationCb(payload);\n    });\n    __publicField(this, \"genTextAreaValueMutation\", (textarea) => {\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      const value = Array.from(\n        index.childNodes(textarea),\n        (cn) => index.textContent(cn) || \"\"\n      ).join(\"\");\n      item.attributes.value = maskInputValue({\n        element: textarea,\n        maskInputOptions: this.maskInputOptions,\n        tagName: textarea.tagName,\n        type: getInputType(textarea),\n        value,\n        maskInputFn: this.maskInputFn\n      });\n    });\n    __publicField(this, \"processMutation\", (m) => {\n      if (isIgnored(m.target, this.mirror, this.slimDOMOptions)) {\n        return;\n      }\n      switch (m.type) {\n        case \"characterData\": {\n          const value = index.textContent(m.target);\n          if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) && value !== m.oldValue) {\n            this.texts.push({\n              value: needMaskingText(\n                m.target,\n                this.maskTextClass,\n                this.maskTextSelector,\n                true\n                // checkAncestors\n              ) && value ? this.maskTextFn ? this.maskTextFn(value, closestElementOfNode(m.target)) : value.replace(/[\\S]/g, \"*\") : value,\n              node: m.target\n            });\n          }\n          break;\n        }\n        case \"attributes\": {\n          const target = m.target;\n          let attributeName = m.attributeName;\n          let value = m.target.getAttribute(attributeName);\n          if (attributeName === \"value\") {\n            const type = getInputType(target);\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 (isBlocked(m.target, this.blockClass, this.blockSelector, false) || value === m.oldValue) {\n            return;\n          }\n          let item = this.attributeMap.get(m.target);\n          if (target.tagName === \"IFRAME\" && attributeName === \"src\" && !this.keepIframeSrcFn(value)) {\n            if (!target.contentDocument) {\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          if (attributeName === \"type\" && target.tagName === \"INPUT\" && (m.oldValue || \"\").toLowerCase() === \"password\") {\n            target.setAttribute(\"data-rr-is-password\", \"true\");\n          }\n          if (!ignoreAttribute(target.tagName, attributeName)) {\n            item.attributes[attributeName] = transformAttribute(\n              this.doc,\n              toLowerCase(target.tagName),\n              toLowerCase(attributeName),\n              value\n            );\n            if (attributeName === \"style\") {\n              if (!this.unattachedDoc) {\n                try {\n                  this.unattachedDoc = document.implementation.createHTMLDocument();\n                } catch (e2) {\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 (newValue !== old.style.getPropertyValue(pname) || newPriority !== old.style.getPropertyPriority(pname)) {\n                  if (newPriority === \"\") {\n                    item.styleDiff[pname] = newValue;\n                  } else {\n                    item.styleDiff[pname] = [newValue, newPriority];\n                  }\n                } else {\n                  item._unchangedStyles[pname] = [newValue, newPriority];\n                }\n              }\n              for (const pname of Array.from(old.style)) {\n                if (target.style.getPropertyValue(pname) === \"\") {\n                  item.styleDiff[pname] = false;\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          if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\n            return;\n          if (m.target.tagName === \"TEXTAREA\") {\n            this.genTextAreaValueMutation(m.target);\n            return;\n          }\n          m.addedNodes.forEach((n2) => this.genAdds(n2, m.target));\n          m.removedNodes.forEach((n2) => {\n            const nodeId = this.mirror.getId(n2);\n            const parentId = isShadowRoot(m.target) ? this.mirror.getId(index.host(m.target)) : this.mirror.getId(m.target);\n            if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || isIgnored(n2, this.mirror, this.slimDOMOptions) || !isSerialized(n2, this.mirror)) {\n              return;\n            }\n            if (this.addedSet.has(n2)) {\n              deepDelete(this.addedSet, n2);\n              this.droppedSet.add(n2);\n            } else if (this.addedSet.has(m.target) && nodeId === -1) ;\n            else if (isAncestorRemoved(m.target, this.mirror)) ;\n            else if (this.movedSet.has(n2) && this.movedMap[moveKey(nodeId, parentId)]) {\n              deepDelete(this.movedSet, n2);\n            } else {\n              this.removes.push({\n                parentId,\n                id: nodeId,\n                isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target) ? true : void 0\n              });\n              processRemoves(n2, this.removesSubTreeCache);\n            }\n            this.mapRemoves.push(n2);\n          });\n          break;\n        }\n      }\n    });\n    __publicField(this, \"genAdds\", (n2, target) => {\n      if (this.processedNodeManager.inOtherBuffer(n2, this)) return;\n      if (this.addedSet.has(n2) || this.movedSet.has(n2)) return;\n      if (this.mirror.hasNode(n2)) {\n        if (isIgnored(n2, this.mirror, this.slimDOMOptions)) {\n          return;\n        }\n        this.movedSet.add(n2);\n        let targetId = 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(n2), targetId)] = true;\n        }\n      } else {\n        this.addedSet.add(n2);\n        this.droppedSet.delete(n2);\n      }\n      if (!isBlocked(n2, this.blockClass, this.blockSelector, false)) {\n        index.childNodes(n2).forEach((childN) => this.genAdds(childN));\n        if (hasShadowRoot(n2)) {\n          index.childNodes(index.shadowRoot(n2)).forEach((childN) => {\n            this.processedNodeManager.add(childN, this);\n            this.genAdds(childN, n2);\n          });\n        }\n      }\n    });\n  }\n  init(options) {\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    ].forEach((key) => {\n      this[key] = options[key];\n    });\n  }\n  freeze() {\n    this.frozen = true;\n    this.canvasManager.freeze();\n  }\n  unfreeze() {\n    this.frozen = false;\n    this.canvasManager.unfreeze();\n    this.emit();\n  }\n  isFrozen() {\n    return this.frozen;\n  }\n  lock() {\n    this.locked = true;\n    this.canvasManager.lock();\n  }\n  unlock() {\n    this.locked = false;\n    this.canvasManager.unlock();\n    this.emit();\n  }\n  reset() {\n    this.shadowDomManager.reset();\n    this.canvasManager.reset();\n  }\n}\nfunction deepDelete(addsSet, n2) {\n  addsSet.delete(n2);\n  index.childNodes(n2).forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction processRemoves(n2, cache) {\n  const queue = [n2];\n  while (queue.length) {\n    const next = queue.pop();\n    if (cache.has(next)) continue;\n    cache.add(next);\n    index.childNodes(next).forEach((n22) => queue.push(n22));\n  }\n  return;\n}\nfunction isParentRemoved(removes, n2, mirror2) {\n  if (removes.size === 0) return false;\n  return _isParentRemoved(removes, n2);\n}\nfunction _isParentRemoved(removes, n2, _mirror2) {\n  const node2 = index.parentNode(n2);\n  if (!node2) return false;\n  return removes.has(node2);\n}\nfunction isAncestorInSet(set, n2) {\n  if (set.size === 0) return false;\n  return _isAncestorInSet(set, n2);\n}\nfunction _isAncestorInSet(set, n2) {\n  const parent = index.parentNode(n2);\n  if (!parent) {\n    return false;\n  }\n  if (set.has(parent)) {\n    return true;\n  }\n  return _isAncestorInSet(set, parent);\n}\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n  errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n  errorHandler = void 0;\n}\nconst callbackWrapper = (cb) => {\n  if (!errorHandler) {\n    return cb;\n  }\n  const rrwebWrapped = (...rest) => {\n    try {\n      return cb(...rest);\n    } catch (error) {\n      if (errorHandler && errorHandler(error) === true) {\n        return;\n      }\n      throw error;\n    }\n  };\n  return rrwebWrapped;\n};\nconst mutationBuffers = [];\nfunction getEventTarget(event) {\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  }\n  return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n  const mutationBuffer = new MutationBuffer();\n  mutationBuffers.push(mutationBuffer);\n  mutationBuffer.init(options);\n  const observer = new (mutationObserverCtor())(\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}\nfunction initMoveObserver({\n  mousemoveCb,\n  sampling,\n  doc,\n  mirror: mirror2\n}) {\n  if (sampling.mousemove === false) {\n    return () => {\n    };\n  }\n  const threshold = typeof sampling.mousemove === \"number\" ? sampling.mousemove : 50;\n  const callbackThreshold = typeof sampling.mousemoveCallback === \"number\" ? sampling.mousemoveCallback : 500;\n  let positions = [];\n  let timeBaseline;\n  const wrappedCb = throttle(\n    callbackWrapper(\n      (source) => {\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(\n      callbackWrapper((evt) => {\n        const target = getEventTarget(evt);\n        const { clientX, clientY } = legacy_isTouchEvent(evt) ? evt.changedTouches[0] : evt;\n        if (!timeBaseline) {\n          timeBaseline = nowTimestamp();\n        }\n        positions.push({\n          x: clientX,\n          y: clientY,\n          id: mirror2.getId(target),\n          timeOffset: nowTimestamp() - timeBaseline\n        });\n        wrappedCb(\n          typeof DragEvent !== \"undefined\" && evt instanceof DragEvent ? IncrementalSource.Drag : evt instanceof MouseEvent ? IncrementalSource.MouseMove : 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}\nfunction initMouseInteractionObserver({\n  mouseInteractionCb,\n  doc,\n  mirror: mirror2,\n  blockClass,\n  blockSelector,\n  sampling\n}) {\n  if (sampling.mouseInteraction === false) {\n    return () => {\n    };\n  }\n  const disableMap = sampling.mouseInteraction === true || sampling.mouseInteraction === void 0 ? {} : sampling.mouseInteraction;\n  const handlers = [];\n  let currentPointerType = null;\n  const getHandler = (eventKey) => {\n    return (event) => {\n      const target = getEventTarget(event);\n      if (isBlocked(target, blockClass, blockSelector, true)) {\n        return;\n      }\n      let pointerType = 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            thisEventKey = \"TouchStart\";\n          } else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n            thisEventKey = \"TouchEnd\";\n          }\n        } else if (pointerType === PointerTypes.Pen) ;\n      } else if (legacy_isTouchEvent(event)) {\n        pointerType = PointerTypes.Touch;\n      }\n      if (pointerType !== null) {\n        currentPointerType = pointerType;\n        if (thisEventKey.startsWith(\"Touch\") && pointerType === PointerTypes.Touch || thisEventKey.startsWith(\"Mouse\") && pointerType === PointerTypes.Mouse) {\n          pointerType = null;\n        }\n      } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n        pointerType = currentPointerType;\n        currentPointerType = null;\n      }\n      const e2 = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n      if (!e2) {\n        return;\n      }\n      const id = mirror2.getId(target);\n      const { clientX, clientY } = e2;\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).filter(\n    (key) => Number.isNaN(Number(key)) && !key.endsWith(\"_Departed\") && disableMap[key] !== false\n  ).forEach((eventKey) => {\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          );\n          break;\n        case MouseInteractions.TouchStart:\n        case MouseInteractions.TouchEnd:\n          return;\n      }\n    }\n    handlers.push(on(eventName, handler, doc));\n  });\n  return callbackWrapper(() => {\n    handlers.forEach((h) => h());\n  });\n}\nfunction initScrollObserver({\n  scrollCb,\n  doc,\n  mirror: mirror2,\n  blockClass,\n  blockSelector,\n  sampling\n}) {\n  const updatePosition = callbackWrapper(\n    throttle(\n      callbackWrapper((evt) => {\n        const target = getEventTarget(evt);\n        if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n          return;\n        }\n        const id = mirror2.getId(target);\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.scrollLeft,\n            y: target.scrollTop\n          });\n        }\n      }),\n      sampling.scroll || 100\n    )\n  );\n  return on(\"scroll\", updatePosition, doc);\n}\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\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}\nconst INPUT_TAGS = [\"INPUT\", \"TEXTAREA\", \"SELECT\"];\nconst lastInputValueMap = /* @__PURE__ */ new WeakMap();\nfunction initInputObserver({\n  inputCb,\n  doc,\n  mirror: mirror2,\n  blockClass,\n  blockSelector,\n  ignoreClass,\n  ignoreSelector,\n  maskInputOptions,\n  maskInputFn,\n  sampling,\n  userTriggeredOnInput\n}) {\n  function eventHandler(event) {\n    let target = getEventTarget(event);\n    const userTriggered = event.isTrusted;\n    const tagName = target && target.tagName;\n    if (target && tagName === \"OPTION\") {\n      target = index.parentElement(target);\n    }\n    if (!target || !tagName || INPUT_TAGS.indexOf(tagName) < 0 || isBlocked(target, blockClass, blockSelector, true)) {\n      return;\n    }\n    if (target.classList.contains(ignoreClass) || ignoreSelector && target.matches(ignoreSelector)) {\n      return;\n    }\n    let text = target.value;\n    let isChecked = false;\n    const type = getInputType(target) || \"\";\n    if (type === \"radio\" || type === \"checkbox\") {\n      isChecked = target.checked;\n    } else if (maskInputOptions[tagName.toLowerCase()] || maskInputOptions[type]) {\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 ? { text, isChecked, userTriggered } : { text, isChecked }\n    );\n    const name = target.name;\n    if (type === \"radio\" && name && isChecked) {\n      doc.querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`).forEach((el) => {\n        if (el !== target) {\n          const text2 = el.value;\n          cbWithDedup(\n            el,\n            userTriggeredOnInput ? { text: text2, isChecked: !isChecked, userTriggered: false } : { text: text2, isChecked: !isChecked }\n          );\n        }\n      });\n    }\n  }\n  function cbWithDedup(target, v2) {\n    const lastInputValue = lastInputValueMap.get(target);\n    if (!lastInputValue || lastInputValue.text !== v2.text || lastInputValue.isChecked !== v2.isChecked) {\n      lastInputValueMap.set(target, v2);\n      const id = mirror2.getId(target);\n      callbackWrapper(inputCb)({\n        ...v2,\n        id\n      });\n    }\n  }\n  const events = sampling.input === \"last\" ? [\"change\"] : [\"input\", \"change\"];\n  const handlers = 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 = [\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(\n        (p) => hookSetter(\n          p[0],\n          p[1],\n          {\n            set() {\n              callbackWrapper(eventHandler)({\n                target: this,\n                isTrusted: false\n                // userTriggered to false as this could well be programmatic\n              });\n            }\n          },\n          false,\n          currentWindow\n        )\n      )\n    );\n  }\n  return callbackWrapper(() => {\n    handlers.forEach((h) => h());\n  });\n}\nfunction getNestedCSSRulePositions(rule2) {\n  const positions = [];\n  function recurse(childRule, pos) {\n    if (hasNestedCSSRule(\"CSSGroupingRule\") && childRule.parentRule instanceof CSSGroupingRule || hasNestedCSSRule(\"CSSMediaRule\") && childRule.parentRule instanceof CSSMediaRule || hasNestedCSSRule(\"CSSSupportsRule\") && childRule.parentRule instanceof CSSSupportsRule || hasNestedCSSRule(\"CSSConditionRule\") && childRule.parentRule instanceof CSSConditionRule) {\n      const rules2 = Array.from(\n        childRule.parentRule.cssRules\n      );\n      const index2 = rules2.indexOf(childRule);\n      pos.unshift(index2);\n    } else if (childRule.parentStyleSheet) {\n      const rules2 = Array.from(childRule.parentStyleSheet.cssRules);\n      const index2 = rules2.indexOf(childRule);\n      pos.unshift(index2);\n    }\n    return pos;\n  }\n  return recurse(rule2, positions);\n}\nfunction getIdAndStyleId(sheet, mirror2, styleMirror) {\n  let id, styleId;\n  if (!sheet) return {};\n  if (sheet.ownerNode) id = mirror2.getId(sheet.ownerNode);\n  else styleId = styleMirror.getId(sheet);\n  return {\n    styleId,\n    id\n  };\n}\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror: mirror2, stylesheetManager }, { win }) {\n  if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n    return () => {\n    };\n  }\n  const insertRule = win.CSSStyleSheet.prototype.insertRule;\n  win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n    apply: callbackWrapper(\n      (target, thisArg, argumentsList) => {\n        const [rule2, index2] = argumentsList;\n        const { id, styleId } = getIdAndStyleId(\n          thisArg,\n          mirror2,\n          stylesheetManager.styleMirror\n        );\n        if (id && id !== -1 || styleId && styleId !== -1) {\n          styleSheetRuleCb({\n            id,\n            styleId,\n            adds: [{ rule: rule2, index: index2 }]\n          });\n        }\n        return target.apply(thisArg, argumentsList);\n      }\n    )\n  });\n  win.CSSStyleSheet.prototype.addRule = function(selector, styleBlock, index2 = this.cssRules.length) {\n    const rule2 = `${selector} { ${styleBlock} }`;\n    return win.CSSStyleSheet.prototype.insertRule.apply(this, [rule2, index2]);\n  };\n  const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n  win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n    apply: callbackWrapper(\n      (target, thisArg, argumentsList) => {\n        const [index2] = argumentsList;\n        const { id, styleId } = getIdAndStyleId(\n          thisArg,\n          mirror2,\n          stylesheetManager.styleMirror\n        );\n        if (id && id !== -1 || styleId && styleId !== -1) {\n          styleSheetRuleCb({\n            id,\n            styleId,\n            removes: [{ index: index2 }]\n          });\n        }\n        return target.apply(thisArg, argumentsList);\n      }\n    )\n  });\n  win.CSSStyleSheet.prototype.removeRule = function(index2) {\n    return win.CSSStyleSheet.prototype.deleteRule.apply(this, [index2]);\n  };\n  let replace;\n  if (win.CSSStyleSheet.prototype.replace) {\n    replace = win.CSSStyleSheet.prototype.replace;\n    win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n      apply: callbackWrapper(\n        (target, thisArg, argumentsList) => {\n          const [text] = argumentsList;\n          const { id, styleId } = getIdAndStyleId(\n            thisArg,\n            mirror2,\n            stylesheetManager.styleMirror\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  let replaceSync;\n  if (win.CSSStyleSheet.prototype.replaceSync) {\n    replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n    win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n      apply: callbackWrapper(\n        (target, thisArg, argumentsList) => {\n          const [text] = argumentsList;\n          const { id, styleId } = getIdAndStyleId(\n            thisArg,\n            mirror2,\n            stylesheetManager.styleMirror\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  const supportedNestedCSSRuleTypes = {};\n  if (canMonkeyPatchNestedCSSRule(\"CSSGroupingRule\")) {\n    supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n  } else {\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  const unmodifiedFunctions = {};\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    type.prototype.insertRule = new Proxy(\n      unmodifiedFunctions[typeKey].insertRule,\n      {\n        apply: callbackWrapper(\n          (target, thisArg, argumentsList) => {\n            const [rule2, index2] = argumentsList;\n            const { id, styleId } = getIdAndStyleId(\n              thisArg.parentStyleSheet,\n              mirror2,\n              stylesheetManager.styleMirror\n            );\n            if (id && id !== -1 || styleId && styleId !== -1) {\n              styleSheetRuleCb({\n                id,\n                styleId,\n                adds: [\n                  {\n                    rule: rule2,\n                    index: [\n                      ...getNestedCSSRulePositions(thisArg),\n                      index2 || 0\n                      // defaults to 0\n                    ]\n                  }\n                ]\n              });\n            }\n            return target.apply(thisArg, argumentsList);\n          }\n        )\n      }\n    );\n    type.prototype.deleteRule = new Proxy(\n      unmodifiedFunctions[typeKey].deleteRule,\n      {\n        apply: callbackWrapper(\n          (target, thisArg, argumentsList) => {\n            const [index2] = argumentsList;\n            const { id, styleId } = getIdAndStyleId(\n              thisArg.parentStyleSheet,\n              mirror2,\n              stylesheetManager.styleMirror\n            );\n            if (id && id !== -1 || styleId && styleId !== -1) {\n              styleSheetRuleCb({\n                id,\n                styleId,\n                removes: [\n                  { index: [...getNestedCSSRulePositions(thisArg), index2] }\n                ]\n              });\n            }\n            return target.apply(thisArg, argumentsList);\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}\nfunction initAdoptedStyleSheetObserver({\n  mirror: mirror2,\n  stylesheetManager\n}, host2) {\n  var _a2, _b, _c;\n  let hostId = null;\n  if (host2.nodeName === \"#document\") hostId = mirror2.getId(host2);\n  else hostId = mirror2.getId(index.host(host2));\n  const patchTarget = host2.nodeName === \"#document\" ? (_a2 = host2.defaultView) == null ? void 0 : _a2.Document : (_c = (_b = host2.ownerDocument) == null ? void 0 : _b.defaultView) == null ? void 0 : _c.ShadowRoot;\n  const originalPropertyDescriptor = (patchTarget == null ? void 0 : patchTarget.prototype) ? Object.getOwnPropertyDescriptor(\n    patchTarget == null ? void 0 : patchTarget.prototype,\n    \"adoptedStyleSheets\"\n  ) : void 0;\n  if (hostId === null || hostId === -1 || !patchTarget || !originalPropertyDescriptor)\n    return () => {\n    };\n  Object.defineProperty(host2, \"adoptedStyleSheets\", {\n    configurable: originalPropertyDescriptor.configurable,\n    enumerable: originalPropertyDescriptor.enumerable,\n    get() {\n      var _a3;\n      return (_a3 = originalPropertyDescriptor.get) == null ? void 0 : _a3.call(this);\n    },\n    set(sheets) {\n      var _a3;\n      const result2 = (_a3 = originalPropertyDescriptor.set) == null ? void 0 : _a3.call(this, sheets);\n      if (hostId !== null && hostId !== -1) {\n        try {\n          stylesheetManager.adoptStyleSheets(sheets, hostId);\n        } catch (e2) {\n        }\n      }\n      return result2;\n    }\n  });\n  return callbackWrapper(() => {\n    Object.defineProperty(host2, \"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}\nfunction initStyleDeclarationObserver({\n  styleDeclarationCb,\n  mirror: mirror2,\n  ignoreCSSAttributes,\n  stylesheetManager\n}, { win }) {\n  const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n  win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n    apply: callbackWrapper(\n      (target, thisArg, argumentsList) => {\n        var _a2;\n        const [property, value, priority] = argumentsList;\n        if (ignoreCSSAttributes.has(property)) {\n          return setProperty.apply(thisArg, [property, value, priority]);\n        }\n        const { id, styleId } = getIdAndStyleId(\n          (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n          mirror2,\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  const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n  win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n    apply: callbackWrapper(\n      (target, thisArg, argumentsList) => {\n        var _a2;\n        const [property] = argumentsList;\n        if (ignoreCSSAttributes.has(property)) {\n          return removeProperty.apply(thisArg, [property]);\n        }\n        const { id, styleId } = getIdAndStyleId(\n          (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n          mirror2,\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  return callbackWrapper(() => {\n    win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n    win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n  });\n}\nfunction initMediaInteractionObserver({\n  mediaInteractionCb,\n  blockClass,\n  blockSelector,\n  mirror: mirror2,\n  sampling,\n  doc\n}) {\n  const handler = callbackWrapper(\n    (type) => throttle(\n      callbackWrapper((event) => {\n        const target = getEventTarget(event);\n        if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n          return;\n        }\n        const { currentTime, volume, muted, playbackRate, loop } = target;\n        mediaInteractionCb({\n          type,\n          id: mirror2.getId(target),\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}\nfunction initFontObserver({ fontCb, doc }) {\n  const win = doc.defaultView;\n  if (!win) {\n    return () => {\n    };\n  }\n  const handlers = [];\n  const fontMap = /* @__PURE__ */ new WeakMap();\n  const originalFontFace = win.FontFace;\n  win.FontFace = function FontFace2(family, source, descriptors) {\n    const fontFace = new originalFontFace(family, source, descriptors);\n    fontMap.set(fontFace, {\n      family,\n      buffer: typeof source !== \"string\",\n      descriptors,\n      fontSource: typeof source === \"string\" ? source : JSON.stringify(Array.from(new Uint8Array(source)))\n    });\n    return fontFace;\n  };\n  const restoreHandler = patch(\n    doc.fonts,\n    \"add\",\n    function(original) {\n      return function(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  handlers.push(() => {\n    win.FontFace = originalFontFace;\n  });\n  handlers.push(restoreHandler);\n  return callbackWrapper(() => {\n    handlers.forEach((h) => h());\n  });\n}\nfunction initSelectionObserver(param) {\n  const { doc, mirror: mirror2, blockClass, blockSelector, selectionCb } = param;\n  let collapsed = true;\n  const updateSelection = callbackWrapper(() => {\n    const selection = doc.getSelection();\n    if (!selection || collapsed && (selection == null ? void 0 : selection.isCollapsed)) return;\n    collapsed = selection.isCollapsed || false;\n    const ranges = [];\n    const count = selection.rangeCount || 0;\n    for (let i2 = 0; i2 < count; i2++) {\n      const range = selection.getRangeAt(i2);\n      const { startContainer, startOffset, endContainer, endOffset } = range;\n      const blocked = isBlocked(startContainer, blockClass, blockSelector, true) || isBlocked(endContainer, blockClass, blockSelector, true);\n      if (blocked) continue;\n      ranges.push({\n        start: mirror2.getId(startContainer),\n        startOffset,\n        end: mirror2.getId(endContainer),\n        endOffset\n      });\n    }\n    selectionCb({ ranges });\n  });\n  updateSelection();\n  return on(\"selectionchange\", updateSelection);\n}\nfunction initCustomElementObserver({\n  doc,\n  customElementCb\n}) {\n  const win = doc.defaultView;\n  if (!win || !win.customElements) return () => {\n  };\n  const restoreHandler = patch(\n    win.customElements,\n    \"define\",\n    function(original) {\n      return function(name, constructor, options) {\n        try {\n          customElementCb({\n            define: {\n              name\n            }\n          });\n        } catch (e2) {\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}\nfunction mergeHooks(o2, hooks) {\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  } = o2;\n  o2.mutationCb = (...p) => {\n    if (hooks.mutation) {\n      hooks.mutation(...p);\n    }\n    mutationCb(...p);\n  };\n  o2.mousemoveCb = (...p) => {\n    if (hooks.mousemove) {\n      hooks.mousemove(...p);\n    }\n    mousemoveCb(...p);\n  };\n  o2.mouseInteractionCb = (...p) => {\n    if (hooks.mouseInteraction) {\n      hooks.mouseInteraction(...p);\n    }\n    mouseInteractionCb(...p);\n  };\n  o2.scrollCb = (...p) => {\n    if (hooks.scroll) {\n      hooks.scroll(...p);\n    }\n    scrollCb(...p);\n  };\n  o2.viewportResizeCb = (...p) => {\n    if (hooks.viewportResize) {\n      hooks.viewportResize(...p);\n    }\n    viewportResizeCb(...p);\n  };\n  o2.inputCb = (...p) => {\n    if (hooks.input) {\n      hooks.input(...p);\n    }\n    inputCb(...p);\n  };\n  o2.mediaInteractionCb = (...p) => {\n    if (hooks.mediaInteaction) {\n      hooks.mediaInteaction(...p);\n    }\n    mediaInteractionCb(...p);\n  };\n  o2.styleSheetRuleCb = (...p) => {\n    if (hooks.styleSheetRule) {\n      hooks.styleSheetRule(...p);\n    }\n    styleSheetRuleCb(...p);\n  };\n  o2.styleDeclarationCb = (...p) => {\n    if (hooks.styleDeclaration) {\n      hooks.styleDeclaration(...p);\n    }\n    styleDeclarationCb(...p);\n  };\n  o2.canvasMutationCb = (...p) => {\n    if (hooks.canvasMutation) {\n      hooks.canvasMutation(...p);\n    }\n    canvasMutationCb(...p);\n  };\n  o2.fontCb = (...p) => {\n    if (hooks.font) {\n      hooks.font(...p);\n    }\n    fontCb(...p);\n  };\n  o2.selectionCb = (...p) => {\n    if (hooks.selection) {\n      hooks.selection(...p);\n    }\n    selectionCb(...p);\n  };\n  o2.customElementCb = (...c2) => {\n    if (hooks.customElement) {\n      hooks.customElement(...c2);\n    }\n    customElementCb(...c2);\n  };\n}\nfunction initObservers(o2, hooks = {}) {\n  const currentWindow = o2.doc.defaultView;\n  if (!currentWindow) {\n    return () => {\n    };\n  }\n  mergeHooks(o2, hooks);\n  let mutationObserver;\n  if (o2.recordDOM) {\n    mutationObserver = initMutationObserver(o2, o2.doc);\n  }\n  const mousemoveHandler = initMoveObserver(o2);\n  const mouseInteractionHandler = initMouseInteractionObserver(o2);\n  const scrollHandler = initScrollObserver(o2);\n  const viewportResizeHandler = initViewportResizeObserver(o2, {\n    win: currentWindow\n  });\n  const inputHandler = initInputObserver(o2);\n  const mediaInteractionHandler = initMediaInteractionObserver(o2);\n  let styleSheetObserver = () => {\n  };\n  let adoptedStyleSheetObserver = () => {\n  };\n  let styleDeclarationObserver = () => {\n  };\n  let fontObserver = () => {\n  };\n  if (o2.recordDOM) {\n    styleSheetObserver = initStyleSheetObserver(o2, { win: currentWindow });\n    adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o2, o2.doc);\n    styleDeclarationObserver = initStyleDeclarationObserver(o2, {\n      win: currentWindow\n    });\n    if (o2.collectFonts) {\n      fontObserver = initFontObserver(o2);\n    }\n  }\n  const selectionObserver = initSelectionObserver(o2);\n  const customElementObserver = initCustomElementObserver(o2);\n  const pluginHandlers = [];\n  for (const plugin3 of o2.plugins) {\n    pluginHandlers.push(\n      plugin3.observer(plugin3.callback, currentWindow, plugin3.options)\n    );\n  }\n  return callbackWrapper(() => {\n    mutationBuffers.forEach((b) => b.reset());\n    mutationObserver == null ? void 0 : 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}\nfunction hasNestedCSSRule(prop) {\n  return typeof window[prop] !== \"undefined\";\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n  return Boolean(\n    typeof window[prop] !== \"undefined\" && // 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 && \"insertRule\" in window[prop].prototype && \"deleteRule\" in window[prop].prototype\n  );\n}\nclass CrossOriginIframeMirror {\n  constructor(generateIdFn) {\n    __publicField(this, \"iframeIdToRemoteIdMap\", /* @__PURE__ */ new WeakMap());\n    __publicField(this, \"iframeRemoteIdToIdMap\", /* @__PURE__ */ new WeakMap());\n    this.generateIdFn = generateIdFn;\n  }\n  getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n    const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n    const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\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  getIds(iframe, remoteId) {\n    const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n    const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n    return remoteId.map(\n      (id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap)\n    );\n  }\n  getRemoteId(iframe, id, map) {\n    const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n    if (typeof id !== \"number\") return id;\n    const remoteId = remoteIdToIdMap.get(id);\n    if (!remoteId) return -1;\n    return remoteId;\n  }\n  getRemoteIds(iframe, ids) {\n    const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n    return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n  }\n  reset(iframe) {\n    if (!iframe) {\n      this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap();\n      this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();\n      return;\n    }\n    this.iframeIdToRemoteIdMap.delete(iframe);\n    this.iframeRemoteIdToIdMap.delete(iframe);\n  }\n  getIdToRemoteIdMap(iframe) {\n    let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n    if (!idToRemoteIdMap) {\n      idToRemoteIdMap = /* @__PURE__ */ new Map();\n      this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n    }\n    return idToRemoteIdMap;\n  }\n  getRemoteIdToIdMap(iframe) {\n    let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n    if (!remoteIdToIdMap) {\n      remoteIdToIdMap = /* @__PURE__ */ new Map();\n      this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n    }\n    return remoteIdToIdMap;\n  }\n}\nclass IframeManager {\n  constructor(options) {\n    __publicField(this, \"iframes\", /* @__PURE__ */ new WeakMap());\n    __publicField(this, \"crossOriginIframeMap\", /* @__PURE__ */ new WeakMap());\n    __publicField(this, \"crossOriginIframeMirror\", new CrossOriginIframeMirror(genId));\n    __publicField(this, \"crossOriginIframeStyleMirror\");\n    __publicField(this, \"crossOriginIframeRootIdMap\", /* @__PURE__ */ new WeakMap());\n    __publicField(this, \"mirror\");\n    __publicField(this, \"mutationCb\");\n    __publicField(this, \"wrappedEmit\");\n    __publicField(this, \"loadListener\");\n    __publicField(this, \"stylesheetManager\");\n    __publicField(this, \"recordCrossOriginIframes\");\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    if (this.recordCrossOriginIframes) {\n      window.addEventListener(\"message\", this.handleMessage.bind(this));\n    }\n  }\n  addIframe(iframeEl) {\n    this.iframes.set(iframeEl, true);\n    if (iframeEl.contentWindow)\n      this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n  }\n  addLoadListener(cb) {\n    this.loadListener = cb;\n  }\n  attachIframe(iframeEl, childSn) {\n    var _a2, _b;\n    this.mutationCb({\n      adds: [\n        {\n          parentId: this.mirror.getId(iframeEl),\n          nextId: null,\n          node: childSn\n        }\n      ],\n      removes: [],\n      texts: [],\n      attributes: [],\n      isAttachIframe: true\n    });\n    if (this.recordCrossOriginIframes)\n      (_a2 = iframeEl.contentWindow) == null ? void 0 : _a2.addEventListener(\n        \"message\",\n        this.handleMessage.bind(this)\n      );\n    (_b = this.loadListener) == null ? void 0 : _b.call(this, iframeEl);\n    if (iframeEl.contentDocument && iframeEl.contentDocument.adoptedStyleSheets && iframeEl.contentDocument.adoptedStyleSheets.length > 0)\n      this.stylesheetManager.adoptStyleSheets(\n        iframeEl.contentDocument.adoptedStyleSheets,\n        this.mirror.getId(iframeEl.contentDocument)\n      );\n  }\n  handleMessage(message) {\n    const crossOriginMessageEvent = message;\n    if (crossOriginMessageEvent.data.type !== \"rrweb\" || // To filter out the rrweb messages which are forwarded by some sites.\n    crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n      return;\n    const iframeSourceWindow = message.source;\n    if (!iframeSourceWindow) return;\n    const iframeEl = this.crossOriginIframeMap.get(message.source);\n    if (!iframeEl) return;\n    const transformedEvent = this.transformCrossOriginEvent(\n      iframeEl,\n      crossOriginMessageEvent.data.event\n    );\n    if (transformedEvent)\n      this.wrappedEmit(\n        transformedEvent,\n        crossOriginMessageEvent.data.isCheckout\n      );\n  }\n  transformCrossOriginEvent(iframeEl, e2) {\n    var _a2;\n    switch (e2.type) {\n      case EventType.FullSnapshot: {\n        this.crossOriginIframeMirror.reset(iframeEl);\n        this.crossOriginIframeStyleMirror.reset(iframeEl);\n        this.replaceIdOnNode(e2.data.node, iframeEl);\n        const rootId = e2.data.node.id;\n        this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n        this.patchRootIdOnNode(e2.data.node, rootId);\n        return {\n          timestamp: e2.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: e2.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 e2;\n      }\n      case EventType.Custom: {\n        this.replaceIds(\n          e2.data.payload,\n          iframeEl,\n          [\"id\", \"parentId\", \"previousId\", \"nextId\"]\n        );\n        return e2;\n      }\n      case EventType.IncrementalSnapshot: {\n        switch (e2.data.source) {\n          case IncrementalSource.Mutation: {\n            e2.data.adds.forEach((n2) => {\n              this.replaceIds(n2, iframeEl, [\n                \"parentId\",\n                \"nextId\",\n                \"previousId\"\n              ]);\n              this.replaceIdOnNode(n2.node, iframeEl);\n              const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n              rootId && this.patchRootIdOnNode(n2.node, rootId);\n            });\n            e2.data.removes.forEach((n2) => {\n              this.replaceIds(n2, iframeEl, [\"parentId\", \"id\"]);\n            });\n            e2.data.attributes.forEach((n2) => {\n              this.replaceIds(n2, iframeEl, [\"id\"]);\n            });\n            e2.data.texts.forEach((n2) => {\n              this.replaceIds(n2, iframeEl, [\"id\"]);\n            });\n            return e2;\n          }\n          case IncrementalSource.Drag:\n          case IncrementalSource.TouchMove:\n          case IncrementalSource.MouseMove: {\n            e2.data.positions.forEach((p) => {\n              this.replaceIds(p, iframeEl, [\"id\"]);\n            });\n            return e2;\n          }\n          case IncrementalSource.ViewportResize: {\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(e2.data, iframeEl, [\"id\"]);\n            return e2;\n          }\n          case IncrementalSource.StyleSheetRule:\n          case IncrementalSource.StyleDeclaration: {\n            this.replaceIds(e2.data, iframeEl, [\"id\"]);\n            this.replaceStyleIds(e2.data, iframeEl, [\"styleId\"]);\n            return e2;\n          }\n          case IncrementalSource.Font: {\n            return e2;\n          }\n          case IncrementalSource.Selection: {\n            e2.data.ranges.forEach((range) => {\n              this.replaceIds(range, iframeEl, [\"start\", \"end\"]);\n            });\n            return e2;\n          }\n          case IncrementalSource.AdoptedStyleSheet: {\n            this.replaceIds(e2.data, iframeEl, [\"id\"]);\n            this.replaceStyleIds(e2.data, iframeEl, [\"styleIds\"]);\n            (_a2 = e2.data.styles) == null ? void 0 : _a2.forEach((style) => {\n              this.replaceStyleIds(style, iframeEl, [\"styleId\"]);\n            });\n            return e2;\n          }\n        }\n      }\n    }\n    return false;\n  }\n  replace(iframeMirror, obj, iframeEl, keys) {\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]\n        );\n      } else {\n        obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n      }\n    }\n    return obj;\n  }\n  replaceIds(obj, iframeEl, keys) {\n    return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n  }\n  replaceStyleIds(obj, iframeEl, keys) {\n    return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n  }\n  replaceIdOnNode(node2, iframeEl) {\n    this.replaceIds(node2, iframeEl, [\"id\", \"rootId\"]);\n    if (\"childNodes\" in node2) {\n      node2.childNodes.forEach((child) => {\n        this.replaceIdOnNode(child, iframeEl);\n      });\n    }\n  }\n  patchRootIdOnNode(node2, rootId) {\n    if (node2.type !== NodeType.Document && !node2.rootId) node2.rootId = rootId;\n    if (\"childNodes\" in node2) {\n      node2.childNodes.forEach((child) => {\n        this.patchRootIdOnNode(child, rootId);\n      });\n    }\n  }\n}\nclass ShadowDomManager {\n  constructor(options) {\n    __publicField(this, \"shadowDoms\", /* @__PURE__ */ new WeakSet());\n    __publicField(this, \"mutationCb\");\n    __publicField(this, \"scrollCb\");\n    __publicField(this, \"bypassOptions\");\n    __publicField(this, \"mirror\");\n    __publicField(this, \"restoreHandlers\", []);\n    this.mutationCb = options.mutationCb;\n    this.scrollCb = options.scrollCb;\n    this.bypassOptions = options.bypassOptions;\n    this.mirror = options.mirror;\n    this.init();\n  }\n  init() {\n    this.reset();\n    this.patchAttachShadow(Element, document);\n  }\n  addShadowRoot(shadowRoot2, doc) {\n    if (!isNativeShadowDom(shadowRoot2)) return;\n    if (this.shadowDoms.has(shadowRoot2)) return;\n    this.shadowDoms.add(shadowRoot2);\n    const observer = initMutationObserver(\n      {\n        ...this.bypassOptions,\n        doc,\n        mutationCb: this.mutationCb,\n        mirror: this.mirror,\n        shadowDomManager: this\n      },\n      shadowRoot2\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: shadowRoot2,\n        mirror: this.mirror\n      })\n    );\n    setTimeout(() => {\n      if (shadowRoot2.adoptedStyleSheets && shadowRoot2.adoptedStyleSheets.length > 0)\n        this.bypassOptions.stylesheetManager.adoptStyleSheets(\n          shadowRoot2.adoptedStyleSheets,\n          this.mirror.getId(index.host(shadowRoot2))\n        );\n      this.restoreHandlers.push(\n        initAdoptedStyleSheetObserver(\n          {\n            mirror: this.mirror,\n            stylesheetManager: this.bypassOptions.stylesheetManager\n          },\n          shadowRoot2\n        )\n      );\n    }, 0);\n  }\n  /**\n   * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n   */\n  observeAttachShadow(iframeElement) {\n    if (!iframeElement.contentWindow || !iframeElement.contentDocument) return;\n    this.patchAttachShadow(\n      iframeElement.contentWindow.Element,\n      iframeElement.contentDocument\n    );\n  }\n  /**\n   * Patch 'attachShadow' to observe newly added shadow doms.\n   */\n  patchAttachShadow(element, doc) {\n    const manager = this;\n    this.restoreHandlers.push(\n      patch(\n        element.prototype,\n        \"attachShadow\",\n        function(original) {\n          return function(option) {\n            const sRoot = original.call(this, option);\n            const shadowRootEl = index.shadowRoot(this);\n            if (shadowRootEl && inDom(this))\n              manager.addShadowRoot(shadowRootEl, doc);\n            return sRoot;\n          };\n        }\n      )\n    );\n  }\n  reset() {\n    this.restoreHandlers.forEach((handler) => {\n      try {\n        handler();\n      } catch (e2) {\n      }\n    });\n    this.restoreHandlers = [];\n    this.shadowDoms = /* @__PURE__ */ new WeakSet();\n  }\n}\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\nfor (var i$1 = 0; i$1 < chars.length; i$1++) {\n  lookup[chars.charCodeAt(i$1)] = i$1;\n}\nvar encode = function(arraybuffer) {\n  var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\n  for (i2 = 0; i2 < len; i2 += 3) {\n    base64 += chars[bytes[i2] >> 2];\n    base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\n    base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\n    base64 += chars[bytes[i2 + 2] & 63];\n  }\n  if (len % 3 === 2) {\n    base64 = base64.substring(0, base64.length - 1) + \"=\";\n  } else if (len % 3 === 1) {\n    base64 = base64.substring(0, base64.length - 2) + \"==\";\n  }\n  return base64;\n};\nconst canvasVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor$1(ctx, ctor) {\n  let contextMap = canvasVarMap.get(ctx);\n  if (!contextMap) {\n    contextMap = /* @__PURE__ */ new Map();\n    canvasVarMap.set(ctx, contextMap);\n  }\n  if (!contextMap.has(ctor)) {\n    contextMap.set(ctor, []);\n  }\n  return contextMap.get(ctor);\n}\nconst saveWebGLVar = (value, win, ctx) => {\n  if (!value || !(isInstanceOfWebGLObject(value, win) || typeof value === \"object\"))\n    return;\n  const name = value.constructor.name;\n  const list2 = variableListFor$1(ctx, name);\n  let index2 = list2.indexOf(value);\n  if (index2 === -1) {\n    index2 = list2.length;\n    list2.push(value);\n  }\n  return index2;\n};\nfunction serializeArg(value, win, ctx) {\n  if (value instanceof Array) {\n    return value.map((arg) => serializeArg(arg, win, ctx));\n  } else if (value === null) {\n    return value;\n  } else if (value instanceof Float32Array || value instanceof Float64Array || value instanceof Int32Array || value instanceof Uint32Array || value instanceof Uint8Array || value instanceof Uint16Array || value instanceof Int16Array || value instanceof Int8Array || value instanceof Uint8ClampedArray) {\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;\n    const base64 = encode(value);\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),\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    const src = value.toDataURL();\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: [serializeArg(value.data, win, ctx), value.width, value.height]\n    };\n  } else if (isInstanceOfWebGLObject(value, win) || typeof value === \"object\") {\n    const name = value.constructor.name;\n    const index2 = saveWebGLVar(value, win, ctx);\n    return {\n      rr_type: name,\n      index: index2\n    };\n  }\n  return value;\n}\nconst serializeArgs = (args, win, ctx) => {\n  return args.map((arg) => serializeArg(arg, win, ctx));\n};\nconst isInstanceOfWebGLObject = (value, win) => {\n  const webGLConstructorNames = [\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) => typeof win[name] === \"function\"\n  );\n  return Boolean(\n    supportedWebGLConstructorNames.find(\n      (name) => value instanceof win[name]\n    )\n  );\n};\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\n  const handlers = [];\n  const props2D = Object.getOwnPropertyNames(\n    win.CanvasRenderingContext2D.prototype\n  );\n  for (const prop of props2D) {\n    try {\n      if (typeof win.CanvasRenderingContext2D.prototype[prop] !== \"function\") {\n        continue;\n      }\n      const restoreHandler = patch(\n        win.CanvasRenderingContext2D.prototype,\n        prop,\n        function(original) {\n          return function(...args) {\n            if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\n              setTimeout(() => {\n                const recordArgs = serializeArgs(args, win, this);\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(\n        win.CanvasRenderingContext2D.prototype,\n        prop,\n        {\n          set(v2) {\n            cb(this.canvas, {\n              type: CanvasContext[\"2D\"],\n              property: prop,\n              args: [v2],\n              setter: true\n            });\n          }\n        }\n      );\n      handlers.push(hookHandler);\n    }\n  }\n  return () => {\n    handlers.forEach((h) => h());\n  };\n}\nfunction getNormalizedContextName(contextType) {\n  return contextType === \"experimental-webgl\" ? \"webgl\" : contextType;\n}\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\n  const handlers = [];\n  try {\n    const restoreHandler = patch(\n      win.HTMLCanvasElement.prototype,\n      \"getContext\",\n      function(original) {\n        return function(contextType, ...args) {\n          if (!isBlocked(this, blockClass, blockSelector, true)) {\n            const ctxName = getNormalizedContextName(contextType);\n            if (!(\"__context\" in this)) this.__context = ctxName;\n            if (setPreserveDrawingBufferToTrue && [\"webgl\", \"webgl2\"].includes(ctxName)) {\n              if (args[0] && typeof args[0] === \"object\") {\n                const contextAttributes = args[0];\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}\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, win) {\n  const handlers = [];\n  const props = Object.getOwnPropertyNames(prototype);\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      continue;\n    }\n    try {\n      if (typeof prototype[prop] !== \"function\") {\n        continue;\n      }\n      const restoreHandler = patch(\n        prototype,\n        prop,\n        function(original) {\n          return function(...args) {\n            const result2 = original.apply(this, args);\n            saveWebGLVar(result2, win, this);\n            if (\"tagName\" in this.canvas && !isBlocked(this.canvas, blockClass, blockSelector, true)) {\n              const recordArgs = serializeArgs(args, win, this);\n              const mutation = {\n                type,\n                property: prop,\n                args: recordArgs\n              };\n              cb(this.canvas, mutation);\n            }\n            return result2;\n          };\n        }\n      );\n      handlers.push(restoreHandler);\n    } catch {\n      const hookHandler = hookSetter(prototype, prop, {\n        set(v2) {\n          cb(this.canvas, {\n            type,\n            property: prop,\n            args: [v2],\n            setter: true\n          });\n        }\n      });\n      handlers.push(hookHandler);\n    }\n  }\n  return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector) {\n  const handlers = [];\n  handlers.push(\n    ...patchGLPrototype(\n      win.WebGLRenderingContext.prototype,\n      CanvasContext.WebGL,\n      cb,\n      blockClass,\n      blockSelector,\n      win\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      )\n    );\n  }\n  return () => {\n    handlers.forEach((h) => h());\n  };\n}\nconst encodedJs = \"KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIHdvcmtlci5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbihlKSB7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zIH0gPSBlLmRhdGE7CiAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodCwKICAgICAgICBkYXRhVVJMT3B0aW9ucwogICAgICApOwogICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOwogICAgICBjb25zdCBjdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgY3R4LmRyYXdJbWFnZShiaXRtYXAsIDAsIDApOwogICAgICBiaXRtYXAuY2xvc2UoKTsKICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IG9mZnNjcmVlbi5jb252ZXJ0VG9CbG9iKGRhdGFVUkxPcHRpb25zKTsKICAgICAgY29uc3QgdHlwZSA9IGJsb2IudHlwZTsKICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7CiAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7CiAgICAgIGlmICghbGFzdEJsb2JNYXAuaGFzKGlkKSAmJiBhd2FpdCB0cmFuc3BhcmVudEJhc2U2NCA9PT0gYmFzZTY0KSB7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCB9KTsKICAgICAgfQogICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KSByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0CiAgICAgIH0pOwogICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsKICAgIH0KICB9Owp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1iaXRtYXAtZGF0YS11cmwtd29ya2VyLUlKcEM3Z19iLmpzLm1hcAo=\";\nconst decodeBase64 = (base64) => Uint8Array.from(atob(base64), (c2) => c2.charCodeAt(0));\nconst blob = typeof window !== \"undefined\" && window.Blob && new Blob([decodeBase64(encodedJs)], { type: \"text/javascript;charset=utf-8\" });\nfunction WorkerWrapper(options) {\n  let objURL;\n  try {\n    objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);\n    if (!objURL) throw \"\";\n    const worker = new Worker(objURL, {\n      name: options == null ? void 0 : options.name\n    });\n    worker.addEventListener(\"error\", () => {\n      (window.URL || window.webkitURL).revokeObjectURL(objURL);\n    });\n    return worker;\n  } catch (e2) {\n    return new Worker(\n      \"data:text/javascript;base64,\" + encodedJs,\n      {\n        name: options == null ? void 0 : options.name\n      }\n    );\n  } finally {\n    objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);\n  }\n}\nclass CanvasManager {\n  constructor(options) {\n    __publicField(this, \"pendingCanvasMutations\", /* @__PURE__ */ new Map());\n    __publicField(this, \"rafStamps\", { latestId: 0, invokeId: null });\n    __publicField(this, \"mirror\");\n    __publicField(this, \"mutationCb\");\n    __publicField(this, \"resetObservers\");\n    __publicField(this, \"frozen\", false);\n    __publicField(this, \"locked\", false);\n    __publicField(this, \"processMutation\", (target, mutation) => {\n      const newFrame = this.rafStamps.invokeId && this.rafStamps.latestId !== this.rafStamps.invokeId;\n      if (newFrame || !this.rafStamps.invokeId)\n        this.rafStamps.invokeId = this.rafStamps.latestId;\n      if (!this.pendingCanvasMutations.has(target)) {\n        this.pendingCanvasMutations.set(target, []);\n      }\n      this.pendingCanvasMutations.get(target).push(mutation);\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    if (recordCanvas && sampling === \"all\")\n      this.initCanvasMutationObserver(win, blockClass, blockSelector);\n    if (recordCanvas && typeof sampling === \"number\")\n      this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\n        dataURLOptions\n      });\n  }\n  reset() {\n    this.pendingCanvasMutations.clear();\n    this.resetObservers && this.resetObservers();\n  }\n  freeze() {\n    this.frozen = true;\n  }\n  unfreeze() {\n    this.frozen = false;\n  }\n  lock() {\n    this.locked = true;\n  }\n  unlock() {\n    this.locked = false;\n  }\n  initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\n    const canvasContextReset = initCanvasContextObserver(\n      win,\n      blockClass,\n      blockSelector,\n      true\n    );\n    const snapshotInProgressMap = /* @__PURE__ */ new Map();\n    const worker = new WorkerWrapper();\n    worker.onmessage = (e2) => {\n      const { id } = e2.data;\n      snapshotInProgressMap.set(id, false);\n      if (!(\"base64\" in e2.data)) return;\n      const { base64, type, width, height } = e2.data;\n      this.mutationCb({\n        id,\n        type: CanvasContext[\"2D\"],\n        commands: [\n          {\n            property: \"clearRect\",\n            // wipe canvas\n            args: [0, 0, width, height]\n          },\n          {\n            property: \"drawImage\",\n            // 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              },\n              0,\n              0\n            ]\n          }\n        ]\n      });\n    };\n    const timeBetweenSnapshots = 1e3 / fps;\n    let lastSnapshotTime = 0;\n    let rafId;\n    const getCanvas = () => {\n      const matchedCanvas = [];\n      win.document.querySelectorAll(\"canvas\").forEach((canvas) => {\n        if (!isBlocked(canvas, blockClass, blockSelector, true)) {\n          matchedCanvas.push(canvas);\n        }\n      });\n      return matchedCanvas;\n    };\n    const takeCanvasSnapshots = (timestamp) => {\n      if (lastSnapshotTime && timestamp - lastSnapshotTime < timeBetweenSnapshots) {\n        rafId = requestAnimationFrame(takeCanvasSnapshots);\n        return;\n      }\n      lastSnapshotTime = timestamp;\n      getCanvas().forEach(async (canvas) => {\n        var _a2;\n        const id = this.mirror.getId(canvas);\n        if (snapshotInProgressMap.get(id)) return;\n        if (canvas.width === 0 || canvas.height === 0) return;\n        snapshotInProgressMap.set(id, true);\n        if ([\"webgl\", \"webgl2\"].includes(canvas.__context)) {\n          const context = canvas.getContext(canvas.__context);\n          if (((_a2 = context == null ? void 0 : context.getContextAttributes()) == null ? void 0 : _a2.preserveDrawingBuffer) === false) {\n            context.clear(context.COLOR_BUFFER_BIT);\n          }\n        }\n        const bitmap = await createImageBitmap(canvas);\n        worker.postMessage(\n          {\n            id,\n            bitmap,\n            width: canvas.width,\n            height: canvas.height,\n            dataURLOptions: options.dataURLOptions\n          },\n          [bitmap]\n        );\n      });\n      rafId = requestAnimationFrame(takeCanvasSnapshots);\n    };\n    rafId = requestAnimationFrame(takeCanvasSnapshots);\n    this.resetObservers = () => {\n      canvasContextReset();\n      cancelAnimationFrame(rafId);\n    };\n  }\n  initCanvasMutationObserver(win, blockClass, blockSelector) {\n    this.startRAFTimestamping();\n    this.startPendingCanvasMutationFlusher();\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    );\n    const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(\n      this.processMutation.bind(this),\n      win,\n      blockClass,\n      blockSelector\n    );\n    this.resetObservers = () => {\n      canvasContextReset();\n      canvas2DReset();\n      canvasWebGL1and2Reset();\n    };\n  }\n  startPendingCanvasMutationFlusher() {\n    requestAnimationFrame(() => this.flushPendingCanvasMutations());\n  }\n  startRAFTimestamping() {\n    const setLatestRAFTimestamp = (timestamp) => {\n      this.rafStamps.latestId = timestamp;\n      requestAnimationFrame(setLatestRAFTimestamp);\n    };\n    requestAnimationFrame(setLatestRAFTimestamp);\n  }\n  flushPendingCanvasMutations() {\n    this.pendingCanvasMutations.forEach(\n      (_values, canvas) => {\n        const id = this.mirror.getId(canvas);\n        this.flushPendingCanvasMutationFor(canvas, id);\n      }\n    );\n    requestAnimationFrame(() => this.flushPendingCanvasMutations());\n  }\n  flushPendingCanvasMutationFor(canvas, id) {\n    if (this.frozen || this.locked) {\n      return;\n    }\n    const valuesWithType = this.pendingCanvasMutations.get(canvas);\n    if (!valuesWithType || id === -1) return;\n    const values = valuesWithType.map((value) => {\n      const { type: type2, ...rest } = value;\n      return rest;\n    });\n    const { type } = valuesWithType[0];\n    this.mutationCb({ id, type, commands: values });\n    this.pendingCanvasMutations.delete(canvas);\n  }\n}\nclass StylesheetManager {\n  constructor(options) {\n    __publicField(this, \"trackedLinkElements\", /* @__PURE__ */ new WeakSet());\n    __publicField(this, \"mutationCb\");\n    __publicField(this, \"adoptedStyleSheetCb\");\n    __publicField(this, \"styleMirror\", new StyleSheetMirror());\n    this.mutationCb = options.mutationCb;\n    this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n  }\n  attachLinkElement(linkEl, childSn) {\n    if (\"_cssText\" in childSn.attributes)\n      this.mutationCb({\n        adds: [],\n        removes: [],\n        texts: [],\n        attributes: [\n          {\n            id: childSn.id,\n            attributes: childSn.attributes\n          }\n        ]\n      });\n    this.trackLinkElement(linkEl);\n  }\n  trackLinkElement(linkEl) {\n    if (this.trackedLinkElements.has(linkEl)) return;\n    this.trackedLinkElements.add(linkEl);\n    this.trackStylesheetInLinkElement(linkEl);\n  }\n  adoptStyleSheets(sheets, hostId) {\n    if (sheets.length === 0) return;\n    const adoptedStyleSheetData = {\n      id: hostId,\n      styleIds: []\n    };\n    const 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, (r2, index2) => ({\n            rule: stringifyRule(r2, sheet.href),\n            index: index2\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  reset() {\n    this.styleMirror.reset();\n    this.trackedLinkElements = /* @__PURE__ */ new WeakSet();\n  }\n  // TODO: take snapshot on stylesheet reload by applying event listener\n  trackStylesheetInLinkElement(_linkEl) {\n  }\n}\nclass ProcessedNodeManager {\n  constructor() {\n    __publicField(this, \"nodeMap\", /* @__PURE__ */ new WeakMap());\n    __publicField(this, \"active\", false);\n  }\n  inOtherBuffer(node2, thisBuffer) {\n    const buffers = this.nodeMap.get(node2);\n    return buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer);\n  }\n  add(node2, buffer) {\n    if (!this.active) {\n      this.active = true;\n      requestAnimationFrame(() => {\n        this.nodeMap = /* @__PURE__ */ new WeakMap();\n        this.active = false;\n      });\n    }\n    this.nodeMap.set(node2, (this.nodeMap.get(node2) || /* @__PURE__ */ new Set()).add(buffer));\n  }\n  destroy() {\n  }\n}\nlet wrappedEmit;\nlet takeFullSnapshot$1;\nlet canvasManager;\nlet recording = false;\ntry {\n  if (Array.from([1], (x2) => x2 * 2)[0] !== 2) {\n    const cleanFrame = document.createElement(\"iframe\");\n    document.body.appendChild(cleanFrame);\n    Array.from = ((_a = cleanFrame.contentWindow) == null ? void 0 : _a.Array.from) || Array.from;\n    document.body.removeChild(cleanFrame);\n  }\n} catch (err) {\n  console.debug(\"Unable to override Array.from\", err);\n}\nconst mirror = createMirror$2();\nfunction record(options = {}) {\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 = {},\n    mousemoveWait,\n    recordDOM = true,\n    recordCanvas = false,\n    recordCrossOriginIframes = false,\n    recordAfter = options.recordAfter === \"DOMContentLoaded\" ? options.recordAfter : \"load\",\n    userTriggeredOnInput = false,\n    collectFonts = false,\n    inlineImages = false,\n    plugins,\n    keepIframeSrcFn = () => false,\n    ignoreCSSAttributes = /* @__PURE__ */ new Set([]),\n    errorHandler: errorHandler2\n  } = options;\n  registerErrorHandler(errorHandler2);\n  const inEmittingFrame = recordCrossOriginIframes ? window.parent === window : true;\n  let passEmitsToParent = false;\n  if (!inEmittingFrame) {\n    try {\n      if (window.parent.document) {\n        passEmitsToParent = false;\n      }\n    } catch (e2) {\n      passEmitsToParent = true;\n    }\n  }\n  if (inEmittingFrame && !emit) {\n    throw new Error(\"emit function is required\");\n  }\n  if (!inEmittingFrame && !passEmitsToParent) {\n    return () => {\n    };\n  }\n  if (mousemoveWait !== void 0 && sampling.mousemove === void 0) {\n    sampling.mousemove = mousemoveWait;\n  }\n  mirror.reset();\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  } : _maskInputOptions !== void 0 ? _maskInputOptions : { password: true };\n  const slimDOMOptions = slimDOMDefaults(_slimDOMOptions);\n  polyfill$1();\n  let lastFullSnapshotEvent;\n  let incrementalSnapshotCount = 0;\n  const eventProcessor = (e2) => {\n    for (const plugin3 of plugins || []) {\n      if (plugin3.eventProcessor) {\n        e2 = plugin3.eventProcessor(e2);\n      }\n    }\n    if (packFn && // Disable packing events which will be emitted to parent frames.\n    !passEmitsToParent) {\n      e2 = packFn(e2);\n    }\n    return e2;\n  };\n  wrappedEmit = (r2, isCheckout) => {\n    var _a2;\n    const e2 = r2;\n    e2.timestamp = nowTimestamp();\n    if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {\n      mutationBuffers.forEach((buf) => buf.unfreeze());\n    }\n    if (inEmittingFrame) {\n      emit == null ? void 0 : emit(eventProcessor(e2), isCheckout);\n    } else if (passEmitsToParent) {\n      const message = {\n        type: \"rrweb\",\n        event: eventProcessor(e2),\n        origin: window.location.origin,\n        isCheckout\n      };\n      window.parent.postMessage(message, \"*\");\n    }\n    if (e2.type === EventType.FullSnapshot) {\n      lastFullSnapshotEvent = e2;\n      incrementalSnapshotCount = 0;\n    } else if (e2.type === EventType.IncrementalSnapshot) {\n      if (e2.data.source === IncrementalSource.Mutation && e2.data.isAttachIframe) {\n        return;\n      }\n      incrementalSnapshotCount++;\n      const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n      const exceedTime = checkoutEveryNms && e2.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n      if (exceedCount || exceedTime) {\n        takeFullSnapshot$1(true);\n      }\n    }\n  };\n  const wrappedMutationEmit = (m) => {\n    wrappedEmit({\n      type: EventType.IncrementalSnapshot,\n      data: {\n        source: IncrementalSource.Mutation,\n        ...m\n      }\n    });\n  };\n  const wrappedScrollEmit = (p) => wrappedEmit({\n    type: EventType.IncrementalSnapshot,\n    data: {\n      source: IncrementalSource.Scroll,\n      ...p\n    }\n  });\n  const wrappedCanvasMutationEmit = (p) => wrappedEmit({\n    type: EventType.IncrementalSnapshot,\n    data: {\n      source: IncrementalSource.CanvasMutation,\n      ...p\n    }\n  });\n  const wrappedAdoptedStyleSheetEmit = (a2) => wrappedEmit({\n    type: EventType.IncrementalSnapshot,\n    data: {\n      source: IncrementalSource.AdoptedStyleSheet,\n      ...a2\n    }\n  });\n  const stylesheetManager = new StylesheetManager({\n    mutationCb: wrappedMutationEmit,\n    adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit\n  });\n  const iframeManager = new IframeManager({\n    mirror,\n    mutationCb: wrappedMutationEmit,\n    stylesheetManager,\n    recordCrossOriginIframes,\n    wrappedEmit\n  });\n  for (const plugin3 of plugins || []) {\n    if (plugin3.getMirror)\n      plugin3.getMirror({\n        nodeMirror: mirror,\n        crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n        crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror\n      });\n  }\n  const processedNodeManager = new ProcessedNodeManager();\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  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  takeFullSnapshot$1 = (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    stylesheetManager.reset();\n    shadowDomManager.init();\n    mutationBuffers.forEach((buf) => buf.lock());\n    const node2 = 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: (n2) => {\n        if (isSerializedIframe(n2, mirror)) {\n          iframeManager.addIframe(n2);\n        }\n        if (isSerializedStylesheet(n2, mirror)) {\n          stylesheetManager.trackLinkElement(n2);\n        }\n        if (hasShadowRoot(n2)) {\n          shadowDomManager.addShadowRoot(index.shadowRoot(n2), 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    if (!node2) {\n      return console.warn(\"Failed to snapshot the document\");\n    }\n    wrappedEmit(\n      {\n        type: EventType.FullSnapshot,\n        data: {\n          node: node2,\n          initialOffset: getWindowScroll(window)\n        }\n      },\n      isCheckout\n    );\n    mutationBuffers.forEach((buf) => buf.unlock());\n    if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n      stylesheetManager.adoptStyleSheets(\n        document.adoptedStyleSheets,\n        mirror.getId(document)\n      );\n  };\n  try {\n    const handlers = [];\n    const observe = (doc) => {\n      var _a2;\n      return callbackWrapper(initObservers)(\n        {\n          mutationCb: wrappedMutationEmit,\n          mousemoveCb: (positions, source) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source,\n              positions\n            }\n          }),\n          mouseInteractionCb: (d) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source: IncrementalSource.MouseInteraction,\n              ...d\n            }\n          }),\n          scrollCb: wrappedScrollEmit,\n          viewportResizeCb: (d) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source: IncrementalSource.ViewportResize,\n              ...d\n            }\n          }),\n          inputCb: (v2) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source: IncrementalSource.Input,\n              ...v2\n            }\n          }),\n          mediaInteractionCb: (p) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source: IncrementalSource.MediaInteraction,\n              ...p\n            }\n          }),\n          styleSheetRuleCb: (r2) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source: IncrementalSource.StyleSheetRule,\n              ...r2\n            }\n          }),\n          styleDeclarationCb: (r2) => wrappedEmit({\n            type: EventType.IncrementalSnapshot,\n            data: {\n              source: IncrementalSource.StyleDeclaration,\n              ...r2\n            }\n          }),\n          canvasMutationCb: wrappedCanvasMutationEmit,\n          fontCb: (p) => 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: (c2) => {\n            wrappedEmit({\n              type: EventType.IncrementalSnapshot,\n              data: {\n                source: IncrementalSource.CustomElement,\n                ...c2\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: ((_a2 = plugins == null ? void 0 : plugins.filter((p) => p.observer)) == null ? void 0 : _a2.map((p) => ({\n            observer: p.observer,\n            options: p.options,\n            callback: (payload) => wrappedEmit({\n              type: EventType.Plugin,\n              data: {\n                plugin: p.name,\n                payload\n              }\n            })\n          }))) || []\n        },\n        hooks\n      );\n    };\n    iframeManager.addLoadListener((iframeEl) => {\n      try {\n        handlers.push(observe(iframeEl.contentDocument));\n      } catch (error) {\n        console.warn(error);\n      }\n    });\n    const init = () => {\n      takeFullSnapshot$1();\n      handlers.push(observe(document));\n      recording = true;\n    };\n    if ([\"interactive\", \"complete\"].includes(document.readyState)) {\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((handler) => {\n        try {\n          handler();\n        } catch (error) {\n          const msg = String(error).toLowerCase();\n          if (!msg.includes(\"cross-origin\")) {\n            console.warn(error);\n          }\n        }\n      });\n      processedNodeManager.destroy();\n      recording = false;\n      unregisterErrorHandler();\n    };\n  } catch (error) {\n    console.warn(error);\n  }\n}\nrecord.addCustomEvent = (tag, payload) => {\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};\nrecord.freezePage = () => {\n  mutationBuffers.forEach((buf) => buf.freeze());\n};\nrecord.takeFullSnapshot = (isCheckout) => {\n  if (!recording) {\n    throw new Error(\"please take full snapshot after start recording\");\n  }\n  takeFullSnapshot$1(isCheckout);\n};\nrecord.mirror = mirror;\nvar n$1;\n!function(t2) {\n  t2[t2.NotStarted = 0] = \"NotStarted\", t2[t2.Running = 1] = \"Running\", t2[t2.Stopped = 2] = \"Stopped\";\n}(n$1 || (n$1 = {}));\n\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n    byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n    return (byteToHex[arr[offset + 0]] +\n        byteToHex[arr[offset + 1]] +\n        byteToHex[arr[offset + 2]] +\n        byteToHex[arr[offset + 3]] +\n        '-' +\n        byteToHex[arr[offset + 4]] +\n        byteToHex[arr[offset + 5]] +\n        '-' +\n        byteToHex[arr[offset + 6]] +\n        byteToHex[arr[offset + 7]] +\n        '-' +\n        byteToHex[arr[offset + 8]] +\n        byteToHex[arr[offset + 9]] +\n        '-' +\n        byteToHex[arr[offset + 10]] +\n        byteToHex[arr[offset + 11]] +\n        byteToHex[arr[offset + 12]] +\n        byteToHex[arr[offset + 13]] +\n        byteToHex[arr[offset + 14]] +\n        byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nfunction rng() {\n    if (!getRandomValues) {\n        if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n            throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n        }\n        getRandomValues = crypto.getRandomValues.bind(crypto);\n    }\n    return getRandomValues(rnds8);\n}\n\nconst _state = {};\nfunction v1(options, buf, offset) {\n    let bytes;\n    {\n        const now = Date.now();\n        const rnds = rng();\n        updateV1State(_state, now, rnds);\n        bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, _state.clockseq, _state.node, buf, offset);\n    }\n    return buf ?? unsafeStringify(bytes);\n}\nfunction updateV1State(state, now, rnds) {\n    state.msecs ??= -Infinity;\n    state.nsecs ??= 0;\n    if (now === state.msecs) {\n        state.nsecs++;\n        if (state.nsecs >= 10000) {\n            state.node = undefined;\n            state.nsecs = 0;\n        }\n    }\n    else if (now > state.msecs) {\n        state.nsecs = 0;\n    }\n    else if (now < state.msecs) {\n        state.node = undefined;\n    }\n    if (!state.node) {\n        state.node = rnds.slice(10, 16);\n        state.node[0] |= 0x01;\n        state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n    }\n    state.msecs = now;\n    return state;\n}\nfunction v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) {\n    if (rnds.length < 16) {\n        throw new Error('Random bytes length must be >= 16');\n    }\n    if (!buf) {\n        buf = new Uint8Array(16);\n        offset = 0;\n    }\n    else {\n        if (offset < 0 || offset + 16 > buf.length) {\n            throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n        }\n    }\n    msecs ??= Date.now();\n    nsecs ??= 0;\n    clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n    node ??= rnds.slice(10, 16);\n    msecs += 12219292800000;\n    const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n    buf[offset++] = (tl >>> 24) & 0xff;\n    buf[offset++] = (tl >>> 16) & 0xff;\n    buf[offset++] = (tl >>> 8) & 0xff;\n    buf[offset++] = tl & 0xff;\n    const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff;\n    buf[offset++] = (tmh >>> 8) & 0xff;\n    buf[offset++] = tmh & 0xff;\n    buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10;\n    buf[offset++] = (tmh >>> 16) & 0xff;\n    buf[offset++] = (clockseq >>> 8) | 0x80;\n    buf[offset++] = clockseq & 0xff;\n    for (let n = 0; n < 6; ++n) {\n        buf[offset++] = node[n];\n    }\n    return buf;\n}\n\nconst s=5e6;function i(e){const t=[];let s;try{s=e.styleSheets;}catch{return t}for(let e=0;e<s.length;e++){const i=s[e];let n=null;try{n=i.href;}catch{continue}if(n&&!n.startsWith(\"data:\")&&!n.startsWith(\"blob:\"))try{i.cssRules;}catch{t.push(n);}}return t}class n{constructor(e,t){this.emit=e,this.fetchImpl=t,this.captured=new Set,this.bytesSent=0,this.rescanTimer=null;}captureFromDocument(e){try{this.capture(i(e)),this.rescanTimer&&clearTimeout(this.rescanTimer),this.rescanTimer=setTimeout(()=>{this.rescanTimer=null;try{this.capture(i(e));}catch{}},3e3);}catch{}}async capture(e){const t=this.fetchImpl??(\"undefined\"!=typeof fetch?fetch.bind(globalThis):void 0);if(t)for(const i of e)if(!this.captured.has(i)){if(this.bytesSent>=s)return;this.captured.add(i);try{const e=await t(i,{mode:\"cors\",credentials:\"omit\",cache:\"force-cache\"});if(!e.ok)continue;const n=await e.text();if(!n||n.length>15e5)continue;if(this.bytesSent+n.length>s)continue;this.bytesSent+=n.length,this.emit({href:i,cssText:n});}catch{}}}dispose(){this.rescanTimer&&clearTimeout(this.rescanTimer),this.rescanTimer=null;}}const r=2e6,o=/url\\(\\s*(['\"]?)([^'\")]+)\\1\\s*\\)/gi;function a(e){try{const t=new URL(e);if(\"http:\"!==t.protocol&&\"https:\"!==t.protocol)return !1;const s=t.hostname.replace(/^\\[|\\]$/g,\"\").toLowerCase();return \"localhost\"===s||s.endsWith(\".localhost\")||\"127.0.0.1\"===s||\"::1\"===s}catch{return  false}}function c(e,t){const s=(t??\"\").split(\";\")[0].trim().toLowerCase();return s.startsWith(\"image/\")||s.startsWith(\"font/\")?s:\"application/font-woff\"===s||\"application/font-woff2\"===s?s.includes(\"woff2\")?\"font/woff2\":\"font/woff\":/\\.svg(\\?|#|$)/i.test(e)?\"image/svg+xml\":/\\.png(\\?|#|$)/i.test(e)?\"image/png\":/\\.(jpe?g)(\\?|#|$)/i.test(e)?\"image/jpeg\":/\\.gif(\\?|#|$)/i.test(e)?\"image/gif\":/\\.webp(\\?|#|$)/i.test(e)?\"image/webp\":/\\.avif(\\?|#|$)/i.test(e)?\"image/avif\":/\\.woff2(\\?|#|$)/i.test(e)?\"font/woff2\":/\\.woff(\\?|#|$)/i.test(e)?\"font/woff\":/\\.ttf(\\?|#|$)/i.test(e)?\"font/ttf\":/\\.otf(\\?|#|$)/i.test(e)?\"font/otf\":s||\"application/octet-stream\"}function d(e,t){return !(!e.startsWith(\"image/\")&&!e.startsWith(\"font/\"))||!(\"application/octet-stream\"!==e||!/\\.(woff2?|ttf|otf)(\\?|#|$)/i.test(t))}function l(e){let t=\"\";for(let s=0;s<e.length;s+=32768)t+=String.fromCharCode(...e.subarray(s,s+32768));return btoa(t)}function u(e,t,s){let i;for(o.lastIndex=0;i=o.exec(e);){const e=(i[2]||\"\").trim();!e||e.startsWith(\"data:\")||e.startsWith(\"blob:\")||(/\\.(woff2?|ttf|otf|eot|png|jpe?g|gif|webp|svg|avif)(\\?|#|$)/i.test(e)||e.includes(\"/_next/static/media/\")||e.includes(\"/media/\"))&&s(e,t);}}function h(e,t){if(!a(t))return [];const s=[],i=new Set,n=(e,n=t)=>{if(!e||e.startsWith(\"data:\")||e.startsWith(\"blob:\"))return;let r;try{r=new URL(e,n).href;}catch{return}if(!a(r))return;const o=function(e){try{const t=new URL(e);if(t.pathname.includes(\"/_next/image\")){const e=t.searchParams.get(\"url\");if(e)return `next:${e}`}return t.searchParams.delete(\"w\"),t.searchParams.delete(\"q\"),t.searchParams.delete(\"width\"),t.origin+t.pathname+(t.searchParams.toString()?`?${t.searchParams}`:\"\")}catch{return e}}(r);i.has(o)||(i.add(o),s.push(r));};try{const s=e.querySelectorAll(\"img\");for(let e=0;e<s.length;e++){const t=s[e];n(t.currentSrc||t.getAttribute(\"src\"));}const i=e.querySelectorAll('video[poster], image[href], image[xlink\\\\:href], link[rel=\"preload\"][as=\"font\"]');for(let e=0;e<i.length;e++){const t=i[e];n(t.getAttribute(\"poster\")),n(t.getAttribute(\"href\")||t.getAttribute(\"xlink:href\"));}const r=e.styleSheets;for(let e=0;e<r.length;e++){const s=r[e],i=s.href||t;let o;try{o=s.cssRules;}catch{s.href&&n(s.href,t);continue}for(let e=0;e<o.length;e++){const t=o[e].cssText||\"\";t.includes(\"url(\")&&u(t,i,n);}}const o=e.querySelectorAll(\"style\");for(let e=0;e<o.length;e++){const s=o[e].textContent;s&&u(s,t,n);}}catch{return s}return s}class p{constructor(e,t,s=l){this.emit=e,this.fetchImpl=t,this.encode=s,this.captured=new Set,this.bytesSent=0,this.count=0,this.rescanTimer=null;}captureFromDocument(e,t){try{if(!a(t))return;this.capture(h(e,t)),this.rescanTimer&&clearTimeout(this.rescanTimer),this.rescanTimer=setTimeout(()=>{this.rescanTimer=null;try{this.capture(h(e,t));}catch{}},2e3);}catch{}}async capture(e){const t=this.fetchImpl??(\"undefined\"!=typeof fetch?fetch.bind(globalThis):void 0);if(t)for(const s of e)if(!this.captured.has(s)){if(this.count>=12)return;if(this.bytesSent>=r)return;this.captured.add(s);try{const e=await t(s,{mode:\"cors\",credentials:\"omit\",cache:\"force-cache\"});if(!e.ok)continue;const i=new Uint8Array(await e.arrayBuffer());if(!i.length||i.length>4e5)continue;if(this.bytesSent+i.length>r)continue;let n=c(s,e.headers.get(\"content-type\"));if(!d(n,s))continue;\"application/octet-stream\"===n&&(n=c(s,null));const o=this.encode(i);this.bytesSent+=i.length,this.count++,this.emit({href:s,contentType:n,bodyBase64:o});}catch{}}}dispose(){this.rescanTimer&&clearTimeout(this.rescanTimer),this.rescanTimer=null;}}const m=2e3,g=1500,f=new Set(\"button a input select textarea label summary option\".split(\" \")),y=new Set(\"button link checkbox radio tab menuitem switch combobox option slider textbox\".split(\" \")),w=new Set(\"input select textarea label option\".split(\" \")),v=/\\bcopy\\b/i,b=[\"aria-selected\",\"aria-pressed\",\"aria-checked\"];function S(e){return /cursor\\s*:\\s*pointer/i.test(e.getAttribute(\"style\")??\"\")}function T(e){const t=(e.tagName||\"element\").toLowerCase(),s=e.getAttribute(\"id\");if(s)return `${t}#${function(e){return e.split(/[-_:]/).map(e=>/\\d/.test(e)?\"*\":e).join(\"-\")}(s)}`;const i=e.getAttribute(\"data-testid\");if(i)return `${t}[testid=${i}]`;const n=e.getAttribute(\"name\");if(n)return `${t}[name=${n}]`;const r=e.getAttribute(\"aria-label\")?.trim(),o=(r||(e.textContent??\"\").slice(0,40)).toLowerCase().replace(/\\d+/g,\"*\").replace(/\\s+/g,\" \").trim();if(o)return `${t}[text=${o.slice(0,40)}]`;const a=(e.getAttribute(\"class\")??\"\").split(/\\s+/).filter(e=>e&&!/\\d/.test(e)).slice(0,2).join(\".\");return a?`${t}.${a}`:t}function k(e,t){if(!e||1!==e.nodeType||!e.tagName)return null;const s=function(e){let t=e,s=0,i=null;for(;t&&s<30;){if(1===t.nodeType&&t.tagName){i||(i=t);const e=t.tagName.toLowerCase(),s=(t.getAttribute(\"role\")??\"\").toLowerCase();if(f.has(e)||y.has(s)||null!==t.getAttribute(\"onclick\")||null!=t.onclick||null!==t.getAttribute(\"tabindex\")||S(t))return {node:t,interactive:true}}t=t.parentElement,s++;}return i?{node:i,interactive:false}:null}(e);if(!s||!s.interactive)return null;const i=s.node;return function(e,t){if(\"a\"!==(e.tagName||\"\").toLowerCase())return  false;if(\"_blank\"===(e.getAttribute(\"target\")??\"\").toLowerCase())return  true;if(null!==e.getAttribute(\"download\"))return  true;const s=e.getAttribute(\"href\")??\"\";if(/^(mailto:|tel:|sms:|blob:|javascript:void)/i.test(s))return  true;if(/^https?:\\/\\//i.test(s))try{return new URL(s).origin!==new URL(t).origin}catch{return  false}return  false}(i,t)||function(e){return b.some(t=>\"true\"===(e.getAttribute(t)??\"\").toLowerCase())}(i)||w.has((i.tagName||\"\").toLowerCase())?null:{node:i,key:T(i)}}class _{constructor(e){this.domReactions=[],this.softReactions=[],this.targets=new Map,this.pendingDead=new Map,this.nextPendingId=1,this.emit=e.emit,this.now=e.now??(()=>Date.now()),this.schedule=e.setTimeout??((e,t)=>setTimeout(e,t)),this.unschedule=e.clearTimeout??(e=>clearTimeout(e)),this.currentUrl=e.currentUrl??(()=>\"undefined\"!=typeof window?window.location.href:\"\");}onReaction(e,t=this.now()){const s=\"dom\"===e?this.domReactions:this.softReactions;s.push(t),s.length>256&&s.splice(0,s.length-128);}onClick(e,t,s,i=this.now()){const n=k(e,this.currentUrl());if(!n)return;const{node:r,key:o}=n,a=this.stateFor(o);i-a.lastClickTs<30||(a.lastClickTs=i,this.trackRage(a,r,o,t,s,i),this.trackDead(a,r,o,t,s,i));}reset(){for(const e of this.pendingDead.values())this.unschedule(e.timer);this.pendingDead.clear();for(const e of this.targets.values())null!==e.rageTimer&&this.unschedule(e.rageTimer);this.targets.clear(),this.domReactions=[],this.softReactions=[];}stateFor(e){let t=this.targets.get(e);if(!t){if(this.targets.size>=500){const e=this.targets.keys().next();e.done||this.targets.delete(e.value);}t={burst:[],rageTimer:null,burstFirstTs:0,burstLastTs:0,burstCount:0,burstOrigin:null,lastClickTs:Number.NEGATIVE_INFINITY,unreactedGestures:0,unreactedClicks:0,lastUnreactedTs:Number.NEGATIVE_INFINITY,firstUnreacted:null,deadEmitted:false},this.targets.set(e,t);}return t}trackRage(e,t,s,i,n,r){if(null===e.rageTimer){for(e.burst.push(r);e.burst.length>0&&r-e.burst[0]>m;)e.burst.shift();e.burst.length<4||(e.burstFirstTs=e.burst[0],e.burstLastTs=r,e.burstCount=e.burst.length,e.burstOrigin={node:t,x:i,y:n},e.rageTimer=this.scheduleRageVerdict(s));}else r-e.burstLastTs<=m&&(e.burstCount++,e.burstLastTs=r,this.unschedule(e.rageTimer),e.rageTimer=this.scheduleRageVerdict(s));}scheduleRageVerdict(e){return this.schedule(()=>this.settleRage(e),3500)}settleRage(e){const t=this.targets.get(e);if(!t||null===t.rageTimer)return;t.rageTimer=null;const s=t.burstCount;!function(e,t,s){const i=E(e,t);return i<e.length&&e[i]<=s}(this.domReactions,t.burstFirstTs,t.burstLastTs+g)&&s>=4&&t.burstOrigin&&this.emit(\"rage\",{node:t.burstOrigin.node,x:t.burstOrigin.x,y:t.burstOrigin.y,tsMs:t.burstFirstTs,clickCount:s,durationMs:t.burstLastTs-t.burstFirstTs}),t.burst=[],t.burstCount=0,t.burstOrigin=null;}trackDead(e,t,s,i,n,r){if(e.deadEmitted)return;if(v.test(t.getAttribute(\"aria-label\")??\"\")||v.test((t.textContent??\"\").slice(0,60)))return;const o=this.nextPendingId++,a=this.schedule(()=>this.settleDead(o),g);this.pendingDead.set(o,{node:t,key:s,x:i,y:n,tsMs:r,timer:a});}settleDead(e){const t=this.pendingDead.get(e);if(!t)return;this.pendingDead.delete(e);const s=this.targets.get(t.key);s&&!s.deadEmitted&&(I(this.domReactions,t.tsMs,g)||I(this.softReactions,t.tsMs,g)||(t.tsMs-s.lastUnreactedTs>700&&s.unreactedGestures++,s.lastUnreactedTs=t.tsMs,s.unreactedClicks++,s.firstUnreacted||(s.firstUnreacted=t),s.unreactedGestures<2||(s.deadEmitted=true,this.emit(\"dead\",{node:t.node,x:s.firstUnreacted.x,y:s.firstUnreacted.y,tsMs:s.firstUnreacted.tsMs,clickCount:s.unreactedClicks,occurrences:s.unreactedGestures,durationMs:0}))));}}function I(e,t,s){const i=E(e,t);return i<e.length&&e[i]<=t+s}function E(e,t){let s=0,i=e.length;for(;s<i;){const n=s+i>>1;e[n]<=t?s=n+1:i=n;}return s}const C=\"hb-broken-asset\";function U(e){const t=e.trim().toLowerCase();if(!t||\"transparent\"===t)return null;const s=t.indexOf(\"(\"),i=t.indexOf(\")\");if(-1===s||-1===i)return null;const n=t.slice(s+1,i).split(/[,/\\s]+/).filter(Boolean);if(n.length<3)return null;const r=parseFloat(n[0]),o=parseFloat(n[1]),a=parseFloat(n[2]),c=n.length>=4?parseFloat(n[3]):1;return [r,o,a,c].some(e=>Number.isNaN(e))?null:{r:r,g:o,b:a,a:c}}function R(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}function P(e){return .2126*R(e.r)+.7152*R(e.g)+.0722*R(e.b)}function F(e,t){const s=e.a<1?function(e,t){const s=e.a;return {r:e.r*s+t.r*(1-s),g:e.g*s+t.g*(1-s),b:e.b*s+t.b*(1-s),a:1}}(e,t):e,i=P(s),n=P(t);return (Math.max(i,n)+.05)/(Math.min(i,n)+.05)}function M(e){let t=\"\";const s=e.childNodes;for(let e=0;e<s.length;e++){const i=s[e];3===i.nodeType&&(t+=i.textContent??\"\");}return t.trim()}function A(e,t){let s=e,i=0;for(;s&&i<50;){const e=t.getComputedStyle(s);if(e.backgroundImage&&\"none\"!==e.backgroundImage)return null;const n=U(e.backgroundColor);if(n&&n.a>=.5)return n;s=s.parentElement,i++;}return {r:255,g:255,b:255,a:1}}function L(e,t){const s=t.getComputedStyle(e);return \"hidden\"!==s.visibility&&\"collapse\"!==s.visibility&&\"none\"!==s.display&&(0!==parseFloat(s.opacity||\"1\")&&e.getClientRects().length>0)}function $(e,t){if(\"ellipsis\"===t.textOverflow)return null;const s=t.webkitLineClamp||(\"function\"==typeof t.getPropertyValue?t.getPropertyValue(\"-webkit-line-clamp\")||t.getPropertyValue(\"line-clamp\"):\"\");if(s&&\"none\"!==s)return null;if(function(e,t){const s=e;if(s.clientWidth>0&&s.clientWidth<=2&&s.clientHeight>0&&s.clientHeight<=2)return  true;const i=t.clip||\"\";if(/rect\\s*\\(\\s*0(px)?\\s*,\\s*0(px)?\\s*,\\s*0(px)?\\s*,\\s*0(px)?\\s*\\)/i.test(i))return  true;const n=t.clipPath||(\"function\"==typeof t.getPropertyValue?t.getPropertyValue(\"clip-path\"):\"\")||\"\";return !!/inset\\s*\\(\\s*50%/i.test(n)}(e,t))return null;const i=e,n=\"hidden\"===t.overflowX||\"clip\"===t.overflowX,r=\"hidden\"===t.overflowY||\"clip\"===t.overflowY;return n&&i.clientWidth>0&&i.scrollWidth>i.clientWidth+2?\"x\":r&&i.clientHeight>0&&i.scrollHeight>i.clientHeight+2?\"y\":null}function D(e,t){const s=[],i=e.childNodes;for(let e=0;e<i.length&&s.length<12;e++){const n=i[e];if(3===n.nodeType&&(n.textContent??\"\").trim())try{const e=t.createRange();e.selectNodeContents(n);const i=e.getClientRects();for(let e=0;e<i.length&&s.length<12;e++){const t=i[e];t.width>0&&t.height>0&&s.push(t);}}catch{}}return s}function x(e,t){for(let s=0;s<e.length;s++)for(let i=0;i<t.length;i++){const n=e[s],r=t[i],o=Math.min(n.right,r.right)-Math.max(n.left,r.left),a=Math.min(n.bottom,r.bottom)-Math.max(n.top,r.top);if(o<=3||a<=3)continue;const c=o*a,d=Math.min(n.width*n.height,r.width*r.height);if(d>0&&c/d>=.5)return  true}return  false}function B(e,t){let s=e,i=0;for(;s&&i<12;){const e=t.getComputedStyle(s);if(\"fixed\"===e.position||\"sticky\"===e.position)return  true;if(\"absolute\"===e.position||\"relative\"===e.position){const t=parseInt(e.zIndex,10);if(Number.isFinite(t)&&t>=5)return  true}const n=s.getAttribute?s.getAttribute(\"role\")??\"\":\"\";if(/^(dialog|alertdialog|tooltip|menu|listbox|combobox)$/.test(n))return  true;if(\"DIALOG\"===s.tagName)return  true;s=s.parentElement,i++;}return  false}class N{constructor(e,t,s,i,n,r){this.emit=e,this.getId=t,this.emitClip=s,this.emitOverlap=i,this.emitMisalign=n,this.emitBrokenAsset=r,this.emittedIds=new Set,this.clippedIds=new Set,this.overlapPairs=new Set,this.misalignedIds=new Set,this.brokenAssetUrls=new Set,this.emitCount=0,this.scanCount=0,this.timer=null;}start(e,t){try{this.scan(e,t),\"complete\"!==e.readyState&&t.addEventListener(\"load\",()=>{try{this.scan(e,t);}catch{}},{once:!0}),this.timer&&clearInterval(this.timer),this.timer=setInterval(()=>{try{if(this.scanCount>=15||this.emitCount>=50)return void this.dispose();this.scan(e,t);}catch{}},1500);}catch{}}scan(e,t){this.scanCount++;const s=e.body??e.documentElement;if(!s)return;const i=s.querySelectorAll(\"*\"),n=Math.min(i.length,4e3),r=[];for(let s=0;s<n&&!(this.emitCount>=50);s++){const n=i[s],o=M(n);if(o.length<2||!/[\\p{L}\\p{N}]/u.test(o))continue;const a=this.getId(n);if(a<0)continue;if(!L(n,t))continue;const c=t.getComputedStyle(n);if(this.emitOverlap&&r.length<250){const i=D(n,e);i.length>0&&r.push({id:a,order:s,floating:B(n,t),lines:i,sample:o.slice(0,100)});}if(this.emitClip&&!this.clippedIds.has(a)){const e=$(n,c);e&&(this.clippedIds.add(a),this.emitCount++,this.emitClip({id:a,axis:e,sample:o.slice(0,100)}));}if(this.emittedIds.has(a))continue;const d=U(c.color);if(!d)continue;const l=A(n,t);if(!l)continue;const u=F(d,l);u>1.25||(this.emittedIds.add(a),this.emitCount++,this.emit({id:a,fg:`rgb(${Math.round(d.r)}, ${Math.round(d.g)}, ${Math.round(d.b)})`,bg:`rgb(${Math.round(l.r)}, ${Math.round(l.g)}, ${Math.round(l.b)})`,ratio:u,sample:o.slice(0,100)}));}this.emitOverlap&&this.detectOverlaps(r),this.emitMisalign&&this.detectMisalignedTables(e,t),this.emitBrokenAsset&&this.detectBrokenImages(e,t);}detectBrokenImages(e,t){if(!this.emitBrokenAsset)return;const s=e.querySelectorAll(\"img\"),i=Math.min(s.length,300);for(let e=0;e<i;e++){if(this.emitCount>=50)return;const i=s[e],n=i.currentSrc||i.src||i.getAttribute(\"src\")||\"\";if(!n||this.brokenAssetUrls.has(n))continue;if(!i.complete||0!==i.naturalWidth)continue;if(!L(i,t))continue;const r=i.getBoundingClientRect(),o=parseInt(i.getAttribute(\"width\")||\"\",10),a=parseInt(i.getAttribute(\"height\")||\"\",10),c=Math.max(r.width,Number.isFinite(o)?o:0),d=Math.max(r.height,Number.isFinite(a)?a:0);if(c<24||d<24)continue;const l=this.getId(i);this.brokenAssetUrls.add(n),this.emitCount++,this.emitBrokenAsset({id:l,tag:\"img\",url:n});}}detectMisalignedTables(e,t){if(!this.emitMisalign)return;const s=e.querySelectorAll(\"table\"),i=Math.min(s.length,50);for(let e=0;e<i;e++){if(this.emitCount>=50)return;const i=s[e],n=this.getId(i);if(n<0||this.misalignedIds.has(n))continue;if(!L(i,t))continue;const r=i.querySelectorAll(\"tr\");if(r.length<2)continue;const o=new Map;let a=false;for(let e=0;e<r.length&&!a;e++){const t=r[e].children;for(let e=0;e<t.length;e++){const s=t[e];if(\"TD\"!==s.tagName&&\"TH\"!==s.tagName)continue;const i=parseInt(s.getAttribute(\"colspan\")||\"1\",10),n=parseInt(s.getAttribute(\"rowspan\")||\"1\",10);if(1!==i||1!==n){a=true;break}const r=s.getBoundingClientRect();if(r.width<=0||r.height<=0)continue;const c=o.get(e)??[];c.push(r.left),o.set(e,c);}}if(a)continue;let c=0,d=-1;for(const[e,t]of o){if(t.length<2)continue;const s=Math.max(...t)-Math.min(...t);s>c&&(c=s,d=e);}c>=12&&d>=0&&(this.misalignedIds.add(n),this.emitCount++,this.emitMisalign({id:n,sample:`column ${d+1} cells misaligned by ${Math.round(c)}px`}));}}detectOverlaps(e){if(this.emitOverlap)for(let t=0;t<e.length;t++)for(let s=t+1;s<e.length;s++){if(this.emitCount>=50)return;const i=e[t],n=e[s];if(i.floating||n.floating)continue;if(!x(i.lines,n.lines))continue;const r=i.id<n.id?`${i.id}-${n.id}`:`${n.id}-${i.id}`;if(this.overlapPairs.has(r))continue;this.overlapPairs.add(r),this.emitCount++;const o=i.order>=n.order?i:n,a=o===i?n:i;this.emitOverlap({id:o.id,id2:a.id,sample:o.sample,sample2:a.sample});}}dispose(){this.timer&&clearInterval(this.timer),this.timer=null;}}var O;!function(e){e[e.NONE=0]=\"NONE\",e[e.ERROR=1]=\"ERROR\",e[e.WARN=2]=\"WARN\",e[e.INFO=3]=\"INFO\",e[e.DEBUG=4]=\"DEBUG\";}(O||(O={}));const q=new class{constructor(e){this.config={level:O.ERROR,enableConsole:true,enableStorage:false},this.isBrowser=\"undefined\"!=typeof window,e&&(this.config={...this.config,...e});}setConfig(e){this.config={...this.config,...e};}shouldLog(e){return e<=this.config.level}formatMessage(e,t,...s){return `[HumanBehavior ${e}] ${(new Date).toISOString()}: ${t}`}error(e,...t){if(!this.shouldLog(O.ERROR))return;const s=this.formatMessage(\"ERROR\",e);this.config.enableConsole&&console.error(s,...t),this.config.enableStorage&&this.isBrowser&&this.logToStorage(s,t);}warn(e,...t){if(!this.shouldLog(O.WARN))return;const s=this.formatMessage(\"WARN\",e);this.config.enableConsole&&console.warn(s,...t),this.config.enableStorage&&this.isBrowser&&this.logToStorage(s,t);}info(e,...t){if(!this.shouldLog(O.INFO))return;const s=this.formatMessage(\"INFO\",e);this.config.enableConsole&&console.log(s,...t),this.config.enableStorage&&this.isBrowser&&this.logToStorage(s,t);}debug(e,...t){if(!this.shouldLog(O.DEBUG))return;const s=this.formatMessage(\"DEBUG\",e);this.config.enableConsole&&console.log(s,...t),this.config.enableStorage&&this.isBrowser&&this.logToStorage(s,t);}logToStorage(e,t){try{const s=JSON.parse(localStorage.getItem(\"human_behavior_logs\")||\"[]\"),i={message:e,args:t.length>0?t:void 0,timestamp:Date.now()};s.push(i),s.length>1e3&&s.splice(0,s.length-1e3),localStorage.setItem(\"human_behavior_logs\",JSON.stringify(s));}catch(e){}}getLogs(){if(!this.isBrowser)return [];try{return JSON.parse(localStorage.getItem(\"human_behavior_logs\")||\"[]\")}catch(e){return []}}clearLogs(){this.isBrowser&&localStorage.removeItem(\"human_behavior_logs\");}};let K=false;const z=()=>K,j=(e,...t)=>{K=true;try{q.error(e,...t);}finally{K=false;}},H=(e,...t)=>{K=true;try{q.warn(e,...t);}finally{K=false;}},W=(e,...t)=>{K=true;try{q.info(e,...t);}finally{K=false;}},Q=(e,...t)=>{K=true;try{q.debug(e,...t);}finally{K=false;}};class V{constructor(e){this._isPolling=false,this._pollIntervalMs=3e3,this._queue=[],this._queue=[],this._areWeOnline=true,this._sendRequest=e,\"undefined\"!=typeof window&&\"onLine\"in window.navigator&&(this._areWeOnline=window.navigator.onLine,window.addEventListener(\"online\",()=>{this._areWeOnline=true,this._flush();}),window.addEventListener(\"offline\",()=>{this._areWeOnline=false;}));}get length(){return this._queue.length}async retriableRequest(e){const t=e.retriesPerformedSoFar||0;if(t>0){const s=new URL(e.url);s.searchParams.set(\"retry_count\",t.toString()),e.url=s.toString();}try{await this._sendRequest(e);}catch(s){if(this._shouldRetry(s,t)&&t<10)return void this._enqueue(e);e.callback&&e.callback({statusCode:s.status||0,text:s.message||\"Request failed\"});}}_shouldRetry(e,t){return e.status>=400&&e.status<500?408===e.status||429===e.status:e.status>=500||!e.status}_enqueue(e){const t=e.retriesPerformedSoFar||0;e.retriesPerformedSoFar=t+1;const s=function(e){const t=3e3*2**e,s=t/2,i=Math.min(18e5,t),n=(Math.random()-.5)*(i-s);return Math.ceil(i+n)}(t),i=Date.now()+s;this._queue.push({retryAt:i,requestOptions:e});let n=`Enqueued failed request for retry in ${Math.round(s/1e3)}s`;\"undefined\"==typeof navigator||navigator.onLine||(n+=\" (Browser is offline)\"),H(n),this._isPolling||(this._isPolling=true,this._poll());}_poll(){this._poller&&clearTimeout(this._poller),this._poller=setTimeout(()=>{this._areWeOnline&&this._queue.length>0&&this._flush(),this._poll();},this._pollIntervalMs);}_flush(){const e=Date.now(),t=[],s=this._queue.filter(s=>s.retryAt<e||(t.push(s),false));if(this._queue=t,s.length>0)for(const{requestOptions:e}of s)this.retriableRequest(e).catch(e=>{j(\"Failed to retry request:\",e);});}unload(){this._poller&&(clearTimeout(this._poller),this._poller=void 0);for(const{requestOptions:e}of this._queue)try{this._sendBeaconRequest(e);}catch(e){j(\"Failed to send request via sendBeacon on unload:\",e);}this._queue=[];}_sendBeaconRequest(e){if(\"undefined\"!=typeof navigator&&navigator.sendBeacon)try{const t=new URL(e.url);t.searchParams.set(\"beacon\",\"1\");let s=null;e.body&&(\"string\"==typeof e.body?s=new Blob([e.body],{type:\"text/plain\"}):e.body instanceof Blob&&(s=e.body));navigator.sendBeacon(t.toString(),s)||H(\"sendBeacon returned false for unload request\");}catch(e){j(\"Error sending beacon request:\",e);}}}class G{constructor(e,t=1e3){this.storageKey=\"human_behavior_queue\",this.maxQueueSize=t;}getQueue(){if(\"undefined\"==typeof window||!window.localStorage)return [];try{const e=window.localStorage.getItem(this.storageKey);if(!e)return [];const t=JSON.parse(e);return Array.isArray(t)?t:[]}catch(e){return H(\"Failed to read persisted queue:\",e),[]}}setQueue(e){if(\"undefined\"!=typeof window&&window.localStorage)try{const t=e.slice(-this.maxQueueSize);window.localStorage.setItem(this.storageKey,JSON.stringify(t)),Q(`Persisted ${t.length} events to storage`);}catch(t){if(\"QuotaExceededError\"===t.name||22===t.code){H(\"Storage quota exceeded, clearing old events\");try{const t=e.slice(-Math.floor(this.maxQueueSize/2));window.localStorage.setItem(this.storageKey,JSON.stringify(t));}catch(e){H(\"Failed to save smaller queue, clearing storage\"),this.clearQueue();}}else H(\"Failed to persist queue:\",t);}}addToQueue(e){const t=this.getQueue();t.push(e),t.length>this.maxQueueSize&&(t.shift(),Q(\"Queue is full, the oldest event is dropped.\")),this.setQueue(t);}removeFromQueue(e){const t=this.getQueue();t.splice(0,e),this.setQueue(t);}clearQueue(){if(\"undefined\"!=typeof window&&window.localStorage)try{window.localStorage.removeItem(this.storageKey);}catch(e){H(\"Failed to clear persisted queue:\",e);}}getQueueLength(){return this.getQueue().length}}const J=\"0.8.10\",X=1048576,Y=52428.8,Z=\"text/plain\";function ee(e,t){return \"function\"==typeof fetch?(fetch(e,{method:\"POST\",body:t,keepalive:true,credentials:\"omit\"}).catch(()=>{}),true):\"undefined\"!=typeof navigator&&\"function\"==typeof navigator.sendBeacon&&navigator.sendBeacon(e,t)}let te=null;function se(e){return te||(te=new TextEncoder),te.encode(ie(e)).length}function ie(e){return JSON.stringify(e,(e,t)=>\"bigint\"==typeof t?t.toString():t)}function ne(e,t){if(!e||\"object\"!=typeof e)return [];if(se({sessionId:t,events:[e]})<=X)return [e];const s={...e},i=[\"screenshot\",\"html\",\"dom\",\"fullText\",\"innerHTML\",\"outerHTML\"];i.forEach(e=>{s[e]&&delete s[e];});if(se({sessionId:t,events:[s]})<=X)return [s];return [{type:e.type,timestamp:e.timestamp,url:e.url,pathname:e.pathname,...Object.fromEntries(Object.entries(e).filter(([e,t])=>!i.includes(e)&&\"object\"!=typeof t&&\"string\"!=typeof t||\"string\"==typeof t&&t.length<1e3))}]}class re{constructor({apiKey:e,ingestionUrl:t}){this.monthlyLimitReached=false,this.throttledUntil=0,this.sessionId=\"\",this.endUserId=null,this.cspBlocked=false,this.consecutiveFetchFailures=0,this.requestTimeout=1e4,this.currentBatchSize=100,this._isDrainingPersisted=false,this.apiKey=e,this.baseUrl=t,this.persistence=new G(e),this.retryQueue=new V(e=>this._sendRequestInternal(e)),this.flushPersistedEvents(),\"undefined\"!=typeof window&&\"function\"==typeof window.addEventListener&&window.addEventListener(\"online\",()=>{this.flushPersistedEvents();});}setTrackingContext(e,t){this.sessionId=e,this.endUserId=t;}async flushPersistedEvents(){if(this._isDrainingPersisted)return;if(!this.checkMonthlyLimit())return;const e=this.persistence.getQueue();if(0!==e.length){this._isDrainingPersisted=true;try{Q(`Draining ${e.length} persisted event batch(es) from storage`);for(const t of e){if(!await this._sendPersistedBatch(t))break;this.persistence.removeFromQueue(1);}}finally{this._isDrainingPersisted=false;}}}async _sendPersistedBatch(e){if(this.isThrottled())return  false;try{const t=(e.events||[]).filter(e=>e&&\"object\"==typeof e);if(0===t.length)return !0;const s=await this.trackedFetch(`${this.baseUrl}/api/ingestion/events`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:ie({sessionId:e.sessionId,events:t,endUserId:e.endUserId??null,windowId:e.windowId,automaticProperties:e.automaticProperties,sdkVersion:J})});if(!s.ok)return 429===s.status&&await this._apply429(s),!1;try{const e=await s.json();e&&!0===e.monthlyLimitReached&&(this.monthlyLimitReached=!0);}catch{}return !0}catch{return  false}}async _sendRequestInternal(e){const t=\"undefined\"!=typeof AbortController?new AbortController:null;let s=null;t&&(s=setTimeout(()=>{t.abort();},this.requestTimeout));try{const i=e.estimatedSize||0,n=\"POST\"===e.method&&i<Y,r=await fetch(e.url,{method:e.method||\"GET\",headers:e.headers||{},body:e.body,signal:t?.signal,keepalive:n});s&&clearTimeout(s);const o=await r.text();let a=null;try{a=JSON.parse(o);}catch{}if(e.callback&&e.callback({statusCode:r.status,text:o,json:a}),!r.ok)throw {status:r.status,message:o}}catch(e){if(s&&clearTimeout(s),\"AbortError\"===e.name)throw {status:0,message:\"Request timeout\"};throw e}}unload(){this.retryQueue.unload();}checkMonthlyLimit(){return !this.monthlyLimitReached}isThrottled(){return Date.now()<this.throttledUntil}async _apply429(e){let t=null;try{t=await e.clone().json();}catch{}if(t&&true===t.monthlyLimitReached)return void(this.monthlyLimitReached=true);const s=e.headers?.get?.(\"Retry-After\"),i=Number(s??t?.retryAfterSeconds),n=Number.isFinite(i)&&i>0?Math.min(i,300):30;this.throttledUntil=Date.now()+1e3*n,W(`Rate limited (429), pausing sends for ${n}s`);}async init(e,t){if(!this.checkMonthlyLimit())return {sessionId:e,endUserId:t};let s=null,i=null;\"undefined\"!=typeof window&&(s=window.location.href,i=document.referrer),W(\"API init called with:\",{sessionId:e,userId:t,entryURL:s,referrer:i,baseUrl:this.baseUrl});try{const n=await this.trackedFetch(`${this.baseUrl}/api/ingestion/init`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`,Referer:i||\"\"},body:ie({sessionId:e,endUserId:t,entryURL:s,referrer:i,sdkVersion:J})});if(W(\"API init response status:\",n.status),!n.ok){if(429===n.status)return await this._apply429(n),{sessionId:e,endUserId:t};const s=await n.text();throw j(\"API init failed:\",n.status,s),new Error(`Failed to initialize ingestion: ${n.statusText} - ${s}`)}const r=await n.json();return !0===r.monthlyLimitReached&&(this.monthlyLimitReached=!0,W(\"Monthly limit reached detected from server response\")),W(\"API init success:\",r),{sessionId:r.sessionId,endUserId:r.endUserId}}catch(e){throw j(\"API init error:\",e),e}}async sendEvents(e,t,s){const i=e.filter(e=>e&&\"object\"==typeof e),n=await this.trackedFetch(`${this.baseUrl}/api/ingestion/events`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:ie({sessionId:t,events:i,endUserId:s,sdkVersion:J})});if(!n.ok){if(429===n.status)throw await this._apply429(n),new Error(\"429: rate limited\");throw new Error(`Failed to send events: ${n.statusText}`)} true===(await n.json()).monthlyLimitReached&&(this.monthlyLimitReached=true,W(\"Monthly limit reached detected from events response\"));}async sendEventsChunked(e,t,s,i,n){if(!this.checkMonthlyLimit())return [];try{const r=[];let o=[];const a=function(e){const t=se({sessionId:e,events:[]});let s=t,i=0,n=null,r=0;function o(e){return e!==n&&(n=e,r=se(e)),r}return {wouldExceed(e){const t=i>0?1:0;return s+o(e)+t>X},add(e){s+=o(e)+(i>0?1:0),i++;},reset(e=[]){s=t,i=0;for(const t of e)this.add(t);}}}(t);for(const c of e)if(c&&\"object\"==typeof c)if(a.wouldExceed(c)){if(o.length>0){Q(`[SDK] Sending chunk with ${o.length} events`);const e=await this.trackedFetch(`${this.baseUrl}/api/ingestion/events`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:ie({sessionId:t,events:o,endUserId:s,windowId:i,automaticProperties:n,sdkVersion:J})});if(!e.ok){if(429===e.status)throw await this._apply429(e),new Error(\"429: rate limited\");throw new Error(`Failed to send events: ${e.statusText}`)}const a=await e.json();!0===a.monthlyLimitReached&&(this.monthlyLimitReached=!0,W(\"Monthly limit reached detected from chunked events response\")),r.push(a),o=[];}const e=ne(c,t);o=e,a.reset(e);}else o.push(c),a.add(c);if(o.length>0){const e=await this._sendChunkWithRetry(o,t,s,i,n||o[0]?.automaticProperties);e&&r.push(e);}return r.flat()}catch(r){throw j(\"Error sending events:\",r),this._persistEvents(e,t,s,i,n),r}}async _sendChunkWithRetry(e,t,s,i,n){let r=Math.min(this.currentBatchSize,e.length),o=0;for(;o<e.length;){const a=ie({sessionId:t,events:e.slice(o,o+r),endUserId:s,windowId:i,automaticProperties:n,sdkVersion:J}),c=(new TextEncoder).encode(a).length;try{const d=await this.trackedFetch(`${this.baseUrl}/api/ingestion/events`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:a},c);if(!d.ok){if(429===d.status)return await this._apply429(d),this._persistEvents(e.slice(o),t,s,i,n),null;if(413===d.status){H(`413 error: reducing batch size from ${r} to ${Math.max(1,Math.floor(r/2))}`),this.currentBatchSize=Math.max(1,Math.floor(r/2)),r=this.currentBatchSize;continue}return await this.retryQueue.retriableRequest({url:`${this.baseUrl}/api/ingestion/events`,method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:a,estimatedSize:c,callback:e=>{200===e.statusCode&&e.json&&!0===e.json.monthlyLimitReached&&(this.monthlyLimitReached=!0);}}),this._persistEvents(e.slice(o),t,s,i,n),null}const l=await d.json();if(!0===l.monthlyLimitReached&&(this.monthlyLimitReached=!0,W(\"Monthly limit reached detected from chunked events response\")),o+=r,o>=e.length)return l}catch(r){return H(\"Network error sending chunk, adding to retry queue:\",r),await this.retryQueue.retriableRequest({url:`${this.baseUrl}/api/ingestion/events`,method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:a,estimatedSize:c,callback:e=>{200===e.statusCode&&e.json&&true===e.json.monthlyLimitReached&&(this.monthlyLimitReached=true);}}),this._persistEvents(e.slice(o),t,s,i,n),null}}return null}_persistEvents(e,t,s,i,n){0!==e.length&&this.persistence.addToQueue({sessionId:t,events:e,endUserId:s,windowId:i,automaticProperties:n,timestamp:Date.now()});}async sendUserData(e,t,s,i){try{const n={userId:e,userAttributes:t,sessionId:s,posthogName:t.email||t.name||null};i&&(n.identityToken=i),Q(\"Sending user data to server:\",{...n,identityToken:i?\"[redacted]\":void 0});const r=await this.trackedFetch(`${this.baseUrl}/api/ingestion/user`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:ie(n)});if(!r.ok){const e=await r.text().then(e=>{try{return JSON.parse(e)?.error??e}catch{return e}},()=>\"\");throw new Error(`Failed to send user data: ${r.status} ${r.statusText}${e?` — ${e}`:\"\"}`)}const o=await r.json();return Q(\"Server response:\",o),o}catch(e){throw j(\"Error sending user data:\",e),e}}sendSessionEndBeacon(e,t){try{const s={sessionId:e,endUserId:t||null,apiKey:this.apiKey},i=new Blob([ie(s)],{type:Z});return ee(`${this.baseUrl}/api/ingestion/session-end`,i)}catch{return  false}}sendHeartbeatBeacon(e,t){try{const s={sessionId:e,endUserId:t||null,apiKey:this.apiKey},i=new Blob([ie(s)],{type:Z});return ee(`${this.baseUrl}/api/ingestion/heartbeat`,i)}catch{return  false}}sendBeaconEvents(e,t,s,i,n,r){const o={sessionId:t,events:e,endUserId:s||null,windowId:i,automaticProperties:n,sdkVersion:J,apiKey:this.apiKey},a=new Blob([ie(o)],{type:Z});return navigator.sendBeacon(`${this.baseUrl}/api/ingestion/events`,a)}async sendCustomEvent(e,t,s,i,n){W(\"[SDK] Sending custom event\",{sessionId:e,eventName:t,eventProperties:s,endUserId:i});try{const r=await this.trackedFetch(`${this.baseUrl}/api/ingestion/customEvent`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:ie({sessionId:e,eventName:t,eventProperties:s||{},endUserId:i||null,...n?{eventId:n}:{}})});if(W(\"[SDK] Custom event response\",{status:r.status,statusText:r.statusText}),!r.ok){const e=await r.text();throw j(\"[SDK] Failed to send custom event\",{status:r.status,statusText:r.statusText,errorText:e}),new Error(`Failed to send custom event: ${r.status} ${r.statusText} - ${e}`)}const o=await r.json();return Q(\"[SDK] Custom event success\",o),o}catch(i){throw j(\"[SDK] Error sending custom event\",i,{sessionId:e,eventName:t,eventProperties:s}),i}}async sendCustomEventBatch(e,t,s){const i=ie({sessionId:e,events:t,endUserId:s||null});try{const e=await this.trackedFetch(`${this.baseUrl}/api/ingestion/customEvent/batch`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:i});if(!e.ok)throw new Error(`Failed to send custom event batch: ${e.statusText}`);return await e.json()}catch(e){throw j(\"Error sending custom event batch:\",e),e}}sendCustomEventBatchBeacon(e,t,s){if(\"undefined\"==typeof navigator||\"function\"!=typeof navigator.sendBeacon)return  false;try{const i={sessionId:e,events:t,endUserId:s||null,apiKey:this.apiKey},n=new Blob([ie(i)],{type:Z});return navigator.sendBeacon(`${this.baseUrl}/api/ingestion/customEvent/batch`,n)}catch{return  false}}async sendLog(e){try{if(Q(\"[SDK] Sending log to server:\",{level:e.level,message:e.message.substring(0,50),sessionId:e.sessionId}),!this.baseUrl)return;if(!e.sessionId)return;const t=ie(e);await this.retryQueue.retriableRequest({url:`${this.baseUrl}/api/ingestion/logs`,method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:t,estimatedSize:\"string\"==typeof t?t.length:0});}catch(e){H(\"[SDK] Failed to send log to server:\",e);}}async sendNetworkError(e){try{if(Q(\"[SDK] Sending network error to server:\",{errorType:e.errorType,url:e.url.substring(0,50),sessionId:e.sessionId}),!this.baseUrl)return;if(!e.sessionId)return;const t=await fetch(`${this.baseUrl}/api/ingestion/network`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:ie(e)});t.ok?Q(\"[SDK] Network error sent successfully\"):H(\"[SDK] Failed to send network error to server:\",t.status,t.statusText);}catch(e){H(\"[SDK] Failed to send network error to server:\",e);}}async sendSpans(e,t){try{if(!this.baseUrl||!t.sessionId||!e||0===e.length)return;const s=ie({sessionId:t.sessionId,endUserId:t.endUserId,automaticProperties:t.automaticProperties,spans:e});await this.retryQueue.retriableRequest({url:`${this.baseUrl}/api/ingestion/spans/batch`,method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:s,estimatedSize:\"string\"==typeof s?s.length:0});}catch(e){H(\"[SDK] Failed to send spans:\",e);}}sendSpansBeacon(e,t){if(\"undefined\"==typeof navigator||\"function\"!=typeof navigator.sendBeacon)return  false;if(!this.baseUrl||!t.sessionId||!e||0===e.length)return  false;try{const s=new Blob([ie({sessionId:t.sessionId,endUserId:t.endUserId,automaticProperties:t.automaticProperties,spans:e,apiKey:this.apiKey})],{type:Z});return navigator.sendBeacon(`${this.baseUrl}/api/ingestion/spans/batch`,s)}catch{return  false}}async sendError(e){try{if(Q(\"[SDK] Sending error to server:\",{exceptionType:e.exceptionType,mechanism:e.mechanism,sessionId:e.sessionId}),!this.baseUrl||!e.sessionId)return;const t=ie(e);await this.retryQueue.retriableRequest({url:`${this.baseUrl}/api/ingestion/errors`,method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:t,estimatedSize:\"string\"==typeof t?t.length:0});}catch(e){H(\"[SDK] Failed to send error to server:\",e);}}async sendIpInfo(e,t){try{if(!this.baseUrl||!e||!t)return;const s=await fetch(`${this.baseUrl}/api/ingestion/ip-info`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Authorization:`Bearer ${this.apiKey}`},body:ie({sessionId:e,endUserId:t,ipDetectionMethod:\"server_header\"})});s.ok||H(\"[SDK] Failed to send ip-info:\",s.status,s.statusText);}catch(e){H(\"[SDK] Failed to send ip-info:\",e);}}async trackedFetch(e,s,i){const n=Date.now(),r=v1(),o=this.shouldSkipNetworkTracking(e);if(this.cspBlocked&&\"POST\"===s.method&&\"undefined\"!=typeof navigator&&\"function\"==typeof navigator.sendBeacon)return this.trackedFetchWithBeaconFallback(e,s,o);try{const t=\"undefined\"!=typeof AbortController?new AbortController:null;let a=null;t&&(a=setTimeout(()=>{t.abort();},this.requestTimeout));const c=\"POST\"===s.method&&void 0!==i&&i<Y,d=await fetch(e,{...s,signal:t?.signal,keepalive:c});a&&clearTimeout(a);const l=Date.now()-n;return this.consecutiveFetchFailures=0,d.ok||o||await this.sendNetworkError({requestId:r,url:e,method:s.method||\"GET\",status:d.status,statusText:d.statusText,duration:l,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:this.classifyHttpError(d.status),errorMessage:d.statusText,startTimeMs:n,spanName:`${s.method||\"GET\"} ${e}`,spanStatus:\"error\",attributes:{\"http.status_code\":d.status,\"http.status_text\":d.statusText}}).catch(()=>{}),d}catch(t){const i=Date.now()-n;if(\"AbortError\"===t.name){const e=new Error(\"Request timeout\");e.name=\"TimeoutError\",t=e;}if(this.isCSPViolation(t)&&\"POST\"===s.method&&\"undefined\"!=typeof navigator&&\"function\"==typeof navigator.sendBeacon)return this.consecutiveFetchFailures+=1,this.consecutiveFetchFailures>=2&&(this.cspBlocked=true,H(\"[SDK] Repeated fetch failures (likely CSP), falling back to sendBeacon for future requests\")),this.trackedFetchWithBeaconFallback(e,s,o);throw o||await this.sendNetworkError({requestId:r,url:e,method:s.method||\"GET\",status:null,statusText:null,duration:i,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:this.classifyNetworkError(t),errorMessage:t.message,errorName:t.name,startTimeMs:n,spanName:`${s.method||\"GET\"} ${e}`,spanStatus:\"error\",attributes:{\"error.name\":t.name,\"error.message\":t.message}}).catch(()=>{}),t}}async trackedFetchWithBeaconFallback(e,t,s){try{let s=null,i=\"\";if(t.body)if(\"string\"==typeof t.body)try{s=JSON.parse(t.body),i=t.body;}catch{i=t.body;}else {if(t.body instanceof Blob){H(\"[SDK] Cannot extract apiKey from Blob body for sendBeacon, using URL param\"),e=`${e}${e.includes(\"?\")?\"&\":\"?\"}apiKey=${encodeURIComponent(this.apiKey)}`;return navigator.sendBeacon(e,t.body)?new Response('{\"ok\":true,\"transport\":\"sendBeacon\"}',{status:200,statusText:\"OK\",headers:new Headers({\"Content-Type\":\"application/json\"})}):new Response('{\"ok\":false}',{status:500,statusText:\"sendBeacon failed\",headers:new Headers({\"Content-Type\":\"application/json\"})})}i=ie(t.body),s=t.body;}if(e.includes(\"/api/ingestion/\"))if(s&&\"object\"==typeof s)s.apiKey=this.apiKey,i=ie(s);else if(i)try{const e=JSON.parse(i);e.apiKey=this.apiKey,i=ie(e);}catch{e=`${e}${e.includes(\"?\")?\"&\":\"?\"}apiKey=${encodeURIComponent(this.apiKey)}`;}else e=`${e}${e.includes(\"?\")?\"&\":\"?\"}apiKey=${encodeURIComponent(this.apiKey)}`;else e=`${e}${e.includes(\"?\")?\"&\":\"?\"}apiKey=${encodeURIComponent(this.apiKey)}`;const n=i?new Blob([i],{type:Z}):null,r=navigator.sendBeacon(e,n),o='{\"ok\":true,\"transport\":\"sendBeacon\"}';return r?(Q(\"[SDK] Successfully sent request via sendBeacon (CSP fallback)\"),new Response(o,{status:200,statusText:\"OK\",headers:new Headers({\"Content-Type\":\"application/json\"})})):(H(\"[SDK] sendBeacon returned false - browser may be throttling\"),new Response(o,{status:200,statusText:\"OK (sendBeacon best-effort)\",headers:new Headers({\"Content-Type\":\"application/json\"})}))}catch(e){return j(\"[SDK] sendBeacon fallback failed:\",e),new Response(null,{status:500,statusText:\"Failed to send via sendBeacon\",headers:new Headers})}}isCSPViolation(e){const t=(e?.message||\"\").toLowerCase();return \"typeerror\"===(e?.name||\"\").toLowerCase()&&t.includes(\"failed to fetch\")||t.includes(\"content security policy\")||t.includes(\"csp\")||t.includes(\"violates\")||t.includes(\"refused to connect\")&&t.includes(\"violates\")}shouldSkipNetworkTracking(e){if(!e||!this.baseUrl)return  false;try{const t=new URL(e),s=new URL(this.baseUrl);return !(t.origin!==s.origin||!t.pathname.startsWith(\"/api/ingestion/\"))||!!e.includes(this.baseUrl)}catch(t){return e.includes(this.baseUrl)}}classifyHttpError(e){return e>=400&&e<500?\"client_error\":e>=500?\"server_error\":\"unknown_error\"}classifyNetworkError(e){const t=e.message||\"\",s=e.name||\"\";return this.isCSPViolation(e)?\"csp_violation\":t.includes(\"ERR_BLOCKED_BY_CLIENT\")||t.includes(\"ERR_BLOCKED_BY_RESPONSE\")||t.includes(\"blocked:other\")||t.includes(\"net::ERR_BLOCKED_BY_CLIENT\")||t.includes(\"net::ERR_BLOCKED_BY_RESPONSE\")||\"TypeError\"===s&&t.includes(\"Failed to fetch\")&&(t.includes(\"blocked\")||t.includes(\"ERR_BLOCKED\"))?\"blocked_by_client\":t.includes(\"CORS\")||t.includes(\"Access-Control\")?\"cors_error\":t.includes(\"timeout\")||\"TimeoutError\"===s?\"timeout_error\":t.includes(\"Failed to fetch\")||t.includes(\"NetworkError\")?\"network_error\":\"unknown_error\"}}const oe=\"undefined\"!=typeof window,ae=new Set([\"access_token\",\"id_token\",\"refresh_token\",\"token\",\"code\",\"auth\",\"authorization\",\"session\",\"sid\",\"key\",\"secret\",\"password\",\"passwd\",\"pwd\",\"otp\",\"signature\",\"sig\",\"state\",\"invite\"]),ce=[\"token\",\"secret\",\"password\",\"passwd\",\"signature\",\"apikey\",\"api_key\",\"auth\"];function de(e){const t=e.toLowerCase();return !!ae.has(t)||ce.some(e=>t.includes(e))}function le(e){let t=false;for(const s of Array.from(e.keys()))de(s)&&(e.set(s,\"REDACTED\"),t=true);return t}function ue(e){if(!e)return e??\"\";try{const t=oe?window.location.href:\"http://localhost/\",s=new URL(e,t);let i=le(s.searchParams);const n=s.hash.startsWith(\"#\")?s.hash.slice(1):s.hash;if(n&&/[=&]/.test(n)){const e=new URLSearchParams(n);le(e)&&(s.hash=`#${e.toString()}`,i=!0);}return i?/^[a-z][a-z0-9+.-]*:|^\\/\\//i.test(e)?s.toString():`${s.pathname}${s.search}${s.hash}`:e}catch{return e}}class he{constructor(e){if(this.redactedText=\"[REDACTED]\",this.unredactedFields=new Set,this.redactedFields=new Set,this.redactionMode=\"privacy-first\",this.excludeSelectors=['[data-no-redact=\"true\"]',\".human-behavior-no-redact\"],e?.redactedText&&(this.redactedText=e.redactedText),e?.excludeSelectors&&(this.excludeSelectors=[...this.excludeSelectors,...e.excludeSelectors]),e?.redactionStrategy)if(this.redactionMode=e.redactionStrategy.mode,\"privacy-first\"===this.redactionMode)e.redactionStrategy.unredactFields&&this.setFieldsToUnredact(e.redactionStrategy.unredactFields);else {const t=['input[type=\"password\"]','[data-hb-redact=\"true\"]'],s=e.redactionStrategy.redactFields&&e.redactionStrategy.redactFields.length>0?e.redactionStrategy.redactFields:t;this.setFieldsToRedact(s);}e?.legacyRedactFields&&this.setFieldsToUnredact(e.legacyRedactFields),e?.userFields&&this.setFieldsToUnredact(e.userFields);}setFieldsToRedact(e){this.redactedFields.clear();['input[type=\"password\"]','input[type=\"password\" i]','[type=\"password\"]','[type=\"password\" i]',...e].forEach(e=>{this.redactedFields.add(e);}),this.redactedFields.size>0?Q(`Redaction: Active for ${this.redactedFields.size} field(s):`,Array.from(this.redactedFields)):Q(\"Redaction: No fields to redact\"),this.applyRedactionClasses();}setFieldsToUnredact(e){this.unredactedFields.clear();const t=e.filter(e=>!this.isPasswordSelector(e)||(H(`Cannot unredact password field: ${e} - Password fields are always protected`),false));t.forEach(e=>this.unredactedFields.add(e)),t.length>0?Q(`Unredaction: Active for ${t.length} field(s):`,t):Q(\"Unredaction: No valid fields to unredact\"),this.applyUnredactionClasses();}redactFields(e){e.forEach(e=>{this.unredactedFields.delete(e);}),this.unredactedFields.size>0?Q(`Unredaction: Removed ${e.length} field(s), ${this.unredactedFields.size} remaining:`,Array.from(this.unredactedFields)):Q(\"Unredaction: All fields redacted\"),this.applyUnredactionClasses();}clearUnredactedFields(){this.unredactedFields.clear(),Q(\"Unredaction: All fields cleared, everything redacted\"),this.removeUnredactionClasses();}hasUnredactedFields(){return this.unredactedFields.size>0}getRedactionMode(){return this.redactionMode}getUnredactedFields(){return Array.from(this.unredactedFields)}getMaskTextSelector(){return \"privacy-first\"===this.redactionMode?0===this.unredactedFields.size?null:Array.from(this.unredactedFields).join(\",\"):0===this.redactedFields.size?null:Array.from(this.redactedFields).join(\",\")}applyRedactionClasses(){0!==this.redactedFields.size&&(\"undefined\"!=typeof document&&\"loading\"!==document.readyState?this.redactedFields.forEach(e=>{try{const t=document.querySelectorAll(e);t.forEach(e=>{e&&e.classList&&e.classList.add(\"rr-mask\");}),Q(`Added rr-mask class to ${t.length} element(s) for selector: ${e}`);}catch(t){H(`Invalid selector: ${e}`);}}):Q(\"DOM not ready, deferring redaction class application\"));}applyUnredactionClasses(){0!==this.unredactedFields.size&&(\"undefined\"!=typeof document&&\"loading\"!==document.readyState?this.unredactedFields.forEach(e=>{try{const t=document.querySelectorAll(e);t.forEach(e=>{e&&e.classList&&e.classList.remove(\"rr-mask\");}),Q(`Removed rr-mask class from ${t.length} element(s) for selector: ${e}`);}catch(t){H(`Invalid selector: ${e}`);}}):Q(\"DOM not ready, deferring unredaction class application\"));}removeUnredactionClasses(){Q(\"Unredaction classes removed\");}isPasswordSelector(e){return ['input[type=\"password\"]','input[type=\"password\" i]','[type=\"password\"]','[type=\"password\" i]'].some(t=>e.toLowerCase().includes(t.toLowerCase().replace(/[\\[\\]]/g,\"\")))}getOriginalValue(e){if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)return e.value}isElementUnredacted(e){return this.shouldUnredactElement(e)}shouldUnredactElement(e){try{if(\"privacy-first\"===this.redactionMode){if(0===this.unredactedFields.size)return !1;for(const t of this.unredactedFields)try{if(e.matches(t))return !0}catch(e){H(`Invalid selector: ${t}`);}return !1}if(0===this.redactedFields.size)return !0;for(const t of this.redactedFields)try{if(e.matches(t))return !1}catch(e){return H(`Invalid selector: ${t}`),!1}return !0}catch{return  false}}}new he;const pe=\"undefined\"!=typeof window;function me(){if(!pe)return \"unknown\";const e=navigator.userAgent.toLowerCase(),t=window.screen.width,s=window.screen.height;return /mobile|android|iphone|ipad|ipod|blackberry|windows phone/i.test(e)?/ipad/i.test(e)||t>=768&&s>=1024?\"tablet\":\"mobile\":/windows|macintosh|linux/i.test(e)?\"desktop\":\"unknown\"}function ge(e){try{return new URL(e).hostname}catch{return \"\"}}function fe(){if(!pe)return {device_type:\"unknown\",browser:\"unknown\",browser_version:\"unknown\",os:\"unknown\",os_version:\"unknown\",screen_resolution:\"unknown\",viewport_size:\"unknown\",color_depth:0,timezone:\"unknown\",language:\"unknown\",languages:[]};const{browser:e,browser_version:t}=function(){if(!pe)return {browser:\"unknown\",browser_version:\"unknown\"};const e=navigator.userAgent;if(/chrome/i.test(e)&&!/edge/i.test(e)){const t=e.match(/chrome\\/(\\d+)/i);return {browser:\"chrome\",browser_version:t?t[1]:\"unknown\"}}if(/firefox/i.test(e)){const t=e.match(/firefox\\/(\\d+)/i);return {browser:\"firefox\",browser_version:t?t[1]:\"unknown\"}}if(/safari/i.test(e)&&!/chrome/i.test(e)){const t=e.match(/version\\/(\\d+)/i);return {browser:\"safari\",browser_version:t?t[1]:\"unknown\"}}if(/edge/i.test(e)){const t=e.match(/edge\\/(\\d+)/i);return {browser:\"edge\",browser_version:t?t[1]:\"unknown\"}}if(/msie|trident/i.test(e)){const t=e.match(/msie (\\d+)/i)||e.match(/rv:(\\d+)/i);return {browser:\"ie\",browser_version:t?t[1]:\"unknown\"}}return {browser:\"unknown\",browser_version:\"unknown\"}}(),{os:s,os_version:i}=function(){if(!pe)return {os:\"unknown\",os_version:\"unknown\"};const e=navigator.userAgent;if(/windows/i.test(e)){const t=e.match(/windows nt (\\d+\\.\\d+)/i);let s=\"unknown\";if(t){const e=parseFloat(t[1]);s=10===e?\"10\":6.3===e?\"8.1\":6.2===e?\"8\":6.1===e?\"7\":t[1];}return {os:\"windows\",os_version:s}}if(/iphone|ipad|ipod/i.test(e)){const t=e.match(/os (\\d+[._]\\d+)/i);return {os:\"ios\",os_version:t?t[1].replace(\"_\",\".\"):\"unknown\"}}if(/macintosh|mac os x/i.test(e)){const t=e.match(/mac os x (\\d+[._]\\d+)/i);return {os:\"macos\",os_version:t?t[1].replace(\"_\",\".\"):\"unknown\"}}if(/android/i.test(e)){const t=e.match(/android (\\d+\\.\\d+)/i);return {os:\"android\",os_version:t?t[1]:\"unknown\"}}return /linux/i.test(e)?{os:\"linux\",os_version:\"unknown\"}:{os:\"unknown\",os_version:\"unknown\"}}();return {device_type:me(),browser:e,browser_version:t,os:s,os_version:i,screen_resolution:`${window.screen.width}x${window.screen.height}`,viewport_size:`${window.innerWidth}x${window.innerHeight}`,color_depth:window.screen.colorDepth,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,language:navigator.language,languages:[...navigator.languages||[navigator.language]],raw_user_agent:navigator.userAgent}}function ye(){if(!pe)return {current_url:\"\",pathname:\"\",search:\"\",hash:\"\",title:\"\",referrer:\"\",referrer_domain:\"\",initial_referrer:\"\",initial_referrer_domain:\"\"};const e=window.location.href,t=document.referrer,s=function(e){const t=new URL(e),s={};return [\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_term\",\"utm_content\"].forEach(e=>{const i=t.searchParams.get(e);i&&(s[e]=i);}),s}(e);return {current_url:e,pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,title:document.title,referrer:t,referrer_domain:ge(t),initial_referrer:t,initial_referrer_domain:ge(t),initial_host:window.location.hostname,...s}}function we(){return {...fe(),...ye()}}function ve(){if(!pe)return {};const e=ye();return {initial_referrer:e.initial_referrer,initial_referrer_domain:e.initial_referrer_domain,initial_url:e.current_url,initial_pathname:e.pathname,initial_utm_source:e.utm_source,initial_utm_medium:e.utm_medium,initial_utm_campaign:e.utm_campaign,initial_utm_term:e.utm_term,initial_utm_content:e.utm_content}}function be(){if(!pe)return {};const e=ye();return {current_url:e.current_url,pathname:e.pathname,search:e.search,hash:e.hash,title:e.title,referrer:e.referrer,referrer_domain:e.referrer_domain,utm_source:e.utm_source,utm_medium:e.utm_medium,utm_campaign:e.utm_campaign,utm_term:e.utm_term,utm_content:e.utm_content}}class Se{constructor(e={}){this.sessionProperties={},this.userProperties={},this.initialProperties={},this.isInitialized=false,this.config={enableAutomaticProperties:true,enableSessionProperties:true,enableUserProperties:true,propertyDenylist:[],...e},this.automaticProperties=we(),this.initialize();}initialize(){this.isInitialized||(this.initialProperties=ve(),this.loadSessionProperties(),this.isInitialized=true);}getEventProperties(e={}){const t={};return this.config.enableAutomaticProperties&&(Object.assign(t,this.getAutomaticProperties()),this.config.enableSessionProperties&&Object.assign(t,this.sessionProperties),this.config.enableUserProperties&&Object.assign(t,this.userProperties),this.sessionProperties.$initial_properties_captured||(Object.assign(t,this.initialProperties),this.setSessionProperty(\"$initial_properties_captured\",true))),Object.assign(t,e),this.applyDenylist(t),t}getAutomaticProperties(){return {...this.automaticProperties,...be()}}getAutomaticPropertiesWithGeoIP(e={}){return {...this.automaticProperties,...be(),...e}}setSessionProperty(e,t){this.sessionProperties[e]=t,this.saveSessionProperties();}setSessionProperties(e){Object.assign(this.sessionProperties,e),this.saveSessionProperties();}getSessionProperty(e){return this.sessionProperties[e]}removeSessionProperty(e){delete this.sessionProperties[e],this.saveSessionProperties();}setUserProperty(e,t){this.userProperties[e]=t;}setUserProperties(e){Object.assign(this.userProperties,e);}getUserProperty(e){return this.userProperties[e]}getUserProperties(){return {...this.userProperties}}getSessionProperties(){return {...this.sessionProperties}}removeUserProperty(e){delete this.userProperties[e];}setOnce(e,t,s=\"user\"){\"session\"===s?e in this.sessionProperties||this.setSessionProperty(e,t):e in this.userProperties||this.setUserProperty(e,t);}clearSessionProperties(){this.sessionProperties={},this.saveSessionProperties();}clearUserProperties(){this.userProperties={};}reset(){this.clearSessionProperties(),this.clearUserProperties(),this.initialProperties={},this.isInitialized=false,this.initialize();}loadSessionProperties(){if(\"undefined\"!=typeof sessionStorage)try{const e=sessionStorage.getItem(\"hb_session_properties\");e&&(this.sessionProperties=JSON.parse(e));}catch(e){console.warn(\"Failed to load session properties:\",e);}}saveSessionProperties(){if(\"undefined\"!=typeof sessionStorage)try{sessionStorage.setItem(\"hb_session_properties\",JSON.stringify(this.sessionProperties));}catch(e){console.warn(\"Failed to save session properties:\",e);}}applyDenylist(e){this.config.propertyDenylist&&0!==this.config.propertyDenylist.length&&this.config.propertyDenylist.forEach(t=>{delete e[t];});}updateAutomaticProperties(){this.automaticProperties=we();}getAllProperties(){return {automatic:this.getAutomaticProperties(),session:{...this.sessionProperties},user:{...this.userProperties},initial:{...this.initialProperties}}}}class Te{constructor(e=50){this.items=[],this.max=e>0?e:50;}add(e){this.items.push(e),this.items.length>this.max&&this.items.splice(0,this.items.length-this.max);}snapshot(){return this.items.map(e=>({...e}))}clear(){this.items=[];}get size(){return this.items.length}}class ke{shouldReport(e){return (void 0===this.previousKey||e!==this.previousKey)&&(this.previousKey=e,true)}}const _e=[/^Script error\\.?$/,/^Javascript error: Script error\\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,/^Can't find variable: gmo$/,/^undefined is not an object \\(evaluating 'a\\.[A-Z]'\\)$/,/can't redefine non-configurable property \"solana\"/,/vv\\(\\)\\.getRestrictions is not a function/,/Can't find variable: _AutofillCallbackHandler/,/Object Not Found Matching Id:\\d+, MethodName:simulateEvent/,/^Java exception was raised during method invocation$/,/HumanBehavior error/i,/Failed to send events/i,/request timeout/i,/^TimeoutError\\b/];function Ie(e,t=[]){return t.some(t=>function(e,t){return \"string\"==typeof e&&(t instanceof RegExp?t.test(e):e.includes(t))}(e,t))}function Ee(e,t={}){const s=[...t.ignoreErrors||[],...t.disableErrorDefaults?[]:_e];for(const t of function(e,t){const s=[];return t&&s.push(t),e&&t&&s.push(`${e}: ${t}`),s}(e.exceptionType,e.value))if(Ie(t,s))return {reason:\"ignoreErrors\",matched:t};const i=function(e){for(let t=e.length-1;t>=0;t-=1){const s=e[t]?.file;if(s&&\"<anonymous>\"!==s&&\"[native code]\"!==s)return s}return null}(e.stackFrames);return t.denyUrls?.length&&i&&Ie(i,t.denyUrls)?{reason:\"denyUrls\",matched:i}:t.allowUrls?.length&&i&&!Ie(i,t.allowUrls)?{reason:\"allowUrls\",matched:i}:null}const Ce=/^\\s*at\\s+(.+?)\\s+\\((.+?):(\\d+):(\\d+)\\)\\s*$/,Ue=/^\\s*at\\s+(.+?):(\\d+):(\\d+)\\s*$/,Re=/^\\s*(.*?)@(.+?):(\\d+)(?::(\\d+))?\\s*$/;function Pe(e){let t=Ce.exec(e);return t?{function:t[1],file:t[2],line:Number(t[3]),column:Number(t[4])}:(t=Ue.exec(e),t?{function:null,file:t[1],line:Number(t[2]),column:Number(t[3])}:null)}function Fe(e){const t=Re.exec(e);return t?{function:t[1]?t[1]:null,file:t[2],line:Number(t[3]),column:t[4]?Number(t[4]):null}:null}function Me(e){if(!e||\"string\"!=typeof e)return [];const t=[];for(const s of e.split(\"\\n\")){if(!s.trim())continue;const e=Pe(s)||Fe(s);e&&t.push(e);}return t}function Ae(e){return e instanceof Error||\"object\"==typeof e&&null!==e&&\"string\"==typeof e.message&&\"string\"==typeof e.name}function Le(e,t){return {exceptionType:e.name||\"Error\",value:e.message||\"\",stackFrames:Me(\"string\"==typeof e.stack?e.stack:null),source:t}}let $e;function De(e,t){for(const s of Object.keys(e)){const i=Me(s);for(let n=i.length-1;n>=0;n-=1){const r=i[n]?.file;if(r){t[r]=e[s];break}}}}function xe(e){const t=function(){const e=globalThis,t=e._debugIds,s=e._sentryDebugIds;if(!t&&!s)return {};const i=t?Object.keys(t).length:0,n=s?Object.keys(s).length:0;if($e&&$e.debugIdKeyCount===i&&$e.sentryDebugIdKeyCount===n)return $e.map;const r={};return s&&De(s,r),t&&De(t,r),$e={map:r,debugIdKeyCount:i,sentryDebugIdKeyCount:n},r}();let s;for(const i of e){const e=i.file;e&&t[e]&&(s||(s={}),s[e]=t[e]);}return s}function Be(){if(\"undefined\"!=typeof crypto&&\"function\"==typeof crypto.getRandomValues){const e=new Uint8Array(16);return crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,\"0\")).join(\"\")}let e=\"\";for(let t=0;t<32;t+=1)e+=Math.floor(16*Math.random()).toString(16);return e}function Ne(e){if(e instanceof Error)return {type:e.name||\"Error\",value:e.message||\"\",stack:e.stack||null};if(\"string\"==typeof e)return {type:\"Error\",value:e,stack:null};if(null==e)return {type:\"Error\",value:String(e),stack:null};if(\"object\"==typeof e){const t=e,s=\"string\"==typeof t.name&&t.name?t.name:\"Error\";let i;if(\"string\"==typeof t.message)i=t.message;else try{i=JSON.stringify(e);}catch{i=String(e);}return {type:s,value:i,stack:\"string\"==typeof t.stack?t.stack:null}}return {type:\"Error\",value:String(e),stack:null}}function Oe(e){const t=Ne(e.error),s=Me(t.stack),i=function(e,t=5){const s=[];if(!Ae(e))return s;const i=new Set([e]),n=e=>{if(s.length>=t)return;const r=e.cause;Ae(r)&&!i.has(r)&&(i.add(r),s.push(Le(r,\"cause\")),n(r));const o=e.errors;if(Array.isArray(o))for(let e=0;e<o.length&&s.length<t;e+=1){const t=o[e];Ae(t)&&!i.has(t)&&(i.add(t),s.push(Le(t,`errors[${e}]`)),n(t));}};return n(e),s}(e.error),n=[];for(const e of i)n.push(...e.stackFrames);const r=xe(n.length?s.concat(n):s);return {eventId:Be(),exceptionType:t.type,value:t.value,stackFrames:s,mechanism:e.mechanism,handled:e.handled,release:e.release??null,environment:e.environment??null,commitSha:e.commitSha??null,dist:e.dist??null,componentStack:e.componentStack,networkState:e.networkState,requestContext:e.requestContext,sessionStartTimestampMs:e.sessionStartTimestampMs,breadcrumbs:e.breadcrumbs,sessionId:e.sessionId,endUserId:e.endUserId,url:e.url,timestampMs:e.timestampMs??Date.now(),automaticProperties:e.automaticProperties,userProperties:e.userProperties,sessionProperties:e.sessionProperties,linkedErrors:i.length?i:void 0,debugIdMap:r}}function qe(){if(\"undefined\"==typeof navigator)return;const e=navigator.connection;return {online:\"boolean\"!=typeof navigator.onLine||navigator.onLine,effectiveType:e&&\"string\"==typeof e.effectiveType?e.effectiveType:null}}class Ke{constructor(e){this.installed=false,this.opts=e,this.deduper=new ke;}install(){this.installed||\"undefined\"==typeof window||(this.installed=true,this.onError=e=>{const t=e&&null!=e.error?e.error:e&&e.message||\"Unknown error\";this.capture(t,\"onerror\",false);},window.addEventListener(\"error\",this.onError),this.onRejection=e=>{const t=e&&\"reason\"in e?e.reason:e;this.capture(t,\"onunhandledrejection\",false);},window.addEventListener(\"unhandledrejection\",this.onRejection),this.onResourceError=e=>{const t=e.target;if(!t||t===window||!t.tagName)return;const s=t.tagName.toLowerCase(),i=t.src||t.href||\"\";i&&(this.opts.captureThirdPartyResourceErrors||function(e){try{return \"undefined\"==typeof location||new URL(e,location.href).origin===location.origin}catch{return  true}}(i))&&this.capture({name:\"ResourceLoadError\",message:`Failed to load ${s}: ${i}`},\"resource\",false);},window.addEventListener(\"error\",this.onResourceError,true),this.onCsp=e=>{const t=e.sourceFile||\"\";if(t.startsWith(\"chrome-extension:\")||t.startsWith(\"moz-extension:\")||t.startsWith(\"safari-extension:\")||t.startsWith(\"safari-web-extension:\"))return;const s=e.effectiveDirective||e.violatedDirective||\"unknown\",i=e.blockedURI||\"inline\";this.capture({name:\"SecurityPolicyViolation\",message:`Blocked ${i} (${s})`},\"csp\",false);},window.addEventListener(\"securitypolicyviolation\",this.onCsp));}uninstall(){this.installed&&\"undefined\"!=typeof window&&(this.onError&&window.removeEventListener(\"error\",this.onError),this.onRejection&&window.removeEventListener(\"unhandledrejection\",this.onRejection),this.onResourceError&&window.removeEventListener(\"error\",this.onResourceError,true),this.onCsp&&window.removeEventListener(\"securitypolicyviolation\",this.onCsp),this.installed=false);}capture(e,t,s,i){try{const n=Ne(e);if(Ee({exceptionType:n.type,value:n.value,stackFrames:[]},this.opts.filters))return;const r=this.opts.getContext(),o=Oe({error:e,mechanism:t,handled:s,sessionId:r.sessionId,endUserId:r.endUserId,url:r.url,release:r.release??null,environment:r.environment??null,commitSha:r.commitSha??null,dist:r.dist??null,componentStack:i?.componentStack,networkState:qe(),requestContext:r.requestContext,sessionStartTimestampMs:r.sessionStartTimestampMs,breadcrumbs:this.opts.breadcrumbs.snapshot(),automaticProperties:r.automaticProperties,userProperties:r.userProperties,sessionProperties:r.sessionProperties});if(Ee(o,this.opts.filters))return;if(!this.deduper.shouldReport(function(e){const t=e.stackFrames.length?e.stackFrames.map(e=>`${e.function??\"?\"}@${e.file??\"?\"}:${e.line??\"?\"}:${e.column??\"?\"}`).join(\"|\"):\"no-stack\";return `${e.exceptionType}|${e.value}|${t}`}(o)))return;this.opts.send(o);}catch{}}}const ze=\"[REDACTED]\",je=[\"password\",\"passwd\",\"secret\",\"token\",\"apikey\",\"api_key\",\"authorization\",\"auth\",\"cookie\",\"session\",\"creditcard\",\"credit_card\",\"cardnumber\",\"card_number\",\"cvv\",\"cvc\",\"ssn\"];function He(e){const t=e.toLowerCase();return je.some(e=>t.includes(e))}function We(e){if(Array.isArray(e))return e.map(We);if(e&&\"object\"==typeof e){const t={};for(const[s,i]of Object.entries(e))t[s]=He(s)?ze:We(i);return t}return e}function Qe(e,t){return e.length<=t?e:`${e.slice(0,t)}...[truncated ${e.length-t} chars]`}function Ve(e,t=2048){if(!e)return e;try{const s=JSON.parse(e);return Qe(JSON.stringify(We(s)),t)}catch{return Qe(e,t)}}const Ge=[\"hydration failed because\",\"text content does not match server-rendered html\",\"there was an error while hydrating\",\"hydration completed but contains mismatches\",\"did not match. server:\",\"while hydrating the component\"],Je=[\"418\",\"421\",\"422\",\"423\",\"425\"];const Xe=\"undefined\"!=typeof window;function Ye(e){const t=2*e;try{const t=new Uint8Array(e);(globalThis.crypto||globalThis.msCrypto).getRandomValues(t);let s=\"\";for(let i=0;i<e;i++)s+=t[i].toString(16).padStart(2,\"0\");return s}catch{let e=\"\";for(let s=0;s<t;s++)e+=\"0123456789abcdef\"[16*Math.random()|0];return e}}const Ze=()=>Ye(16),et=()=>Ye(8);function tt(e){switch(e){case \"fetch\":case \"xmlhttprequest\":return \"http.client\";case \"script\":return \"resource.script\";case \"css\":case \"link\":return \"resource.css\";case \"img\":case \"image\":return \"resource.img\";case \"font\":return \"resource.font\";default:return e?`resource.${e}`:\"resource.other\"}}function st(e){try{const t=new URL(e,Xe?window.location.href:void 0);return t.pathname.split(\"/\").filter(Boolean).pop()||t.pathname||t.hostname}catch{return e.slice(0,120)}}class it{constructor(e){this.traceId=Ze(),this.rootSpanId=et(),this.buffer=[],this.flushTimer=null,this.resourceObserver=null,this.started=false,this.originalFetch=null,this.cfg=e;}start(){if(Xe&&!this.started){this.started=true;try{this.installTracePropagation(),this.observeResources(),\"complete\"===document.readyState?this.capturePageLoad():window.addEventListener(\"load\",()=>this.capturePageLoad(),{once:!0});}catch(e){H(\"[SDK] tracing start failed:\",e);}}}startNewTrace(){this.traceId=Ze(),this.rootSpanId=et();}getTraceHeaders(){const e=et();return {traceparent:`00-${this.traceId}-${e}-01`,\"sentry-trace\":`${this.traceId}-${e}-1`}}startSpan(e,t){const s=this.startInactiveSpan(e);try{const e=t();return e instanceof Promise?e.then(e=>(s.end(),e)).catch(e=>{throw s.setStatus(\"error\"),s.end(),e}):(s.end(),e)}catch(e){throw s.setStatus(\"error\"),s.end(),e}}startInactiveSpan(e){const t=Date.now(),s=et(),i=this.traceId,n=this.rootSpanId,r={...e.attributes||{}};let o=\"ok\",a=false;const c=this.record.bind(this);return {setAttribute(e,t){r[e]=t;},setStatus(e){o=e;},end(){a||(a=true,c({traceId:i,spanId:s,parentSpanId:n,name:e.name,op:e.op||\"custom\",startTimeMs:t,durationMs:Math.max(Date.now()-t,0),status:o,attributes:r}));}}}flush(e=false){if(0===this.buffer.length)return;const t=this.buffer;this.buffer=[],this.flushTimer&&(clearTimeout(this.flushTimer),this.flushTimer=null);try{this.cfg.sendSpans(t,this.cfg.getSession(),e);}catch(e){H(\"[SDK] tracing flush failed:\",e);}}stop(){try{this.resourceObserver?.disconnect();}catch{}this.originalFetch&&\"undefined\"!=typeof window&&(window.fetch=this.originalFetch),this.flush(false);}record(e){try{const t=this.cfg.getSession(),s={...e.attributes||{}};t.release&&null==s.release&&(s.release=t.release),t.environment&&null==s.environment&&(s.environment=t.environment),e={...e,attributes:s};}catch{}this.buffer.push(e),this.buffer.length>=100?this.flush(false):this.flushTimer||(this.flushTimer=setTimeout(()=>this.flush(false),4e3));}capturePageLoad(){if(\"undefined\"!=typeof performance)try{const e=performance.getEntriesByType(\"navigation\")[0];if(!e)return;const t=performance.timeOrigin,s=t+e.fetchStart,i=e.loadEventEnd||e.domComplete||e.responseEnd,n=Math.max(i-e.fetchStart,0),r=Xe?window.location.pathname:\"/\";this.record({traceId:this.traceId,spanId:this.rootSpanId,parentSpanId:\"\",name:`pageload ${r}`,op:\"pageload\",startTimeMs:s,durationMs:n,status:\"ok\",attributes:{\"page.url\":Xe?ue(window.location.href):\"\",\"page.route\":r,\"http.response.transfer_size\":e.transferSize,\"navigation.type\":e.type}});const o=(e,s,i,n,r)=>{const o=n-i;o>0&&i>=0&&this.record({traceId:this.traceId,spanId:et(),parentSpanId:this.rootSpanId,name:e,op:s,startTimeMs:t+i,durationMs:o,status:\"ok\",attributes:r});};o(\"DNS lookup\",\"browser.dns\",e.domainLookupStart,e.domainLookupEnd),o(\"TCP connect\",\"browser.connect\",e.connectStart,e.connectEnd),o(\"Request\",\"http.request\",e.requestStart,e.responseStart,{\"http.method\":\"GET\"}),o(\"Response\",\"http.response\",e.responseStart,e.responseEnd),o(\"DOM processing\",\"browser.dom\",e.domInteractive||e.responseEnd,e.domContentLoadedEventEnd||e.domComplete),o(\"Resource load\",\"browser.load\",e.domContentLoadedEventEnd,e.loadEventEnd);const a=performance.getEntriesByType(\"resource\");for(const e of a)this.recordResource(e,t);const c=this.cfg.pageLoadFlushDelayMs??2500;setTimeout(()=>this.flush(!1),c);}catch(e){H(\"[SDK] capturePageLoad failed:\",e);}}observeResources(){if(\"undefined\"!=typeof PerformanceObserver)try{const e=performance.timeOrigin;this.resourceObserver=new PerformanceObserver(t=>{for(const s of t.getEntries())this.recordResource(s,e);}),this.resourceObserver.observe({type:\"resource\",buffered:!1});}catch(e){Q(\"[SDK] resource observer unavailable:\",e);}}recordResource(e,t){const s=e.name;if(!s)return;if(this.cfg.shouldSkipUrl&&this.cfg.shouldSkipUrl(s))return;const i=Math.max(e.responseEnd-e.startTime,0);i>=0&&this.record({traceId:this.traceId,spanId:et(),parentSpanId:this.rootSpanId,name:st(s),op:tt(e.initiatorType),startTimeMs:t+e.startTime,durationMs:i,status:\"ok\",attributes:{\"resource.url\":s.slice(0,300),\"resource.initiator\":e.initiatorType,\"resource.transfer_size\":e.transferSize,\"resource.encoded_size\":e.encodedBodySize,\"resource.decoded_size\":e.decodedBodySize}});}installTracePropagation(){if(\"undefined\"==typeof window||\"function\"!=typeof window.fetch)return;this.originalFetch=window.fetch.bind(window);const e=this;window.fetch=function(t,s){try{const i=\"string\"==typeof t?t:t instanceof URL?t.toString():t.url,n=(()=>{try{return new URL(i,window.location.href).origin===window.location.origin}catch{return !1}})(),r=!!e.cfg.shouldSkipUrl&&e.cfg.shouldSkipUrl(i);if(n&&!r){const i=new Headers(s?.headers||(\"string\"==typeof t||t instanceof URL?void 0:t.headers)),n=e.getTraceHeaders();i.has(\"traceparent\")||i.set(\"traceparent\",n.traceparent),i.has(\"sentry-trace\")||i.set(\"sentry-trace\",n[\"sentry-trace\"]);const r={...s||{},headers:i};return e.originalFetch(t,r)}}catch{}return e.originalFetch(t,s)};}}const nt=\"undefined\"!=typeof window;class rt{get isTrackerStarted(){return this.isStarted}setupDomReadyHandler(){if(nt)if(\"complete\"===document.readyState||\"interactive\"===document.readyState)this.onDomReady();else if(document.addEventListener){document.addEventListener(\"DOMContentLoaded\",()=>this.onDomReady(),{capture:false});const e=setInterval(()=>{\"interactive\"!==document.readyState&&\"complete\"!==document.readyState||(clearInterval(e),this.onDomReady());},10);setTimeout(()=>clearInterval(e),5e3);}else this.onDomReady();else this.onDomReady();}onDomReady(){this.isDomReady||(this.isDomReady=true,Q(\"🎯 DOM is ready, processing queued requests\"),this.requestQueue.forEach(e=>{this.processRequest(e);}),this.requestQueue=[],this.domReadyHandlers.forEach(e=>e()),this.domReadyHandlers=[]);}queueRequest(e){this.isDomReady?this.processRequest(e):this.requestQueue.push(e);}async processRequest(e){switch(Q(\"Processing queued request:\",e),e.type){case \"addEvent\":await this.addEvent(e.event);break;case \"identifyUser\":await this.identifyUser(e.userProperties,{identityToken:e.identityToken});break;case \"trackPageView\":this.trackPageView();break;default:H(\"Unknown request type:\",e.type);}}registerDomReadyHandler(e){this.isDomReady?e():this.domReadyHandlers.push(e);}static init(e,t){if(nt&&false!==t?.suppressConsoleErrors){const e=console.error;console.error=(...t)=>{const s=t.join(\" \");s.includes(\"SecurityError: Failed to execute 'toDataURL'\")||s.includes(\"Tainted canvases may not be exported\")||s.includes(\"Cannot inline img src=\")||s.includes(\"HumanBehavior ERROR\")||s.includes(\"Failed to track custom event\")||s.includes(\"Error sending custom event\")||e.apply(console,t);};const t=console.warn;console.warn=(...e)=>{const s=e.join(\" \");s.includes(\"Cannot inline img src=\")||s.includes(\"Custom event network error\")||s.includes(\"Request blocked by ad blocker\")||t.apply(console,e);},window.addEventListener(\"error\",e=>{const t=e.message||\"\";if(t.includes(\"SecurityError\")||t.includes(\"Tainted canvases\")||t.includes(\"toDataURL\"))return e.preventDefault(),false});}if(nt&&window.__humanBehaviorGlobalTracker)return Q(\"Tracker already initialized, returning existing instance\"),window.__humanBehaviorGlobalTracker;t?.logLevel&&rt.configureLogging({level:t.logLevel});const s=new rt(e,t?.ingestionUrl,{enableAutomaticProperties:t?.enableAutomaticProperties,propertyDenylist:t?.propertyDenylist,redactionStrategy:t?.redactionStrategy,redactFields:t?.redactFields,maxQueueSize:t?.maxQueueSize,enableConsoleTracking:t?.enableConsoleTracking,enableNetworkTracking:t?.enableNetworkTracking,enableErrorTracking:t?.enableErrorTracking,ignoreErrors:t?.ignoreErrors,denyUrls:t?.denyUrls,allowUrls:t?.allowUrls,captureThirdPartyResourceErrors:t?.captureThirdPartyResourceErrors,release:t?.release,environment:t?.environment,commitSha:t?.commitSha,dist:t?.dist,captureRequestBodies:t?.captureRequestBodies,enableWebVitals:t?.enableWebVitals,enableTracing:t?.enableTracing,minimumDurationMilliseconds:t?.minimumDurationMilliseconds});return s.recordCanvas=t?.recordCanvas??false,t?.redactFields&&s.setUnredactedFields(t.redactFields),false!==t?.enableAutomaticTracking&&s.setupAutomaticTracking(t?.automaticTrackingOptions),s.start(),s}constructor(e,s,i){if(this.eventQueue=[],this.pendingCustomEvents=[],this.pendingLogs=[],this.pendingNetworkErrors=[],this.customEventBatch=[],this.customEventBatchTimer=null,this.CUSTOM_EVENT_FLUSH_MS=100,this.CUSTOM_EVENT_BATCH_MAX=50,this._sessionActivityTimestamp=null,this._sessionStartTimestamp=null,this.userProperties={},this.isProcessing=false,this.flushInterval=null,this.IDLE_FLUSH_INTERVAL_MS=3e3,this.LIVE_FLUSH_INTERVAL_MS=150,this.LIVE_FLUSH_GRACE_MS=6e3,this.flushTier=\"idle\",this.liveFlushDeadline=0,this.heartbeatInterval=null,this.HEARTBEAT_INTERVAL_MS=3e4,this.SESSION_IDLE_TIMEOUT_MS=9e5,this.SESSION_MAX_LENGTH_MS=864e5,this.focusBlurGraceTimeout=null,this.FOCUS_BLUR_GRACE_MS=2e3,this.lastEmittedFocusState=null,this.endUserId=null,this.initialized=false,this.initializationPromise=null,this.monthlyLimitReached=false,this.isDomReady=false,this.requestQueue=[],this.domReadyHandlers=[],this.originalConsole=null,this.consoleTrackingEnabled=false,this.originalFetch=null,this.networkTrackingEnabled=false,this.captureRequestBodiesFlag=false,this.lastRequestContextAt=0,this.ERROR_REQUEST_WINDOW_MS=1e4,this.enableConsoleTrackingFlag=true,this.enableNetworkTrackingFlag=true,this.enableErrorTrackingFlag=true,this.enableWebVitalsFlag=true,this.enableTracingFlag=true,this.tracing=null,this.errorCapture=null,this.errorFilterOptions={},this.captureThirdPartyResourceErrorsFlag=false,this.breadcrumbs=new Te,this.release=null,this.environment=null,this.commitSha=null,this.dist=null,this.navigationTrackingEnabled=false,this.currentUrl=\"\",this.previousUrl=\"\",this.originalPushState=null,this.originalReplaceState=null,this.navigationListeners=[],this.lastPushStateAt=0,this.NAVIGATION_DEDUPE_MS=100,this._connectionBlocked=false,this.recordInstance=null,this.sessionStartTime=Date.now(),this.rrwebRecord=null,this.fullSnapshotTimeout=null,this.cssSnapshotCapture=null,this.localAssetSnapshotCapture=null,this.contrastCapture=null,this.brokenAssetHandler=null,this.brokenAssetSeen=new Set,this.recordCanvas=false,this.isStarted=false,this.minimumDurationMilliseconds=5e3,this._isIdle=\"unknown\",this._lastActivityTimestamp=Date.now(),this.IDLE_THRESHOLD_MS=3e5,this.frictionClicks=null,this.frictionMutationObserver=null,!e)throw new Error(\"Human Behavior API Key is required\");const n=s||\"https://ingest.humanbehavior.co\";if(this.api=new re({apiKey:e,ingestionUrl:n}),this.apiKey=e,this.ingestionUrl=n,this.MAX_QUEUE_SIZE=i?.maxQueueSize??1e3,this.enableConsoleTrackingFlag=false!==i?.enableConsoleTracking,this.enableNetworkTrackingFlag=false!==i?.enableNetworkTracking,this.enableErrorTrackingFlag=false!==i?.enableErrorTracking,this.errorFilterOptions={ignoreErrors:i?.ignoreErrors,denyUrls:i?.denyUrls,allowUrls:i?.allowUrls},this.captureThirdPartyResourceErrorsFlag=true===i?.captureThirdPartyResourceErrors,this.enableWebVitalsFlag=false!==i?.enableWebVitals,this.enableTracingFlag=false!==i?.enableTracing,this.release=i?.release??null,this.environment=i?.environment??null,this.commitSha=i?.commitSha??null,this.dist=i?.dist??null,this.captureRequestBodiesFlag=true===i?.captureRequestBodies,\"number\"==typeof i?.minimumDurationMilliseconds&&i.minimumDurationMilliseconds>=0&&(this.minimumDurationMilliseconds=i.minimumDurationMilliseconds),this.redactionManager=new he({redactionStrategy:i?.redactionStrategy,legacyRedactFields:i?.redactFields}),this.propertyManager=new Se({enableAutomaticProperties:false!==i?.enableAutomaticProperties,propertyDenylist:i?.propertyDenylist||[]}),this.release&&this.propertyManager.setSessionProperty(\"release\",this.release),this.environment&&this.propertyManager.setSessionProperty(\"environment\",this.environment),nt){const e=\"human_behavior_end_user_id\",s=this.getCookie(e);this.endUserId=s||v1(),s?Q(`Reusing existing endUserId: ${this.endUserId}`):(this.setCookie(e,this.endUserId,365),Q(`Generated new endUserId: ${this.endUserId}`));}else this.endUserId=v1();if(nt){const e=this.apiKey||\"default\";this._window_id_storage_key=`human_behavior_${e}_window_id`,this._primary_window_exists_storage_key=`human_behavior_${e}_primary_window_exists`,this.sessionId=this.getOrCreateSessionId(),this.windowId=this.getOrCreateWindowId(),this.currentUrl=ue(window.location.href),window.__humanBehaviorGlobalTracker=this,this.setupWindowUnloadListener();}else this._window_id_storage_key=\"\",this._primary_window_exists_storage_key=\"\",this.sessionId=v1(),this.windowId=v1();this.api.setTrackingContext(this.sessionId,this.endUserId),this.initializationPromise=this.init().catch(e=>{j(\"Initialization failed:\",e);});}async init(){try{this.initialized=!0,nt?(this.setupPageUnloadHandler(),this.setupNavigationTracking()):W(\"HumanBehaviorTracker initialized in server environment. Session tracking is disabled.\"),W(`HumanBehaviorTracker initialized with sessionId: ${this.sessionId}, endUserId: ${this.endUserId}`);}catch(e){j(\"Failed to initialize HumanBehaviorTracker:\",e),this.initialized=true;}}async ensureInitialized(){this.initializationPromise&&await this.initializationPromise;}setupNavigationTracking(){if(!nt||this.navigationTrackingEnabled)return;this.navigationTrackingEnabled=true,Q(\"Setting up navigation tracking\"),this.originalPushState=history.pushState,this.originalReplaceState=history.replaceState,history.pushState=(...e)=>{this.previousUrl=this.currentUrl,this.originalPushState.apply(history,e),this.currentUrl=ue(window.location.href),this.lastPushStateAt=Date.now(),this.trackNavigationEvent(\"pushState\",this.previousUrl,this.currentUrl),this.takeFullSnapshot();},history.replaceState=(...e)=>{this.previousUrl=this.currentUrl,this.originalReplaceState.apply(history,e),this.currentUrl=ue(window.location.href),this.lastPushStateAt=Date.now(),this.trackNavigationEvent(\"replaceState\",this.previousUrl,this.currentUrl),this.takeFullSnapshot();};const e=()=>{this.previousUrl=this.currentUrl,this.currentUrl=ue(window.location.href),this.trackNavigationEvent(\"popstate\",this.previousUrl,this.currentUrl),this.takeFullSnapshot();};window.addEventListener(\"popstate\",e),this.navigationListeners.push(()=>{window.removeEventListener(\"popstate\",e);});const t=()=>{if(Date.now()-this.lastPushStateAt<this.NAVIGATION_DEDUPE_MS)return this.previousUrl=this.currentUrl,void(this.currentUrl=ue(window.location.href));this.previousUrl=this.currentUrl,this.currentUrl=ue(window.location.href),this.trackNavigationEvent(\"hashchange\",this.previousUrl,this.currentUrl);};window.addEventListener(\"hashchange\",t),this.navigationListeners.push(()=>{window.removeEventListener(\"hashchange\",t);}),this.trackNavigationEvent(\"pageLoad\",\"\",this.currentUrl);}async trackNavigationEvent(e,t,s){if(this.initialized)if(\"pageLoad\"===e||t!==s)try{if(\"pageLoad\"===e||\"pushState\"===e||\"replaceState\"===e||\"popstate\"===e||\"hashchange\"===e){const s={url:ue(window.location.href),fromUrl:t,$navigation_type:e,navigationType:e,pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,referrer:document.referrer,timestamp:Date.now()};await this.customEvent(\"$pageview\",s);}Q(`Navigation tracked: ${e} from ${t} to ${s}`);}catch(e){j(\"Failed to track navigation event:\",e);}else Q(`Navigation dedupe: ${e} same URL (${s})`);}async trackPageView(e){if(this.initialized){this.propertyManager.updateAutomaticProperties();try{const t={url:ue(e||window.location.href),pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,referrer:document.referrer,timestamp:(new Date).toISOString()},s=this.propertyManager.getEventProperties(t);await this.addEvent({type:5,data:{payload:{eventType:\"pageview\",...s}},timestamp:Date.now()}),Q(`Pageview tracked: ${t.url}`);}catch(e){j(\"Failed to track pageview event:\",e);}}}async customEvent(e,s){if(null==e||\"string\"!=typeof e||\"\"===e.trim())return void H(\"customEvent() called with empty or invalid name; skipping\");if(this.endUserId||(H(`endUserId not available, using anonymous ID for event: ${e}`),this.endUserId=v1()),nt&&this.checkAndRefreshSession(),\"$click\"===e){const e=s?.text||s?.elementText||s?.tag||\"element\";this.addBreadcrumb(\"click\",String(e),{tag:s?.tag,id:s?.id,page:s?.page});}else \"$pageview\"===e&&this.addBreadcrumb(\"navigation\",String(s?.url||\"\"),{fromUrl:s?.fromUrl});const i=this.propertyManager.getEventProperties(s);if(this.shouldSkipDueToMinimumDuration())return Q(`Custom event '${e}' queued due to session duration below minimum`),void this.pendingCustomEvents.push({eventName:e,properties:i,timestamp:Date.now(),eventId:v1()});await this.flushPendingCustomEvents(),this.queueCustomEvent(e,i),Q(`Custom event queued: ${e}`,i);}queueCustomEvent(e,s,i){this.customEventBatch.push({eventName:e,eventProperties:s,eventId:i??v1()}),nt&&\"hidden\"===document.visibilityState?this.flushCustomEventBatchBeacon():this.customEventBatch.length>=this.CUSTOM_EVENT_BATCH_MAX?this.flushCustomEventBatch():null==this.customEventBatchTimer&&(this.customEventBatchTimer=setTimeout(()=>{this.customEventBatchTimer=null,this.flushCustomEventBatch();},this.CUSTOM_EVENT_FLUSH_MS));}flushCustomEventBatchBeacon(){if(null!=this.customEventBatchTimer&&(clearTimeout(this.customEventBatchTimer),this.customEventBatchTimer=null),0===this.customEventBatch.length)return;const e=this.customEventBatch;this.customEventBatch=[];const t=this.api?.sendCustomEventBatchBeacon(this.sessionId,e,this.endUserId);t||this.api?.sendCustomEventBatch(this.sessionId,e,this.endUserId).catch(()=>{});}drainPendingCustomEventsForTeardown(){if(0===this.pendingCustomEvents.length)return;const e=this.pendingCustomEvents;this.pendingCustomEvents=[];for(const t of e)this.customEventBatch.push({eventName:t.eventName,eventProperties:t.properties,eventId:t.eventId});}async flushCustomEventBatch(){if(null!=this.customEventBatchTimer&&(clearTimeout(this.customEventBatchTimer),this.customEventBatchTimer=null),0===this.customEventBatch.length)return;const e=this.customEventBatch;this.customEventBatch=[];try{return await this.api.sendCustomEventBatch(this.sessionId,e,this.endUserId),void Q(`Custom event batch flushed: ${e.length} event(s)`)}catch(e){j(\"Failed to flush custom event batch, falling back per-event:\",e);}for(const t of e)try{await this.api.sendCustomEvent(this.sessionId,t.eventName,t.eventProperties,this.endUserId,t.eventId);}catch(e){j(\"Per-event fallback also failed:\",e);try{await this.addEvent({type:5,data:{payload:{eventType:\"custom\",eventName:t.eventName,properties:t.eventProperties||{},timestamp:(new Date).toISOString(),url:nt?ue(window.location.href):\"\",pathname:nt?window.location.pathname:\"\"}},timestamp:Date.now()});}catch(e){j(\"Failed to add custom event to event stream as fallback:\",e);}}}setupAutomaticTracking(e){if(!nt)return;const t={trackButtons:false!==e?.trackButtons,trackLinks:false,trackForms:false!==e?.trackForms,includeText:false!==e?.includeText,includeClasses:e?.includeClasses||false};Q(\"Setting up automatic tracking with config:\",t),this.setupAutocapture(t),t.trackForms&&this.setupAutomaticFormTracking(t),this.setupFrictionClickDetection();}setupAutocapture(e){document.addEventListener(\"click\",async t=>{const s=t.target;if(!s||1!==s.nodeType||\"function\"!=typeof s.closest)return;const i=s.closest('button, a, input, select, textarea, label, [role=\"button\"], [role=\"link\"], [role=\"tab\"], [role=\"menuitem\"]')||s,n=(i.tagName||\"\").toLowerCase(),r={tag:n,x:t.clientX,y:t.clientY,page:window.location.pathname,path:this.buildDomPath(i),timestamp:Date.now()};i.id&&(r.id=i.id,r.elementId=i.id);const o=i.getAttribute&&i.getAttribute(\"role\");o&&(r.role=o);const a=i.type;!a||\"input\"!==n&&\"button\"!==n||(r.type=a);const c=i.href;if(c&&(r.href=ue(c)),false!==e.includeText){const e=(i.textContent||\"\").replace(/\\s+/g,\" \").trim();e&&(r.text=e.substring(0,200),r.elementText=e.substring(0,100));}const d=i.className;e.includeClasses&&\"string\"==typeof d&&d&&(r.class=d,r.elementClass=d),await this.customEvent(\"$click\",r);});}buildDomPath(e){const t=[];let s=e,i=0;for(;s&&1===s.nodeType&&i<8;){const e=(s.tagName||\"\").toLowerCase();if(!e)break;let n=e;if(s.id)n+=\"#\"+s.id;else if(\"string\"==typeof s.className&&s.className){const e=s.className.trim().split(/\\s+/)[0];e&&(n+=\".\"+e);}if(t.unshift(n),\"body\"===e||\"html\"===e)break;s=s.parentElement,i++;}return t.join(\" > \")}setupFrictionClickDetection(){if(!nt)return;if(this.frictionClicks)return;const e=new _({emit:(e,t)=>{this.fireFrictionEvent(e,t);}});this.frictionClicks=e,document.addEventListener(\"click\",t=>{const s=t.target;s&&1===s.nodeType&&e.onClick(s,t.clientX,t.clientY);}),this.frictionMutationObserver=new MutationObserver(()=>{e.onReaction(\"dom\");}),this.frictionMutationObserver.observe(document,{attributes:true,characterData:true,childList:true,subtree:true}),window.addEventListener(\"scroll\",()=>e.onReaction(\"soft\"),{capture:true,passive:true}),document.addEventListener(\"input\",()=>e.onReaction(\"soft\"),{capture:true});const t=this.trackNavigationEvent.bind(this);this.trackNavigationEvent=async(s,i,n)=>(e.onReaction(\"dom\"),t(s,i,n)),window.addEventListener(\"popstate\",()=>e.onReaction(\"dom\")),window.addEventListener(\"hashchange\",()=>e.onReaction(\"dom\")),window.addEventListener(\"beforeunload\",()=>e.reset());}async fireFrictionEvent(e,t){const s=t.node,i={x:t.x,y:t.y,page:window.location.pathname,element:(s.tagName||\"\").toLowerCase(),clickCount:t.clickCount,timestamp:t.tsMs};void 0!==t.occurrences&&(i.occurrences=t.occurrences),t.durationMs>0&&(i.durationMs=t.durationMs),s.id&&(i.elementId=s.id);const n=s.className;\"string\"==typeof n&&n&&(i.elementClass=n),s.textContent&&(i.elementText=s.textContent.trim().substring(0,100)),Object.keys(i).forEach(e=>{null!==i[e]&&void 0!==i[e]||delete i[e];}),await this.customEvent(\"rage\"===e?\"$rageclick\":\"$deadclick\",i);}setupAutomaticLinkTracking(e){}setupAutomaticFormTracking(e){document.addEventListener(\"submit\",async t=>{const s=t.target,i=new FormData(s),n={formId:s.id||null,formAction:s.action||null,formMethod:s.method||\"get\",fields:Array.from(i.keys()),page:window.location.pathname,timestamp:Date.now()};e.includeClasses&&(n.formClass=s.className||null),Object.keys(n).forEach(e=>{null===n[e]&&delete n[e];}),await this.customEvent(\"$form_submitted\",n);});}cleanupNavigationTracking(){this.navigationTrackingEnabled&&(this.originalPushState&&(history.pushState=this.originalPushState),this.originalReplaceState&&(history.replaceState=this.originalReplaceState),this.navigationListeners.forEach(e=>e()),this.navigationListeners=[],this.navigationTrackingEnabled=false,Q(\"Navigation tracking cleaned up\"));}static logToStorage(e){W(e);}static configureLogging(e){q.setConfig({level:{none:0,error:1,warn:2,info:3,debug:4}[e.level||\"error\"],enableConsole:false!==e.enableConsole,enableStorage:e.enableStorage||false});}enableConsoleTracking(){nt&&!this.consoleTrackingEnabled&&(this.originalConsole={log:console.log,warn:console.warn,error:console.error},console.log=(...e)=>{this.trackConsoleEvent(\"log\",e),this.originalConsole.log(...e);},console.warn=(...e)=>{this.trackConsoleEvent(\"warn\",e),this.originalConsole.warn(...e);},console.error=(...e)=>{this.trackConsoleEvent(\"error\",e),this.originalConsole.error(...e);},this.consoleTrackingEnabled=true,Q(\"Console tracking enabled\"));}enableNetworkTracking(){if(nt&&!this.networkTrackingEnabled&&\"undefined\"!=typeof fetch){if(this.originalFetch=window.fetch.bind(window),window.fetch=async(e,s)=>{const i=Date.now(),n=v1(),r=\"string\"==typeof e?e:e instanceof URL?e.toString():e.url,o=(s?.method||(\"object\"==typeof e&&\"method\"in e?e.method:void 0)||\"GET\").toUpperCase(),a=this.shouldSkipNetworkTracking(r),c=1e4;let d=null,l=false;a||(d=setTimeout(()=>{const e=Date.now()-i;if(!l){l=true;const t={requestId:n,url:r,method:o,status:null,statusText:null,duration:e,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:\"long_loading\",errorMessage:`Request took longer than 10000ms (${e}ms elapsed)`,startTimeMs:i,spanName:`${o} ${r}`,spanStatus:\"slow\",attributes:{\"http.method\":o,\"http.url\":r,\"request.duration_ms\":e,\"request.long_loading_threshold_ms\":c},automaticProperties:this.propertyManager.getAutomaticProperties()};return this.shouldSkipDueToMinimumDuration()?(Q(\"Long-loading network error queued due to session duration below minimum\"),void this.pendingNetworkErrors.push({errorData:t,timestamp:Date.now()})):(this.flushPendingNetworkErrors(),void this.api.sendNetworkError(t).catch(()=>{}))}},c));try{const t=await this.originalFetch(e,s),c=Date.now()-i;if(d&&clearTimeout(d),t.ok||a)t.ok&&!a&&(this.lastRequestContext=this.buildRequestContext({url:r,method:o,status:t.status,durationMs:c}),this.lastRequestContextAt=Date.now());else {const e={requestId:n,url:r,method:o,status:t.status,statusText:t.statusText,duration:c,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:this.classifyHttpError(t.status),errorMessage:t.statusText,startTimeMs:i,spanName:`${o} ${r}`,spanStatus:\"error\",attributes:{\"http.status_code\":t.status,\"http.status_text\":t.statusText},automaticProperties:this.propertyManager.getAutomaticProperties()};if(this.shouldSkipDueToMinimumDuration())return Q(\"Failed request network error queued due to session duration below minimum\"),this.pendingNetworkErrors.push({errorData:e,timestamp:Date.now()}),t;let a;if(this.addBreadcrumb(\"network\",`${e.method} ${e.url}`,{status:e.status,errorType:e.errorType}),this.captureRequestBodiesFlag)try{a=await t.clone().text();}catch{}this.lastRequestContext=this.buildRequestContext({url:r,method:o,status:t.status,errorType:e.errorType,durationMs:c,requestBody:s?.body,requestHeaders:this.headersToObject(s?.headers),responseBody:a}),this.lastRequestContextAt=Date.now(),this.flushPendingNetworkErrors(),this.api.sendNetworkError(e).catch(()=>{});}return t}catch(e){const t=Date.now()-i;if(d&&clearTimeout(d),!a){const a={requestId:n,url:r,method:o,status:null,statusText:null,duration:t,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:this.classifyNetworkError(e),errorMessage:e.message,errorName:e.name,startTimeMs:i,spanName:`${o} ${r}`,spanStatus:\"error\",attributes:{\"error.name\":e.name,\"error.message\":e.message},automaticProperties:this.propertyManager.getAutomaticProperties()};if(this.shouldSkipDueToMinimumDuration())throw Q(\"Network error queued due to session duration below minimum\"),this.pendingNetworkErrors.push({errorData:a,timestamp:Date.now()}),e;this.addBreadcrumb(\"network\",`${a.method} ${a.url}`,{status:a.status,errorType:a.errorType}),this.lastRequestContext=this.buildRequestContext({url:r,method:o,status:null,errorType:a.errorType,durationMs:t,requestBody:s?.body,requestHeaders:this.headersToObject(s?.headers)}),this.lastRequestContextAt=Date.now(),this.flushPendingNetworkErrors(),this.api.sendNetworkError(a).catch(()=>{});}throw e}},\"undefined\"!=typeof XMLHttpRequest){const e=this,t=XMLHttpRequest.prototype,s=t.open,i=t.send,n=t.setRequestHeader;t.open=function(e,t,...i){return this.__hb={method:String(e||\"GET\").toUpperCase(),url:\"string\"==typeof t?t:t.toString(),headers:{},startTime:0},s.apply(this,[e,t,...i])},t.setRequestHeader=function(e,t){const s=this.__hb;if(s)try{s.headers[e]=t;}catch{}return n.apply(this,[e,t])},t.send=function(t){const s=this.__hb;return s&&!e.shouldSkipNetworkTracking(s.url)&&(s.startTime=Date.now(),s.body=t,this.addEventListener(\"loadend\",function(){try{e.handleXhrComplete(this,s);}catch{}})),i.apply(this,[t])};}this.networkTrackingEnabled=true,Q(\"Network tracking enabled\");}}enableWebVitalsTracking(){if(!nt)return;const e=v1();Promise.resolve().then(function(){return Qt}).then(({onFCP:t,onLCP:s,onCLS:i,onINP:n,onTTFB:r})=>{const o=t=>{this.customEvent(\"$web_vitals\",{$web_vitals_metric:t.name,$web_vitals_value:t.value,[`$web_vitals_${t.name}_value`]:t.value,$web_vitals_rating:t.rating,$web_vitals_id:t.id,$web_vitals_navigation_type:t.navigationType,$web_vitals_pageload_id:e});};t(o),s(o),i(o),n(o),r(o),Q(\"Web Vitals tracking enabled\");}).catch(e=>{H(\"Failed to load web-vitals; Web Vitals tracking disabled:\",e);});}enableTracing(){nt&&!this.tracing&&(this.tracing=new it({getSession:()=>({sessionId:this.sessionId,endUserId:this.endUserId,automaticProperties:this.propertyManager.getAutomaticProperties(),release:this.release,environment:this.environment}),sendSpans:(e,t,s)=>{if(s){this.api.sendSpansBeacon(e,t)||this.api.sendSpans(e,t);}else this.api.sendSpans(e,t);},shouldSkipUrl:e=>this.shouldSkipNetworkTracking(e)}),this.tracing.start(),Q(\"Distributed tracing enabled\"));}startSpan(e,t){return this.tracing?this.tracing.startSpan(e,t):t()}startInactiveSpan(e){return this.tracing?this.tracing.startInactiveSpan(e):{setAttribute(){},setStatus(){},end(){}}}handleXhrComplete(e,s){const i=e.status;if(i>=200&&i<400)return this.lastRequestContext=this.buildRequestContext({url:s.url,method:s.method,status:i,durationMs:Date.now()-s.startTime}),void(this.lastRequestContextAt=Date.now());const n=Date.now()-s.startTime,r=0===i,o=r?\"network_error\":this.classifyHttpError(i);let a;try{\"string\"==typeof e.responseText&&(a=e.responseText);}catch{}const c={requestId:v1(),url:s.url,method:s.method,status:r?null:i,statusText:e.statusText||null,duration:n,timestampMs:Date.now(),sessionId:this.sessionId,endUserId:this.endUserId,errorType:o,errorMessage:e.statusText||(r?\"Network request failed\":`HTTP ${i}`),startTimeMs:s.startTime,spanName:`${s.method} ${s.url}`,spanStatus:\"error\",attributes:{\"http.method\":s.method,\"http.url\":s.url,\"http.status_code\":i},automaticProperties:this.propertyManager.getAutomaticProperties()};this.shouldSkipDueToMinimumDuration()?this.pendingNetworkErrors.push({errorData:c,timestamp:Date.now()}):(this.addBreadcrumb(\"network\",`${s.method} ${s.url}`,{status:c.status,errorType:o}),this.lastRequestContext=this.buildRequestContext({url:s.url,method:s.method,status:c.status,errorType:o,durationMs:n,requestBody:s.body,requestHeaders:s.headers,responseBody:a}),this.lastRequestContextAt=Date.now(),this.flushPendingNetworkErrors(),this.api.sendNetworkError(c).catch(()=>{}));}buildRequestContext(e){const t={url:e.url,method:e.method,status:e.status,errorType:e.errorType,durationMs:e.durationMs};return this.captureRequestBodiesFlag&&(e.requestHeaders&&Object.keys(e.requestHeaders).length>0&&(t.requestHeaders=function(e){const t={};for(const[s,i]of Object.entries(e))t[s]=He(s)?ze:i;return t}(e.requestHeaders)),\"string\"==typeof e.requestBody&&e.requestBody&&(t.requestBody=Ve(e.requestBody)),\"string\"==typeof e.responseBody&&e.responseBody&&(t.responseBody=Ve(e.responseBody))),t}headersToObject(e){if(!e)return;const t={};try{if(\"undefined\"!=typeof Headers&&e instanceof Headers)e.forEach((e,s)=>{t[s]=e;});else if(Array.isArray(e))for(const[s,i]of e)t[s]=i;else for(const[s,i]of Object.entries(e))t[s]=String(i);}catch{return}return t}setupErrorCapture(){nt&&!this.errorCapture&&(this.errorCapture=new Ke({send:e=>{this.api.sendError(e).catch(()=>{});},getContext:()=>({sessionId:this.sessionId,endUserId:this.endUserId,url:nt?ue(window.location.href):\"\",release:this.release,environment:this.environment,commitSha:this.commitSha,dist:this.dist,sessionStartTimestampMs:this._sessionStartTimestamp??void 0,requestContext:Date.now()-this.lastRequestContextAt<=this.ERROR_REQUEST_WINDOW_MS?this.lastRequestContext:void 0,automaticProperties:this.propertyManager.getAutomaticProperties(),userProperties:this.propertyManager.getUserProperties(),sessionProperties:this.propertyManager.getSessionProperties()}),breadcrumbs:this.breadcrumbs,filters:this.errorFilterOptions,captureThirdPartyResourceErrors:this.captureThirdPartyResourceErrorsFlag}),this.errorCapture.install(),Q(\"Error capture enabled\"));}addBreadcrumb(e,t,s){try{this.breadcrumbs.add({type:e,message:t,timestampMs:Date.now(),data:s});}catch{}}captureException(e,t){try{this.errorCapture?.capture(e,t?.mechanism??\"captureException\",!0,{componentStack:t?.componentStack});}catch{}}async flushPendingCustomEvents(){if(0===this.pendingCustomEvents.length)return;const e=[...this.pendingCustomEvents];this.pendingCustomEvents=[],Q(`Flushing ${e.length} pending custom events`);for(const{eventName:t,properties:s,eventId:i}of e)this.queueCustomEvent(t,s,i);}async flushPendingLogs(){if(0===this.pendingLogs.length)return;const e=[...this.pendingLogs];this.pendingLogs=[],Q(`Flushing ${e.length} pending logs`);for(const{logData:t}of e)try{await this.api.sendLog(t);}catch(e){j(\"Failed to flush pending log:\",e);}}async flushPendingNetworkErrors(){if(0===this.pendingNetworkErrors.length)return;const e=[...this.pendingNetworkErrors];this.pendingNetworkErrors=[],Q(`Flushing ${e.length} pending network errors`);for(const{errorData:t}of e)try{await this.api.sendNetworkError(t);}catch(e){j(\"Failed to flush pending network error:\",e);}}enablePageLoadTracking(){nt&&\"undefined\"!=typeof window&&(\"complete\"===document.readyState?this.trackPageLoad():window.addEventListener(\"load\",()=>{this.trackPageLoad();}),Q(\"Page load tracking enabled\"));}trackPageLoad(){if(nt&&\"undefined\"!=typeof performance)try{const e=performance.getEntriesByType(\"navigation\")[0];if(!e)return;const s=e.loadEventEnd-e.fetchStart;if(s>3e3){const i=v1(),n=e.domContentLoadedEventEnd-e.fetchStart,r=e.domComplete-e.fetchStart,o={requestId:i,url:ue(window.location.href),method:\"GET\",status:200,statusText:\"OK\",duration:s,timestampMs:e.loadEventEnd+performance.timeOrigin,sessionId:this.sessionId,endUserId:this.endUserId,errorType:\"slow_page_load\",errorMessage:`Page load took ${s}ms`,startTimeMs:e.fetchStart+performance.timeOrigin,spanName:\"page_load\",spanStatus:\"slow\",attributes:{\"page.url\":window.location.href,\"page.load_time\":s,\"page.dom_content_loaded\":n,\"page.dom_complete\":r}};if(this.shouldSkipDueToMinimumDuration())return Q(\"Slow page load network error queued due to session duration below minimum\"),void this.pendingNetworkErrors.push({errorData:o,timestamp:Date.now()});this.flushPendingNetworkErrors(),this.api.sendNetworkError(o).catch(()=>{});}}catch(e){H(\"Failed to track page load:\",e);}}shouldSkipNetworkTracking(e){if(!e||!this.ingestionUrl)return  false;try{const t=new URL(e),s=new URL(this.ingestionUrl);return !(t.origin!==s.origin||!t.pathname.startsWith(\"/api/ingestion/\"))||!!e.includes(this.ingestionUrl)}catch(t){return e.includes(this.ingestionUrl)}}classifyHttpError(e){return e>=400&&e<500?\"client_error\":e>=500?\"server_error\":\"unknown_error\"}classifyNetworkError(e){const t=e.message||\"\",s=e.name||\"\";return t.includes(\"blocked\")||t.includes(\"ERR_BLOCKED_BY_CLIENT\")||t.includes(\"net::ERR_BLOCKED_BY_CLIENT\")||\"TypeError\"===s&&t.includes(\"Failed to fetch\")?\"blocked_by_client\":t.includes(\"CORS\")||t.includes(\"Cross-Origin\")||t.includes(\"Access-Control-Allow-Origin\")||\"TypeError\"===s&&t.includes(\"CORS\")?\"cors_error\":t.includes(\"timeout\")||t.includes(\"TIMEOUT\")||t.includes(\"NetworkError\")||\"NetworkError\"===s?\"network_error\":t.includes(\"abort\")||\"AbortError\"===s?\"aborted\":\"unknown_error\"}disableConsoleTracking(){nt&&this.consoleTrackingEnabled&&(this.originalConsole&&(console.log=this.originalConsole.log,console.warn=this.originalConsole.warn,console.error=this.originalConsole.error),this.consoleTrackingEnabled=false,Q(\"Console tracking disabled\"));}trackConsoleEvent(e,s){if(this.initialized)if(\"log\"!==e)try{if(z())return void(this.originalConsole&&this.originalConsole[e](...s));const i=(new Error).stack||\"\";if(this.isSDKStackFrame(i))return void(this.originalConsole&&this.originalConsole[e](...s));const n={eventId:v1(),level:e,message:s.map(e=>\"object\"==typeof e?JSON.stringify(e):String(e)).join(\" \"),timestampMs:Date.now(),url:nt?ue(window.location.href):\"\",userAgent:nt?navigator.userAgent:\"\",stack:i,environment:this.environment,sessionId:this.sessionId,endUserId:this.endUserId,automaticProperties:this.propertyManager.getAutomaticProperties()};if(this.shouldSkipDueToMinimumDuration())return Q(`Console ${e} queued due to session duration below minimum`),void this.pendingLogs.push({logData:n,timestamp:Date.now()});this.flushPendingLogs(),this.addBreadcrumb(\"console\",`${n.level}: ${n.message}`.substring(0,200),{level:n.level}),\"error\"===n.level&&function(e){if(!e||\"string\"!=typeof e)return !1;const t=e.toLowerCase();return !!Ge.some(e=>t.includes(e))||Je.some(e=>t.includes(`minified react error #${e}`)||t.includes(`/errors/${e}`))}(n.message)&&this.captureException(new Error(n.message),{mechanism:\"react\"}),this.api.sendLog(n).catch(e=>{this.addEvent({type:5,data:{payload:{eventType:\"console\",...n}},timestamp:Date.now()}).catch(()=>{});});}catch(e){j(\"Error in trackConsoleEvent:\",e);}else this.originalConsole&&this.originalConsole.log(...s);}isSDKStackFrame(e){if(!e)return  false;const t=[\"humanbehavior-js\",\"@humanbehavior/core\",\"@humanbehavior/browser\",\"tracker.ts\",\"api.ts\",\"logger.ts\",\"utils/logger\",\"packages/core\",\"packages/browser\",\"index.mjs\",\"index.js\"],s=e.split(\"\\n\");e.toLowerCase();let i=false;for(let e=0;e<s.length;e++){const n=s[e].trim().toLowerCase();if(!n||\"error\"===n||n.startsWith(\"error:\"))continue;if(!t.some(e=>n.includes(e.toLowerCase()))){i=true;break}}return !i}setupPageUnloadHandler(){if(!nt)return;const e=\"__humanBehaviorUnloadAttached\";if(window[e])return Q(\"Page unload handlers already attached on window — skipping re-attach\"),void(window.__humanBehaviorActiveTracker=this);window[e]=true,window.__humanBehaviorActiveTracker=this,Q(\"Setting up page unload handler\"),window.addEventListener(\"visibilitychange\",()=>{const e=\"hidden\"===document.visibilityState?\"hidden\":\"visible\";this.emitVisibilityMarker(e),\"hidden\"===document.visibilityState?(Q(\"Page hidden - sending pending events\"),this.drainPendingCustomEventsForTeardown(),this.flushCustomEventBatchBeacon(),this.flushEvents()):\"visible\"===document.visibilityState&&(Q(\"Page visible - taking full snapshot for multi-window replay\"),this.takeFullSnapshot());}),this.setupWindowFocusTracking();const t=\"onpagehide\"in window?\"pagehide\":\"beforeunload\";window.addEventListener(t,()=>{Q(\"Page unloading - sending final events via sendBeacon\");let e=false;const t=()=>{if(!e){e=true;try{this.api?.sendSessionEndBeacon(this.sessionId,this.endUserId);}catch{}}};try{this.drainPendingCustomEventsForTeardown(),this.flushCustomEventBatchBeacon();}catch{}try{this.tracing?.flush(!0);}catch{}const s=this.minimumDurationMilliseconds,i=this.getSessionDuration();if(null!==i&&i>=0&&i<s)return Q(`Session duration (${i}ms) below minimum (${s}ms), not sending on unload`),void t();const n=[...this.eventQueue];if(nt&&window.__hb_pending_snapshots){const e=window.__hb_pending_snapshots;Array.isArray(e)&&e.length>0&&(Q(\"Including pending FullSnapshot(s) in sendBeacon for short session\"),n.unshift(...e),delete window.__hb_pending_snapshots);}if(n.length>0&&this.api)try{const e=this.propertyManager.getAutomaticProperties();this.api.sendBeaconEvents(n,this.sessionId,this.endUserId||void 0,this.windowId,e),this.eventQueue=[];}catch(e){H(\"Failed to send events via sendBeacon on unload:\",e);}this.api&&this.api.unload(),t();});const s=()=>{localStorage.setItem(\"human_behavior_last_activity\",Date.now().toString());};window.addEventListener(\"click\",s),window.addEventListener(\"keydown\",s),window.addEventListener(\"scroll\",s),window.addEventListener(\"mousemove\",s);}viewLogs(){try{const e=q.getLogs();W(\"HumanBehavior Logs:\",e),q.clearLogs();}catch(e){j(\"Failed to read logs:\",e);}}async identifyUser(e,t){const s=e?.userProperties&&\"object\"==typeof e.userProperties,i=s?e.userProperties:e||{},n=t?.identityToken??(s?e.identityToken:void 0),r=this.endUserId;this.userProperties={...this.userProperties,...i};try{this.propertyManager?.setUserProperties(i);}catch{}Q(\"Identifying user:\",{userProperties:i,originalEndUserId:r,sessionId:this.sessionId}),!nt||this.propertyManager.getAutomaticProperties();const o=await this.api.sendUserData(r||\"\",i,this.sessionId,n);if(o.actualUserId||o.wasExistingUser){const e=o.actualUserId||r;if(e&&e!==r){const t=\"human_behavior_end_user_id\";if(this.setCookie(t,e,365),nt)try{localStorage.setItem(t,e);}catch(e){Q(\"Failed to set canonical endUserId in localStorage:\",e);}Q(`🔗 Preexisting user detected. Future sessions will use canonical ID: ${e} (current session stays: ${r})`);}}return r||\"\"}getUserAttributes(){return {...(()=>{try{return this.propertyManager?.getAllProperties().user||{}}catch{return {}}})(),...this.userProperties}}async start(){if(!nt)return;if(this.isStarted)return void Q(\"HumanBehaviorTracker already started, skipping start() call.\");this.isStarted=true,this._lastActivityTimestamp=null!==this._sessionActivityTimestamp?this._sessionActivityTimestamp:Date.now(),this._isIdle=\"unknown\",this.armFlushTimer(),this.heartbeatInterval=window.setInterval(()=>{try{if(\"undefined\"!=typeof document&&\"visible\"!==document.visibilityState)return;if(!this.sessionId||!this.api)return;this.api.sendHeartbeatBeacon(this.sessionId,this.endUserId);}catch{}},this.HEARTBEAT_INTERVAL_MS),this.enableConsoleTrackingFlag&&this.enableConsoleTracking(),this.enableNetworkTrackingFlag&&this.enableNetworkTracking(),this.enableWebVitalsFlag&&this.enableWebVitalsTracking(),this.enableTracingFlag&&this.enableTracing(),this.enableErrorTrackingFlag&&this.setupErrorCapture(),this.enablePageLoadTracking(),this.api.sendIpInfo(this.sessionId,this.endUserId);const t=()=>{if(this.recordInstance)return void Q(\"🎯 Recording already started, skipping duplicate start\");Q(\"🎯 DOM ready, starting session recording\"),this.rrwebRecord=record;const t=record({emit:e=>{this.addRecordingEvent(e),2===e.type&&Q(`🎯 FullSnapshot generated at ${(new Date).toISOString()}`);},maskTextSelector:this.redactionManager.getMaskTextSelector()||void 0,maskTextFn:void 0,maskAllInputs:\"privacy-first\"===this.redactionManager.getRedactionMode(),maskInputOptions:{password:true,text:true,textarea:true,email:true,number:true,tel:true,url:true,search:true,date:true,time:true,month:true,week:true},maskInputFn:(e,t)=>{const s=\"*\".repeat(e.length||1);try{const i=this.redactionManager.getRedactionMode();return t instanceof HTMLElement?\"privacy-first\"===i?s:this.redactionManager.shouldUnredactElement(t)?e:s:s}catch{return s}},slimDOMOptions:{},collectFonts:false,inlineStylesheet:true,recordCrossOriginIframes:false,recordCanvas:this.recordCanvas,sampling:this.recordCanvas?{canvas:4}:void 0,dataURLOptions:this.recordCanvas?{type:\"image/webp\",quality:.4}:void 0,hooks:{input:e=>{try{if(\"privacy-first\"===this.redactionManager.getRedactionMode())return;const t=\"undefined\"!=typeof document?document.querySelector(`[data-rrweb-id=\"${e.id}\"]`):null;if(t&&t instanceof HTMLElement){this.redactionManager.shouldUnredactElement(t)||(void 0!==e.text&&(e.text=\"*\".repeat(e.text?.length||1)),void 0!==e.value&&(e.value=\"*\".repeat(e.value?.length||1)));}}catch{}}}});this.recordInstance=t||null;try{this.cssSnapshotCapture?.dispose(),this.cssSnapshotCapture=new n(e=>{try{this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.addCustomEvent&&this.rrwebRecord.addCustomEvent(\"hb-css-snapshot\",e);}catch{}}),this.cssSnapshotCapture.captureFromDocument(document);}catch{}try{this.localAssetSnapshotCapture?.dispose(),this.localAssetSnapshotCapture=new p(e=>{try{this.eventQueue.push({type:5,data:{tag:\"hb-local-asset\",payload:e},timestamp:Date.now()}),this.flushEvents();}catch{}}),\"undefined\"!=typeof location&&this.localAssetSnapshotCapture.captureFromDocument(document,location.href);}catch{}try{this.contrastCapture?.dispose(),this.contrastCapture=new N(e=>{try{this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.addCustomEvent&&this.rrwebRecord.addCustomEvent(\"hb-contrast\",e);}catch{}},e=>{try{return this.rrwebRecord?.mirror?.getId(e)??-1}catch{return -1}},e=>{try{this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.addCustomEvent&&this.rrwebRecord.addCustomEvent(\"hb-clip\",e);}catch{}},e=>{try{this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.addCustomEvent&&this.rrwebRecord.addCustomEvent(\"hb-overlap\",e);}catch{}},e=>{try{this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.addCustomEvent&&this.rrwebRecord.addCustomEvent(\"hb-misalign\",e);}catch{}},e=>{try{this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.addCustomEvent&&this.rrwebRecord.addCustomEvent(C,e);}catch{}}),nt&&this.contrastCapture.start(document,window);}catch{}try{if(nt){this.brokenAssetHandler&&window.removeEventListener(\"error\",this.brokenAssetHandler,!0),this.brokenAssetSeen.clear();const e=new Set([\"IMG\",\"SCRIPT\",\"LINK\",\"SOURCE\",\"VIDEO\",\"AUDIO\",\"IFRAME\"]);this.brokenAssetHandler=t=>{try{const s=t.target;if(!s||!s.tagName||!e.has(s.tagName))return;const i=s.src||s.href||\"\";if(!i||this.brokenAssetSeen.has(i))return;if(this.brokenAssetSeen.size>=100)return;this.brokenAssetSeen.add(i);let n=-1;try{n=this.rrwebRecord?.mirror?.getId(s)??-1;}catch{n=-1;}this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.addCustomEvent&&this.rrwebRecord.addCustomEvent(C,{id:n,tag:s.tagName.toLowerCase(),url:i});}catch{}},window.addEventListener(\"error\",this.brokenAssetHandler,!0);}}catch{}};if(Q(`🎯 DOM ready state: ${document.readyState}`),\"complete\"===document.readyState||\"interactive\"===document.readyState)Q(`🎯 DOM ready (${document.readyState}), starting recording immediately`),t();else {Q(\"🎯 DOM not ready, waiting for DOMContentLoaded event\");const e=()=>(\"interactive\"===document.readyState||\"complete\"===document.readyState)&&(Q(`🎯 DOM ready (${document.readyState}), starting recording`),t(),true);if(e())return;document.addEventListener(\"DOMContentLoaded\",()=>{Q(\"🎯 DOMContentLoaded fired, starting recording\"),t();},{once:true});const s=setInterval(()=>{e()&&clearInterval(s);},10);setTimeout(()=>clearInterval(s),5e3);}}emitVisibilityMarker(e){try{const t={type:5,data:{tag:\"$visibility\",payload:{state:e}},timestamp:Date.now()};this.eventQueue.push(t);}catch{}}emitFocusMarker(e){try{const t={type:5,data:{tag:\"$focus\",payload:{state:e}},timestamp:Date.now()};this.eventQueue.push(t);}catch{}}setupWindowFocusTracking(){if(nt){try{\"function\"!=typeof document.hasFocus||document.hasFocus()||(this.emitFocusMarker(\"blurred\"),this.lastEmittedFocusState=\"blurred\");}catch{}window.addEventListener(\"blur\",()=>this.onWindowBlur(),false),window.addEventListener(\"focus\",()=>this.onWindowFocus(),false);}}onWindowBlur(){nt&&(null!==this.focusBlurGraceTimeout&&clearTimeout(this.focusBlurGraceTimeout),this.focusBlurGraceTimeout=window.setTimeout(()=>{this.focusBlurGraceTimeout=null;try{if(\"function\"==typeof document.hasFocus&&document.hasFocus())return;if(\"blurred\"===this.lastEmittedFocusState)return;this.emitFocusMarker(\"blurred\"),this.lastEmittedFocusState=\"blurred\";}catch{}},this.FOCUS_BLUR_GRACE_MS));}onWindowFocus(){if(nt&&(null!==this.focusBlurGraceTimeout&&(clearTimeout(this.focusBlurGraceTimeout),this.focusBlurGraceTimeout=null),\"blurred\"===this.lastEmittedFocusState))try{this.emitFocusMarker(\"focused\"),this.lastEmittedFocusState=\"focused\";}catch{}}takeFullSnapshot(){this.fullSnapshotTimeout&&clearTimeout(this.fullSnapshotTimeout),this.fullSnapshotTimeout=window.setTimeout(()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{try{this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.takeFullSnapshot?(this.rrwebRecord.takeFullSnapshot(),Q(\"✅ FullSnapshot taken (delayed for animations)\"),this.cssSnapshotCapture?.captureFromDocument(document),\"undefined\"!=typeof location&&this.localAssetSnapshotCapture?.captureFromDocument(document,location.href)):H(\"⚠️ takeFullSnapshot not available on record function\");}catch(e){j(\"❌ Failed to take FullSnapshot:\",e);}});});},1e3);}async stop(){await this.ensureInitialized(),nt&&(this.flushInterval&&(clearInterval(this.flushInterval),this.flushInterval=null),this.heartbeatInterval&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null),this.recordInstance&&(this.recordInstance(),this.recordInstance=null),this.fullSnapshotTimeout&&(clearTimeout(this.fullSnapshotTimeout),this.fullSnapshotTimeout=null),this.cssSnapshotCapture&&(this.cssSnapshotCapture.dispose(),this.cssSnapshotCapture=null),this.localAssetSnapshotCapture&&(this.localAssetSnapshotCapture.dispose(),this.localAssetSnapshotCapture=null),this.contrastCapture&&(this.contrastCapture.dispose(),this.contrastCapture=null),this.brokenAssetHandler&&\"undefined\"!=typeof window&&(window.removeEventListener(\"error\",this.brokenAssetHandler,true),this.brokenAssetHandler=null),null!==this.focusBlurGraceTimeout&&(clearTimeout(this.focusBlurGraceTimeout),this.focusBlurGraceTimeout=null),this.rrwebRecord=null,this.disableConsoleTracking(),this.cleanupNavigationTracking(),this.frictionMutationObserver&&(this.frictionMutationObserver.disconnect(),this.frictionMutationObserver=null),this.frictionClicks?.reset());}async addEvent(e){if(nt&&this.checkAndRefreshSession(),e&&\"object\"==typeof e){if(2===e.type){const t=!!e.data,s=!(!e.data||!e.data.node);Q(t&&s?`✅ Valid FullSnapshot: hasData=${t}, hasNode=${s}, dataType=${e.data?.node?.type}`:`⚠️ Empty FullSnapshot detected: hasData=${t}, hasNode=${s} - continuing session`);}this.eventQueue.length>=this.MAX_QUEUE_SIZE&&(this.eventQueue.shift(),Q(\"Queue is full, the oldest event is dropped.\")),this.eventQueue.push(e),2===e.type?(Q(\"FullSnapshot added, triggering immediate flush\"),this.flushEvents()):this.eventQueue.length>=.8*this.MAX_QUEUE_SIZE&&(Q(`Queue at ${this.eventQueue.length}/${this.MAX_QUEUE_SIZE}, triggering immediate flush`),this.flushEvents());}else Q(\"⚠️ Skipping invalid event:\",e);}getSessionDuration(){const e=this._sessionStartTimestamp??this.sessionStartTime;if(!e)return null;const t=this.eventQueue.filter(e=>e&&e.timestamp);if(0===t.length)return null;const s=t.reduce((e,t)=>!e||t.timestamp&&t.timestamp>e.timestamp?t:e,null);if(!s||!s.timestamp)return null;const i=s.timestamp-e;return i>=0?i:null}shouldSkipDueToMinimumDuration(){const e=this.minimumDurationMilliseconds,t=this.getSessionDuration();return !!(null!==t&&t>=0&&t<e)&&(Q(`Session duration (${t}ms) below minimum (${e}ms), skipping send`),true)}armFlushTimer(){if(!nt)return;this.flushInterval&&(clearInterval(this.flushInterval),this.flushInterval=null);const e=\"live\"===this.flushTier?this.LIVE_FLUSH_INTERVAL_MS:this.IDLE_FLUSH_INTERVAL_MS;this.flushInterval=window.setInterval(()=>{this.flushEvents(),this.api.flushPersistedEvents();},e);}noteLiveViewerSignal(e){const t=Date.now();e&&(this.liveFlushDeadline=t+this.LIVE_FLUSH_GRACE_MS);const s=t<this.liveFlushDeadline?\"live\":\"idle\";s!==this.flushTier&&(this.flushTier=s,this.armFlushTimer());}async flushEvents(){if(this.isProcessing)return;if(this.monthlyLimitReached)return;if(true===this._isIdle&&0===this.eventQueue.length)return;const e=this.eventQueue.some(e=>e&&2===e.type),t=this.minimumDurationMilliseconds,s=this.getSessionDuration();if(null!==s&&s>=0&&s<t&&!e)return Q(`Session duration (${s}ms) below minimum (${t}ms), buffering`),void setTimeout(()=>{this.flushEvents();},2e3);this.isProcessing=true;try{const e=this.eventQueue,t=e.filter(e=>e&&2===e.type);if(this.eventQueue=[],t.length>0&&nt&&(window.__hb_pending_snapshots=t,setTimeout(()=>{delete window.__hb_pending_snapshots;},5e3)),e.length>0){Q(\"Flushing events:\",e);const t=e.filter(e=>2===e.type);t.length>0&&Q(`[FIXED] Sending ${t.length} FullSnapshot(s) with valid data`);try{const t=this.propertyManager.getAutomaticProperties(),s=await this.api.sendEventsChunked(e,this.sessionId,this.endUserId,this.windowId,t),i=Array.isArray(s)&&s.some(e=>e&&!0===e.liveViewerActive);this.noteLiveViewerSignal(i);}catch(e){const t=String(e?.message??e??\"\");if(t.includes(\"ERROR: Session already completed\"))H(\"Session already completed on the server; dropping events for the expired session\");else if(t.includes(\"413\")||t.includes(\"Content Too Large\"))H(\"Payload too large; events persisted for retry\");else {if(!(t.includes(\"ERR_BLOCKED_BY_CLIENT\")||t.includes(\"Failed to fetch\")||t.includes(\"NetworkError\")||t.includes(\"Failed to send events\")||t.includes(\"Request timeout\")||\"TimeoutError\"===e?.name||\"AbortError\"===e?.name))throw e;H(\"Request blocked by ad blocker, timed out, or network issue; events persisted for retry\");}}}await this.flushPendingCustomEvents(),await this.flushPendingLogs(),await this.flushPendingNetworkErrors();}finally{this.isProcessing=false;}}isInteractiveEvent(e){if(3!==e.type)return  false;const t=e.data?.source;return [1,2,3,4,5,6,11].includes(t)}updateIdleState(e){const t=this.isInteractiveEvent(e),s=e.timestamp||Date.now();if(t){const e=true===this._isIdle;this._lastActivityTimestamp=s,null!==this._sessionActivityTimestamp&&(this._sessionActivityTimestamp=s),e?(Q(\"✅ User activity detected, exiting idle state\"),this._isIdle=false,this.rrwebRecord&&\"function\"==typeof this.rrwebRecord.takeFullSnapshot&&(this.rrwebRecord.takeFullSnapshot(),Q(\"✅ FullSnapshot taken after returning from idle\"))):\"unknown\"===this._isIdle&&(this._isIdle=false);}else if(true!==this._isIdle){const e=s-this._lastActivityTimestamp;e>this.IDLE_THRESHOLD_MS&&(Q(`⏸️ Session idle detected (${Math.round(e/1e3)}s since last activity) - stopping background event recording`),Q(`ℹ️ Session will expire after ${Math.round(this.SESSION_IDLE_TIMEOUT_MS/6e4)} minutes of inactivity (${Math.round((this.SESSION_IDLE_TIMEOUT_MS-e)/1e3)}s remaining)`),this._isIdle=true,this.flushEvents());}}async addRecordingEvent(e){if(nt&&this.checkAndRefreshSession(),e&&\"object\"==typeof e){if(this.updateIdleState(e),true!==this._isIdle||3!==e.type||this.isInteractiveEvent(e)){if(2===e.type){const t=!!e.data,s=!(!e.data||!e.data.node);Q(t&&s?`✅ Valid FullSnapshot: hasData=${t}, hasNode=${s}, dataType=${e.data?.node?.type}`:`⚠️ Empty FullSnapshot detected: hasData=${t}, hasNode=${s} - continuing session`);}this.eventQueue.length>=this.MAX_QUEUE_SIZE&&(this.eventQueue.shift(),Q(\"Queue is full, the oldest event is dropped.\")),this.eventQueue.push(e),2===e.type?(Q(\"FullSnapshot added, triggering immediate flush\"),this.flushEvents()):true!==this._isIdle&&this.eventQueue.length>=.8*this.MAX_QUEUE_SIZE&&(Q(`Queue at ${this.eventQueue.length}/${this.MAX_QUEUE_SIZE}, triggering immediate flush`),this.flushEvents());}}else Q(\"⚠️ Skipping invalid recording event:\",e);}_canUseSessionStorage(){if(!nt)return  false;try{const e=\"__sessionStorage_test__\";return sessionStorage.setItem(e,e),sessionStorage.removeItem(e),!0}catch{return  false}}_canUseLocalStorage(){if(!nt)return  false;try{const e=\"__localStorage_test__\";return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch{return  false}}_getWindowIdFromStorage(){if(!this._canUseSessionStorage())return null;try{return sessionStorage.getItem(this._window_id_storage_key)}catch{return null}}_setWindowIdInStorage(e){if(this._canUseSessionStorage())try{sessionStorage.setItem(this._window_id_storage_key,e),Q(`Stored windowId in sessionStorage: ${e}`);}catch(e){H(\"Failed to store windowId in sessionStorage:\",e);}}_removeWindowIdFromStorage(){if(this._canUseSessionStorage())try{sessionStorage.removeItem(this._window_id_storage_key);}catch(e){H(\"Failed to remove windowId from sessionStorage:\",e);}}_getPrimaryWindowExists(){if(!this._canUseSessionStorage())return  false;try{return \"true\"===sessionStorage.getItem(this._primary_window_exists_storage_key)}catch{return  false}}_setPrimaryWindowExists(e){if(this._canUseSessionStorage())try{e?sessionStorage.setItem(this._primary_window_exists_storage_key,\"true\"):sessionStorage.removeItem(this._primary_window_exists_storage_key);}catch(e){H(\"Failed to set primary_window_exists flag:\",e);}}getOrCreateWindowId(){if(!nt)return v1();const e=this._getWindowIdFromStorage(),s=this._getPrimaryWindowExists();if(e&&!s)return Q(`Reusing windowId from previous page load: ${e}`),this._setWindowIdInStorage(e),this._setPrimaryWindowExists(true),e;{const e=v1();return Q(`Creating new windowId: ${e} (new window/tab detected)`),this._setWindowIdInStorage(e),this._setPrimaryWindowExists(true),e}}setupWindowUnloadListener(){nt&&window.addEventListener(\"beforeunload\",()=>{this._canUseSessionStorage()&&(this._setPrimaryWindowExists(false),Q(\"Cleared primary_window_exists flag on beforeunload\"));},{capture:false});}setCookie(e,t,s){if(nt)try{const i=new Date;i.setTime(i.getTime()+24*s*60*60*1e3);const n=`expires=${i.toUTCString()}`;document.cookie=`${e}=${t};${n};path=/;SameSite=Lax`,localStorage.setItem(e,t),Q(`Set cookie and localStorage: ${e}`);}catch(s){try{localStorage.setItem(e,t),Q(`Cookie blocked, using localStorage: ${e}`);}catch(e){j(\"Failed to store user ID in both cookie and localStorage:\",e);}}}getCookie(e){if(!nt)return null;try{const t=e+\"=\",s=document.cookie.split(\";\");for(let i=0;i<s.length;i++){let n=s[i];for(;\" \"===n.charAt(0);)n=n.substring(1,n.length);if(0===n.indexOf(t)){const s=n.substring(t.length,n.length);return Q(`Found cookie: ${e}`),s}}const i=localStorage.getItem(e);return i?(Q(`Cookie not found, using localStorage: ${e}`),i):null}catch(t){try{const t=localStorage.getItem(e);if(t)return Q(`Cookie access failed, using localStorage: ${e}`),t}catch(e){j(\"Failed to access both cookie and localStorage:\",e);}return null}}deleteCookie(e){if(nt){try{document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; SameSite=Lax`,Q(`Deleted cookie: ${e}`);}catch(t){j(`Failed to delete cookie: ${e}`,t);}try{localStorage.removeItem(e),Q(`Removed from localStorage: ${e}`);}catch(t){j(`Failed to remove from localStorage: ${e}`,t);}}}logout(){if(nt)try{const e=\"human_behavior_end_user_id\";this.deleteCookie(e);const s=\"human_behavior_session\";this._clearStoredSession(s),this.endUserId=null,this.userProperties={},this.endUserId=v1(),this.setCookie(\"human_behavior_end_user_id\",this.endUserId,365),this.sessionId=this.createNewSession(s),this.windowId=v1(),this._setWindowIdInStorage(this.windowId),this.api.setTrackingContext(this.sessionId,this.endUserId),this.takeFullSnapshot(),W(\"User logged out - cleared all user data and started fresh session\");}catch(e){j(\"Error during logout:\",e);}}async redact(e){await this.ensureInitialized(),nt?this.redactionManager=new he(e):H(\"Redaction is only available in browser environments\");}setRedactedFields(e){this.redactionManager.setFieldsToRedact(e),this.recordInstance&&this.restartWithNewRedaction();}setUnredactedFields(e){this.redactionManager.setFieldsToUnredact(e),this.recordInstance&&this.restartWithNewRedaction();}restartWithNewRedaction(){this.recordInstance&&(this.recordInstance(),this.start());}hasUnredactedFields(){return this.redactionManager.hasUnredactedFields()}getUnredactedFields(){return this.redactionManager.getUnredactedFields()}redactFields(e){this.redactionManager.redactFields(e),this.recordInstance&&this.restartWithNewRedaction();}clearUnredactedFields(){this.redactionManager.clearUnredactedFields(),this.recordInstance&&this.restartWithNewRedaction();}checkAndRefreshSession(){if(!nt)return;const e=\"human_behavior_session\",s=Date.now(),i=this.getStoredSession(e);if(!i||!i.sessionId)return this.createNewSession(e),this.windowId=v1(),this._setWindowIdInStorage(this.windowId),this.api.setTrackingContext(this.sessionId,this.endUserId),this.takeFullSnapshot(),void Q(`Created new session (no stored session): ${this.sessionId}`);this.updateSessionActivity(e,s,i.sessionId,i.sessionStartTimestamp);}getOrCreateSessionId(){if(!nt)return v1();const e=\"human_behavior_session\",s=Date.now(),i=this.getStoredSession(e);if(!i||!i.sessionId){const t=this.createNewSession(e);return this.api.setTrackingContext(t,this.endUserId),t}const n=s-i.lastActivityTimestamp,r=s-i.sessionStartTimestamp;if(n>this.SESSION_IDLE_TIMEOUT_MS||r>this.SESSION_MAX_LENGTH_MS){Q(`Session expired: idle=${n}ms, age=${r}ms`);const t=this.createNewSession(e);return this.api.setTrackingContext(t,this.endUserId),t}return this.updateSessionActivity(e,s,i.sessionId,i.sessionStartTimestamp),i.sessionId}getStoredSession(e){const s=Date.now(),i=this.SESSION_IDLE_TIMEOUT_MS,n=this.SESSION_MAX_LENGTH_MS;if(this.sessionId&&null!==this._sessionActivityTimestamp&&null!==this._sessionStartTimestamp){const r=s-this._sessionActivityTimestamp,o=s-this._sessionStartTimestamp;if(!(r>i||o>n))return {sessionId:this.sessionId,lastActivityTimestamp:this._sessionActivityTimestamp,sessionStartTimestamp:this._sessionStartTimestamp};{Q(\"Session in memory expired: adopting shared session or creating a new one\");const s=this.sessionId;if(this._adoptOrCreateSession(e)||(this.windowId=v1(),this._setWindowIdInStorage(this.windowId)),this.api.setTrackingContext(this.sessionId,this.endUserId),this.takeFullSnapshot(),W(`🔄 Session timeout (memory): Created new session ${this.sessionId} (previous: ${s})`),null!==this._sessionActivityTimestamp&&null!==this._sessionStartTimestamp)return {sessionId:this.sessionId,lastActivityTimestamp:this._sessionActivityTimestamp,sessionStartTimestamp:this._sessionStartTimestamp}}}try{const r=this._readStoredSessionRaw(e);if(!r)return null;const o=JSON.parse(r),a=s-o.lastActivityTimestamp,c=s-o.sessionStartTimestamp;if(a>i||c>n){Q(`Stored session expired: idle=${Math.round(a/1e3/60)}min, age=${Math.round(c/1e3/60/60)}hrs`);const s=o.sessionId;if(this.createNewSession(e),this.windowId=v1(),this._setWindowIdInStorage(this.windowId),this.api.setTrackingContext(this.sessionId,this.endUserId),this.takeFullSnapshot(),W(`🔄 Session timeout (storage): Created new session ${this.sessionId} (previous: ${s})`),null!==this._sessionActivityTimestamp&&null!==this._sessionStartTimestamp)return {sessionId:this.sessionId,lastActivityTimestamp:this._sessionActivityTimestamp,sessionStartTimestamp:this._sessionStartTimestamp}}return o.sessionId&&(this.sessionId=o.sessionId,this._sessionActivityTimestamp=o.lastActivityTimestamp,this._sessionStartTimestamp=o.sessionStartTimestamp),o}catch{return null}}createNewSession(e){const s=v1(),i=Date.now();this.sessionId=s,this._sessionActivityTimestamp=i,this._sessionStartTimestamp=i,this._lastActivityTimestamp=i;const n={sessionId:s,lastActivityTimestamp:i,sessionStartTimestamp:i};return this._writeStoredSession(e,n),Q(`Created new session: ${s}`),s}updateSessionActivity(e,t,s,i){this.sessionId=s,this._sessionActivityTimestamp=t,this._sessionStartTimestamp=i;const n={sessionId:s,lastActivityTimestamp:t,sessionStartTimestamp:i};this._writeStoredSession(e,n);}_adoptOrCreateSession(e){const t=Date.now();try{const s=this._readStoredSessionRaw(e);if(s){const e=JSON.parse(s);if(function(e,t,s,i,n){return Boolean(e&&e.sessionId&&e.sessionId!==t&&\"number\"==typeof e.lastActivityTimestamp&&\"number\"==typeof e.sessionStartTimestamp&&s-e.lastActivityTimestamp<=i&&s-e.sessionStartTimestamp<=n)}(e,this.sessionId,t,this.SESSION_IDLE_TIMEOUT_MS,this.SESSION_MAX_LENGTH_MS))return this.sessionId=e.sessionId,this._sessionActivityTimestamp=e.lastActivityTimestamp,this._sessionStartTimestamp=e.sessionStartTimestamp,Q(`Adopted shared session from another tab: ${e.sessionId}`),!0}}catch{}return this.createNewSession(e),false}_writeStoredSession(e,t){const s=JSON.stringify(t);try{if(this._canUseLocalStorage())return void localStorage.setItem(e,s)}catch(e){H(`Failed to save session to localStorage: ${e}`);}try{this._canUseSessionStorage()&&sessionStorage.setItem(e,s);}catch(e){H(`Failed to save session to sessionStorage: ${e}`);}}_readStoredSessionRaw(e){try{if(this._canUseLocalStorage()){const t=localStorage.getItem(e);if(t)return t}}catch{}try{if(this._canUseSessionStorage()){const t=sessionStorage.getItem(e);if(t)return t}}catch{}return null}_clearStoredSession(e){try{this._canUseSessionStorage()&&sessionStorage.removeItem(e);}catch{}try{localStorage.removeItem(e);}catch{}}getSessionId(){return this.sessionId}getCurrentUrl(){return nt&&\"undefined\"!=typeof window&&window.location?window.location.href:this.currentUrl}getSnapshotFrequencyInfo(){return {sessionDuration:Date.now()-this.sessionStartTime,currentInterval:3e5,currentThreshold:1e3,phase:\"configured\"}}async testConnection(){try{return await this.api.init(this.sessionId,this.endUserId),{success:!0}}catch(e){return {success:false,error:e.message||\"Unknown error\"}}}getConnectionStatus(){const e=[];let t=false;return this.eventQueue.length>0&&(t=true,e.push(\"Some requests may be blocked by ad blockers\")),this._connectionBlocked&&(t=true,e.push(\"Initial connection test failed - ad blocker may be active\")),\"undefined\"==typeof window&&e.push(\"Not running in browser environment\"),void 0===navigator.sendBeacon&&e.push(\"sendBeacon not available, using fetch fallback\"),{blocked:t,recommendations:e}}isPreexistingUser(){if(!nt)return  false;const e=this.getCookie(\"human_behavior_end_user_id\");return null!==e&&e!==this.endUserId}getUserInfo(){return {endUserId:this.endUserId,sessionId:this.sessionId,isPreexistingUser:this.isPreexistingUser(),initialized:this.initialized}}setSessionProperty(e,t){this.propertyManager.setSessionProperty(e,t);}setSessionProperties(e){this.propertyManager.setSessionProperties(e);}getSessionProperty(e){return this.propertyManager.getSessionProperty(e)}removeSessionProperty(e){this.propertyManager.removeSessionProperty(e);}setUserProperty(e,t){this.propertyManager.setUserProperty(e,t);}setUserProperties(e){this.propertyManager.setUserProperties(e);}getUserProperty(e){return this.propertyManager.getUserProperty(e)}removeUserProperty(e){this.propertyManager.removeUserProperty(e);}setOnce(e,t,s=\"user\"){this.propertyManager.setOnce(e,t,s);}clearSessionProperties(){this.propertyManager.clearSessionProperties();}clearUserProperties(){this.propertyManager.clearUserProperties();}getAllProperties(){return this.propertyManager.getAllProperties()}}function ot(e,t){const s=globalThis.__humanBehaviorGlobalTracker;return s?.identifyUser?s.identifyUser({userProperties:e,identityToken:t}):(console.warn(\"HumanBehavior tracker not found. Make sure the SDK is initialized.\"),null)}function at(e,t){const s=(\"undefined\"!=typeof window?window:globalThis).__humanBehaviorGlobalTracker;return s?.customEvent?s.customEvent(e,t):s?.track?s.track(e,t):(console.warn(\"HumanBehavior tracker not found. Make sure the SDK is initialized.\"),null)}function ct(){const e=globalThis.__humanBehaviorGlobalTracker;return !!e?.identifyUser}nt&&(window.HumanBehaviorTracker=rt);var dt,lt=-1,ut=function(e){addEventListener(\"pageshow\",function(t){t.persisted&&(lt=t.timeStamp,e(t));},true);},ht=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},pt=function(){var e=ht();return e&&e.activationStart||0},mt=function(e,t){var s=ht(),i=\"navigate\";return lt>=0?i=\"back-forward-cache\":s&&(document.prerendering||pt()>0?i=\"prerender\":document.wasDiscarded?i=\"restore\":s.type&&(i=s.type.replace(/_/g,\"-\"))),{name:e,value:void 0===t?-1:t,rating:\"good\",delta:0,entries:[],id:\"v4-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:i}},gt=function(e,t,s){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var i=new PerformanceObserver(function(e){Promise.resolve().then(function(){t(e.getEntries());});});return i.observe(Object.assign({type:e,buffered:!0},s||{})),i}}catch(e){}},ft=function(e,t,s,i){var n,r;return function(o){t.value>=0&&(o||i)&&((r=t.value-(n||0))||void 0===n)&&(n=t.value,t.delta=r,t.rating=function(e,t){return e>t[1]?\"poor\":e>t[0]?\"needs-improvement\":\"good\"}(t.value,s),e(t));}},yt=function(e){requestAnimationFrame(function(){return requestAnimationFrame(function(){return e()})});},wt=function(e){document.addEventListener(\"visibilitychange\",function(){\"hidden\"===document.visibilityState&&e();});},vt=function(e){var t=false;return function(){t||(e(),t=true);}},bt=-1,St=function(){return \"hidden\"!==document.visibilityState||document.prerendering?1/0:0},Tt=function(e){\"hidden\"===document.visibilityState&&bt>-1&&(bt=\"visibilitychange\"===e.type?e.timeStamp:0,_t());},kt=function(){addEventListener(\"visibilitychange\",Tt,true),addEventListener(\"prerenderingchange\",Tt,true);},_t=function(){removeEventListener(\"visibilitychange\",Tt,true),removeEventListener(\"prerenderingchange\",Tt,true);},It=function(){return bt<0&&(bt=St(),kt(),ut(function(){setTimeout(function(){bt=St(),kt();},0);})),{get firstHiddenTime(){return bt}}},Et=function(e){document.prerendering?addEventListener(\"prerenderingchange\",function(){return e()},true):e();},Ct=[1800,3e3],Ut=function(e,t){t=t||{},Et(function(){var s,i=It(),n=mt(\"FCP\"),r=gt(\"paint\",function(e){e.forEach(function(e){\"first-contentful-paint\"===e.name&&(r.disconnect(),e.startTime<i.firstHiddenTime&&(n.value=Math.max(e.startTime-pt(),0),n.entries.push(e),s(true)));});});r&&(s=ft(e,n,Ct,t.reportAllChanges),ut(function(i){n=mt(\"FCP\"),s=ft(e,n,Ct,t.reportAllChanges),yt(function(){n.value=performance.now()-i.timeStamp,s(true);});}));});},Rt=[.1,.25],Pt=0,Ft=1/0,Mt=0,At=function(e){e.forEach(function(e){e.interactionId&&(Ft=Math.min(Ft,e.interactionId),Mt=Math.max(Mt,e.interactionId),Pt=Mt?(Mt-Ft)/7+1:0);});},Lt=function(){return dt?Pt:performance.interactionCount||0},$t=function(){\"interactionCount\"in performance||dt||(dt=gt(\"event\",At,{type:\"event\",buffered:true,durationThreshold:0}));},Dt=[],xt=new Map,Bt=0,Nt=[],Ot=function(e){if(Nt.forEach(function(t){return t(e)}),e.interactionId||\"first-input\"===e.entryType){var t=Dt[Dt.length-1],s=xt.get(e.interactionId);if(s||Dt.length<10||e.duration>t.latency){if(s)e.duration>s.latency?(s.entries=[e],s.latency=e.duration):e.duration===s.latency&&e.startTime===s.entries[0].startTime&&s.entries.push(e);else {var i={id:e.interactionId,latency:e.duration,entries:[e]};xt.set(i.id,i),Dt.push(i);}Dt.sort(function(e,t){return t.latency-e.latency}),Dt.length>10&&Dt.splice(10).forEach(function(e){return xt.delete(e.id)});}}},qt=function(e){var t=self.requestIdleCallback||self.setTimeout,s=-1;return e=vt(e),\"hidden\"===document.visibilityState?e():(s=t(e),wt(e)),s},Kt=[200,500],zt=[2500,4e3],jt={},Ht=[800,1800],Wt=function e(t){document.prerendering?Et(function(){return e(t)}):\"complete\"!==document.readyState?addEventListener(\"load\",function(){return e(t)},true):setTimeout(t,0);},Qt=Object.freeze({__proto__:null,CLSThresholds:Rt,FCPThresholds:Ct,INPThresholds:Kt,LCPThresholds:zt,TTFBThresholds:Ht,onCLS:function(e,t){t=t||{},Ut(vt(function(){var s,i=mt(\"CLS\",0),n=0,r=[],o=function(e){e.forEach(function(e){if(!e.hadRecentInput){var t=r[0],s=r[r.length-1];n&&e.startTime-s.startTime<1e3&&e.startTime-t.startTime<5e3?(n+=e.value,r.push(e)):(n=e.value,r=[e]);}}),n>i.value&&(i.value=n,i.entries=r,s());},a=gt(\"layout-shift\",o);a&&(s=ft(e,i,Rt,t.reportAllChanges),wt(function(){o(a.takeRecords()),s(true);}),ut(function(){n=0,i=mt(\"CLS\",0),s=ft(e,i,Rt,t.reportAllChanges),yt(function(){return s()});}),setTimeout(s,0));}));},onFCP:Ut,onINP:function(e,t){\"PerformanceEventTiming\"in self&&\"interactionId\"in PerformanceEventTiming.prototype&&(t=t||{},Et(function(){var s;$t();var i,n=mt(\"INP\"),r=function(e){qt(function(){e.forEach(Ot);var t=function(){var e=Math.min(Dt.length-1,Math.floor((Lt()-Bt)/50));return Dt[e]}();t&&t.latency!==n.value&&(n.value=t.latency,n.entries=t.entries,i());});},o=gt(\"event\",r,{durationThreshold:null!==(s=t.durationThreshold)&&void 0!==s?s:40});i=ft(e,n,Kt,t.reportAllChanges),o&&(o.observe({type:\"first-input\",buffered:true}),wt(function(){r(o.takeRecords()),i(true);}),ut(function(){Bt=Lt(),Dt.length=0,xt.clear(),n=mt(\"INP\"),i=ft(e,n,Kt,t.reportAllChanges);}));}));},onLCP:function(e,t){t=t||{},Et(function(){var s,i=It(),n=mt(\"LCP\"),r=function(e){t.reportAllChanges||(e=e.slice(-1)),e.forEach(function(e){e.startTime<i.firstHiddenTime&&(n.value=Math.max(e.startTime-pt(),0),n.entries=[e],s());});},o=gt(\"largest-contentful-paint\",r);if(o){s=ft(e,n,zt,t.reportAllChanges);var a=vt(function(){jt[n.id]||(r(o.takeRecords()),o.disconnect(),jt[n.id]=true,s(true));});[\"keydown\",\"click\"].forEach(function(e){addEventListener(e,function(){return qt(a)},{once:true,capture:true});}),wt(a),ut(function(i){n=mt(\"LCP\"),s=ft(e,n,zt,t.reportAllChanges),yt(function(){n.value=performance.now()-i.timeStamp,jt[n.id]=true,s(true);});});}});},onTTFB:function(e,t){t=t||{};var s=mt(\"TTFB\"),i=ft(e,s,Ht,t.reportAllChanges);Wt(function(){var n=ht();n&&(s.value=Math.max(n.responseStart-pt(),0),s.entries=[n],i(true),ut(function(){s=mt(\"TTFB\",0),(i=ft(e,s,Ht,t.reportAllChanges))(true);}));});}});\n\n/**\n * Main entry point for the HumanBehavior SDK\n */\n// Import the main tracker first\n// Create an initialization function\nconst init = (apiKey, ingestionUrl, options) => {\n    return new rt(apiKey, ingestionUrl, options);\n};\n// For UMD builds, expose the class and init function globally\nif (typeof window !== 'undefined') {\n    window.HumanBehaviorTracker = rt;\n    window.humanbehavior = { init };\n}\n\nexport { re as HumanBehaviorAPI, rt as HumanBehaviorTracker, O as LogLevel, Se as PropertyManager, he as RedactionManager, we as getAutomaticProperties, be as getCurrentPageProperties, fe as getDeviceInfo, ve as getInitialProperties, ye as getLocationInfo, ot as identifyUserGlobally, init, ct as isGlobalTrackerAvailable, z as isSDKLogging, Q as logDebug, j as logError, W as logInfo, H as logWarn, q as logger, at as sendEventGlobally };\n//# sourceMappingURL=index.js.map\n","import React, { useEffect, useState, createContext, useContext, ReactNode, useCallback, useMemo, useRef } from \"react\";\nimport type { HumanBehaviorTracker } from \"humanbehavior-js\";\n\n/**\n * The React surface, with the recorder held at arm's length.\n *\n * Everything here used to import the bundled tracker directly, which meant any\n * app importing the provider also shipped rrweb and the whole recorder in its\n * own build - and could only get SDK fixes by reinstalling. The logic is\n * unchanged; it now receives whatever provides `init`, so the same provider can\n * be bound to the bundled recorder (`humanbehavior-js/react`) or to the\n * auto-updating loader (`humanbehavior-js/react/auto`).\n *\n * The tracker type is imported for types only, so it is erased at build time and\n * never pulls the recorder into a bundle.\n */\n\n/** Anything that can produce a tracker: the bundled class, or the CDN loader stub. */\nexport interface TrackerHost {\n  init(apiKey: string, options: Record<string, any>): any;\n}\n\nexport interface FactoryLogger {\n  error: (...args: any[]) => void;\n  warn: (...args: any[]) => void;\n  debug: (...args: any[]) => void;\n}\n\n// Check if we're in a browser environment\nconst isBrowser = () => typeof window !== 'undefined';\n\n// `identityToken` is minted by the app's own backend for a user it has already\n// authenticated. Projects that require identity verification reject an identify\n// that claims an externalUserId without one.\nexport interface IdentifyUserArgs {\n  userProperties: Record<string, any>;\n  identityToken?: string;\n}\n\n// Define the public interface that components will interact with\nexport interface HumanBehaviorInterface {\n  addEvent: (event: any) => void;\n  identifyUser: (args: IdentifyUserArgs) => Promise<string>;\n  start: () => void;\n  stop: () => void;\n  logout: () => void;\n  viewLogs: () => void;\n  setUnredactedFields: (fields: string[]) => void;\n  hasUnredactedFields: () => boolean;\n  getUnredactedFields: () => string[];\n  trackPageView: () => void;\n}\n\nexport interface HumanBehaviorProviderProps {\n  // Either provide an apiKey to create a new client, or provide an existing client\n  apiKey?: string;\n  client?: HumanBehaviorTracker;\n  children: ReactNode;\n  options?: {\n    ingestionUrl?: string;\n    logLevel?: 'none' | 'error' | 'warn' | 'info' | 'debug';\n    redactFields?: string[]; // DEPRECATED: Use redactionStrategy instead\n    redactionStrategy?: {\n      mode: 'privacy-first' | 'visibility-first'; // Default: 'privacy-first'\n      unredactFields?: string[]; // Fields to make visible (when mode: 'privacy-first')\n      redactFields?: string[];   // Fields to hide (when mode: 'visibility-first')\n    };\n    enableAutomaticTracking?: boolean;\n    suppressConsoleErrors?: boolean;\n    recordCanvas?: boolean; // Enable canvas recording with protection\n    enableAutomaticProperties?: boolean; // Enable automatic property detection\n    propertyDenylist?: string[]; // Properties to exclude from tracking\n    automaticTrackingOptions?: {\n      trackButtons?: boolean;\n      trackLinks?: boolean;\n      trackForms?: boolean;\n      includeText?: boolean;\n      includeClasses?: boolean;\n    };\n    maxQueueSize?: number; // Configurable queue size\n    enableConsoleTracking?: boolean; // Enable console warn/error tracking (default: true, set to false to opt-out)\n    enableNetworkTracking?: boolean; // Enable network error tracking (default: true, set to false to opt-out)\n    enableErrorTracking?: boolean; // Enable crash/error capture (default: true, set to false to opt-out)\n    enableWebVitals?: boolean; // Enable Core Web Vitals tracking (FCP/LCP/CLS/INP/TTFB) (default: true, set to false to opt-out)\n    enableTracing?: boolean; // Enable distributed tracing (page-load/resource/custom spans) (default: true, set to false to opt-out)\n    release?: string; // App release/version stamped on each error\n    environment?: string; // Deployment environment stamped on each error\n    commitSha?: string; // Git commit SHA stamped on each error report (enables GitHub blob links)\n    dist?: string; // Build/dist discriminator stamped on each error report (pairs with release for source-map lookup)\n    captureRequestBodies?: boolean; // Opt-in: attach redacted request/response bodies + headers to error-correlated requests (default: false)\n    /** Auto-updating installs only: serve the loader from your own origin. */\n    cdnUrl?: string;\n    /** Auto-updating installs only: pin an exact recorder build. */\n    version?: string;\n  };\n}\n\nexport interface ErrorBoundaryProps {\n  children: ReactNode;\n  fallback?: ReactNode;\n  client?: HumanBehaviorTracker;\n  onError?: (error: Error, componentStack: string | null) => void;\n}\n\nexport interface ErrorBoundaryState {\n  hasError: boolean;\n}\n\nexport function createHumanBehaviorReact(host: TrackerHost, log: FactoryLogger) {\n  const HumanBehaviorContext = createContext<HumanBehaviorTracker | HumanBehaviorInterface | null>(null);\n\n  // Memoized queuing implementation for initialization period\n  const createQueuingImplementation = (queueEvent: (event: any) => void): HumanBehaviorInterface => ({\n    addEvent: (event: any) => {\n      queueEvent(event);\n    },\n    identifyUser: async ({ userProperties, identityToken }: IdentifyUserArgs) => {\n      queueEvent({\n        type: 'identify',\n        userProperties,\n        identityToken,\n      });\n      return ''; // Return empty string to match interface\n    },\n    start: () => {\n      // Start will be called automatically when initialized\n    },\n    stop: () => {\n      // Stop is a no-op when not initialized\n    },\n    logout: () => {\n      // Logout is a no-op when not initialized\n    },\n    viewLogs: () => {\n      log.warn('Logs are not available until HumanBehaviorTracker is initialized');\n    },\n    setUnredactedFields: () => {},\n    hasUnredactedFields: () => false,\n    getUnredactedFields: () => [],\n    trackPageView: () => {},\n  });\n\n  // Automatic page tracking component\n  function HumanBehaviorPageView() {\n    const tracker = useContext(HumanBehaviorContext);\n\n    useEffect(() => {\n      if (tracker && typeof window !== 'undefined') {\n        // Track initial page load\n        tracker.trackPageView();\n\n        // Listen for route changes (for SPAs)\n        const handleRouteChange = () => {\n          tracker.trackPageView();\n        };\n\n        // Listen for popstate (back/forward navigation)\n        window.addEventListener('popstate', handleRouteChange);\n\n        // Listen for pushstate/replacestate (programmatic navigation)\n        const originalPushState = history.pushState;\n        const originalReplaceState = history.replaceState;\n\n        history.pushState = function(...args) {\n          originalPushState.apply(this, args);\n          handleRouteChange();\n        };\n\n        history.replaceState = function(...args) {\n          originalReplaceState.apply(this, args);\n          handleRouteChange();\n        };\n\n        return () => {\n          window.removeEventListener('popstate', handleRouteChange);\n          history.pushState = originalPushState;\n          history.replaceState = originalReplaceState;\n        };\n      }\n    }, [tracker]);\n\n    return null;\n  }\n\n  const HumanBehaviorProvider = ({ apiKey, client, children, options }: HumanBehaviorProviderProps) => {\n    const [humanBehavior, setHumanBehavior] = useState<HumanBehaviorTracker | null>(client || null);\n    const [eventQueue, setEventQueue] = useState<any[]>([]);\n    const [isMounted, setIsMounted] = useState(false);\n    const [isInitialized, setIsInitialized] = useState(false);\n\n    // Use refs to avoid dependency issues in useEffect\n    const apiKeyRef = useRef(apiKey);\n    const clientRef = useRef(client);\n    const eventQueueRef = useRef(eventQueue);\n\n    // Update refs when props change\n    useEffect(() => {\n      apiKeyRef.current = apiKey;\n      clientRef.current = client;\n    }, [apiKey, client]);\n\n    // Update eventQueue ref when queue changes\n    useEffect(() => {\n      eventQueueRef.current = eventQueue;\n    }, [eventQueue]);\n\n    // Memoized queueEvent function to prevent unnecessary re-renders\n    const queueEvent = useCallback((event: any) => {\n      setEventQueue(prev => [...prev, event]);\n    }, []);\n\n    // Handle mounting state\n    useEffect(() => {\n      setIsMounted(true);\n    }, []);\n\n    useEffect(() => {\n      // Only run in browser\n      if (!(isBrowser())) {\n        return;\n      }\n\n      // If client is provided, use that\n      if (clientRef.current) {\n        setHumanBehavior(clientRef.current);\n        setIsInitialized(true);\n        return;\n      }\n\n      // If no client is provided, apiKey is required\n      if (!apiKeyRef.current || apiKeyRef.current.trim() === '') {\n        log.error(\"An apiKey is required when no client is provided\");\n        return;\n      }\n\n      // Prevent multiple initializations\n      if (humanBehavior !== null) {\n        return;\n      }\n\n      try {\n\n        // Create new tracker instance with the validated apiKey and options\n        const tracker = host.init(\n          apiKeyRef.current.trim(),\n          {\n            ingestionUrl: options?.ingestionUrl,\n            logLevel: options?.logLevel,\n            redactFields: options?.redactFields, // Legacy support\n            redactionStrategy: options?.redactionStrategy, // New redaction strategy\n            enableAutomaticTracking: options?.enableAutomaticTracking,\n            suppressConsoleErrors: options?.suppressConsoleErrors,\n            recordCanvas: options?.recordCanvas,\n            enableAutomaticProperties: options?.enableAutomaticProperties,\n            propertyDenylist: options?.propertyDenylist,\n            automaticTrackingOptions: options?.automaticTrackingOptions,\n            maxQueueSize: options?.maxQueueSize,\n            enableConsoleTracking: options?.enableConsoleTracking,\n            enableNetworkTracking: options?.enableNetworkTracking,\n            enableErrorTracking: options?.enableErrorTracking,\n            enableWebVitals: options?.enableWebVitals,\n            enableTracing: options?.enableTracing,\n            release: options?.release,\n            environment: options?.environment,\n            commitSha: options?.commitSha,\n            dist: options?.dist,\n            captureRequestBodies: options?.captureRequestBodies,\n            cdnUrl: options?.cdnUrl,\n            version: options?.version,\n          }\n        );\n\n        setHumanBehavior(tracker);\n\n        // Mark as initialized immediately (don't wait for server init)\n        setIsInitialized(true);\n\n        // Start tracking in background\n        tracker.initializationPromise?.then(async () => {\n            // Only start if not already started\n            if (!tracker.isTrackerStarted) {\n                await tracker.start();\n            }\n\n          // Process any queued events\n          const currentQueue = eventQueueRef.current;\n          if (currentQueue.length > 0) {\n            for (const event of currentQueue) {\n              if (event.type === 'identify') {\n                log.debug('Processing queued identify event', event);\n                try {\n                  await tracker.identifyUser({\n                    userProperties: event.userProperties,\n                    identityToken: event.identityToken,\n                  });\n                } catch (error) {\n                  log.error('Failed to process queued user info:', error);\n                }\n              } else {\n                tracker.addEvent(event);\n              }\n            }\n            setEventQueue([]); // Clear the queue\n          }\n        }).catch((error: unknown) => {\n          log.error('Failed to initialize HumanBehaviorTracker:', error);\n        });\n      } catch (error) {\n        log.error('Failed to create HumanBehaviorTracker:', error);\n      }\n    }, [isMounted]); // Removed humanBehavior from dependencies to prevent infinite loop\n\n    // Memoized context value to prevent unnecessary re-renders\n    const contextValue = useMemo(() => {\n      if (!isMounted) {\n        return createQueuingImplementation(queueEvent);\n      }\n\n      if (!isInitialized) {\n        return createQueuingImplementation(queueEvent);\n      }\n\n      return humanBehavior;\n    }, [isMounted, isInitialized, humanBehavior, queueEvent]);\n\n    // If not in browser, render children without context\n    if (!(isBrowser())) {\n      return <>{children}</>;\n    }\n\n    return (\n      <HumanBehaviorContext.Provider value={contextValue}>\n        <HumanBehaviorPageView />\n        {children}\n      </HumanBehaviorContext.Provider>\n    );\n  };\n\n  const useHumanBehavior = () => {\n    const tracker = useContext(HumanBehaviorContext);\n    if (!tracker) {\n      throw new Error('useHumanBehavior must be used within a HumanBehaviorProvider');\n    }\n    return tracker;\n  };\n\n  // Custom hook for managing unredaction fields dynamically\n  const useRedaction = () => {\n    const tracker = useHumanBehavior();\n\n    const setUnredactedFields = useCallback((fields: string[]) => {\n      tracker.setUnredactedFields(fields);\n    }, [tracker]);\n\n    const hasUnredactedFields = useCallback(() => {\n      return tracker.hasUnredactedFields();\n    }, [tracker]);\n\n    const getUnredactedFields = useCallback(() => {\n      return tracker.getUnredactedFields();\n    }, [tracker]);\n\n    return {\n      setUnredactedFields,\n      hasUnredactedFields,\n      getUnredactedFields\n    };\n  };\n\n  // Custom hook for managing user info\n  const useUserTracking = () => {\n    const tracker = useHumanBehavior();\n\n    const identifyUser = useCallback(async ({ userProperties, identityToken }: IdentifyUserArgs) => {\n      try {\n        await tracker.identifyUser({ userProperties, identityToken });\n        return { success: true };\n      } catch (error) {\n        log.error('Failed to identify user:', error);\n        return { success: false, error };\n      }\n    }, [tracker]);\n\n    return {\n      identifyUser\n    };\n  };\n\n  // Error boundary that reports React render crashes (with the component stack)\n  // to HumanBehavior, then renders an optional fallback. Wrap any subtree:\n  //   <HumanBehaviorErrorBoundary fallback={<Oops />}> ... </HumanBehaviorErrorBoundary>\n  // It reads the tracker from context (or an explicit `client` prop) and calls\n  // `tracker.captureException(error, { componentStack, mechanism: 'react' })`.\n  class HumanBehaviorErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {\n    static contextType = HumanBehaviorContext;\n    declare context: React.ContextType<typeof HumanBehaviorContext>;\n\n    constructor(props: ErrorBoundaryProps) {\n      super(props);\n      this.state = { hasError: false };\n    }\n\n    static getDerivedStateFromError(): ErrorBoundaryState {\n      return { hasError: true };\n    }\n\n    componentDidCatch(error: Error, info: React.ErrorInfo) {\n      const componentStack = info?.componentStack ?? null;\n      try {\n        const tracker = this.props.client ?? this.context;\n        if (tracker && typeof (tracker as HumanBehaviorTracker).captureException === 'function') {\n          (tracker as HumanBehaviorTracker).captureException(error, {\n            componentStack: componentStack ?? undefined,\n            mechanism: 'react',\n          });\n        }\n      } catch {\n        // Reporting must never break the host app.\n      }\n      try {\n        this.props.onError?.(error, componentStack);\n      } catch {\n        // Ignore consumer callback errors.\n      }\n    }\n\n    render() {\n      if (this.state.hasError) {\n        return this.props.fallback ?? null;\n      }\n      return this.props.children;\n    }\n  }\n\n  return {\n    HumanBehaviorContext,\n    HumanBehaviorProvider,\n    useHumanBehavior,\n    useRedaction,\n    useUserTracking,\n    // Annotated, not inferred. A class created inside a function infers to a\n    // structural constructor type that has lost its relationship to\n    // React.Component, and TypeScript then rejects `<HumanBehaviorErrorBoundary>`\n    // with TS2786 in the consumer's build.\n    HumanBehaviorErrorBoundary:\n      HumanBehaviorErrorBoundary as React.ComponentClass<ErrorBoundaryProps, ErrorBoundaryState>,\n  };\n}\n\n// Next.js App Router route-error helper.\n//\n// Next renders `app/error.tsx` / `app/global-error.tsx` (client components) when\n// a route segment throws on the client. These boundaries are frequently mounted\n// OUTSIDE the HumanBehaviorProvider tree (global-error.tsx replaces the root\n// layout), so this resolves the tracker from the global singleton (or an\n// explicit `client`) rather than React context. Use it from the boundary:\n//\n//   'use client';\n//   import { captureNextError } from 'humanbehavior-js/react';\n//   export default function Error({ error, reset }) {\n//     useEffect(() => { captureNextError(error); }, [error]);\n//     return <button onClick={reset}>Try again</button>;\n//   }\n//\n// Limitation: captures CLIENT-side route errors only. Server Component / RSC\n// errors that never reach the browser require a Next server module\n// (instrumentation.ts `onRequestError`) and are out of scope for this browser SDK.\n//\n// On an auto-updating install the global singleton is published by the recorder\n// once it arrives, so an error thrown in the first few hundred milliseconds of a\n// page load is not reported.\nexport function captureNextError(\n  error: unknown,\n  options?: { client?: HumanBehaviorTracker; componentStack?: string }\n): void {\n  try {\n    const tracker =\n      options?.client ??\n      (typeof window !== 'undefined'\n        ? ((window as unknown as { __humanBehaviorGlobalTracker?: HumanBehaviorTracker }).__humanBehaviorGlobalTracker)\n        : undefined);\n    if (tracker && typeof tracker.captureException === 'function') {\n      tracker.captureException(error, {\n        componentStack: options?.componentStack,\n        mechanism: 'react',\n      });\n    }\n  } catch {\n    // Reporting must never break the host app.\n  }\n}\n","/**\n * `humanbehavior-js/react` - the bundled React integration.\n *\n * Binds the shared provider to the recorder that ships inside the customer's\n * build. This is the entry every existing install resolves to, so its exports\n * and behavior must not change; `humanbehavior-js/react/auto` is where the\n * auto-updating variant lives.\n */\n\nimport { HumanBehaviorTracker, logError, logWarn, logDebug } from \"./browser\";\nimport { createHumanBehaviorReact } from \"./factory\";\n\nconst react = createHumanBehaviorReact(HumanBehaviorTracker, {\n  error: logError,\n  warn: logWarn,\n  debug: logDebug,\n});\n\nexport const HumanBehaviorProvider = react.HumanBehaviorProvider;\nexport const useHumanBehavior = react.useHumanBehavior;\nexport const useRedaction = react.useRedaction;\nexport const useUserTracking = react.useUserTracking;\nexport const HumanBehaviorErrorBoundary = react.HumanBehaviorErrorBoundary;\n/**\n * This used to be a class declaration, which made the name usable as a type as\n * well as a value - `useRef<HumanBehaviorErrorBoundary>(null)` compiled. Coming\n * out of a factory it is only a value, so the alias keeps that half of the\n * existing published surface intact.\n */\nexport type HumanBehaviorErrorBoundary = InstanceType<typeof react.HumanBehaviorErrorBoundary>;\n\nexport { captureNextError } from \"./factory\";\nexport type { IdentifyUserArgs } from \"./factory\";\n\n// Export the tracker class for direct use\nexport { HumanBehaviorTracker };\n"],"names":["_a","__defProp","Object","defineProperty","__publicField","obj","key","value","enumerable","configurable","writable","__defNormalProp","__defProp$1","__publicField$1","__defNormalProp$1","NodeType$3","NodeType2","testableAccessors$1","Node","ShadowRoot","Element","MutationObserver","testableMethods$1","untaintedBasePrototype$1","getUntaintedPrototype$1","defaultObj","globalThis","defaultPrototype","prototype","accessorNames","isUntaintedAccessors","Boolean","every","accessor","_a2","_b","getOwnPropertyDescriptor","get","toString","includes","methodNames","isUntaintedMethods","method","Zone","iframeEl","document","createElement","body","appendChild","win","contentWindow","untaintedObject","removeChild","untaintedAccessorCache$1","getUntaintedAccessor$1","instance","cacheKey","String","call","untaintedPrototype","untaintedAccessor","untaintedMethodCache$1","getUntaintedMethod$1","bind","untaintedMethod","index$1","ownerDocument","n2","childNodes","parentNode","parentElement","textContent","contains","other","getRootNode","host","styleSheets","shadowRoot","querySelector","selectors","querySelectorAll","mutationObserver","constructor","patch","source","name","replacement","original","wrapped","defineProperties","__rrweb_original__","isElement","nodeType","ELEMENT_NODE","isShadowRoot","hostEl","isNativeShadowDom","shadowRoot2","stringifyStylesheet","s2","rules2","rules","cssRules","sheetHref","href","ownerNode","baseURI","stringifiedRules","Array","from","rule2","stringifyRule","join","cssText","replace","error","isCSSImportRule","importStringified","styleSheet","split","length","statement","JSON","stringify","layerName","push","supportsText","media","mediaText","escapeImportStatement","absolutifyURLs","ruleStringified","isCSSStyleRule","selectorText","cssStringified","regex","fixSafariColons","Mirror","this","Map","WeakMap","getId","getMeta","id","getNode","idNodeMap","getIds","keys","nodeMetaMap","removeNodeFromMap","delete","forEach","childNode","has","hasNode","node2","add","meta","set","oldNode","reset","maskInputValue","element","maskInputOptions","tagName","type","maskInputFn","text","actualType","toLowerCase","repeat","str","ORIGINAL_ATTRIBUTE_NAME","getInputType","hasAttribute","extractFileExtension","path","baseURL","url","URL","window","location","err","match","pathname","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","origin","quote1","path1","quote2","path2","path3","filePath","maybeQuote","test","indexOf","slice","extractOrigin","stack","parts","pop","part","normalizeCssString","_testNoPxNorm","markCssSplits","style","childNodes2","splits","iterCount","cssTextNorm","normFactor","i2","textContentNorm","jLimit","j","substring","startSubstring","cssNormSplits","splitNorm","prevTextContent","prevMinLength","k","Math","floor","normPart","max","splitCssText","_id","tagNameRegex","RegExp","genId","canvasService","canvasCtx","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","cachedDocument","absoluteToDoc","doc","attributeValue","trim","getHref","isSVGElement","el","ownerSVGElement","customHref","a2","startsWith","setAttribute","transformAttribute","pos","collectCharacters","regEx","chars2","exec","output","descriptorsStr","inParens","c2","charAt","getAbsoluteSrcsetString","ignoreAttribute","_value","classMatchesRegex","checkAncestors","eIndex","classList","className","needMaskingText","maskTextClass","maskTextSelector","closest","matches","e2","serializeNode","options","mirror","mirror2","blockClass","blockSelector","needsMask","inlineStylesheet","maskTextFn","dataURLOptions","inlineImages","recordCanvas","keepIframeSrcFn","newlyAddedElement","cssCaptured","rootId","docId","getRootId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","needBlock","_isBlockedElement","HTMLFormElement","processedTagName","getValidTagName$1","attributes","len","attr","stylesheet","find","rel","_cssText","sheet","checked","selected","open","rr_open_mode","__context","canvas","ctx","getContext","x2","width","y","height","getImageData","originalGetImageData","Uint32Array","min","data","buffer","some","pixel","is2DCanvasBlank","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","image","imageSrc","currentSrc","getAttribute","priorCrossOrigin","crossOrigin","recordInlineImage","removeEventListener","naturalWidth","naturalHeight","drawImage","complete","addEventListener","console","warn","removeAttribute","mediaAttributes","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","rr_mediaPlaybackRate","playbackRate","rr_mediaMuted","muted","rr_mediaLoop","loop","rr_mediaVolume","volume","scrollLeft","rr_scrollLeft","scrollTop","rr_scrollTop","getBoundingClientRect","class","rr_width","rr_height","src","contentDocument","rr_src","isCustomElement","customElements","isSVG","isCustom","serializeElementNode","TEXT_NODE","parent","parentTagName","textContent2","isStyle","isScript","Text","serializeTextNode","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","lowerIfExists","maybeAttr","slimDOMDefaults","_slimDOMOptions","script","comment","headFavicon","headWhitespace","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaVerification","headMetaAuthorship","headMetaDescKeywords","headTitleMutations","serializeNodeWithId","skipChild","slimDOMOptions","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","preserveWhiteSpace","_serializedNode","sn","as","property","slimDOMExcluded","serializedNode","assign","recordChild","shadowRootEl","isShadowHost","bypassOptions","childN","serializedChildNode","isShadow","listener","readyState","fired","timer","setTimeout","clearTimeout","blankUrl","onceIframeLoaded","iframeDoc","serializedIframeNode","link","styleSheetLoadTimeout","styleSheetLoaded","onceStylesheetLoaded","serializedLinkNode","getDefaultExportFromCjs$1","__esModule","hasOwnProperty","getAugmentedNamespace$1","f2","default","a22","Reflect","construct","arguments","apply","d","picocolors_browser$1","exports","x$1","create$1","isColorSupported","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","picocolors_browserExports$1","require$$2$1","freeze","__proto__","Symbol","toStringTag","pico$1","terminalHighlight$1$1","CssSyntaxError$3$1","CssSyntaxError","Error","message","line","column","file","plugin22","super","reason","plugin","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","aside","lines","start","end","maxWidth","map","index2","number","gutter","spacing","code","cssSyntaxError$1","symbols$1","isClean","my","DEFAULT_RAW$1","after","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","colon","commentLeft","commentRight","emptyBody","indent","semicolon","Stringifier$2$1","builder","atrule","params","rawValue","raws","afterName","nodes","block","between","beforeAfter","detect","raw","buf","depth","step","last","child","before","left","right","decl","string","prop","important","own","first","root2","root","rawCache","toUpperCase","walk","rawBeforeClose","rawBeforeComment","walkComments","rawBeforeDecl","walkDecls","rawBeforeOpen","rawBeforeRule","rawColon","rawEmptyBody","rawIndent","p","rawSemicolon","rule","ownSemicolon","stringifier$1","Stringifier$1$1","stringify$4$1","stringify_1$1","isClean$2$1","my$2$1","CssSyntaxError$2$1","Stringifier2$1","stringify$3$1","cloneNode$1","cloned","isArray","Node$4$1","defaults","clone","append","addToError","postcssNode","input","insertAfter","overrides","insertBefore","cleanRaws","keepBetween","cloneAfter","cloneBefore","opts","rangeBy","getProxyProcessor","toProxy","markDirty","next","index","positionBy","stringRepresentation","positionInside","word","prev","endIndex","defaultType","remove","replaceWith","bookmark","foundSelf","result2","toJSON","_","inputs","fixed","emitInputs","inputsNextIndex","inputId","input2","proxyCache","Proxy","stringifier2","node","proxyOf","node$1","Node$3$1","Declaration$4$1","variable","declaration$1","nonSecure$1","nanoid","size","random","SourceMapConsumer","SourceMapConsumer$2$1","SourceMapGenerator","SourceMapGenerator$2$1","existsSync","existsSync$1","readFileSync","readFileSync$1","dirname","dirname$1$1","join$1","PreviousMap$2$1","loadAnnotation","inline","startWith","annotation","loadMap","mapFile","consumer","consumerCache","decodeInline","decodeURIComponent","substr","lastMatch","Buffer","atob","encoding","getAnnotationURL","sourceMapString","isMap","mappings","_mappings","sections","comments","lastIndexOf","loadFile","fromSourceMap","prevPath","withContent","sourcesContent","previousMap$1","SourceMapConsumer$1$1","SourceMapGenerator$1$1","fileURLToPath","fileURLToPath$1","pathToFileURL","pathToFileURL$1$1","isAbsolute","isAbsolute$1","resolve","resolve$1$1","nanoid$2","terminalHighlight$2","CssSyntaxError$1$1","PreviousMap$1$1","fromOffsetCache$1","sourceMapAvailable$1$1","pathAvailable$1$1","Input$4$1","hasBOM","mapResolve","offset","fromOffset","col","lastLine","lineToIndex","prevIndex","l2","mid","sourceRoot","to","fromUrl","originalPositionFor","protocol","sourceContentFor","json","input$1","registerInput","SourceMapConsumer$3","SourceMapGenerator$3","dirname$2","relative","relative$1","resolve$2","sep","sep$1","pathToFileURL$2","Input$3$1","sourceMapAvailable$2","pathAvailable$2","mapGenerator$1","stringify2","cssString","mapOpts","originalCSS","usesFileUrls","absolute","memoizedFileURLs","memoizedPaths","memoizedURLs","addAnnotation","content","isInline","toBase64","outputFile","eol","applyPrevMaps","previous","toUrl","applySourceMap","clearAnnotation","generate","generateMap","generateString","ignoreInvalidMapping","addMapping","generated","isSourcesContent","setSourcesContent","isAnnotation","noSource","mapping","sourcePath","charCodeAt","cached","previousMaps","already","toFileUrl","setSourceContent","btoa","unescape","encodeURIComponent","fileURL","encodeURI","Node$2$1","Comment$4$1","comment$1","parse$4$1","Rule$4$1","AtRule$4$1","Root$6$1","isClean$1$1","my$1$1","Declaration$3$1","Comment$3$1","Node$1$1","cleanSource$1","markDirtyUp$1","Container$7$1","Container","children","normalize","each","callback","iterator","getIterator","indexes","condition","lastEach","args","cb","exist","existIndex","reverse","splice","sample","selector","rebuild","prepend","unshift","removeAll","replaceValues","pattern","props","fast","walkAtRules","walkRules","registerParse","dependant","registerRule","registerAtRule","registerRoot","container$1","setPrototypeOf","LazyResult$4$1","Processor$3$1","Container$6$1","Document$3$1","toResult","registerLazyResult","registerProcessor","document$1$1","printed$1","warnOnce$2$1","Warning$2$1","range","opt","warning$1","Warning$1$1","Result$3$1","processor2","processor","messages","lastPlugin","postcssPlugin","warning2","warnings","filter","result$1","SINGLE_QUOTE$1","DOUBLE_QUOTE$1","BACKSLASH$1","SLASH$1","NEWLINE$1","SPACE$1","FEED$1","TAB$1","CR$1","OPEN_SQUARE$1","CLOSE_SQUARE$1","OPEN_PARENTHESES$1","CLOSE_PARENTHESES$1","OPEN_CURLY$1","CLOSE_CURLY$1","SEMICOLON$1","ASTERISK$1","COLON$1","AT$1","RE_AT_END$1","RE_WORD_END$1","RE_BAD_BRACKET$1","RE_HEX_ESCAPE$1","Container$5$1","AtRule$3$1","atRule$1","LazyResult$3$1","Processor$2$1","Container$4$1","Root$5$1","ignore","root$1","list$2$1","comma","space","separators","array","current","func","inQuote","prevQuote","escape","letter","list_1$1","Container$3$1","list$1$1","Rule$3$1","values","sep2","rule$1","Declaration$2$1","tokenizer2$1","quote","escaped","escapePos","currentToken","valueOf","ignoreErrors","returned","unclosed","what","back","token","endOfFile","nextToken","ignoreUnclosed","controlChar","fromCharCode","lastIndex","position","Comment$2$1","AtRule$2$1","Root$4$1","Rule$2$1","SAFE_COMMENT_NEIGHBOR$1","empty","parser$1","spaces","createTokenizer","shift","unnamedAtrule","init","brackets","tokenizer","getPosition","spacesAndCommentsFromEnd","spacesAndCommentsFromStart","checkMissedSemicolon","tokens","founded","entries","doubleColon","customProperty","findLastWithPosition$1","unknownWord","firstSpaces","precheckMissedSemicolon","stringFrom","spacesFromEnd","cache","concat","emptyRule","unexpectedClose","endFile","unclosedBlock","freeSemicolon","bracket","unclosedBracket","parse","clean","reduce","all","lastTokenType","Container$2$1","Parser2$1","Input$2$1","parse$3$1","parser2","process","env","NODE_ENV","parse_1$1","isClean$3","my$3","MapGenerator$1$1","stringify$2$1","Container$1$1","Document$2$1","warnOnce$1$1","Result$2$1","parse$2$1","Root$3$1","TYPE_TO_CLASS_NAME$1","PLUGIN_PROPS$1","AtRule","AtRuleExit","CommentExit","Declaration","DeclarationExit","DocumentExit","Once","OnceExit","prepare","Root","RootExit","Rule","RuleExit","NOT_VISITORS$1","isPromise$1","then","getEvents$1","toStack$1","events","eventIndex","visitorIndex","visitors","cleanMarks$1","postcss$2$1","LazyResult$2$1","LazyResult","stringified","processed","syntax","parser","result","helpers","postcss","plugins","async","Promise","reject","processing","runAsync","onRejected","catch","onFinally","getAsyncError","handleError","postcssVersion","pluginName","pluginVer","runtimeVer","version","b","parseInt","prepareVisitors","listeners","event","hasListener","promise","runOnRoot","visitTick","visitor","roots","subRoot","sync","stringifier","walkSync","visitSync","onFulfilled","visit2","registerPostcss","lazyResult$1","MapGenerator2$1","stringify$1$1","warnOnce2$1","parse$1$1","Result$1$1","NoWorkResult$1$1","_processor","_css","_opts","_map","self","generatedCSS","generatedMap","_root","noWorkResult$1","NoWorkResult2$1","LazyResult$1$1","Document$1$1","Root$2$1","Processor$1$1","normalized","use","processor$1","Declaration$1$1","PreviousMap2$1","Comment$1$1","AtRule$1$1","Input$1$1","Root$1$1","Rule$1$1","fromJSON$1$1","ownInputs","inputHydrated","fromJSON_1$1","CssSyntaxError2$1","Declaration2$1","LazyResult2$1","Container2$1","Processor2$1","stringify$5","fromJSON$2","Document22","Warning2$1","Comment2$1","AtRule2$1","Result2$1","Input2$1","parse$5","list$3","Rule2$1","Root2$1","Node2$1","postcss$3","initializer","warningPrinted","creator","LANG","transformer","processOpts","pluginOpts","fromJSON","list","atRule","Processor","Warning","Result","Input","postcss_1$1","postcss$1$1","__defProp2","__publicField2","__defNormalProp2","getDefaultExportFromCjs","getAugmentedNamespace","picocolors_browser","x$2","create","picocolors_browserExports","require$$2","pico","terminalHighlight$1","CssSyntaxError$3","CssSyntaxError2","cssSyntaxError","symbols","DEFAULT_RAW","Stringifier$2","Stringifier$1","stringify$4","stringify_1","isClean$2","my$2","CssSyntaxError$2","Stringifier22","stringify$3","cloneNode","Node$4","Node$3","Declaration$4","declaration","nonSecure","SourceMapConsumer$2","SourceMapGenerator$2","dirname$1","PreviousMap$2","previousMap","SourceMapConsumer$1","SourceMapGenerator$1","pathToFileURL$1","resolve$1","terminalHighlight","CssSyntaxError$1","PreviousMap$1","fromOffsetCache","sourceMapAvailable$1","pathAvailable$1","Input$4","Input$3","sourceMapAvailable","pathAvailable","mapGenerator","Node$2","Comment$4","parse$4","Rule$4","AtRule$4","Root$6","isClean$1","my$1","Declaration$3","Comment$3","Node$1","cleanSource","markDirtyUp","Container$7","Container2","container","LazyResult$4","Processor$3","Container$6","Document$3","document$1","printed","warnOnce$2","Warning$2","warning","Warning$1","Result$3","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","Container$5","AtRule$3","LazyResult$3","Processor$2","Container$4","Root$5","list$2","list_1","Container$3","list$1","Rule$3","Declaration$2","tokenizer22","Comment$2","AtRule$2","Root$4","Rule$2","SAFE_COMMENT_NEIGHBOR","findLastWithPosition","Container$2","Parser22","Input$2","parse$3","parse_1","MapGenerator$1","stringify$2","Container$1","Document$2","warnOnce$1","Result$2","parse$2","Root$3","TYPE_TO_CLASS_NAME","PLUGIN_PROPS","NOT_VISITORS","isPromise","getEvents","toStack","cleanMarks","postcss$2","LazyResult$2","LazyResult2","lazyResult","MapGenerator22","stringify$1","warnOnce22","parse$1","Result$1","NoWorkResult$1","noWorkResult","NoWorkResult22","LazyResult$1","Document$1","Root$2","Processor$1","Declaration$1","PreviousMap22","Comment$1","AtRule$1","Input$1","Root$1","Rule$1","fromJSON$1","fromJSON_1","CssSyntaxError22","Declaration22","LazyResult22","Container22","Processor22","Document222","Warning22","Comment22","AtRule22","Result22","Input22","Rule22","Root22","Node22","postcss_1","postcss$1","BaseRRNode","_args","childIterator","firstChild","nextSibling","_newChild","_refChild","_node","testableAccessors","testableMethods","untaintedBasePrototype","getUntaintedPrototype","untaintedAccessorCache","getUntaintedAccessor","untaintedMethodCache","getUntaintedMethod","mutationObserverCtor","on","fn","target","capture","passive","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","throttle","wait","timeout","now","Date","leading","remaining","context","trailing","hookSetter","isRevoked","receiver","nowTimestamp","getWindowScroll","_c","_d","scrollingElement","pageXOffset","documentElement","top","pageYOffset","getWindowHeight","innerHeight","clientHeight","getWindowWidth","innerWidth","clientWidth","closestElementOfNode","isBlocked","isIgnored","isAncestorRemoved","legacy_isTouchEvent","changedTouches","isSerializedIframe","nodeName","isSerializedStylesheet","hasShadowRoot","getTime","StyleSheetMirror","styleIDMap","newId","idStyleMap","getStyle","generateId","getShadowHost","shadowHost","DOCUMENT_FRAGMENT_NODE","shadowHostInDom","rootShadowHost","getRootShadowHost","inDom","EventType","EventType2","IncrementalSource","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","MediaInteractions","MediaInteractions2","NodeType","isNodeInLinkedList","DoubleLinkedList","head","addNode","__ln","previousSibling","tail","removeNode","moveKey","parentId","MutationBuffer","Set","mutations","processMutation","emit","frozen","locked","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","parentTag","addedSet","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","mapRemoves","movedSet","isParentRemoved","removesSubTreeCache","isAncestorInSet","droppedSet","candidate","tailNode","unhandledNode","payload","texts","genTextAreaValueMutation","attribute","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","removes","attributeMap","movedMap","mutationCb","textarea","item","cn","m","oldValue","attributeName","unattachedDoc","implementation","createHTMLDocument","old","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","addedNodes","genAdds","removedNodes","nodeId","isSerialized","deepDelete","queue","n22","processRemoves","processedNodeManager","inOtherBuffer","targetId","canvasManager","unfreeze","isFrozen","lock","unlock","addsSet","_isParentRemoved","_isAncestorInSet","errorHandler","callbackWrapper","rest","mutationBuffers","getEventTarget","composedPath","initMutationObserver","rootEl","mutationBuffer","observer","processMutations","observe","attributeOldValue","characterData","characterDataOldValue","childList","subtree","initMouseInteractionObserver","mouseInteractionCb","sampling","mouseInteraction","disableMap","handlers","currentPointerType","Number","isNaN","endsWith","eventKey","eventName","handler","pointerType","thisEventKey","Mouse","Touch","Pen","MouseDown","MouseUp","Click","clientX","clientY","x","getHandler","PointerEvent","TouchStart","TouchEnd","h","initScrollObserver","scrollCb","evt","defaultView","scrollLeftTop","scroll","INPUT_TAGS","lastInputValueMap","getNestedCSSRulePositions","childRule","hasNestedCSSRule","parentRule","CSSGroupingRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","parentStyleSheet","recurse","getIdAndStyleId","styleMirror","styleId","initAdoptedStyleSheetObserver","host2","hostId","patchTarget","originalPropertyDescriptor","_a3","sheets","adoptStyleSheets","initObservers","o2","hooks","currentWindow","mousemoveCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","selectionCb","customElementCb","mutation","mousemove","viewportResize","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","selection","customElement","mergeHooks","recordDOM","mousemoveHandler","threshold","callbackThreshold","mousemoveCallback","timeBaseline","positions","wrappedCb","totalOffset","timeOffset","updatePosition","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","initMoveObserver","mouseInteractionHandler","scrollHandler","viewportResizeHandler","lastH","lastW","initViewportResizeObserver","inputHandler","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isTrusted","isChecked","cbWithDedup","text2","v2","lastInputValue","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","initInputObserver","mediaInteractionHandler","Play","Pause","Seeked","VolumeChange","RateChange","initMediaInteractionObserver","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","CSSStyleSheet","insertRule","thisArg","argumentsList","addRule","styleBlock","deleteRule","replaceSync","removeRule","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initStyleSheetObserver","ignoreCSSAttributes","setProperty","CSSStyleDeclaration","priority","removeProperty","initStyleDeclarationObserver","collectFonts","fontMap","originalFontFace","FontFace","family","descriptors","fontFace","fontSource","Uint8Array","restoreHandler","fonts","initFontObserver","selectionObserver","param","collapsed","updateSelection","getSelection","isCollapsed","ranges","count","rangeCount","getRangeAt","startContainer","startOffset","endContainer","endOffset","initSelectionObserver","customElementObserver","define","initCustomElementObserver","pluginHandlers","plugin3","disconnect","CrossOriginIframeMirror","generateIdFn","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","getRemoteId","getRemoteIds","ids","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","IframeManager","wrappedEmit","recordCrossOriginIframes","crossOriginIframeStyleMirror","handleMessage","iframes","crossOriginIframeMap","addLoadListener","loadListener","isAttachIframe","adoptedStyleSheets","crossOriginMessageEvent","transformedEvent","transformCrossOriginEvent","isCheckout","FullSnapshot","crossOriginIframeMirror","replaceIdOnNode","crossOriginIframeRootIdMap","patchRootIdOnNode","timestamp","IncrementalSnapshot","Mutation","Meta","Load","DomContentLoaded","Plugin","Custom","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","Scroll","CanvasMutation","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","styles","iframeMirror","ShadowDomManager","WeakSet","patchAttachShadow","shadowDoms","restoreHandlers","iframeElement","manager","option","sRoot","chars","lookup","i$1","canvasVarMap","saveWebGLVar","isInstanceOfWebGLObject","list2","ctor","contextMap","variableListFor$1","serializeArg","arg","Float32Array","Float64Array","Int32Array","Uint16Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","ArrayBuffer","base64","arraybuffer","bytes","encode","DataView","byteOffset","byteLength","HTMLImageElement","HTMLCanvasElement","ImageData","serializeArgs","supportedWebGLConstructorNames","initCanvasContextObserver","setPreserveDrawingBufferToTrue","contextType","ctxName","getNormalizedContextName","contextAttributes","preserveDrawingBuffer","patchGLPrototype","getOwnPropertyNames","recordArgs","hookHandler","setter","encodedJs","blob","Blob","WorkerWrapper","objURL","webkitURL","createObjectURL","worker","Worker","revokeObjectURL","CanvasManager","latestId","invokeId","rafStamps","pendingCanvasMutations","initCanvasMutationObserver","initCanvasFPSObserver","clear","resetObservers","fps","canvasContextReset","snapshotInProgressMap","onmessage","commands","timeBetweenSnapshots","rafId","lastSnapshotTime","takeCanvasSnapshots","matchedCanvas","getCanvas","getContextAttributes","COLOR_BUFFER_BIT","bitmap","createImageBitmap","postMessage","requestAnimationFrame","cancelAnimationFrame","startRAFTimestamping","startPendingCanvasMutationFlusher","canvas2DReset","props2D","CanvasRenderingContext2D","initCanvas2DMutationObserver","canvasWebGL1and2Reset","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","initCanvasWebGLMutationObserver","flushPendingCanvasMutations","setLatestRAFTimestamp","_values","flushPendingCanvasMutationFor","valuesWithType","type2","StylesheetManager","adoptedStyleSheetCb","linkEl","trackedLinkElements","trackStylesheetInLinkElement","adoptedStyleSheetData","styleIds","CSSRule","r2","_linkEl","ProcessedNodeManager","thisBuffer","buffers","nodeMap","active","destroy","takeFullSnapshot$1","recording","cleanFrame","debug","record","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","packFn","mousemoveWait","recordAfter","errorHandler2","inEmittingFrame","passEmitsToParent","date","email","month","search","tel","time","week","select","password","lastFullSnapshotEvent","NodeList","DOMTokenList","polyfill$1","incrementalSnapshotCount","eventProcessor","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","getMirror","nodeMirror","slimDOM","snapshot","initialOffset","CustomElement","n$1","t2","addCustomEvent","tag","freezePage","takeFullSnapshot","NotStarted","Running","Stopped","byteToHex","i","getRandomValues","rnds8","_state","v1","rnds","crypto","rng","state","msecs","Infinity","nsecs","undefined","clockseq","updateV1State","RangeError","tl","tmh","n","v1Bytes","arr","unsafeStringify","s","e","t","fetchImpl","captured","bytesSent","rescanTimer","captureFromDocument","fetch","mode","credentials","ok","dispose","r","o","a","hostname","c","l","subarray","u","searchParams","arrayBuffer","headers","contentType","bodyBase64","g","f","w","v","S","T","domReactions","softReactions","targets","pendingDead","nextPendingId","schedule","unschedule","currentUrl","onReaction","onClick","onclick","interactive","stateFor","lastClickTs","trackRage","trackDead","rageTimer","done","burst","burstFirstTs","burstLastTs","burstCount","burstOrigin","NEGATIVE_INFINITY","unreactedGestures","unreactedClicks","lastUnreactedTs","firstUnreacted","deadEmitted","scheduleRageVerdict","settleRage","E","tsMs","clickCount","durationMs","settleDead","I","occurrences","C","U","parseFloat","R","pow","P","F","M","A","getComputedStyle","backgroundImage","backgroundColor","L","visibility","display","opacity","getClientRects","$","textOverflow","webkitLineClamp","clip","clipPath","overflowX","overflowY","scrollWidth","scrollHeight","D","createRange","selectNodeContents","bottom","B","zIndex","isFinite","N","emitClip","emitOverlap","emitMisalign","emitBrokenAsset","emittedIds","clippedIds","overlapPairs","misalignedIds","brokenAssetUrls","emitCount","scanCount","scan","once","clearInterval","setInterval","order","floating","axis","fg","round","bg","ratio","detectOverlaps","detectMisalignedTables","detectBrokenImages","id2","sample2","O","NONE","ERROR","WARN","INFO","DEBUG","q","config","level","enableConsole","enableStorage","isBrowser","setConfig","shouldLog","formatMessage","toISOString","logToStorage","info","log","localStorage","getItem","setItem","getLogs","clearLogs","removeItem","K","H","W","Q","V","_isPolling","_pollIntervalMs","_queue","_areWeOnline","_sendRequest","navigator","onLine","_flush","retriableRequest","retriesPerformedSoFar","_shouldRetry","_enqueue","statusCode","status","ceil","retryAt","requestOptions","_poll","_poller","unload","_sendBeaconRequest","sendBeacon","G","storageKey","maxQueueSize","getQueue","setQueue","clearQueue","addToQueue","removeFromQueue","getQueueLength","J","X","Y","Z","ee","keepalive","te","se","TextEncoder","ie","ne","sessionId","fromEntries","re","apiKey","ingestionUrl","monthlyLimitReached","throttledUntil","endUserId","cspBlocked","consecutiveFetchFailures","requestTimeout","currentBatchSize","_isDrainingPersisted","baseUrl","persistence","retryQueue","_sendRequestInternal","flushPersistedEvents","setTrackingContext","checkMonthlyLimit","_sendPersistedBatch","isThrottled","trackedFetch","Authorization","windowId","automaticProperties","sdkVersion","_apply429","AbortController","abort","estimatedSize","signal","retryAfterSeconds","referrer","userId","entryURL","Referer","statusText","sendEvents","sendEventsChunked","wouldExceed","_sendChunkWithRetry","flat","_persistEvents","sendUserData","userAttributes","posthogName","identityToken","sendSessionEndBeacon","sendHeartbeatBeacon","sendBeaconEvents","sendCustomEvent","eventProperties","eventId","errorText","sendCustomEventBatch","sendCustomEventBatchBeacon","sendLog","sendNetworkError","errorType","sendSpans","spans","sendSpansBeacon","sendError","exceptionType","mechanism","sendIpInfo","ipDetectionMethod","shouldSkipNetworkTracking","trackedFetchWithBeaconFallback","requestId","duration","timestampMs","classifyHttpError","errorMessage","startTimeMs","spanName","spanStatus","isCSPViolation","classifyNetworkError","errorName","Response","Headers","oe","ae","ce","de","le","ue","hash","URLSearchParams","he","redactedText","unredactedFields","redactedFields","redactionMode","excludeSelectors","redactionStrategy","unredactFields","setFieldsToUnredact","redactFields","setFieldsToRedact","legacyRedactFields","userFields","applyRedactionClasses","isPasswordSelector","applyUnredactionClasses","clearUnredactedFields","removeUnredactionClasses","hasUnredactedFields","getRedactionMode","getUnredactedFields","getMaskTextSelector","getOriginalValue","isElementUnredacted","shouldUnredactElement","pe","me","userAgent","screen","ge","fe","device_type","browser","browser_version","os","os_version","screen_resolution","viewport_size","color_depth","timezone","language","languages","colorDepth","Intl","DateTimeFormat","resolvedOptions","timeZone","raw_user_agent","ye","current_url","title","referrer_domain","initial_referrer","initial_referrer_domain","initial_host","we","be","utm_source","utm_medium","utm_campaign","utm_term","utm_content","Se","sessionProperties","userProperties","initialProperties","isInitialized","enableAutomaticProperties","enableSessionProperties","enableUserProperties","propertyDenylist","initialize","initial_url","initial_pathname","initial_utm_source","initial_utm_medium","initial_utm_campaign","initial_utm_term","initial_utm_content","ve","loadSessionProperties","getEventProperties","getAutomaticProperties","$initial_properties_captured","setSessionProperty","applyDenylist","getAutomaticPropertiesWithGeoIP","saveSessionProperties","setSessionProperties","getSessionProperty","removeSessionProperty","setUserProperty","setUserProperties","getUserProperty","getUserProperties","getSessionProperties","removeUserProperty","setOnce","clearSessionProperties","clearUserProperties","sessionStorage","updateAutomaticProperties","getAllProperties","automatic","session","user","initial","Te","items","ke","shouldReport","previousKey","_e","Ie","Ee","disableErrorDefaults","matched","stackFrames","denyUrls","allowUrls","Ce","Ue","Re","Pe","function","Fe","Me","Ae","Le","$e","De","Be","padStart","Ne","Oe","cause","errors","_debugIds","_sentryDebugIds","debugIdKeyCount","sentryDebugIdKeyCount","xe","handled","release","environment","commitSha","dist","componentStack","networkState","requestContext","sessionStartTimestampMs","breadcrumbs","linkedErrors","debugIdMap","qe","connection","online","effectiveType","Ke","installed","deduper","install","onError","onRejection","onResourceError","captureThirdPartyResourceErrors","onCsp","sourceFile","effectiveDirective","violatedDirective","blockedURI","uninstall","filters","send","ze","je","He","We","Qe","Ve","Ge","Je","Xe","Ye","msCrypto","Ze","et","tt","st","it","traceId","rootSpanId","flushTimer","resourceObserver","started","originalFetch","cfg","installTracePropagation","observeResources","capturePageLoad","startNewTrace","getTraceHeaders","traceparent","startSpan","startInactiveSpan","setStatus","spanId","parentSpanId","op","flush","getSession","stop","performance","getEntriesByType","timeOrigin","fetchStart","loadEventEnd","domComplete","responseEnd","transferSize","domainLookupStart","domainLookupEnd","connectStart","connectEnd","requestStart","responseStart","domInteractive","domContentLoadedEventEnd","recordResource","pageLoadFlushDelayMs","PerformanceObserver","getEntries","buffered","shouldSkipUrl","startTime","initiatorType","encodedBodySize","decodedBodySize","nt","rt","isTrackerStarted","isStarted","setupDomReadyHandler","onDomReady","isDomReady","requestQueue","processRequest","domReadyHandlers","queueRequest","addEvent","identifyUser","trackPageView","registerDomReadyHandler","suppressConsoleErrors","preventDefault","__humanBehaviorGlobalTracker","logLevel","configureLogging","enableConsoleTracking","enableNetworkTracking","enableErrorTracking","captureRequestBodies","enableWebVitals","enableTracing","minimumDurationMilliseconds","setUnredactedFields","enableAutomaticTracking","setupAutomaticTracking","automaticTrackingOptions","eventQueue","pendingCustomEvents","pendingLogs","pendingNetworkErrors","customEventBatch","customEventBatchTimer","CUSTOM_EVENT_FLUSH_MS","CUSTOM_EVENT_BATCH_MAX","_sessionActivityTimestamp","_sessionStartTimestamp","isProcessing","flushInterval","IDLE_FLUSH_INTERVAL_MS","LIVE_FLUSH_INTERVAL_MS","LIVE_FLUSH_GRACE_MS","flushTier","liveFlushDeadline","heartbeatInterval","HEARTBEAT_INTERVAL_MS","SESSION_IDLE_TIMEOUT_MS","SESSION_MAX_LENGTH_MS","focusBlurGraceTimeout","FOCUS_BLUR_GRACE_MS","lastEmittedFocusState","initialized","initializationPromise","originalConsole","consoleTrackingEnabled","networkTrackingEnabled","captureRequestBodiesFlag","lastRequestContextAt","ERROR_REQUEST_WINDOW_MS","enableConsoleTrackingFlag","enableNetworkTrackingFlag","enableErrorTrackingFlag","enableWebVitalsFlag","enableTracingFlag","tracing","errorCapture","errorFilterOptions","captureThirdPartyResourceErrorsFlag","navigationTrackingEnabled","previousUrl","originalPushState","originalReplaceState","navigationListeners","lastPushStateAt","NAVIGATION_DEDUPE_MS","_connectionBlocked","recordInstance","sessionStartTime","rrwebRecord","fullSnapshotTimeout","cssSnapshotCapture","localAssetSnapshotCapture","contrastCapture","brokenAssetHandler","brokenAssetSeen","_isIdle","_lastActivityTimestamp","IDLE_THRESHOLD_MS","frictionClicks","frictionMutationObserver","api","MAX_QUEUE_SIZE","redactionManager","propertyManager","getCookie","setCookie","_window_id_storage_key","_primary_window_exists_storage_key","getOrCreateSessionId","getOrCreateWindowId","setupWindowUnloadListener","setupPageUnloadHandler","setupNavigationTracking","ensureInitialized","history","pushState","replaceState","trackNavigationEvent","$navigation_type","navigationType","customEvent","eventType","checkAndRefreshSession","elementText","addBreadcrumb","page","shouldSkipDueToMinimumDuration","properties","flushPendingCustomEvents","queueCustomEvent","visibilityState","flushCustomEventBatchBeacon","flushCustomEventBatch","drainPendingCustomEventsForTeardown","trackButtons","trackLinks","trackForms","includeText","includeClasses","setupAutocapture","setupAutomaticFormTracking","setupFrictionClickDetection","buildDomPath","elementId","role","elementClass","fireFrictionEvent","setupAutomaticLinkTracking","FormData","formId","formAction","action","formMethod","fields","formClass","cleanupNavigationTracking","none","trackConsoleEvent","errorData","flushPendingNetworkErrors","lastRequestContext","buildRequestContext","requestBody","requestHeaders","headersToObject","responseBody","XMLHttpRequest","setRequestHeader","__hb","handleXhrComplete","enableWebVitalsTracking","Qt","onFCP","onLCP","onCLS","onINP","onTTFB","$web_vitals_metric","$web_vitals_value","$web_vitals_rating","rating","$web_vitals_id","$web_vitals_navigation_type","$web_vitals_pageload_id","responseText","setupErrorCapture","captureException","flushPendingLogs","logData","enablePageLoadTracking","trackPageLoad","disableConsoleTracking","isSDKStackFrame","__humanBehaviorActiveTracker","emitVisibilityMarker","flushEvents","setupWindowFocusTracking","getSessionDuration","__hb_pending_snapshots","viewLogs","originalEndUserId","actualUserId","wasExistingUser","getUserAttributes","armFlushTimer","addRecordingEvent","HTMLElement","emitFocusMarker","hasFocus","onWindowBlur","onWindowFocus","noteLiveViewerSignal","liveViewerActive","isInteractiveEvent","updateIdleState","_canUseSessionStorage","_canUseLocalStorage","_getWindowIdFromStorage","_setWindowIdInStorage","_removeWindowIdFromStorage","_getPrimaryWindowExists","_setPrimaryWindowExists","setTime","toUTCString","cookie","deleteCookie","logout","_clearStoredSession","createNewSession","redact","setRedactedFields","restartWithNewRedaction","getStoredSession","updateSessionActivity","sessionStartTimestamp","lastActivityTimestamp","_adoptOrCreateSession","_readStoredSessionRaw","_writeStoredSession","getSessionId","getCurrentUrl","getSnapshotFrequencyInfo","sessionDuration","currentInterval","currentThreshold","phase","testConnection","success","getConnectionStatus","blocked","recommendations","isPreexistingUser","getUserInfo","HumanBehaviorTracker","dt","lt","ut","persisted","timeStamp","ht","pt","activationStart","mt","prerendering","wasDiscarded","delta","gt","supportedEntryTypes","ft","yt","wt","vt","bt","St","Tt","_t","kt","It","firstHiddenTime","Et","Ct","Ut","reportAllChanges","Rt","Pt","Ft","Mt","At","interactionId","Lt","interactionCount","Dt","xt","Bt","Nt","Ot","entryType","latency","sort","qt","requestIdleCallback","Kt","zt","jt","Ht","Wt","CLSThresholds","FCPThresholds","INPThresholds","LCPThresholds","TTFBThresholds","hadRecentInput","takeRecords","PerformanceEventTiming","durationThreshold","humanbehavior","captureNextError","tracker","client","react","HumanBehaviorContext","createContext","createQueuingImplementation","queueEvent","HumanBehaviorPageView","useContext","useEffect","handleRouteChange","useHumanBehavior","HumanBehaviorErrorBoundary","React","Component","hasError","getDerivedStateFromError","componentDidCatch","render","fallback","HumanBehaviorProvider","humanBehavior","setHumanBehavior","useState","setEventQueue","isMounted","setIsMounted","setIsInitialized","apiKeyRef","useRef","clientRef","eventQueueRef","useCallback","cdnUrl","currentQueue","contextValue","useMemo","_jsxs","Provider","_jsx","_Fragment","useRedaction","useUserTracking","createHumanBehaviorReact","logError","logWarn","logDebug"],"mappings":"gMAAA,IAGIA,EAHAC,EAAYC,OAAOC,eAEnBC,EAAgB,CAACC,EAAKC,EAAKC,IADT,EAACF,EAAKC,EAAKC,IAAUD,KAAOD,EAAMJ,EAAUI,EAAKC,EAAK,CAAEE,YAAY,EAAMC,cAAc,EAAMC,UAAU,EAAMH,UAAWF,EAAIC,GAAOC,EACjHI,CAAgBN,EAAoB,iBAARC,EAAmBA,EAAM,GAAKA,EAAKC,GAEpGK,EAAcV,OAAOC,eAErBU,EAAkB,CAACR,EAAKC,EAAKC,IADT,EAACF,EAAKC,EAAKC,IAAUD,KAAOD,EAAMO,EAAYP,EAAKC,EAAK,CAAEE,YAAY,EAAMC,cAAc,EAAMC,UAAU,EAAMH,UAAWF,EAAIC,GAAOC,EACnHO,CAAkBT,EAAoB,iBAARC,EAAmBA,EAAM,GAAKA,EAAKC,GACxGQ,EAA6B,CAAEC,IACjCA,EAAUA,EAAoB,SAAI,GAAK,WACvCA,EAAUA,EAAwB,aAAI,GAAK,eAC3CA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAgB,KAAI,GAAK,OACnCA,EAAUA,EAAiB,MAAI,GAAK,QACpCA,EAAUA,EAAmB,QAAI,GAAK,UAC/BA,GAPwB,CAQ9BD,GAAc,CAAA,GACjB,MAAME,EAAsB,CAC1BC,KAAM,CACJ,aACA,aACA,gBACA,cACA,iBAEFC,WAAY,CAAC,OAAQ,eACrBC,QAAS,CAAC,aAAc,gBAAiB,oBACzCC,iBAAkB,IAEdC,EAAoB,CACxBJ,KAAM,CAAC,WAAY,eACnBC,WAAY,CAAC,gBACbC,QAAS,GACTC,iBAAkB,CAAC,gBAEfE,EAA2B,CAAA,EAIjC,SAASC,EAAwBlB,GAC/B,GAAIiB,EAAyBjB,GAC3B,OAAOiB,EAAyBjB,GAClC,MAAMmB,EAAaC,WAAWpB,GACxBqB,EAAmBF,EAAWG,UAC9BC,EAAgBvB,KAAOW,EAAsBA,EAAoBX,QAAO,EACxEwB,EAAuBC,QAC3BF,GACAA,EAAcG,MACXC,IACC,IAAIC,EAAKC,EACT,OAAOJ,QACoG,OAAxGI,EAA4E,OAAtED,EAAMhC,OAAOkC,yBAAyBT,EAAkBM,SAAqB,EAASC,EAAIG,UAAe,EAASF,EAAGG,WAAWC,SAAS,qBAKlJC,EAAclC,KAAOgB,EAAoBA,EAAkBhB,QAAO,EAClEmC,EAAqBV,QACzBS,GAAeA,EAAYR,MAExBU,IACC,IAAIR,EACJ,MAA2C,mBAA7BP,EAAiBe,KAA+D,OAAnCR,EAAMP,EAAiBe,SAAmB,EAASR,EAAII,WAAWC,SAAS,qBAI5I,GAAIT,GAAwBW,IA7BnBf,WAAWiB,KA+BlB,OADApB,EAAyBjB,GAAOmB,EAAWG,UACpCH,EAAWG,UAEpB,IACE,MAAMgB,EAAWC,SAASC,cAAc,UACxCD,SAASE,KAAKC,YAAYJ,GAC1B,MAAMK,EAAML,EAASM,cACrB,IAAKD,EAAK,OAAOxB,EAAWG,UAC5B,MAAMuB,EAAkBF,EAAI3C,GAAKsB,UAEjC,OADAiB,SAASE,KAAKK,YAAYR,GACrBO,EACE5B,EAAyBjB,GAAO6C,EADVxB,CAE/B,CAAE,MACA,OAAOA,CACT,CACF,CACA,MAAM0B,EAA2B,CAAA,EACjC,SAASC,EAAuBhD,EAAKiD,EAAUtB,GAC7C,IAAIC,EACJ,MAAMsB,EAAW,GAAGlD,KAAOmD,OAAOxB,KAClC,GAAIoB,EAAyBG,GAC3B,OAAOH,EAAyBG,GAAUE,KACxCH,GAEJ,MAAMI,EAAqBnC,EAAwBlB,GAC7CsD,EAGA,OAHqB1B,EAAMhC,OAAOkC,yBACtCuB,EACA1B,SACW,EAASC,EAAIG,IAC1B,OAAKuB,GACLP,EAAyBG,GAAYI,EAC9BA,EAAkBF,KAAKH,IAFCA,EAAStB,EAG1C,CACA,MAAM4B,EAAyB,CAAA,EAC/B,SAASC,EAAqBxD,EAAKiD,EAAUb,GAC3C,MAAMc,EAAW,GAAGlD,KAAOmD,OAAOf,KAClC,GAAImB,EAAuBL,GACzB,OAAOK,EAAuBL,GAAUO,KACtCR,GAEJ,MACMS,EADqBxC,EAAwBlB,GACRoC,GAC3C,MAA+B,mBAApBsB,EAAuCT,EAASb,IAC3DmB,EAAuBL,GAAYQ,EAC5BA,EAAgBD,KAAKR,GAC9B,CAoEA,MAAMU,EAAU,CACdC,cApEF,SAAyBC,GACvB,OAAOb,EAAuB,OAAQa,EAAI,gBAC5C,EAmEEC,WAlEF,SAAsBD,GACpB,OAAOb,EAAuB,OAAQa,EAAI,aAC5C,EAiEEE,WAhEF,SAAsBF,GACpB,OAAOb,EAAuB,OAAQa,EAAI,aAC5C,EA+DEG,cA9DF,SAAyBH,GACvB,OAAOb,EAAuB,OAAQa,EAAI,gBAC5C,EA6DEI,YA5DF,SAAuBJ,GACrB,OAAOb,EAAuB,OAAQa,EAAI,cAC5C,EA2DEK,SA1DF,SAAoBL,EAAIM,GACtB,OAAOX,EAAqB,OAAQK,EAAI,WAAjCL,CAA6CW,EACtD,EAyDEC,YAxDF,SAAuBP,GACrB,OAAOL,EAAqB,OAAQK,EAAI,cAAjCL,EACT,EAuDEa,KAtDF,SAAgBR,GACd,OAAKA,GAAQ,SAAUA,EAChBb,EAAuB,aAAca,EAAI,QADb,IAErC,EAoDES,YAnDF,SAAuBT,GACrB,OAAOA,EAAGS,WACZ,EAkDEC,WAjDF,SAAsBV,GACpB,OAAKA,GAAQ,eAAgBA,EACtBb,EAAuB,UAAWa,EAAI,cADJ,IAE3C,EA+CEW,cA9CF,SAAyBX,EAAIY,GAC3B,OAAOzB,EAAuB,UAAWa,EAAI,gBAAtCb,CAAuDyB,EAChE,EA6CEC,iBA5CF,SAA4Bb,EAAIY,GAC9B,OAAOzB,EAAuB,UAAWa,EAAI,mBAAtCb,CAA0DyB,EACnE,EA2CEE,iBA1CF,WACE,OAAOzD,EAAwB,oBAAoB0D,WACrD,EAyCEC,MAxCF,SAAiBC,EAAQC,EAAMC,GAC7B,IACE,KAAMD,KAAQD,GACZ,MAAO,OAGT,MAAMG,EAAWH,EAAOC,GAClBG,EAAUF,EAAYC,GAW5B,MAVuB,mBAAZC,IACTA,EAAQ5D,UAAY4D,EAAQ5D,WAAa,CAAA,EACzC1B,OAAOuF,iBAAiBD,EAAS,CAC/BE,mBAAoB,CAClBlF,YAAY,EACZD,MAAOgF,MAIbH,EAAOC,GAAQG,EACR,KACLJ,EAAOC,GAAQE,EAEnB,CAAE,MACA,MAAO,MAET,CACF,GAiBA,SAASI,EAAUxB,GACjB,OAAOA,EAAGyB,WAAazB,EAAG0B,YAC5B,CACA,SAASC,EAAa3B,GACpB,MAAM4B,EAGJ5B,GAAM,SAAUA,GAAM,SAAUA,GAAMF,EAAQU,KAAKR,IAAO,KAE5D,OAAOpC,QACLgE,GAAU,eAAgBA,GAAU9B,EAAQY,WAAWkB,KAAY5B,EAEvE,CACA,SAAS6B,EAAkBC,GACzB,MAAuD,wBAAhD/F,OAAO0B,UAAUU,SAASoB,KAAKuC,EACxC,CA2BA,SAASC,EAAoBC,GAC3B,IACE,MAAMC,EAASD,EAAGE,OAASF,EAAGG,SAC9B,IAAKF,EACH,OAAO,KAET,IAAIG,EAAYJ,EAAGK,MACdD,GAAaJ,EAAGM,YACnBF,EAAYJ,EAAGM,UAAUC,SAE3B,MAAMC,EAAmBC,MAAMC,KAC7BT,EACCU,GAAUC,EAAcD,EAAOP,IAChCS,KAAK,IACP,OAxCwCC,EAwCEN,GAvChCpE,SAAS,6BAA+B0E,EAAQ1E,SAAS,qCACnE0E,EAAUA,EAAQC,QAChB,8BACA,2DAGGD,CAkCP,CAAE,MAAOE,GACP,OAAO,IACT,CA3CF,IAA4CF,CA4C5C,CACA,SAASF,EAAcD,EAAOP,GAC5B,GA6BF,SAAyBO,GACvB,MAAO,eAAgBA,CACzB,CA/BMM,CAAgBN,GAAQ,CAC1B,IAAIO,EACJ,IACEA,EAEAnB,EAAoBY,EAAMQ,aA1ChC,SAA+BR,GAC7B,MAAMG,QAAEA,GAAYH,EACpB,GAAIG,EAAQM,MAAM,KAAKC,OAAS,EAAG,OAAOP,EAC1C,MAAMQ,EAAY,CAAC,UAAW,OAAOC,KAAKC,UAAUb,EAAMN,UAY1D,MAXwB,KAApBM,EAAMc,UACRH,EAAUI,KAAK,SACNf,EAAMc,WACfH,EAAUI,KAAK,SAASf,EAAMc,cAE5Bd,EAAMgB,cACRL,EAAUI,KAAK,YAAYf,EAAMgB,iBAE/BhB,EAAMiB,MAAMP,QACdC,EAAUI,KAAKf,EAAMiB,MAAMC,WAEtBP,EAAUT,KAAK,KAAO,GAC/B,CA2BMiB,CAAsBnB,EACxB,CAAE,MAAOK,GACPE,EAAoBP,EAAMG,OAC5B,CACA,OAAIH,EAAMQ,WAAWd,KACZ0B,EAAeb,EAAmBP,EAAMQ,WAAWd,MAErDa,CACT,CAAO,CACL,IAAIc,EAAkBrB,EAAMG,QAI5B,OAaJ,SAAwBH,GACtB,MAAO,iBAAkBA,CAC3B,CAlBQsB,CAAetB,IAAUA,EAAMuB,aAAa9F,SAAS,OACvD4F,EAQN,SAAyBG,GACvB,MAAMC,EAAQ,uCACd,OAAOD,EAAepB,QAAQqB,EAAO,SACvC,CAXwBC,CAAgBL,IAEhC5B,EACK2B,EAAeC,EAAiB5B,GAElC4B,CACT,CACF,CAWA,MAAMM,EACJ,WAAAvD,GACErE,EAAgB6H,KAAM,YAA6B,IAAIC,KACvD9H,EAAgB6H,KAAM,cAA+B,IAAIE,QAC3D,CACA,KAAAC,CAAM1E,GACJ,IAAIjC,EACJ,IAAKiC,EAAI,OAAO,EAEhB,OADuC,OAA3BjC,EAAMwG,KAAKI,QAAQ3E,SAAe,EAASjC,EAAI6G,MAC9C,CACf,CACA,OAAAC,CAAQD,GACN,OAAOL,KAAKO,UAAU5G,IAAI0G,IAAO,IACnC,CACA,MAAAG,GACE,OAAOtC,MAAMC,KAAK6B,KAAKO,UAAUE,OACnC,CACA,OAAAL,CAAQ3E,GACN,OAAOuE,KAAKU,YAAY/G,IAAI8B,IAAO,IACrC,CAGA,iBAAAkF,CAAkBlF,GAChB,MAAM4E,EAAKL,KAAKG,MAAM1E,GACtBuE,KAAKO,UAAUK,OAAOP,GAClB5E,EAAGC,YACLD,EAAGC,WAAWmF,QACXC,GAAcd,KAAKW,kBAAkBG,GAG5C,CACA,GAAAC,CAAIV,GACF,OAAOL,KAAKO,UAAUQ,IAAIV,EAC5B,CACA,OAAAW,CAAQC,GACN,OAAOjB,KAAKU,YAAYK,IAAIE,EAC9B,CACA,GAAAC,CAAIzF,EAAI0F,GACN,MAAMd,EAAKc,EAAKd,GAChBL,KAAKO,UAAUa,IAAIf,EAAI5E,GACvBuE,KAAKU,YAAYU,IAAI3F,EAAI0F,EAC3B,CACA,OAAA3C,CAAQ6B,EAAI5E,GACV,MAAM4F,EAAUrB,KAAKM,QAAQD,GAC7B,GAAIgB,EAAS,CACX,MAAMF,EAAOnB,KAAKU,YAAY/G,IAAI0H,GAC9BF,GAAMnB,KAAKU,YAAYU,IAAI3F,EAAI0F,EACrC,CACAnB,KAAKO,UAAUa,IAAIf,EAAI5E,EACzB,CACA,KAAA6F,GACEtB,KAAKO,UAA4B,IAAIN,IACrCD,KAAKU,YAA8B,IAAIR,OACzC,EAKF,SAASqB,GAAeC,QACtBA,EAAOC,iBACPA,EAAgBC,QAChBA,EAAOC,KACPA,EAAI9J,MACJA,EAAK+J,YACLA,IAEA,IAAIC,EAAOhK,GAAS,GACpB,MAAMiK,EAAaH,GAAQI,EAAYJ,GAQvC,OAPIF,EAAiBC,EAAQK,gBAAkBD,GAAcL,EAAiBK,MAE1ED,EADED,EACKA,EAAYC,EAAML,GAElB,IAAIQ,OAAOH,EAAK/C,SAGpB+C,CACT,CACA,SAASE,EAAYE,GACnB,OAAOA,EAAIF,aACb,CACA,MAAMG,EAA0B,qBAwBhC,SAASC,EAAaX,GACpB,MAAMG,EAAOH,EAAQG,KACrB,OAAOH,EAAQY,aAAa,uBAAyB,WAAaT,EAEhEI,EAAYJ,GACV,IACN,CACA,SAASU,EAAqBC,EAAMC,GAClC,IAAIC,EACJ,IACEA,EAAM,IAAIC,IAAIH,EAAMC,GAAWG,OAAOC,SAAS7E,KACjD,CAAE,MAAO8E,GACP,OAAO,IACT,CACA,MACMC,EAAQL,EAAIM,SAASD,MADb,uBAEd,OAAiB,MAATA,OAAgB,EAASA,EAAM,KAAO,IAChD,CAWA,MAAME,EAAiB,6CACjBC,EAAqB,sBACrBC,EAAgB,YAChBC,EAAW,wBACjB,SAAS1D,EAAejB,EAAST,GAC/B,OAAQS,GAAW,IAAIC,QACrBuE,EACA,CAACI,EAAQC,EAAQC,EAAOC,EAAQC,EAAOC,KACrC,MAAMC,EAAWJ,GAASE,GAASC,EAC7BE,EAAaN,GAAUE,GAAU,GACvC,IAAKG,EACH,OAAON,EAET,GAAIH,EAAmBW,KAAKF,IAAaR,EAAcU,KAAKF,GAC1D,MAAO,OAAOC,IAAaD,IAAWC,KAExC,GAAIR,EAASS,KAAKF,GAChB,MAAO,OAAOC,IAAaD,IAAWC,KAExC,GAAoB,MAAhBD,EAAS,GACX,MAAO,OAAOC,IA9BtB,SAAuBlB,GACrB,IAAIW,EAAS,GAOb,OALEA,EADEX,EAAIoB,QAAQ,OAAQ,EACbpB,EAAI3D,MAAM,KAAKgF,MAAM,EAAG,GAAGvF,KAAK,KAEhCkE,EAAI3D,MAAM,KAAK,GAE1BsE,EAASA,EAAOtE,MAAM,KAAK,GACpBsE,CACT,CAqBmCW,CAAchG,GAAQ2F,IAAWC,KAE9D,MAAMK,EAAQjG,EAAKe,MAAM,KACnBmF,EAAQP,EAAS5E,MAAM,KAC7BkF,EAAME,MACN,IAAK,MAAMC,KAAQF,EACJ,MAATE,IAEgB,OAATA,EACTH,EAAME,MAENF,EAAM5E,KAAK+E,IAGf,MAAO,OAAOR,IAAaK,EAAMzF,KAAK,OAAOoF,MAGnD,CACA,SAASS,EAAmB5F,EAAS6F,GAAgB,GACnD,OAAIA,EACK7F,EAAQC,QAAQ,yBAA0B,IAE1CD,EAAQC,QAAQ,yBAA0B,IAAIA,QAAQ,OAAQ,IAEzE,CAgGA,SAAS6F,EAAc9F,EAAS+F,GAC9B,OAhGF,SAAsB/F,EAAS+F,EAAOF,GAAgB,GACpD,MAAMG,EAAcrG,MAAMC,KAAKmG,EAAM5I,YAC/B8I,EAAS,GACf,IAAIC,EAAY,EAChB,GAAIF,EAAYzF,OAAS,GAAKP,GAA8B,iBAAZA,EAAsB,CACpE,IAAImG,EAAcP,EAAmB5F,EAAS6F,GAC9C,MAAMO,EAAaD,EAAY5F,OAASP,EAAQO,OAChD,IAAK,IAAI8F,EAAK,EAAGA,EAAKL,EAAYzF,OAAQ8F,IACxC,GAAIL,EAAYK,GAAI/I,aAAsD,iBAAhC0I,EAAYK,GAAI/I,YAA0B,CAClF,MAAMgJ,EAAkBV,EACtBI,EAAYK,GAAI/I,YAChBuI,GAEIU,EAAS,IACf,IAAIC,EAAI,EACR,KAAOA,EAAIF,EAAgB/F,SAGvB+F,EAAgBE,GAAGlC,MAAM,iBACuC,IAAhEgC,EAAgBjB,QAAQiB,EAAgBG,UAAU,EAAGD,GAAI,IAJ1BA,KAUnC,KAAOA,EAAIF,EAAgB/F,OAAQiG,IAAK,CACtC,IAAIE,EAAiBJ,EAAgBG,UAAU,EAAGD,GAC9CG,EAAgBR,EAAY7F,MAAMoG,GAClCE,GAAY,EAChB,GAA6B,IAAzBD,EAAcpG,OAChBqG,EAAYD,EAAc,GAAGpG,YACxB,GAAIoG,EAAcpG,OAAS,GAA0B,KAArBoG,EAAc,IAAiD,KAApCX,EAAYK,EAAK,GAAG/I,YACpFsJ,EAAYT,EAAYd,QAAQqB,EAAgB,QAC3C,GAA6B,IAAzBC,EAAcpG,OAAc,CAMrC,GALAmG,EAAiBA,EAAeD,UAC9B,EACAC,EAAenG,OAAS,GAE1BoG,EAAgBR,EAAY7F,MAAMoG,GAC9BC,EAAcpG,QAAU,EAE1B,OADA0F,EAAOrF,KAAKZ,GACLiG,EAETO,EAAID,EAAS,CACf,MAAWC,IAAMF,EAAgB/F,OAAS,IACxCqG,EAAYT,EAAYd,QAAQqB,IAElC,GAAIC,EAAcpG,QAAU,GAAKiG,EAAID,EAAQ,CAC3C,MAAMM,EAAkBb,EAAYK,EAAK,GAAG/I,YAC5C,GAAIuJ,GAA8C,iBAApBA,EAA8B,CAC1D,MAAMC,EAAgBlB,EAAmBiB,GAAiBtG,OAC1DqG,EAAYT,EAAYd,QAAQqB,EAAgBI,EAClD,EACkB,IAAdF,IACFA,EAAYD,EAAc,GAAGpG,OAEjC,CACA,IAAkB,IAAdqG,EAAkB,CACpB,IAAIG,EAAIC,KAAKC,MAAML,EAAYR,GAC/B,KAAOW,EAAI,GAAKA,EAAI/G,EAAQO,QAAU,CAEpC,GADA2F,GAAa,EACTA,EAAY,GAAKF,EAAYzF,OAE/B,OADA0F,EAAOrF,KAAKZ,GACLiG,EAET,MAAMiB,EAAWtB,EACf5F,EAAQyG,UAAU,EAAGM,GACrBlB,GAEF,GAAIqB,EAAS3G,SAAWqG,EAAW,CACjCX,EAAOrF,KAAKZ,EAAQyG,UAAU,EAAGM,IACjC/G,EAAUA,EAAQyG,UAAUM,GAC5BZ,EAAcA,EAAYM,UAAUG,GACpC,KACF,CAAWM,EAAS3G,OAASqG,EAC3BG,GAAKC,KAAKG,IACR,EACAH,KAAKC,OAAOL,EAAYM,EAAS3G,QAAU6F,IAG7CW,GAAKC,KAAKG,IACR,EACAH,KAAKC,OAAOC,EAAS3G,OAASqG,GAAaR,GAGjD,CACA,KACF,CACF,CACF,CAEJ,CAEA,OADAH,EAAOrF,KAAKZ,GACLiG,CACT,CAESmB,CAAapH,EAAS+F,GAAOhG,KAAK,iBAC3C,CACA,IAAIsH,EAAM,EACV,MAAMC,EAAe,IAAIC,OAAO,gBAEhC,SAASC,IACP,OAAOH,GACT,CAWA,IAAII,EACAC,EACJ,MAAMC,EAAoB,qBACpBC,EAA0B,qBAuDhC,MAAMC,EAAiC,IAAIlG,QAC3C,SAASmG,EAAcC,EAAKC,GAC1B,OAAKA,GAA4C,KAA1BA,EAAeC,OAG/BC,GAAQH,EAAKC,GAFXA,CAGX,CACA,SAASG,EAAaC,GACpB,OAAOtN,QAAuB,QAAfsN,EAAGjF,SAAqBiF,EAAGC,gBAC5C,CACA,SAASH,GAAQH,EAAKO,GACpB,IAAIC,EAAKV,EAAezM,IAAI2M,GAK5B,GAJKQ,IACHA,EAAKR,EAAIlM,cAAc,KACvBgM,EAAehF,IAAIkF,EAAKQ,IAErBD,GAEE,GAAIA,EAAWE,WAAW,UAAYF,EAAWE,WAAW,SACjE,OAAOF,OAFPA,EAAa,GAKf,OADAC,EAAGE,aAAa,OAAQH,GACjBC,EAAGhJ,IACZ,CACA,SAASmJ,GAAmBX,EAAK5E,EAAS/E,EAAM9E,GAC9C,OAAKA,EAGQ,QAAT8E,GAA2B,SAATA,IAAiC,QAAZ+E,GAAkC,MAAb7J,EAAM,KAElD,eAAT8E,GAAsC,MAAb9E,EAAM,IAEtB,eAAT8E,GAAyB,CAAC,QAAS,KAAM,MAAM9C,SAAS6H,GAH1D2E,EAAcC,EAAKzO,GAKR,WAAT8E,EAxFb,SAAiC2J,EAAKC,GACpC,GAA8B,KAA1BA,EAAeC,OACjB,OAAOD,EAET,IAAIW,EAAM,EACV,SAASC,EAAkBC,GACzB,IAAIC,EACJ,MAAMxE,EAAQuE,EAAME,KAAKf,EAAevB,UAAUkC,IAClD,OAAIrE,GACFwE,EAASxE,EAAM,GACfqE,GAAOG,EAAOvI,OACPuI,GAEF,EACT,CACA,MAAME,EAAS,GACf,KACEJ,EAAkBhB,KACde,GAAOX,EAAezH,SAFf,CAKX,IAAI0D,EAAM2E,EAAkBjB,GAC5B,GAAsB,MAAlB1D,EAAIqB,OAAM,GACZrB,EAAM6D,EAAcC,EAAK9D,EAAIwC,UAAU,EAAGxC,EAAI1D,OAAS,IACvDyI,EAAOpI,KAAKqD,OACP,CACL,IAAIgF,EAAiB,GACrBhF,EAAM6D,EAAcC,EAAK9D,GACzB,IAAIiF,GAAW,EACf,OAAa,CACX,MAAMC,EAAKnB,EAAeoB,OAAOT,GACjC,GAAW,KAAPQ,EAAW,CACbH,EAAOpI,MAAMqD,EAAMgF,GAAgBhB,QACnC,KACF,CAAO,GAAKiB,EASC,MAAPC,IACFD,GAAW,OAVO,CACpB,GAAW,MAAPC,EAAY,CACdR,GAAO,EACPK,EAAOpI,MAAMqD,EAAMgF,GAAgBhB,QACnC,KACF,CAAkB,MAAPkB,IACTD,GAAW,EAEf,CAKAD,GAAkBE,EAClBR,GAAO,CACT,CACF,CACF,CACA,OAAOK,EAAOjJ,KAAK,KACrB,CAoCWsJ,CAAwBtB,EAAKzO,GAClB,UAAT8E,EACF6C,EAAe3H,EAAO4O,GAAQH,IAChB,WAAZ5E,GAAiC,SAAT/E,EAC1B0J,EAAcC,EAAKzO,GAErBA,EAfEA,CAgBX,CACA,SAASgQ,GAAgBnG,EAAS/E,EAAMmL,GACtC,MAAO,CAAC,QAAS,SAASjO,SAAS6H,IAAqB,aAAT/E,CACjD,CAsBA,SAASoL,GAAkB9G,EAAOpB,EAAOmI,GACvC,IAAK/G,EAAO,OAAO,EACnB,GAAIA,EAAM/D,WAAa+D,EAAM9D,aAC3B,QAAK6K,GACED,GAAkBxM,EAAQI,WAAWsF,GAAQpB,EAAOmI,GAE7D,IAAK,IAAIC,EAAShH,EAAMiH,UAAUpJ,OAAQmJ,KAAY,CACpD,MAAME,EAAYlH,EAAMiH,UAAUD,GAClC,GAAIpI,EAAM8D,KAAKwE,GACb,OAAO,CAEX,CACA,QAAKH,GACED,GAAkBxM,EAAQI,WAAWsF,GAAQpB,EAAOmI,EAC7D,CACA,SAASI,GAAgBnH,EAAOoH,EAAeC,EAAkBN,GAC/D,IAAIrB,EACJ,GAAI1J,EAAUgE,IAEZ,GADA0F,EAAK1F,GACA1F,EAAQG,WAAWiL,GAAI7H,OAC1B,OAAO,MAEJ,IAAqC,OAAjCvD,EAAQK,cAAcqF,GAC/B,OAAO,EAEP0F,EAAKpL,EAAQK,cAAcqF,EAC7B,CACA,IACE,GAA6B,iBAAlBoH,GACT,GAAIL,GACF,GAAIrB,EAAG4B,QAAQ,IAAIF,KAAkB,OAAO,OAE5C,GAAI1B,EAAGuB,UAAUpM,SAASuM,GAAgB,OAAO,OAGnD,GAAIN,GAAkBpB,EAAI0B,EAAeL,GAAiB,OAAO,EAEnE,GAAIM,EACF,GAAIN,GACF,GAAIrB,EAAG4B,QAAQD,GAAmB,OAAO,OAEzC,GAAI3B,EAAG6B,QAAQF,GAAmB,OAAO,CAG/C,CAAE,MAAOG,GACT,CACA,OAAO,CACT,CAuDA,SAASC,GAAcjN,EAAIkN,GACzB,MAAMrC,IACJA,EACAsC,OAAQC,EAAOC,WACfA,EAAUC,cACVA,EAAaC,UACbA,EAASC,iBACTA,EAAgBxH,iBAChBA,EAAmB,CAAA,EAAEyH,WACrBA,EAAUtH,YACVA,EAAWuH,eACXA,EAAiB,CAAA,EAAEC,aACnBA,EAAYC,aACZA,EAAYC,gBACZA,EAAeC,kBACfA,GAAoB,EAAKC,YACzBA,GAAc,GACZb,EACEc,EA+DR,SAAmBnD,EAAKuC,GACtB,IAAKA,EAAQ7H,QAAQsF,GAAM,OAC3B,MAAMoD,EAAQb,EAAQ1I,MAAMmG,GAC5B,OAAiB,IAAVoD,OAAc,EAASA,CAChC,CAnEiBC,CAAUrD,EAAKuC,GAC9B,OAAQpN,EAAGyB,UACT,KAAKzB,EAAGmO,cACN,MAAsB,eAAlBnO,EAAGoO,WACE,CACLlI,KAAMtJ,EAAWyR,SACjBpO,WAAY,GACZmO,WAAYpO,EAAGoO,YAIV,CACLlI,KAAMtJ,EAAWyR,SACjBpO,WAAY,IAGlB,KAAKD,EAAGsO,mBACN,MAAO,CACLpI,KAAMtJ,EAAW2R,aACjBrN,KAAMlB,EAAGkB,KACTsN,SAAUxO,EAAGwO,SACbC,SAAUzO,EAAGyO,SACbT,UAEJ,KAAKhO,EAAG0B,aACN,OAmEN,SAA8B1B,EAAIkN,GAChC,MAAMrC,IACJA,EAAGwC,WACHA,EAAUC,cACVA,EAAaE,iBACbA,EAAgBxH,iBAChBA,EAAmB,CAAA,EAAEG,YACrBA,EAAWuH,eACXA,EAAiB,CAAA,EAAEC,aACnBA,EAAYC,aACZA,EAAYC,gBACZA,EAAeC,kBACfA,GAAoB,EAAKE,OACzBA,GACEd,EACEwB,EAxPR,SAA2B3I,EAASsH,EAAYC,GAC9C,IACE,GAA0B,iBAAfD,GACT,GAAItH,EAAQ0G,UAAUpM,SAASgN,GAC7B,OAAO,OAGT,IAAK,IAAIb,EAASzG,EAAQ0G,UAAUpJ,OAAQmJ,KAAY,CACtD,MAAME,EAAY3G,EAAQ0G,UAAUD,GACpC,GAAIa,EAAWnF,KAAKwE,GAClB,OAAO,CAEX,CAEF,GAAIY,EACF,OAAOvH,EAAQgH,QAAQO,EAE3B,CAAE,MAAON,GACT,CACA,OAAO,CACT,CAoOoB2B,CAAkB3O,EAAIqN,EAAYC,GAC9CrH,EA3WR,SAA2BF,GACzB,GAAIA,aAAmB6I,gBACrB,MAAO,OAET,MAAMC,EAAmBvI,EAAYP,EAAQE,SAC7C,OAAImE,EAAalC,KAAK2G,GACb,MAEFA,CACT,CAkWkBC,CAAkB9O,GAClC,IAAI+O,EAAa,CAAA,EACjB,MAAMC,EAAMhP,EAAG+O,WAAW1L,OAC1B,IAAK,IAAI8F,EAAK,EAAGA,EAAK6F,EAAK7F,IAAM,CAC/B,MAAM8F,EAAOjP,EAAG+O,WAAW5F,GACtBiD,GAAgBnG,EAASgJ,EAAK/N,KAAM+N,EAAK7S,SAC5C2S,EAAWE,EAAK/N,MAAQsK,GACtBX,EACA5E,EACAK,EAAY2I,EAAK/N,MACjB+N,EAAK7S,OAGX,CACA,GAAgB,SAAZ6J,GAAsBuH,EAAkB,CAC1C,MAAM0B,EAAazM,MAAMC,KAAKmI,EAAIpK,aAAa0O,KAAMnN,GAC5CA,EAAGK,OAASrC,EAAGqC,MAExB,IAAIS,EAAU,KACVoM,IACFpM,EAAUf,EAAoBmN,IAE5BpM,WACKiM,EAAWK,WACXL,EAAW1M,KAClB0M,EAAWM,SAAWvM,EAE1B,CACA,GAAgB,UAAZmD,GAAuBjG,EAAGsP,MAAO,CACnC,IAAIxM,EAAUf,EACZ/B,EAAGsP,OAEDxM,IACE9C,EAAGC,WAAWoD,OAAS,IACzBP,EAAU8F,EAAc9F,EAAS9C,IAEnC+O,EAAWM,SAAWvM,EAE1B,CACA,GAAI,CAAC,QAAS,WAAY,UAAU1E,SAAS6H,GAAU,CACrD,MAAM7J,EAAQ4D,EAAG5D,MACXmT,EAAUvP,EAAGuP,QACK,UAApBR,EAAW7I,MAAwC,aAApB6I,EAAW7I,MAA2C,WAApB6I,EAAW7I,MAAyC,WAApB6I,EAAW7I,MAAqB9J,EACnI2S,EAAW3S,MAAQ0J,EAAe,CAChCC,QAAS/F,EACTkG,KAAMQ,EAAa1G,GACnBiG,UACA7J,QACA4J,mBACAG,gBAEOoJ,IACTR,EAAWQ,QAAUA,EAEzB,CACgB,WAAZtJ,IACEjG,EAAGwP,WAAaxJ,EAAyB,OAC3C+I,EAAWS,UAAW,SAEfT,EAAWS,UAGN,WAAZvJ,GAAwBjG,EAAGyP,OAC7BV,EAAWW,aAAe1P,EAAG+M,QAAQ,gBAAkB,QAAU,aAEnE,GAAgB,WAAZ9G,GAAwB2H,EAC1B,GAAqB,OAAjB5N,EAAG2P,WArnBX,SAAyBC,GACvB,MAAMC,EAAMD,EAAOE,WAAW,MAC9B,IAAKD,EAAK,OAAO,EAEjB,IAAK,IAAIE,EAAK,EAAGA,EAAKH,EAAOI,MAAOD,GADlB,GAEhB,IAAK,IAAIE,EAAI,EAAGA,EAAIL,EAAOM,OAAQD,GAFnB,GAEmC,CACjD,MAAME,EAAeN,EAAIM,aACnBC,EAAuB3J,KAA2B0J,EAAeA,EAAa1J,GAA2B0J,EAW/G,GAVoB,IAAIE,YAEtBD,EAAqB7Q,KACnBsQ,EACAE,EACAE,EACAnG,KAAKwG,IAXK,GAWUV,EAAOI,MAAQD,GACnCjG,KAAKwG,IAZK,GAYUV,EAAOM,OAASD,IACpCM,KAAKC,QAEOC,KAAMC,GAAoB,IAAVA,GAAc,OAAO,CACvD,CAEF,OAAO,CACT,EAgmBWC,CAAgB3Q,KACnB+O,EAAW6B,WAAa5Q,EAAG6Q,UACzBnD,EAAexH,KACfwH,EAAeoD,eAGd,KAAM,cAAe9Q,GAAK,CAC/B,MAAM+Q,EAAgB/Q,EAAG6Q,UACvBnD,EAAexH,KACfwH,EAAeoD,SAEXE,EAAcnG,EAAIlM,cAAc,UACtCqS,EAAYhB,MAAQhQ,EAAGgQ,MACvBgB,EAAYd,OAASlQ,EAAGkQ,OAKpBa,IAJuBC,EAAYH,UACrCnD,EAAexH,KACfwH,EAAeoD,WAGf/B,EAAW6B,WAAaG,EAE5B,CAEF,GAAgB,QAAZ9K,GAAqB0H,EAAc,CAChCpD,IACHA,EAAgBM,EAAIlM,cAAc,UAClC6L,EAAYD,EAAcuF,WAAW,OAEvC,MAAMmB,EAAQjR,EACRkR,EAAWD,EAAME,YAAcF,EAAMG,aAAa,QAAU,gBAC5DC,EAAmBJ,EAAMK,YACzBC,EAAoB,KACxBN,EAAMO,oBAAoB,OAAQD,GAClC,IACEhH,EAAcyF,MAAQiB,EAAMQ,aAC5BlH,EAAc2F,OAASe,EAAMS,cAC7BlH,EAAUmH,UAAUV,EAAO,EAAG,GAC9BlC,EAAW6B,WAAarG,EAAcsG,UACpCnD,EAAexH,KACfwH,EAAeoD,QAEnB,CAAE,MAAO3J,GACP,GAA0B,cAAtB8J,EAAMK,YAKR,OAJAL,EAAMK,YAAc,iBAChBL,EAAMW,UAAmC,IAAvBX,EAAMQ,aAC1BF,IACGN,EAAMY,iBAAiB,OAAQN,IAGpCO,QAAQC,KACN,yBAAyBb,aAAoB/J,IAGnD,CAC0B,cAAtB8J,EAAMK,cACRD,EAAmBtC,EAAWuC,YAAcD,EAAmBJ,EAAMe,gBAAgB,iBAGrFf,EAAMW,UAAmC,IAAvBX,EAAMQ,aAAoBF,IAC3CN,EAAMY,iBAAiB,OAAQN,EACtC,CACA,GAAI,CAAC,QAAS,SAASnT,SAAS6H,GAAU,CACxC,MAAMgM,EAAkBlD,EACxBkD,EAAgBC,cAAgBlS,EAAGmS,OAAS,SAAW,SACvDF,EAAgBG,oBAAsBpS,EAAGqS,YACzCJ,EAAgBK,qBAAuBtS,EAAGuS,aAC1CN,EAAgBO,cAAgBxS,EAAGyS,MACnCR,EAAgBS,aAAe1S,EAAG2S,KAClCV,EAAgBW,eAAiB5S,EAAG6S,MACtC,CACK/E,IACC9N,EAAG8S,aACL/D,EAAWgE,cAAgB/S,EAAG8S,YAE5B9S,EAAGgT,YACLjE,EAAWkE,aAAejT,EAAGgT,YAGjC,GAAItE,EAAW,CACb,MAAMsB,MAAEA,EAAKE,OAAEA,GAAWlQ,EAAGkT,wBAC7BnE,EAAa,CACXoE,MAAOpE,EAAWoE,MAClBC,SAAU,GAAGpD,MACbqD,UAAW,GAAGnD,MAElB,CACgB,WAAZjK,GAAyB4H,EAAgBkB,EAAWuE,OACjDtT,EAAGuT,kBACNxE,EAAWyE,OAASzE,EAAWuE,YAE1BvE,EAAWuE,KAEpB,IAAIG,EACJ,IACMC,eAAexV,IAAI+H,KAAUwN,GAAkB,EACrD,CAAE,MAAOzG,GACT,CACA,MAAO,CACL9G,KAAMtJ,EAAWK,QACjBgJ,UACA8I,aACA9O,WAAY,GACZ0T,MAAO1I,EAAajL,SAAO,EAC3B0O,YACAV,SACA4F,SAAUH,EAEd,CAjQaI,CAAqB7T,EAAI,CAC9B6K,MACAwC,aACAC,gBACAE,mBACAxH,mBACAG,cACAuH,iBACAC,eACAC,eACAC,kBACAC,oBACAE,WAEJ,KAAKhO,EAAG8T,UACN,OA4BN,SAA2B9T,EAAIkN,GAC7B,MAAMK,UAAEA,EAASE,WAAEA,EAAUO,OAAEA,EAAMD,YAAEA,GAAgBb,EACjD6G,EAASjU,EAAQI,WAAWF,GAC5BgU,EAAgBD,GAAUA,EAAO9N,QACvC,IAAIgO,EAAe,GACnB,MAAMC,EAA4B,UAAlBF,QAAmC,EAC7CG,EAA6B,WAAlBH,QAAoC,EACjDG,EACFF,EAAe,qBACLlG,IACVkG,EAAenU,EAAQM,YAAYJ,GAC/BkU,GAAWD,IACbA,EAAelQ,EAAekQ,EAAcjJ,GAAQkC,EAAQrC,SAG3DqJ,IAAYC,GAAYF,GAAgB1G,IAC3C0G,EAAexG,EAAaA,EAAWwG,EAAcnU,EAAQK,cAAcH,IAAOiU,EAAalR,QAAQ,QAAS,MAElH,MAAO,CACLmD,KAAMtJ,EAAWwX,KACjBhU,YAAa6T,GAAgB,GAC7BjG,SAEJ,CAnDaqG,CAAkBrU,EAAI,CAC3B6K,MACA0C,YACAE,aACAO,SACAD,gBAEJ,KAAK/N,EAAGsU,mBACN,MAAO,CACLpO,KAAMtJ,EAAW2X,MACjBnU,YAAa,GACb4N,UAEJ,KAAKhO,EAAGwU,aACN,MAAO,CACLtO,KAAMtJ,EAAW6X,QACjBrU,YAAaN,EAAQM,YAAYJ,IAAO,GACxCgO,UAEJ,QACE,OAAO,EAEb,CA6NA,SAAS0G,GAAcC,GACrB,OAAIA,QACK,GAEAA,EAAUrO,aAErB,CACA,SAASsO,GAAgBC,GACvB,OAAwB,IAApBA,GAAgD,QAApBA,EACvB,CACLC,QAAQ,EACRC,SAAS,EACTC,aAAa,EACbC,gBAAgB,EAChBC,gBAAgB,EAChBC,gBAAgB,EAChBC,mBAAmB,EACnBC,sBAAsB,EAGtBC,mBAAwC,QAApBT,EACpBU,qBAA0C,QAApBV,EACtBW,mBAAwC,QAApBX,GAEbA,GAGJ,CAAA,CACT,CAiCA,SAASY,GAAoBzV,EAAIkN,GAC/B,MAAMrC,IACJA,EACAsC,OAAQC,EAAOC,WACfA,EAAUC,cACVA,EAAaV,cACbA,EAAaC,iBACbA,EAAgB6I,UAChBA,GAAY,EAAKlI,iBACjBA,GAAmB,EAAIxH,iBACvBA,EAAmB,CAAA,EAAEyH,WACrBA,EAAUtH,YACVA,EAAWwP,eACXA,EAAcjI,eACdA,EAAiB,CAAA,EAAEC,aACnBA,GAAe,EAAKC,aACpBA,GAAe,EAAKgI,YACpBA,EAAWC,aACXA,EAAYC,kBACZA,EAAoB,IAAGC,iBACvBA,EAAgBC,sBAChBA,EAAwB,IAAGnI,gBAC3BA,EAAkB,KAAM,EAAKC,kBAC7BA,GAAoB,EAAKC,YACzBA,GAAc,GACZb,EACJ,IAAIK,UAAEA,GAAcL,GAChB+I,mBAAEA,GAAqB,GAAS/I,EACpC,IAAKK,EAAW,CAEdA,EAAYZ,GACV3M,EACA4M,EACAC,OAJmC,IAAdU,EAOzB,CACA,MAAM2I,EAAkBjJ,GAAcjN,EAAI,CACxC6K,MACAsC,OAAQC,EACRC,aACAC,gBACAC,YACAC,mBACAxH,mBACAyH,aACAtH,cACAuH,iBACAC,eACAC,eACAC,kBACAC,oBACAC,gBAEF,IAAKmI,EAEH,OADApE,QAAQC,KAAK/R,EAAI,kBACV,KAET,IAAI4E,EAEFA,EADEwI,EAAQ7H,QAAQvF,GACboN,EAAQ1I,MAAM1E,GA5FvB,SAAyBmW,EAAIR,GAC3B,GAAIA,EAAeZ,SAAWoB,EAAGjQ,OAAStJ,EAAW6X,QACnD,OAAO,EACF,GAAI0B,EAAGjQ,OAAStJ,EAAWK,QAAS,CACzC,GAAI0Y,EAAeb,SACH,WAAfqB,EAAGlQ,SACW,SAAfkQ,EAAGlQ,UAA6C,YAAtBkQ,EAAGpH,WAAWK,KAA0C,WAArB+G,EAAGpH,WAAWqH,IAAyC,kBAAtBD,EAAGpH,WAAWK,MAC7F,SAAf+G,EAAGlQ,SAA4C,aAAtBkQ,EAAGpH,WAAWK,KAAoD,iBAAvB+G,EAAGpH,WAAW1M,MAAkE,OAA7CuE,EAAqBuP,EAAGpH,WAAW1M,OACxI,OAAO,EACF,GAAIsT,EAAeX,cAA+B,SAAfmB,EAAGlQ,SAA4C,kBAAtBkQ,EAAGpH,WAAWK,KAA0C,SAAf+G,EAAGlQ,UAAuByO,GAAcyB,EAAGpH,WAAW7N,MAAMkG,MACtK,sCACyC,qBAAtCsN,GAAcyB,EAAGpH,WAAW7N,OAAqE,SAArCwT,GAAcyB,EAAGpH,WAAWK,MAAwD,qBAArCsF,GAAcyB,EAAGpH,WAAWK,MAAoE,kBAArCsF,GAAcyB,EAAGpH,WAAWK,OACrM,OAAO,EACF,GAAmB,SAAf+G,EAAGlQ,QAAoB,CAChC,GAAI0P,EAAeJ,sBAAwBb,GAAcyB,EAAGpH,WAAW7N,MAAMkG,MAAM,0BACjF,OAAO,EACF,GAAIuO,EAAeT,iBAAmBR,GAAcyB,EAAGpH,WAAWsH,UAAUjP,MAAM,sBACzFsN,GAAcyB,EAAGpH,WAAW7N,MAAMkG,MAAM,mBAA2D,cAAtCsN,GAAcyB,EAAGpH,WAAW7N,OACvF,OAAO,EACF,GAAIyU,EAAeR,iBAAyD,WAAtCT,GAAcyB,EAAGpH,WAAW7N,OAA4D,cAAtCwT,GAAcyB,EAAGpH,WAAW7N,OAA+D,YAAtCwT,GAAcyB,EAAGpH,WAAW7N,OAC9K,OAAO,EACF,GAAIyU,EAAeP,wBAAqD,IAAhCe,EAAGpH,WAAW,cAC3D,OAAO,EACF,GAAI4G,EAAeL,qBAA6D,WAAtCZ,GAAcyB,EAAGpH,WAAW7N,OAA4D,cAAtCwT,GAAcyB,EAAGpH,WAAW7N,OAA+D,cAAtCwT,GAAcyB,EAAGpH,WAAW7N,OAA+D,cAAtCwT,GAAcyB,EAAGpH,WAAW7N,OAA+D,WAAtCwT,GAAcyB,EAAGpH,WAAW7N,OAAsBwT,GAAcyB,EAAGpH,WAAWsH,UAAUjP,MAAM,cAAgBsN,GAAcyB,EAAGpH,WAAWsH,UAAUjP,MAAM,cAC1Z,OAAO,EACF,GAAIuO,EAAeN,uBAA+D,6BAAtCX,GAAcyB,EAAGpH,WAAW7N,OAA8E,wBAAtCwT,GAAcyB,EAAGpH,WAAW7N,OAAyE,eAAtCwT,GAAcyB,EAAGpH,WAAW7N,OAAgE,oBAAtCwT,GAAcyB,EAAGpH,WAAW7N,OAAqE,cAAtCwT,GAAcyB,EAAGpH,WAAW7N,OAA+D,iBAAtCwT,GAAcyB,EAAGpH,WAAW7N,OAAkE,+BAAtCwT,GAAcyB,EAAGpH,WAAW7N,OAC9a,OAAO,CAEX,CACF,CACA,OAAO,CACT,CA8DaoV,CAAgBJ,EAAiBP,KAAoBM,GAAsBC,EAAgBhQ,OAAStJ,EAAWwX,OAAS8B,EAAgB9V,YAAY2C,QAAQ,cAAe,IAAIM,QAxpBvK,EA2pBZiH,IAEP,MAAMiM,EAAiBxa,OAAOya,OAAON,EAAiB,CAAEtR,OAExD,GADAwI,EAAQ3H,IAAIzF,EAAIuW,IA9pBG,IA+pBf3R,EACF,OAAO,KAELgR,GACFA,EAAY5V,GAEd,IAAIyW,GAAef,EACnB,GAAIa,EAAerQ,OAAStJ,EAAWK,QAAS,CAC9CwZ,EAAcA,IAAgBF,EAAe7H,iBACtC6H,EAAe7H,UACtB,MAAMgI,EAAe5W,EAAQY,WAAWV,GACpC0W,GAAgB7U,EAAkB6U,KACpCH,EAAeI,cAAe,EAClC,CACA,IAAKJ,EAAerQ,OAAStJ,EAAWyR,UAAYkI,EAAerQ,OAAStJ,EAAWK,UAAYwZ,EAAa,CAC1Gd,EAAeV,gBAAkBsB,EAAerQ,OAAStJ,EAAWK,SAAsC,SAA3BsZ,EAAetQ,UAChGgQ,GAAqB,GAEvB,MAAMW,EAAgB,CACpB/L,MACAsC,OAAQC,EACRC,aACAC,gBACAC,YACAX,gBACAC,mBACA6I,YACAlI,mBACAxH,mBACAyH,aACAtH,cACAwP,iBACAjI,iBACAC,eACAC,eACAqI,qBACAL,cACAC,eACAC,oBACAC,mBACAC,wBACAnI,kBACAE,aAAa,GAEf,GAAIwI,EAAerQ,OAAStJ,EAAWK,SAAsC,aAA3BsZ,EAAetQ,cAA8D,IAApCsQ,EAAexH,WAAW3S,WAChH,CACCma,EAAerQ,OAAStJ,EAAWK,cAAkD,IAAvCsZ,EAAexH,WAAWM,UAAqE,iBAAvCkH,EAAexH,WAAWM,WAClIuH,EAAc7I,aAAc,GAE9B,IAAK,MAAM8I,KAAUpU,MAAMC,KAAK5C,EAAQG,WAAWD,IAAM,CACvD,MAAM8W,EAAsBrB,GAAoBoB,EAAQD,GACpDE,GACFP,EAAetW,WAAWyD,KAAKoT,EAEnC,CACF,CACA,IAAIJ,EAAe,KACnB,GAAIlV,EAAUxB,KAAQ0W,EAAe5W,EAAQY,WAAWV,IACtD,IAAK,MAAM6W,KAAUpU,MAAMC,KAAK5C,EAAQG,WAAWyW,IAAgB,CACjE,MAAMI,EAAsBrB,GAAoBoB,EAAQD,GACpDE,IACFjV,EAAkB6U,KAAkBI,EAAoBC,UAAW,GACnER,EAAetW,WAAWyD,KAAKoT,GAEnC,CAEJ,CACA,MAAM/C,EAASjU,EAAQI,WAAWF,GAuFlC,OAtFI+T,GAAUpS,EAAaoS,IAAWlS,EAAkBkS,KACtDwC,EAAeQ,UAAW,GAExBR,EAAerQ,OAAStJ,EAAWK,SAAsC,WAA3BsZ,EAAetQ,SA3iBnE,SAA0BxH,EAAUuY,EAAUlB,GAC5C,MAAMhX,EAAML,EAASM,cACrB,IAAKD,EACH,OAEF,IACImY,EADAC,GAAQ,EAEZ,IACED,EAAanY,EAAIJ,SAASuY,UAC5B,CAAE,MAAOjU,GACP,MACF,CACA,GAAmB,aAAfiU,EAA2B,CAC7B,MAAME,EAAQC,WAAW,KAClBF,IACHF,IACAE,GAAQ,IAETpB,GAMH,YALArX,EAASoT,iBAAiB,OAAQ,KAChCwF,aAAaF,GACbD,GAAQ,EACRF,KAGJ,CACA,MAAMM,EAAW,cACjB,GAAIxY,EAAIoI,SAAS7E,OAASiV,GAAY7Y,EAAS6U,MAAQgE,GAA6B,KAAjB7Y,EAAS6U,IAE1E,OADA8D,WAAWJ,EAAU,GACdvY,EAASoT,iBAAiB,OAAQmF,GAE3CvY,EAASoT,iBAAiB,OAAQmF,EACpC,CA4gBIO,CACEvX,EACA,KACE,MAAMwX,EAAYxX,EAAGuT,gBACrB,GAAIiE,GAAa3B,EAAc,CAC7B,MAAM4B,EAAuBhC,GAAoB+B,EAAW,CAC1D3M,IAAK2M,EACLrK,OAAQC,EACRC,aACAC,gBACAC,YACAX,gBACAC,mBACA6I,WAAW,EACXlI,mBACAxH,mBACAyH,aACAtH,cACAwP,iBACAjI,iBACAC,eACAC,eACAqI,qBACAL,cACAC,eACAC,oBACAC,mBACAC,wBACAnI,oBAEE4J,GACF5B,EACE7V,EACAyX,EAGN,GAEF3B,GAGAS,EAAerQ,OAAStJ,EAAWK,SAAsC,SAA3BsZ,EAAetQ,SAA+D,iBAAlCsQ,EAAexH,WAAWK,MAAuD,eAAlCmH,EAAexH,WAAWK,KAA0D,YAAlCmH,EAAexH,WAAWK,KAA+D,iBAAnCmH,EAAexH,WAAW1M,MAA8E,QAAzDuE,EAAqB2P,EAAexH,WAAW1M,QApjBrV,SAA8BqV,EAAMV,EAAUW,GAC5C,IACIC,EADAV,GAAQ,EAEZ,IACEU,EAAmBF,EAAKpI,KAC1B,CAAE,MAAOtM,GACP,MACF,CACA,GAAI4U,EAAkB,OACtB,MAAMT,EAAQC,WAAW,KAClBF,IACHF,IACAE,GAAQ,IAETS,GACHD,EAAK7F,iBAAiB,OAAQ,KAC5BwF,aAAaF,GACbD,GAAQ,EACRF,KAEJ,CAiiBIa,CACE7X,EACA,KACE,GAAI+V,EAAkB,CACpB,MAAM+B,EAAqBrC,GAAoBzV,EAAI,CACjD6K,MACAsC,OAAQC,EACRC,aACAC,gBACAC,YACAX,gBACAC,mBACA6I,WAAW,EACXlI,mBACAxH,mBACAyH,aACAtH,cACAwP,iBACAjI,iBACAC,eACAC,eACAqI,qBACAL,cACAC,eACAC,oBACAC,mBACAC,wBACAnI,oBAEEiK,GACF/B,EACE/V,EACA8X,EAGN,GAEF9B,GAGGO,CACT,CAuEA,SAASwB,GAA0BhI,GACjC,OAAOA,GAAMA,EAAGiI,YAAcjc,OAAO0B,UAAUwa,eAAe1Y,KAAKwQ,EAAI,WAAaA,EAAY,QAAIA,CACtG,CACA,SAASmI,GAAwBlY,GAC/B,GAAIA,EAAGgY,WAAY,OAAOhY,EAC1B,IAAImY,EAAKnY,EAAGoY,QACZ,GAAiB,mBAAND,EAAkB,CAC3B,IAAI9M,EAAK,SAASgN,IAChB,OAAI9T,gBAAgB8T,EACXC,QAAQC,UAAUJ,EAAIK,UAAWjU,KAAKxD,aAExCoX,EAAGM,MAAMlU,KAAMiU,UACxB,EACAnN,EAAG5N,UAAY0a,EAAG1a,SACpB,MAAO4N,EAAK,CAAA,EAWZ,OAVAtP,OAAOC,eAAeqP,EAAI,aAAc,CAAEjP,OAAO,IACjDL,OAAOiJ,KAAKhF,GAAIoF,QAAQ,SAASyE,GAC/B,IAAI6O,EAAI3c,OAAOkC,yBAAyB+B,EAAI6J,GAC5C9N,OAAOC,eAAeqP,EAAIxB,EAAG6O,EAAExa,IAAMwa,EAAI,CACvCrc,YAAY,EACZ6B,IAAK,WACH,OAAO8B,EAAG6J,EACZ,GAEJ,GACOwB,CACT,CACA,IAAIsN,GAAuB,CAAEC,QAAS,IAClCC,GAAMvZ,OACNwZ,GAAW,WACb,MAAO,CAAEC,kBAAkB,EAAOlT,MAAOgT,GAAKG,KAAMH,GAAKI,IAAKJ,GAAKK,OAAQL,GAAKM,UAAWN,GAAKO,QAASP,GAAKQ,OAAQR,GAAKS,cAAeT,GAAKU,MAAOV,GAAKW,IAAKX,GAAKY,MAAOZ,GAAKa,OAAQb,GAAKc,KAAMd,GAAKe,QAASf,GAAKgB,KAAMhB,GAAKiB,MAAOjB,GAAKkB,KAAMlB,GAAKmB,QAASnB,GAAKoB,MAAOpB,GAAKqB,QAASrB,GAAKsB,SAAUtB,GAAKuB,OAAQvB,GAAKwB,UAAWxB,GAAKyB,OAAQzB,GAAK0B,QAAS1B,GACrW,EACAF,GAAqBC,QAAUE,KAC/BH,GAAqBC,QAAQ4B,aAAe1B,GAC5C,IAAI2B,GAA8B9B,GAAqBC,QACvD,MAKM8B,GAA+BxC,GAJanc,OAAO4e,OAAuB5e,OAAOC,eAAe,CACpG4e,UAAW,KACXxC,QAH8B,CAAA,GAI7ByC,OAAOC,YAAa,CAAE1e,MAAO,aAEhC,IAAI2e,GAASN,GACTO,GAAwBN,GACxBO,GAAqB,MAAMC,UAAuBC,MACpD,WAAApa,CAAYqa,EAASC,EAAMC,EAAQra,EAAQsa,EAAMC,GAC/CC,MAAML,GACN7W,KAAKrD,KAAO,iBACZqD,KAAKmX,OAASN,EACVG,IACFhX,KAAKgX,KAAOA,GAEVta,IACFsD,KAAKtD,OAASA,GAEZua,IACFjX,KAAKoX,OAASH,QAEI,IAATH,QAA0C,IAAXC,IACpB,iBAATD,GACT9W,KAAK8W,KAAOA,EACZ9W,KAAK+W,OAASA,IAEd/W,KAAK8W,KAAOA,EAAKA,KACjB9W,KAAK+W,OAASD,EAAKC,OACnB/W,KAAKqX,QAAUN,EAAOD,KACtB9W,KAAKsX,UAAYP,EAAOA,SAG5B/W,KAAKuX,aACDX,MAAMY,mBACRZ,MAAMY,kBAAkBxX,KAAM2W,EAElC,CACA,UAAAY,GACEvX,KAAK6W,QAAU7W,KAAKoX,OAASpX,KAAKoX,OAAS,KAAO,GAClDpX,KAAK6W,SAAW7W,KAAKgX,KAAOhX,KAAKgX,KAAO,mBACf,IAAdhX,KAAK8W,OACd9W,KAAK6W,SAAW,IAAM7W,KAAK8W,KAAO,IAAM9W,KAAK+W,QAE/C/W,KAAK6W,SAAW,KAAO7W,KAAKmX,MAC9B,CACA,cAAAM,CAAeC,GACb,IAAK1X,KAAKtD,OAAQ,MAAO,GACzB,IAAIib,EAAM3X,KAAKtD,OACF,MAATgb,IAAeA,EAAQlB,GAAOhC,kBAC9BiC,IACEiB,IAAOC,EAAMlB,GAAsBkB,IAEzC,IAIIC,EAAMC,EAJNC,EAAQH,EAAI9Y,MAAM,SAClBkZ,EAAQxS,KAAKG,IAAI1F,KAAK8W,KAAO,EAAG,GAChCkB,EAAMzS,KAAKwG,IAAI/L,KAAK8W,KAAO,EAAGgB,EAAMhZ,QACpCmZ,EAAWld,OAAOid,GAAKlZ,OAE3B,GAAI4Y,EAAO,CACT,IAAIjD,KAAEA,EAAIe,KAAEA,EAAIP,IAAEA,GAAQuB,GAAOP,cAAa,GAC9C2B,EAAQ/V,GAAS4S,EAAKQ,EAAIpT,IAC1BgW,EAAShW,GAAS2T,EAAK3T,EACzB,MACE+V,EAAOC,EAAS5V,GAAQA,EAE1B,OAAO6V,EAAMjU,MAAMkU,EAAOC,GAAKE,IAAI,CAACpB,EAAMqB,KACxC,IAAIC,EAASL,EAAQ,EAAII,EACrBE,EAAS,KAAO,IAAMD,GAAQvU,OAAOoU,GAAY,MACrD,GAAIG,IAAWpY,KAAK8W,KAAM,CACxB,IAAIwB,EAAUT,EAAMQ,EAAO7Z,QAAQ,MAAO,MAAQsY,EAAKjT,MAAM,EAAG7D,KAAK+W,OAAS,GAAGvY,QAAQ,SAAU,KACnG,OAAOoZ,EAAK,KAAOC,EAAMQ,GAAUvB,EAAO,MAAQwB,EAAUV,EAAK,IACnE,CACA,MAAO,IAAMC,EAAMQ,GAAUvB,IAC5BxY,KAAK,KACV,CACA,QAAA1E,GACE,IAAI2e,EAAOvY,KAAKyX,iBAIhB,OAHIc,IACFA,EAAO,OAASA,EAAO,MAElBvY,KAAKrD,KAAO,KAAOqD,KAAK6W,QAAU0B,CAC3C,GAEF,IAAIC,GAAmB9B,GACvBA,GAAmB7C,QAAU6C,GAC7B,IAAI+B,GAAY,CAAA,EAChBA,GAAUC,QAAUpC,OAAO,WAC3BmC,GAAUE,GAAKrC,OAAO,MACtB,MAAMsC,GAAgB,CACpBC,MAAO,KACPC,YAAa,KACbC,cAAe,KACfC,WAAY,KACZC,WAAY,IACZC,WAAY,KACZC,MAAO,KACPC,YAAa,IACbC,aAAc,IACdC,UAAW,GACXC,OAAQ,OACRC,WAAW,GAKb,IAAIC,GAAkB,MACpB,WAAAjd,CAAYkd,GACV1Z,KAAK0Z,QAAUA,CACjB,CACA,MAAAC,CAAO1Y,EAAOuY,GACZ,IAAI7c,EAAO,IAAMsE,EAAMtE,KACnBid,EAAS3Y,EAAM2Y,OAAS5Z,KAAK6Z,SAAS5Y,EAAO,UAAY,GAM7D,QALoC,IAAzBA,EAAM6Y,KAAKC,UACpBpd,GAAQsE,EAAM6Y,KAAKC,UACVH,IACTjd,GAAQ,KAENsE,EAAM+Y,MACRha,KAAKia,MAAMhZ,EAAOtE,EAAOid,OACpB,CACL,IAAI5B,GAAO/W,EAAM6Y,KAAKI,SAAW,KAAOV,EAAY,IAAM,IAC1DxZ,KAAK0Z,QAAQ/c,EAAOid,EAAS5B,EAAK/W,EACpC,CACF,CACA,WAAAkZ,CAAYlZ,EAAOmZ,GACjB,IAAIviB,EAEFA,EADiB,SAAfoJ,EAAMU,KACA3B,KAAKqa,IAAIpZ,EAAO,KAAM,cACN,YAAfA,EAAMU,KACP3B,KAAKqa,IAAIpZ,EAAO,KAAM,iBACV,WAAXmZ,EACDpa,KAAKqa,IAAIpZ,EAAO,KAAM,cAEtBjB,KAAKqa,IAAIpZ,EAAO,KAAM,eAEhC,IAAIqZ,EAAMrZ,EAAMuO,OACZ+K,EAAQ,EACZ,KAAOD,GAAoB,SAAbA,EAAI3Y,MAChB4Y,GAAS,EACTD,EAAMA,EAAI9K,OAEZ,GAAI3X,EAAMgC,SAAS,MAAO,CACxB,IAAI0f,EAASvZ,KAAKqa,IAAIpZ,EAAO,KAAM,UACnC,GAAIsY,EAAOza,OACT,IAAK,IAAI0b,EAAO,EAAGA,EAAOD,EAAOC,IAAQ3iB,GAAS0hB,CAEtD,CACA,OAAO1hB,CACT,CACA,KAAAoiB,CAAMhZ,EAAO8W,GACX,IAEIc,EAFAqB,EAAUla,KAAKqa,IAAIpZ,EAAO,UAAW,cACzCjB,KAAK0Z,QAAQ3B,EAAQmC,EAAU,IAAKjZ,EAAO,SAEvCA,EAAM+Y,OAAS/Y,EAAM+Y,MAAMlb,QAC7BkB,KAAK3F,KAAK4G,GACV4X,EAAQ7Y,KAAKqa,IAAIpZ,EAAO,UAExB4X,EAAQ7Y,KAAKqa,IAAIpZ,EAAO,QAAS,aAE/B4X,GAAO7Y,KAAK0Z,QAAQb,GACxB7Y,KAAK0Z,QAAQ,IAAKzY,EAAO,MAC3B,CACA,IAAA5G,CAAK4G,GACH,IAAIwZ,EAAOxZ,EAAM+Y,MAAMlb,OAAS,EAChC,KAAO2b,EAAO,GACmB,YAA3BxZ,EAAM+Y,MAAMS,GAAM9Y,MACtB8Y,GAAQ,EAEV,IAAIjB,EAAYxZ,KAAKqa,IAAIpZ,EAAO,aAChC,IAAK,IAAI2D,EAAK,EAAGA,EAAK3D,EAAM+Y,MAAMlb,OAAQ8F,IAAM,CAC9C,IAAI8V,EAAQzZ,EAAM+Y,MAAMpV,GACpB+V,EAAS3a,KAAKqa,IAAIK,EAAO,UACzBC,GAAQ3a,KAAK0Z,QAAQiB,GACzB3a,KAAKf,UAAUyb,EAAOD,IAAS7V,GAAM4U,EACvC,CACF,CACA,OAAAhJ,CAAQvP,GACN,IAAI2Z,EAAO5a,KAAKqa,IAAIpZ,EAAO,OAAQ,eAC/B4Z,EAAQ7a,KAAKqa,IAAIpZ,EAAO,QAAS,gBACrCjB,KAAK0Z,QAAQ,KAAOkB,EAAO3Z,EAAMY,KAAOgZ,EAAQ,KAAM5Z,EACxD,CACA,IAAA6Z,CAAK7Z,EAAOuY,GACV,IAAIU,EAAUla,KAAKqa,IAAIpZ,EAAO,UAAW,SACrC8Z,EAAS9Z,EAAM+Z,KAAOd,EAAUla,KAAK6Z,SAAS5Y,EAAO,SACrDA,EAAMga,YACRF,GAAU9Z,EAAM6Y,KAAKmB,WAAa,eAEhCzB,IAAWuB,GAAU,KACzB/a,KAAK0Z,QAAQqB,EAAQ9Z,EACvB,CACA,QAAA9G,CAAS8G,GACPjB,KAAK3F,KAAK4G,EACZ,CACA,GAAAoZ,CAAIpZ,EAAOia,EAAKd,GACd,IAAIviB,EAEJ,GADKuiB,IAAQA,EAASc,GAClBA,IACFrjB,EAAQoJ,EAAM6Y,KAAKoB,QACE,IAAVrjB,GAAuB,OAAOA,EAE3C,IAAI2X,EAASvO,EAAMuO,OACnB,GAAe,WAAX4K,EAAqB,CACvB,IAAK5K,GAA0B,SAAhBA,EAAO7N,MAAmB6N,EAAO2L,QAAUla,EACxD,MAAO,GAET,GAAIuO,GAA0B,aAAhBA,EAAO7N,KACnB,MAAO,EAEX,CACA,IAAK6N,EAAQ,OAAOoJ,GAAcwB,GAClC,IAAIgB,EAAQna,EAAMoa,OAElB,GADKD,EAAME,WAAUF,EAAME,SAAW,CAAA,QACA,IAA3BF,EAAME,SAASlB,GACxB,OAAOgB,EAAME,SAASlB,GAExB,GAAe,WAAXA,GAAkC,UAAXA,EACzB,OAAOpa,KAAKma,YAAYlZ,EAAOmZ,GAC1B,CACL,IAAIpgB,EAAS,QApHGiI,EAoHkBmY,GAnH3B,GAAGmB,cAAgBtZ,EAAI4B,MAAM,IAoHhC7D,KAAKhG,GACPnC,EAAQmI,KAAKhG,GAAQohB,EAAOna,GAE5Bma,EAAMI,KAAM5W,IAEV,GADA/M,EAAQ+M,EAAGkV,KAAKoB,QACK,IAAVrjB,EAAuB,OAAO,GAG/C,CA7HJ,IAAsBoK,EAgIlB,YAFqB,IAAVpK,IAAuBA,EAAQ+gB,GAAcwB,IACxDgB,EAAME,SAASlB,GAAUviB,EAClBA,CACT,CACA,cAAA4jB,CAAeL,GACb,IAAIvjB,EAaJ,OAZAujB,EAAMI,KAAM5W,IACV,GAAIA,EAAGoV,OAASpV,EAAGoV,MAAMlb,OAAS,QACH,IAAlB8F,EAAGkV,KAAKjB,MAKjB,OAJAhhB,EAAQ+M,EAAGkV,KAAKjB,MACZhhB,EAAMgC,SAAS,QACjBhC,EAAQA,EAAM2G,QAAQ,UAAW,MAE5B,IAIT3G,IAAOA,EAAQA,EAAM2G,QAAQ,MAAO,KACjC3G,CACT,CACA,gBAAA6jB,CAAiBN,EAAOna,GACtB,IAAIpJ,EAeJ,OAdAujB,EAAMO,aAAc/W,IAClB,QAA8B,IAAnBA,EAAGkV,KAAKa,OAKjB,OAJA9iB,EAAQ+M,EAAGkV,KAAKa,OACZ9iB,EAAMgC,SAAS,QACjBhC,EAAQA,EAAM2G,QAAQ,UAAW,MAE5B,SAGU,IAAV3G,EACTA,EAAQmI,KAAKqa,IAAIpZ,EAAO,KAAM,cACrBpJ,IACTA,EAAQA,EAAM2G,QAAQ,MAAO,KAExB3G,CACT,CACA,aAAA+jB,CAAcR,EAAOna,GACnB,IAAIpJ,EAeJ,OAdAujB,EAAMS,UAAWjX,IACf,QAA8B,IAAnBA,EAAGkV,KAAKa,OAKjB,OAJA9iB,EAAQ+M,EAAGkV,KAAKa,OACZ9iB,EAAMgC,SAAS,QACjBhC,EAAQA,EAAM2G,QAAQ,UAAW,MAE5B,SAGU,IAAV3G,EACTA,EAAQmI,KAAKqa,IAAIpZ,EAAO,KAAM,cACrBpJ,IACTA,EAAQA,EAAM2G,QAAQ,MAAO,KAExB3G,CACT,CACA,aAAAikB,CAAcV,GACZ,IAAIvjB,EAOJ,OANAujB,EAAMI,KAAM5W,IACV,GAAgB,SAAZA,EAAGjD,OACL9J,EAAQ+M,EAAGkV,KAAKI,aACK,IAAVriB,GAAuB,OAAO,IAGtCA,CACT,CACA,aAAAkkB,CAAcX,GACZ,IAAIvjB,EAaJ,OAZAujB,EAAMI,KAAM5W,IACV,GAAIA,EAAGoV,QAAUpV,EAAG4K,SAAW4L,GAASA,EAAMD,QAAUvW,SACxB,IAAnBA,EAAGkV,KAAKa,OAKjB,OAJA9iB,EAAQ+M,EAAGkV,KAAKa,OACZ9iB,EAAMgC,SAAS,QACjBhC,EAAQA,EAAM2G,QAAQ,UAAW,MAE5B,IAIT3G,IAAOA,EAAQA,EAAM2G,QAAQ,MAAO,KACjC3G,CACT,CACA,QAAAmkB,CAASZ,GACP,IAAIvjB,EAOJ,OANAujB,EAAMS,UAAWjX,IACf,QAA+B,IAApBA,EAAGkV,KAAKI,QAEjB,OADAriB,EAAQ+M,EAAGkV,KAAKI,QAAQ1b,QAAQ,UAAW,KACpC,IAGJ3G,CACT,CACA,YAAAokB,CAAab,GACX,IAAIvjB,EAOJ,OANAujB,EAAMI,KAAM5W,IACV,GAAIA,EAAGoV,OAA6B,IAApBpV,EAAGoV,MAAMlb,SACvBjH,EAAQ+M,EAAGkV,KAAKjB,WACK,IAAVhhB,GAAuB,OAAO,IAGtCA,CACT,CACA,SAAAqkB,CAAUd,GACR,GAAIA,EAAMtB,KAAKP,OAAQ,OAAO6B,EAAMtB,KAAKP,OACzC,IAAI1hB,EAYJ,OAXAujB,EAAMI,KAAM5W,IACV,IAAIuX,EAAIvX,EAAG4K,OACX,GAAI2M,GAAKA,IAAMf,GAASe,EAAE3M,QAAU2M,EAAE3M,SAAW4L,QACjB,IAAnBxW,EAAGkV,KAAKa,OAAwB,CACzC,IAAI3W,EAAQY,EAAGkV,KAAKa,OAAO9b,MAAM,MAGjC,OAFAhH,EAAQmM,EAAMA,EAAMlF,OAAS,GAC7BjH,EAAQA,EAAM2G,QAAQ,MAAO,KACtB,CACT,IAGG3G,CACT,CACA,YAAAukB,CAAahB,GACX,IAAIvjB,EAOJ,OANAujB,EAAMI,KAAM5W,IACV,GAAIA,EAAGoV,OAASpV,EAAGoV,MAAMlb,QAA2B,SAAjB8F,EAAG6V,KAAK9Y,OACzC9J,EAAQ+M,EAAGkV,KAAKN,eACK,IAAV3hB,GAAuB,OAAO,IAGtCA,CACT,CACA,QAAAgiB,CAAS5Y,EAAO+Z,GACd,IAAInjB,EAAQoJ,EAAM+Z,GACdX,EAAMpZ,EAAM6Y,KAAKkB,GACrB,OAAIX,GAAOA,EAAIxiB,QAAUA,EAChBwiB,EAAIA,IAENxiB,CACT,CACA,IAAAwjB,CAAKpa,GACHjB,KAAK3F,KAAK4G,GACNA,EAAM6Y,KAAKjB,OAAO7Y,KAAK0Z,QAAQzY,EAAM6Y,KAAKjB,MAChD,CACA,IAAAwD,CAAKpb,GACHjB,KAAKia,MAAMhZ,EAAOjB,KAAK6Z,SAAS5Y,EAAO,aACnCA,EAAM6Y,KAAKwC,cACbtc,KAAK0Z,QAAQzY,EAAM6Y,KAAKwC,aAAcrb,EAAO,MAEjD,CACA,SAAAhC,CAAUgC,EAAOuY,GACf,IAAKxZ,KAAKiB,EAAMU,MACd,MAAM,IAAIiV,MACR,yBAA2B3V,EAAMU,KAAO,mDAG5C3B,KAAKiB,EAAMU,MAAMV,EAAOuY,EAC1B,GAEF,IAAI+C,GAAgB9C,GACpBA,GAAgB5F,QAAU4F,GAC1B,IAAI+C,GAAkBD,GACtB,SAASE,GAAcxb,EAAOyY,GAClB,IAAI8C,GAAgB9C,GAC1Bza,UAAUgC,EAChB,CACA,IAAIyb,GAAgBD,GACpBA,GAAc5I,QAAU4I,GACxB,IAAM/D,QAASiE,GAAahE,GAAIiE,IAAWnE,GACvCoE,GAAqBrE,GACrBsE,GAAiBP,GACjBQ,GAAgBL,GACpB,SAASM,GAAYrlB,EAAK6X,GACxB,IAAIyN,EAAS,IAAItlB,EAAI6E,YACrB,IAAK,IAAIoI,KAAMjN,EAAK,CAClB,IAAKH,OAAO0B,UAAUwa,eAAe1Y,KAAKrD,EAAKiN,GAC7C,SAEF,GAAW,eAAPA,EAAqB,SACzB,IAAI/M,EAAQF,EAAIiN,GACZjD,SAAc9J,EACP,WAAP+M,GAA4B,WAATjD,EACjB6N,IAAQyN,EAAOrY,GAAM4K,GACT,WAAP5K,EACTqY,EAAOrY,GAAM/M,EACJqG,MAAMgf,QAAQrlB,GACvBolB,EAAOrY,GAAM/M,EAAMqgB,IAAKnT,GAAMiY,GAAYjY,EAAGkY,KAEhC,WAATtb,GAA+B,OAAV9J,IAAgBA,EAAQmlB,GAAYnlB,IAC7DolB,EAAOrY,GAAM/M,EAEjB,CACA,OAAOolB,CACT,CACA,IAAIE,GAAW,MACb,WAAA3gB,CAAY4gB,EAAW,IACrBpd,KAAK8Z,KAAO,CAAA,EACZ9Z,KAAK2c,KAAe,EACpB3c,KAAK4c,KAAU,EACf,IAAK,IAAIjgB,KAAQygB,EACf,GAAa,UAATzgB,EAAkB,CACpBqD,KAAKga,MAAQ,GACb,IAAK,IAAI/Y,KAASmc,EAASzgB,GACE,mBAAhBsE,EAAMoc,MACfrd,KAAKsd,OAAOrc,EAAMoc,SAElBrd,KAAKsd,OAAOrc,EAGlB,MACEjB,KAAKrD,GAAQygB,EAASzgB,EAG5B,CACA,UAAA4gB,CAAW9e,GAET,GADAA,EAAM+e,YAAcxd,KAChBvB,EAAMsF,OAAS/D,KAAKtD,QAAU,aAAaiH,KAAKlF,EAAMsF,OAAQ,CAChE,IAAItG,EAAKuC,KAAKtD,OACd+B,EAAMsF,MAAQtF,EAAMsF,MAAMvF,QACxB,aACA,KAAKf,EAAGggB,MAAMtf,QAAQV,EAAGsa,MAAMjB,QAAQrZ,EAAGsa,MAAMhB,WAEpD,CACA,OAAOtY,CACT,CACA,KAAAoa,CAAM3X,GAEJ,OADAlB,KAAKwP,OAAOkO,YAAY1d,KAAMkB,GACvBlB,IACT,CACA,MAAAiS,CAAO0L,EAAY,IACjB,IAAK,IAAIhhB,KAAQghB,EACf3d,KAAKrD,GAAQghB,EAAUhhB,GAEzB,OAAOqD,IACT,CACA,MAAA2a,CAAOzZ,GAEL,OADAlB,KAAKwP,OAAOoO,aAAa5d,KAAMkB,GACxBlB,IACT,CACA,SAAA6d,CAAUC,UACD9d,KAAK8Z,KAAKa,cACV3a,KAAK8Z,KAAKjB,MACZiF,UAAoB9d,KAAK8Z,KAAKI,OACrC,CACA,KAAAmD,CAAMM,EAAY,IAChB,IAAIV,EAASD,GAAYhd,MACzB,IAAK,IAAIrD,KAAQghB,EACfV,EAAOtgB,GAAQghB,EAAUhhB,GAE3B,OAAOsgB,CACT,CACA,UAAAc,CAAWJ,EAAY,IACrB,IAAIV,EAASjd,KAAKqd,MAAMM,GAExB,OADA3d,KAAKwP,OAAOkO,YAAY1d,KAAMid,GACvBA,CACT,CACA,WAAAe,CAAYL,EAAY,IACtB,IAAIV,EAASjd,KAAKqd,MAAMM,GAExB,OADA3d,KAAKwP,OAAOoO,aAAa5d,KAAMid,GACxBA,CACT,CACA,KAAAxe,CAAMoY,EAASoH,EAAO,IACpB,GAAIje,KAAKtD,OAAQ,CACf,IAAIsb,IAAEA,EAAGD,MAAEA,GAAU/X,KAAKke,QAAQD,GAClC,OAAOje,KAAKtD,OAAO+gB,MAAMhf,MACvBoY,EACA,CAAEE,OAAQgB,EAAMhB,OAAQD,KAAMiB,EAAMjB,MACpC,CAAEC,OAAQiB,EAAIjB,OAAQD,KAAMkB,EAAIlB,MAChCmH,EAEJ,CACA,OAAO,IAAIpB,GAAmBhG,EAChC,CACA,iBAAAsH,GACE,MAAO,CACLxkB,IAAG,CAACsH,EAAO+Z,IACI,YAATA,EACK/Z,EACW,SAAT+Z,EACF,IAAM/Z,EAAMoa,OAAO+C,UAEnBnd,EAAM+Z,GAGjB5Z,IAAG,CAACH,EAAO+Z,EAAMnjB,KACXoJ,EAAM+Z,KAAUnjB,IACpBoJ,EAAM+Z,GAAQnjB,EACD,SAATmjB,GAA4B,UAATA,GAA6B,SAATA,GAA4B,WAATA,GAA8B,cAATA,GAC1E,SAATA,GACE/Z,EAAMod,cAJ0B,GASxC,CACA,SAAAA,GACE,GAAIre,KAAK2c,IAAc,CACrB3c,KAAK2c,KAAe,EACpB,IAAI2B,EAAOte,KACX,KAAOse,EAAOA,EAAK9O,QACjB8O,EAAK3B,KAAe,CAExB,CACF,CACA,IAAA2B,GACE,IAAKte,KAAKwP,OAAQ,OAClB,IAAI2I,EAASnY,KAAKwP,OAAO+O,MAAMve,MAC/B,OAAOA,KAAKwP,OAAOwK,MAAM7B,EAAS,EACpC,CACA,UAAAqG,CAAWP,EAAMQ,GACf,IAAIvX,EAAMlH,KAAKtD,OAAOqb,MACtB,GAAIkG,EAAKM,MACPrX,EAAMlH,KAAK0e,eAAeT,EAAKM,MAAOE,QACjC,GAAIR,EAAKU,KAAM,CAEpB,IAAIxG,GADJsG,EAAuBze,KAAKpG,YACMgK,QAAQqa,EAAKU,OAChC,IAAXxG,IAAejR,EAAMlH,KAAK0e,eAAevG,EAAQsG,GACvD,CACA,OAAOvX,CACT,CACA,cAAAwX,CAAevG,EAAQsG,GACrB,IAAI1D,EAAS0D,GAAwBze,KAAKpG,WACtCmd,EAAS/W,KAAKtD,OAAOqb,MAAMhB,OAC3BD,EAAO9W,KAAKtD,OAAOqb,MAAMjB,KAC7B,IAAK,IAAIlS,EAAK,EAAGA,EAAKuT,EAAQvT,IACT,OAAfmW,EAAOnW,IACTmS,EAAS,EACTD,GAAQ,GAERC,GAAU,EAGd,MAAO,CAAEA,SAAQD,OACnB,CACA,IAAA8H,GACE,IAAK5e,KAAKwP,OAAQ,OAClB,IAAI2I,EAASnY,KAAKwP,OAAO+O,MAAMve,MAC/B,OAAOA,KAAKwP,OAAOwK,MAAM7B,EAAS,EACpC,CACA,OAAA+F,CAAQD,GACN,IAAIlG,EAAQ,CACVhB,OAAQ/W,KAAKtD,OAAOqb,MAAMhB,OAC1BD,KAAM9W,KAAKtD,OAAOqb,MAAMjB,MAEtBkB,EAAMhY,KAAKtD,OAAOsb,IAAM,CAC1BjB,OAAQ/W,KAAKtD,OAAOsb,IAAIjB,OAAS,EACjCD,KAAM9W,KAAKtD,OAAOsb,IAAIlB,MACpB,CACFC,OAAQgB,EAAMhB,OAAS,EACvBD,KAAMiB,EAAMjB,MAEd,GAAImH,EAAKU,KAAM,CACb,IAAIF,EAAuBze,KAAKpG,WAC5Bue,EAASsG,EAAqB7a,QAAQqa,EAAKU,OAChC,IAAXxG,IACFJ,EAAQ/X,KAAK0e,eAAevG,EAAQsG,GACpCzG,EAAMhY,KAAK0e,eAAevG,EAAS8F,EAAKU,KAAK7f,OAAQ2f,GAEzD,MACMR,EAAKlG,MACPA,EAAQ,CACNhB,OAAQkH,EAAKlG,MAAMhB,OACnBD,KAAMmH,EAAKlG,MAAMjB,MAEVmH,EAAKM,QACdxG,EAAQ/X,KAAK0e,eAAeT,EAAKM,QAE/BN,EAAKjG,IACPA,EAAM,CACJjB,OAAQkH,EAAKjG,IAAIjB,OACjBD,KAAMmH,EAAKjG,IAAIlB,MAEiB,iBAAlBmH,EAAKY,SACrB7G,EAAMhY,KAAK0e,eAAeT,EAAKY,UACtBZ,EAAKM,QACdvG,EAAMhY,KAAK0e,eAAeT,EAAKM,MAAQ,IAM3C,OAHIvG,EAAIlB,KAAOiB,EAAMjB,MAAQkB,EAAIlB,OAASiB,EAAMjB,MAAQkB,EAAIjB,QAAUgB,EAAMhB,UAC1EiB,EAAM,CAAEjB,OAAQgB,EAAMhB,OAAS,EAAGD,KAAMiB,EAAMjB,OAEzC,CAAEkB,MAAKD,QAChB,CACA,GAAAsC,CAAIW,EAAM8D,GAER,OADU,IAAIhC,IACHzC,IAAIra,KAAMgb,EAAM8D,EAC7B,CACA,MAAAC,GAKE,OAJI/e,KAAKwP,QACPxP,KAAKwP,OAAO9U,YAAYsF,MAE1BA,KAAKwP,YAAS,EACPxP,IACT,CACA,WAAAgf,IAAehF,GACb,GAAIha,KAAKwP,OAAQ,CACf,IAAIyP,EAAWjf,KACXkf,GAAY,EAChB,IAAK,IAAIje,KAAS+Y,EACZ/Y,IAAUjB,KACZkf,GAAY,EACHA,GACTlf,KAAKwP,OAAOkO,YAAYuB,EAAUhe,GAClCge,EAAWhe,GAEXjB,KAAKwP,OAAOoO,aAAaqB,EAAUhe,GAGlCie,GACHlf,KAAK+e,QAET,CACA,OAAO/e,IACT,CACA,IAAAqb,GACE,IAAI8D,EAAUnf,KACd,KAAOmf,EAAQ3P,QAAkC,aAAxB2P,EAAQ3P,OAAO7N,MACtCwd,EAAUA,EAAQ3P,OAEpB,OAAO2P,CACT,CACA,MAAAC,CAAOC,EAAGC,GACR,IAAIC,EAAQ,CAAA,EACRC,EAAuB,MAAVF,EACjBA,EAASA,GAA0B,IAAIrf,IACvC,IAAIwf,EAAkB,EACtB,IAAK,IAAI9iB,KAAQqD,KAAM,CACrB,IAAKxI,OAAO0B,UAAUwa,eAAe1Y,KAAKgF,KAAMrD,GAC9C,SAEF,GAAa,WAATA,GAA8B,eAATA,EAAuB,SAChD,IAAI9E,EAAQmI,KAAKrD,GACjB,GAAIuB,MAAMgf,QAAQrlB,GAChB0nB,EAAM5iB,GAAQ9E,EAAMqgB,IAAKtT,GACL,iBAAPA,GAAmBA,EAAGwa,OACxBxa,EAAGwa,OAAO,KAAME,GAEhB1a,QAGN,GAAqB,iBAAV/M,GAAsBA,EAAMunB,OAC5CG,EAAM5iB,GAAQ9E,EAAMunB,OAAO,KAAME,QAC5B,GAAa,WAAT3iB,EAAmB,CAC5B,IAAI+iB,EAAUJ,EAAO3lB,IAAI9B,EAAM4lB,OAChB,MAAXiC,IACFA,EAAUD,EACVH,EAAOle,IAAIvJ,EAAM4lB,MAAOgC,GACxBA,KAEFF,EAAM5iB,GAAQ,CACZqb,IAAKngB,EAAMmgB,IACX0H,UACA3H,MAAOlgB,EAAMkgB,MAEjB,MACEwH,EAAM5iB,GAAQ9E,CAElB,CAIA,OAHI2nB,IACFD,EAAMD,OAAS,IAAIA,EAAO7e,QAAQyX,IAAKyH,GAAWA,EAAOP,WAEpDG,CACT,CACA,OAAAnB,GAIE,OAHKpe,KAAK4f,aACR5f,KAAK4f,WAAa,IAAIC,MAAM7f,KAAMA,KAAKme,sBAElCne,KAAK4f,UACd,CACA,QAAAhmB,CAASkmB,EAAe/C,IAClB+C,EAAa7gB,YAAW6gB,EAAeA,EAAa7gB,WACxD,IAAIkgB,EAAU,GAId,OAHAW,EAAa9f,KAAO4E,IAClBua,GAAWva,IAENua,CACT,CACA,IAAA3R,CAAK2R,EAAStd,EAAMoc,GAClB,IAAIjS,EAAO,CAAE+T,KAAM/f,MACnB,IAAK,IAAI4E,KAAMqZ,EAAMjS,EAAKpH,GAAMqZ,EAAKrZ,GACrC,OAAOua,EAAQ3R,KAAK3L,EAAMmK,EAC5B,CACA,WAAIgU,GACF,OAAOhgB,IACT,GAEF,IAAIigB,GAAS9C,GACbA,GAAStJ,QAAUsJ,GACnB,IAAI+C,GAAWD,GACXE,GAAkB,cAA0BD,GAC9C,WAAA1jB,CAAY4gB,GACNA,QAAsC,IAAnBA,EAASvlB,OAAmD,iBAAnBulB,EAASvlB,QACvEulB,EAAW,IAAKA,EAAUvlB,MAAOkD,OAAOqiB,EAASvlB,SAEnDqf,MAAMkG,GACNpd,KAAK2B,KAAO,MACd,CACA,YAAIye,GACF,OAAOpgB,KAAKgb,KAAKjU,WAAW,OAA0B,MAAjB/G,KAAKgb,KAAK,EACjD,GAEF,IAAIqF,GAAgBF,GACpBA,GAAgBtM,QAAUsM,GAU1B,IAAIG,GAAc,CAAEC,OARH,CAACC,EAAO,MACvB,IAAIngB,EAAK,GACLuE,EAAK4b,EACT,KAAO5b,KACLvE,GALgB,mEAKoB,GAAhBkF,KAAKkb,SAAgB,GAE3C,OAAOpgB,IAGT,IAAMqgB,kBAAmBC,GAAuBC,mBAAoBC,IAA2B1K,IACzF2K,WAAYC,GAAcC,aAAcC,IAAmB9K,IAC3D+K,QAASC,GAAa7iB,KAAM8iB,IAAWjL,GAQ7C,IAAIkL,GAAkB,MACpB,WAAA7kB,CAAYmb,EAAKsG,GACf,IAAiB,IAAbA,EAAK/F,IAAe,OACxBlY,KAAKshB,eAAe3J,GACpB3X,KAAKuhB,OAASvhB,KAAKwhB,UAAUxhB,KAAKyhB,WAAY,SAC9C,IAAI7C,EAAOX,EAAK/F,IAAM+F,EAAK/F,IAAI0G,UAAO,EAClC/c,EAAO7B,KAAK0hB,QAAQzD,EAAK9f,KAAMygB,IAC9B5e,KAAK2hB,SAAW1D,EAAK9f,OACxB6B,KAAK2hB,QAAU1D,EAAK9f,MAElB6B,KAAK2hB,UAAS3hB,KAAKqb,KAAO8F,GAAYnhB,KAAK2hB,UAC3C9f,IAAM7B,KAAK6B,KAAOA,EACxB,CACA,QAAA+f,GAIE,OAHK5hB,KAAK6hB,gBACR7hB,KAAK6hB,cAAgB,IAAIlB,GAAsB3gB,KAAK6B,OAE/C7B,KAAK6hB,aACd,CACA,YAAAC,CAAajgB,GAKX,GAFiB,0CAEF8B,KAAK9B,IADV,2BACuB8B,KAAK9B,GACpC,OAAOkgB,mBAAmBlgB,EAAKmgB,OAAOlc,OAAOmc,UAAUnjB,SAEzD,GAPqB,iDAOF6E,KAAK9B,IANV,kCAM2B8B,KAAK9B,GAC5C,OAnCgBI,EAmCIJ,EAAKmgB,OAAOlc,OAAOmc,UAAUnjB,QAlCjDojB,OACKA,OAAO/jB,KAAK8D,EAAK,UAAUrI,WAE3B8I,OAAOyf,KAAKlgB,GAJvB,IAAsBA,EAqClB,IAAImgB,EAAWvgB,EAAKgB,MAAM,mCAAmC,GAC7D,MAAM,IAAI+T,MAAM,mCAAqCwL,EACvD,CACA,gBAAAC,CAAiBC,GACf,OAAOA,EAAgB9jB,QAAQ,8BAA+B,IAAIgI,MACpE,CACA,KAAA+b,CAAMrK,GACJ,MAAmB,iBAARA,IACoB,iBAAjBA,EAAIsK,UAAkD,iBAAlBtK,EAAIuK,WAA0BvkB,MAAMgf,QAAQhF,EAAIwK,UACpG,CACA,cAAApB,CAAe3J,GACb,IAAIgL,EAAWhL,EAAI9U,MAAM,gCACzB,IAAK8f,EAAU,OACf,IAAI5K,EAAQJ,EAAIiL,YAAYD,EAAS1e,OACjC+T,EAAML,EAAI/T,QAAQ,KAAMmU,GACxBA,GAAQ,GAAMC,OAChBhY,KAAKyhB,WAAazhB,KAAKqiB,iBAAiB1K,EAAI3S,UAAU+S,EAAOC,IAEjE,CACA,QAAA6K,CAASvgB,GAEP,GADAtC,KAAKqb,KAAO8F,GAAY7e,GACpBye,GAAaze,GAEf,OADAtC,KAAK2hB,QAAUrf,EACR2e,GAAe3e,EAAM,SAAS1I,WAAW4M,MAEpD,CACA,OAAAkb,CAAQ1K,EAAM4H,GACZ,IAAa,IAATA,EAAgB,OAAO,EAC3B,GAAIA,EAAM,CACR,GAAoB,iBAATA,EACT,OAAOA,EACF,GAAoB,mBAATA,EAWX,IAAIA,aAAgB+B,GACzB,OAAOE,GAAuBiC,cAAclE,GAAMhlB,WAC7C,GAAIglB,aAAgBiC,GACzB,OAAOjC,EAAKhlB,WACP,GAAIoG,KAAKuiB,MAAM3D,GACpB,OAAO5f,KAAKC,UAAU2f,GAEtB,MAAM,IAAIhI,MACR,2CAA6CgI,EAAKhlB,WAEtD,CArBuC,CACrC,IAAImpB,EAAWnE,EAAK5H,GACpB,GAAI+L,EAAU,CACZ,IAAI7K,EAAMlY,KAAK6iB,SAASE,GACxB,IAAK7K,EACH,MAAM,IAAItB,MACR,uCAAyCmM,EAASnpB,YAGtD,OAAOse,CACT,CACF,CAWF,KAAO,IAAIlY,KAAKuhB,OACd,OAAOvhB,KAAK8hB,aAAa9hB,KAAKyhB,YACzB,GAAIzhB,KAAKyhB,WAAY,CAC1B,IAAIvJ,EAAMlY,KAAKyhB,WAEf,OADIzK,IAAMkB,EAAMkJ,GAAOD,GAAYnK,GAAOkB,IACnClY,KAAK6iB,SAAS3K,EACvB,EACF,CACA,SAAAsJ,CAAUzG,EAAQhD,GAChB,QAAKgD,GACEA,EAAOiH,OAAO,EAAGjK,EAAMjZ,UAAYiZ,CAC5C,CACA,WAAAiL,GACE,SAAUhjB,KAAK4hB,WAAWqB,gBAAkBjjB,KAAK4hB,WAAWqB,eAAenkB,OAAS,EACtF,GAEF,IAAIokB,GAAgB7B,GACpBA,GAAgBxN,QAAUwN,GAC1B,IAAMX,kBAAmByC,GAAuBvC,mBAAoBwC,IAA2BjN,IACzFkN,cAAeC,GAAiBC,cAAeC,IAAsBrN,IACrEsN,WAAYC,GAAcC,QAASC,IAAgBzN,IACnDoK,OAAQsD,IAAavD,GACvBwD,GAAsB3N,GACtB4N,GAAqBvL,GACrBwL,GAAkBd,GAClBe,GAAoB3N,OAAO,mBAC3B4N,GAAyB7qB,QAAQ8pB,IAAyBC,IAC1De,GAAoB9qB,QAAQuqB,IAAeF,IAC3CU,GAAY,MACd,WAAA5nB,CAAYmb,EAAKsG,EAAO,IACtB,GAAItG,SAA6D,iBAARA,IAAqBA,EAAI/d,SAChF,MAAM,IAAIgd,MAAM,oBAAoBe,2BAgBtC,GAdA3X,KAAK2X,IAAMA,EAAI/d,WACK,WAAhBoG,KAAK2X,IAAI,IAAmC,MAAhB3X,KAAK2X,IAAI,IACvC3X,KAAKqkB,QAAS,EACdrkB,KAAK2X,IAAM3X,KAAK2X,IAAI9T,MAAM,IAE1B7D,KAAKqkB,QAAS,EAEZpG,EAAK9f,QACFgmB,IAAqB,YAAYxgB,KAAKsa,EAAK9f,OAASulB,GAAazF,EAAK9f,MACzE6B,KAAKgX,KAAOiH,EAAK9f,KAEjB6B,KAAKgX,KAAO4M,GAAY3F,EAAK9f,OAG7BgmB,IAAqBD,GAAwB,CAC/C,IAAIhM,EAAM,IAAI8L,GAAgBhkB,KAAK2X,IAAKsG,GACxC,GAAI/F,EAAIrW,KAAM,CACZ7B,KAAKkY,IAAMA,EACX,IAAIlB,EAAOkB,EAAI0J,WAAW5K,MACrBhX,KAAKgX,MAAQA,IAAMhX,KAAKgX,KAAOhX,KAAKskB,WAAWtN,GACtD,CACF,CACKhX,KAAKgX,OACRhX,KAAKK,GAAK,cAAgBwjB,GAAS,GAAK,KAEtC7jB,KAAKkY,MAAKlY,KAAKkY,IAAIlB,KAAOhX,KAAK7B,KACrC,CACA,KAAAM,CAAMoY,EAASC,EAAMC,EAAQkH,EAAO,CAAA,GAClC,IAAIkB,EAAS9H,EAASC,EACtB,GAAIR,GAAwB,iBAATA,EAAmB,CACpC,IAAIiB,EAAQjB,EACRkB,EAAMjB,EACV,GAA4B,iBAAjBgB,EAAMwM,OAAqB,CACpC,IAAIrd,EAAMlH,KAAKwkB,WAAWzM,EAAMwM,QAChCzN,EAAO5P,EAAI4P,KACXC,EAAS7P,EAAIud,GACf,MACE3N,EAAOiB,EAAMjB,KACbC,EAASgB,EAAMhB,OAEjB,GAA0B,iBAAfiB,EAAIuM,OAAqB,CAClC,IAAIrd,EAAMlH,KAAKwkB,WAAWxM,EAAIuM,QAC9BlN,EAAUnQ,EAAI4P,KACdQ,EAAYpQ,EAAIud,GAClB,MACEpN,EAAUW,EAAIlB,KACdQ,EAAYU,EAAIjB,MAEpB,MAAO,IAAKA,EAAQ,CAClB,IAAI7P,EAAMlH,KAAKwkB,WAAW1N,GAC1BA,EAAO5P,EAAI4P,KACXC,EAAS7P,EAAIud,GACf,CACA,IAAIthB,EAASnD,KAAKmD,OAAO2T,EAAMC,EAAQM,EAASC,GA2BhD,OAzBE6H,EADEhc,EACQ,IAAI4gB,GACZlN,OACmB,IAAnB1T,EAAOkU,QAAqBlU,EAAO2T,KAAO,CAAEC,OAAQ5T,EAAO4T,OAAQD,KAAM3T,EAAO2T,WAC7D,IAAnB3T,EAAOkU,QAAqBlU,EAAO4T,OAAS,CAAEA,OAAQ5T,EAAOmU,UAAWR,KAAM3T,EAAOkU,SACrFlU,EAAOzG,OACPyG,EAAO6T,KACPiH,EAAK7G,QAGG,IAAI2M,GACZlN,OACY,IAAZQ,EAAqBP,EAAO,CAAEC,SAAQD,aAC1B,IAAZO,EAAqBN,EAAS,CAAEA,OAAQO,EAAWR,KAAMO,GACzDrX,KAAK2X,IACL3X,KAAKgX,KACLiH,EAAK7G,QAGT+H,EAAQ1B,MAAQ,CAAE1G,SAAQO,YAAWD,UAASP,OAAMpa,OAAQsD,KAAK2X,KAC7D3X,KAAKgX,OACHwM,KACFrE,EAAQ1B,MAAMjb,IAAMghB,GAAkBxjB,KAAKgX,MAAMpd,YAEnDulB,EAAQ1B,MAAMzG,KAAOhX,KAAKgX,MAErBmI,CACT,CACA,UAAAqF,CAAWD,GACT,IAAIG,EAAUC,EACd,GAAK3kB,KAAKikB,IAURU,EAAc3kB,KAAKikB,QAVS,CAC5B,IAAInM,EAAQ9X,KAAK2X,IAAI9Y,MAAM,MAC3B8lB,EAAc,IAAIzmB,MAAM4Z,EAAMhZ,QAC9B,IAAI8lB,EAAY,EAChB,IAAK,IAAIhgB,EAAK,EAAGigB,EAAK/M,EAAMhZ,OAAQ8F,EAAKigB,EAAIjgB,IAC3C+f,EAAY/f,GAAMggB,EAClBA,GAAa9M,EAAMlT,GAAI9F,OAAS,EAElCkB,KAAKikB,IAAqBU,CAC5B,CAGAD,EAAWC,EAAYA,EAAY7lB,OAAS,GAC5C,IAAIiN,EAAM,EACV,GAAIwY,GAAUG,EACZ3Y,EAAM4Y,EAAY7lB,OAAS,MACtB,CACL,IACIgmB,EADApf,EAAMif,EAAY7lB,OAAS,EAE/B,KAAOiN,EAAMrG,GAEX,GADAof,EAAM/Y,GAAOrG,EAAMqG,GAAO,GACtBwY,EAASI,EAAYG,GACvBpf,EAAMof,EAAM,MACP,MAAIP,GAAUI,EAAYG,EAAM,IAEhC,CACL/Y,EAAM+Y,EACN,KACF,CAJE/Y,EAAM+Y,EAAM,CAId,CAEJ,CACA,MAAO,CACLL,IAAKF,EAASI,EAAY5Y,GAAO,EACjC+K,KAAM/K,EAAM,EAEhB,CACA,UAAAuY,CAAWtN,GACT,MAAI,YAAYrT,KAAKqT,GACZA,EAEF4M,GAAY5jB,KAAKkY,IAAI0J,WAAWmD,YAAc/kB,KAAKkY,IAAImD,MAAQ,IAAKrE,EAC7E,CACA,MAAA7T,CAAO2T,EAAMC,EAAQM,EAASC,GAC5B,IAAKtX,KAAKkY,IAAK,OAAO,EACtB,IAGI8M,EAIAC,EAPArD,EAAW5hB,KAAKkY,IAAI0J,WACpBzjB,EAAOyjB,EAASsD,oBAAoB,CAAEnO,SAAQD,SAClD,IAAK3Y,EAAKzB,OAAQ,OAAO,EAEF,iBAAZ2a,IACT2N,EAAKpD,EAASsD,oBAAoB,CAAEnO,OAAQO,EAAWR,KAAMO,KAI7D4N,EADEvB,GAAavlB,EAAKzB,QACV8mB,GAAkBrlB,EAAKzB,QAEvB,IAAI+F,IACZtE,EAAKzB,OACLsD,KAAKkY,IAAI0J,WAAWmD,YAAcvB,GAAkBxjB,KAAKkY,IAAIyJ,UAGjE,IAAIxC,EAAU,CACZpI,OAAQ5Y,EAAK4Y,OACbO,UAAW0N,GAAMA,EAAGjO,OACpBM,QAAS2N,GAAMA,EAAGlO,KAClBA,KAAM3Y,EAAK2Y,KACXtU,IAAKyiB,EAAQrrB,YAEf,GAAyB,UAArBqrB,EAAQE,SAAsB,CAChC,IAAI7B,GAGF,MAAM,IAAI1M,MAAM,yDAFhBuI,EAAQnI,KAAOsM,GAAgB2B,EAInC,CACA,IAAIvoB,EAASklB,EAASwD,iBAAiBjnB,EAAKzB,QAE5C,OADIA,IAAQyiB,EAAQziB,OAASA,GACtByiB,CACT,CACA,MAAAC,GACE,IAAIiG,EAAO,CAAA,EACX,IAAK,IAAI1oB,IAAQ,CAAC,SAAU,MAAO,OAAQ,MACvB,MAAdqD,KAAKrD,KACP0oB,EAAK1oB,GAAQqD,KAAKrD,IAStB,OANIqD,KAAKkY,MACPmN,EAAKnN,IAAM,IAAKlY,KAAKkY,KACjBmN,EAAKnN,IAAI2J,gBACXwD,EAAKnN,IAAI2J,mBAAgB,IAGtBwD,CACT,CACA,QAAIlnB,GACF,OAAO6B,KAAKgX,MAAQhX,KAAKK,EAC3B,GAEF,IAAIilB,GAAUlB,GACdA,GAAUvQ,QAAUuQ,GAChBN,IAAuBA,GAAoByB,eAC7CzB,GAAoByB,cAAcnB,IAEpC,IAAM1D,kBAAmB8E,GAAqB5E,mBAAoB6E,IAAyBtP,IACrF+K,QAASwE,GAAWC,SAAUC,GAAYjC,QAASkC,GAAWC,IAAKC,IAAU5P,IAC7EoN,cAAeyC,IAAoB7P,GACrC8P,GAAYX,GACZY,GAAuB7sB,QAAQmsB,IAAuBC,IACtDU,GAAkB9sB,QAAQqsB,IAAaG,IAAaD,IAAcG,IAgTtE,IAAIK,GA/SmB,MACrB,WAAA5pB,CAAY6pB,EAAYjL,EAAO6C,EAAMqI,GACnCtmB,KAAKf,UAAYonB,EACjBrmB,KAAKumB,QAAUtI,EAAK/F,KAAO,CAAA,EAC3BlY,KAAKqb,KAAOD,EACZpb,KAAKie,KAAOA,EACZje,KAAK2X,IAAM2O,EACXtmB,KAAKwmB,YAAcF,EACnBtmB,KAAKymB,cAAgBzmB,KAAKumB,QAAQpoB,MAAQ6B,KAAKumB,QAAQG,SACvD1mB,KAAK2mB,iBAAmC,IAAI1mB,IAC5CD,KAAK4mB,cAAgC,IAAI3mB,IACzCD,KAAK6mB,aAA+B,IAAI5mB,GAC1C,CACA,aAAA6mB,GACE,IAAIC,EAEFA,EADE/mB,KAAKgnB,WACG,gCAAkChnB,KAAKinB,SAASjnB,KAAKkY,IAAIte,YACvB,iBAA5BoG,KAAKumB,QAAQ9E,WACnBzhB,KAAKumB,QAAQ9E,WACqB,mBAA5BzhB,KAAKumB,QAAQ9E,WACnBzhB,KAAKumB,QAAQ9E,WAAWzhB,KAAKie,KAAK+G,GAAIhlB,KAAKqb,MAE3Crb,KAAKknB,aAAe,OAEhC,IAAIC,EAAM,KACNnnB,KAAK2X,IAAI9d,SAAS,UAASstB,EAAM,QACrCnnB,KAAK2X,KAAOwP,EAAM,wBAA0BJ,EAAU,KACxD,CACA,aAAAK,GACE,IAAK,IAAIxI,KAAQ5e,KAAKqnB,WAAY,CAChC,IAEInP,EAFA/Z,EAAO6B,KAAKsnB,MAAMtnB,KAAKsC,KAAKsc,EAAK5H,OACjCoE,EAAQwD,EAAKvD,MAAQqK,GAAU9G,EAAK5H,OAEJ,IAAhChX,KAAKumB,QAAQtD,gBACf/K,EAAM,IAAIsN,GAAoB5G,EAAK/c,MAC/BqW,EAAI+K,iBACN/K,EAAI+K,eAAiB,OAGvB/K,EAAM0G,EAAKgD,WAEb5hB,KAAKkY,IAAIqP,eAAerP,EAAK/Z,EAAM6B,KAAKsnB,MAAMtnB,KAAKsC,KAAK8Y,IAC1D,CACF,CACA,eAAAoM,GACE,IAAgC,IAA5BxnB,KAAKumB,QAAQ9E,WACjB,GAAIzhB,KAAKqb,KAAM,CACb,IAAIpa,EACJ,IAAK,IAAI2D,EAAK5E,KAAKqb,KAAKrB,MAAMlb,OAAS,EAAG8F,GAAM,EAAGA,IACjD3D,EAAQjB,KAAKqb,KAAKrB,MAAMpV,GACL,YAAf3D,EAAMU,MACwC,IAA9CV,EAAMY,KAAK+B,QAAQ,wBACrB5D,KAAKqb,KAAK3gB,YAAYkK,EAG5B,MAAW5E,KAAK2X,MACd3X,KAAK2X,IAAM3X,KAAK2X,IAAInZ,QAAQ,2BAA4B,IAE5D,CACA,QAAAipB,GAEE,GADAznB,KAAKwnB,kBACDrB,IAAmBD,IAAwBlmB,KAAKuiB,QAClD,OAAOviB,KAAK0nB,cACP,CACL,IAAIvI,EAAU,GAId,OAHAnf,KAAKf,UAAUe,KAAKqb,KAAOzW,IACzBua,GAAWva,IAEN,CAACua,EACV,CACF,CACA,WAAAuI,GACE,GAAI1nB,KAAKqb,KACPrb,KAAK2nB,sBACA,GAA+B,IAA3B3nB,KAAKqnB,WAAWvoB,OAAc,CACvC,IAAI8f,EAAO5e,KAAKqnB,WAAW,GAAGzF,WAC9BhD,EAAK5H,KAAOhX,KAAKknB,aACjBlnB,KAAKkY,IAAMuN,GAAqB3C,cAAclE,EAAM,CAClDgJ,sBAAsB,GAE1B,MACE5nB,KAAKkY,IAAM,IAAIuN,GAAqB,CAClCzO,KAAMhX,KAAKknB,aACXU,sBAAsB,IAExB5nB,KAAKkY,IAAI2P,WAAW,CAClBC,UAAW,CAAE/Q,OAAQ,EAAGD,KAAM,GAC9Bja,SAAU,CAAEka,OAAQ,EAAGD,KAAM,GAC7Bpa,OAAQsD,KAAKie,KAAK9f,KAAO6B,KAAKsnB,MAAMtnB,KAAKsC,KAAKtC,KAAKie,KAAK9f,OAAS,gBAMrE,OAHI6B,KAAK+nB,oBAAoB/nB,KAAKgoB,oBAC9BhoB,KAAKqb,MAAQrb,KAAKqnB,WAAWvoB,OAAS,GAAGkB,KAAKonB,gBAC9CpnB,KAAKioB,gBAAgBjoB,KAAK8mB,gBAC1B9mB,KAAKgnB,WACA,CAAChnB,KAAK2X,KAEN,CAAC3X,KAAK2X,IAAK3X,KAAKkY,IAE3B,CACA,cAAAyP,GACE3nB,KAAK2X,IAAM,GACX3X,KAAKkY,IAAM,IAAIuN,GAAqB,CAClCzO,KAAMhX,KAAKknB,aACXU,sBAAsB,IAExB,IAQI9P,EAAO2C,EARP3D,EAAO,EACPC,EAAS,EACTmR,EAAW,cACXC,EAAU,CACZL,UAAW,CAAE/Q,OAAQ,EAAGD,KAAM,GAC9Bja,SAAU,CAAEka,OAAQ,EAAGD,KAAM,GAC7Bpa,OAAQ,IAGVsD,KAAKf,UAAUe,KAAKqb,KAAM,CAACpZ,EAAKhB,EAAOU,KAyBrC,GAxBA3B,KAAK2X,KAAO1V,EACRhB,GAAkB,QAATU,IACXwmB,EAAQL,UAAUhR,KAAOA,EACzBqR,EAAQL,UAAU/Q,OAASA,EAAS,EAChC9V,EAAMvE,QAAUuE,EAAMvE,OAAOqb,OAC/BoQ,EAAQzrB,OAASsD,KAAKooB,WAAWnnB,GACjCknB,EAAQtrB,SAASia,KAAO7V,EAAMvE,OAAOqb,MAAMjB,KAC3CqR,EAAQtrB,SAASka,OAAS9V,EAAMvE,OAAOqb,MAAMhB,OAAS,EACtD/W,KAAKkY,IAAI2P,WAAWM,KAEpBA,EAAQzrB,OAASwrB,EACjBC,EAAQtrB,SAASia,KAAO,EACxBqR,EAAQtrB,SAASka,OAAS,EAC1B/W,KAAKkY,IAAI2P,WAAWM,KAGxBrQ,EAAQ7V,EAAIY,MAAM,OACdiV,GACFhB,GAAQgB,EAAMhZ,OACd2b,EAAOxY,EAAI2gB,YAAY,MACvB7L,EAAS9U,EAAInD,OAAS2b,GAEtB1D,GAAU9U,EAAInD,OAEZmC,GAAkB,UAATU,EAAkB,CAC7B,IAAIwa,EAAIlb,EAAMuO,QAAU,CAAEsK,KAAM,CAAA,IACD,SAAf7Y,EAAMU,MAAkC,WAAfV,EAAMU,OAAsBV,EAAM+Y,QACzD/Y,IAAUkb,EAAE1B,OAAQ0B,EAAErC,KAAKN,YACvCvY,EAAMvE,QAAUuE,EAAMvE,OAAOsb,KAC/BmQ,EAAQzrB,OAASsD,KAAKooB,WAAWnnB,GACjCknB,EAAQtrB,SAASia,KAAO7V,EAAMvE,OAAOsb,IAAIlB,KACzCqR,EAAQtrB,SAASka,OAAS9V,EAAMvE,OAAOsb,IAAIjB,OAAS,EACpDoR,EAAQL,UAAUhR,KAAOA,EACzBqR,EAAQL,UAAU/Q,OAASA,EAAS,EACpC/W,KAAKkY,IAAI2P,WAAWM,KAEpBA,EAAQzrB,OAASwrB,EACjBC,EAAQtrB,SAASia,KAAO,EACxBqR,EAAQtrB,SAASka,OAAS,EAC1BoR,EAAQL,UAAUhR,KAAOA,EACzBqR,EAAQL,UAAU/Q,OAASA,EAAS,EACpC/W,KAAKkY,IAAI2P,WAAWM,IAG1B,GAEJ,CACA,YAAAF,GACE,QAAIjoB,KAAKgnB,kBAG8B,IAA5BhnB,KAAKumB,QAAQ9E,WACfzhB,KAAKumB,QAAQ9E,YAElBzhB,KAAKqnB,WAAWvoB,QACXkB,KAAKqnB,WAAWnb,KAAMtH,GAAOA,EAAG6c,YAG3C,CACA,QAAAuF,GACE,QAAmC,IAAxBhnB,KAAKumB,QAAQhF,OACtB,OAAOvhB,KAAKumB,QAAQhF,OAEtB,IAAIE,EAAazhB,KAAKumB,QAAQ9E,WAC9B,YAA0B,IAAfA,IAA6C,IAAfA,MAGrCzhB,KAAKqnB,WAAWvoB,QACXkB,KAAKqnB,WAAWnb,KAAMtH,GAAOA,EAAG2c,QAG3C,CACA,KAAAgB,GACE,YAA6B,IAAlBviB,KAAKie,KAAK/F,MACVlY,KAAKie,KAAK/F,IAEdlY,KAAKqnB,WAAWvoB,OAAS,CAClC,CACA,gBAAAipB,GACE,YAA2C,IAAhC/nB,KAAKumB,QAAQtD,eACfjjB,KAAKumB,QAAQtD,gBAElBjjB,KAAKqnB,WAAWvoB,QACXkB,KAAKqnB,WAAWnb,KAAMtH,GAAOA,EAAGoe,cAG3C,CACA,UAAAkE,GACE,OAAIlnB,KAAKie,KAAK+G,GACLhlB,KAAKsC,KAAKtC,KAAKie,KAAK+G,IAClBhlB,KAAKie,KAAK9f,KACZ6B,KAAKsC,KAAKtC,KAAKie,KAAK9f,MAEpB,QAEX,CACA,IAAAmE,CAAK0U,GACH,GAAIhX,KAAKumB,QAAQG,SAAU,OAAO1P,EAClC,GAA2B,KAAvBA,EAAKqR,WAAW,GAAW,OAAOrR,EACtC,GAAI,YAAYrT,KAAKqT,GAAO,OAAOA,EACnC,IAAIsR,EAAStoB,KAAK4mB,cAAcjtB,IAAIqd,GACpC,GAAIsR,EAAQ,OAAOA,EACnB,IAAInqB,EAAO6B,KAAKie,KAAK+G,GAAKU,GAAU1lB,KAAKie,KAAK+G,IAAM,IACb,iBAA5BhlB,KAAKumB,QAAQ9E,aACtBtjB,EAAOunB,GAAUG,GAAU1nB,EAAM6B,KAAKumB,QAAQ9E,cAEhD,IAAInf,EAAOsjB,GAAWznB,EAAM6Y,GAE5B,OADAhX,KAAK4mB,cAAcxlB,IAAI4V,EAAM1U,GACtBA,CACT,CACA,QAAA+kB,GACE,IAAKrnB,KAAKuoB,aAER,GADAvoB,KAAKuoB,aAAe,GAChBvoB,KAAKqb,KACPrb,KAAKqb,KAAKG,KAAMva,IACd,GAAIA,EAAMvE,QAAUuE,EAAMvE,OAAO+gB,MAAMvF,IAAK,CAC1C,IAAIA,EAAMjX,EAAMvE,OAAO+gB,MAAMvF,IACxBlY,KAAKuoB,aAAa1uB,SAASqe,IAC9BlY,KAAKuoB,aAAappB,KAAK+Y,EAE3B,QAEG,CACL,IAAIyH,EAAS,IAAIsG,GAAUjmB,KAAKwmB,YAAaxmB,KAAKie,MAC9C0B,EAAOzH,KAAKlY,KAAKuoB,aAAappB,KAAKwgB,EAAOzH,IAChD,CAEF,OAAOlY,KAAKuoB,YACd,CACA,iBAAAP,GACE,IAAIQ,EAAU,CAAA,EACd,GAAIxoB,KAAKqb,KACPrb,KAAKqb,KAAKG,KAAMva,IACd,GAAIA,EAAMvE,OAAQ,CAChB,IAAIyB,EAAO8C,EAAMvE,OAAO+gB,MAAMtf,KAC9B,GAAIA,IAASqqB,EAAQrqB,GAAO,CAC1BqqB,EAAQrqB,IAAQ,EAChB,IAAI8mB,EAAUjlB,KAAKymB,aAAezmB,KAAKyoB,UAAUtqB,GAAQ6B,KAAKsnB,MAAMtnB,KAAKsC,KAAKnE,IAC9E6B,KAAKkY,IAAIwQ,iBAAiBzD,EAAShkB,EAAMvE,OAAO+gB,MAAM9F,IACxD,CACF,SAEG,GAAI3X,KAAK2X,IAAK,CACnB,IAAIxZ,EAAO6B,KAAKie,KAAK9f,KAAO6B,KAAKsnB,MAAMtnB,KAAKsC,KAAKtC,KAAKie,KAAK9f,OAAS,cACpE6B,KAAKkY,IAAIwQ,iBAAiBvqB,EAAM6B,KAAK2X,IACvC,CACF,CACA,UAAAyQ,CAAWnnB,GACT,OAAIjB,KAAKumB,QAAQpoB,KACR6B,KAAKsnB,MAAMtnB,KAAKumB,QAAQpoB,MACtB6B,KAAKymB,aACPzmB,KAAKyoB,UAAUxnB,EAAMvE,OAAO+gB,MAAMtf,MAElC6B,KAAKsnB,MAAMtnB,KAAKsC,KAAKrB,EAAMvE,OAAO+gB,MAAMtf,MAEnD,CACA,QAAA8oB,CAAShlB,GACP,OAAIigB,OACKA,OAAO/jB,KAAK8D,GAAKrI,SAAS,UAE1B8I,OAAOimB,KAAKC,SAASC,mBAAmB5mB,IAEnD,CACA,SAAAwmB,CAAUnmB,GACR,IAAIgmB,EAAStoB,KAAK2mB,iBAAiBhtB,IAAI2I,GACvC,GAAIgmB,EAAQ,OAAOA,EACnB,GAAItC,GAAiB,CACnB,IAAI8C,EAAU9C,GAAgB1jB,GAAM1I,WAEpC,OADAoG,KAAK2mB,iBAAiBvlB,IAAIkB,EAAMwmB,GACzBA,CACT,CACE,MAAM,IAAIlS,MACR,+DAGN,CACA,KAAA0Q,CAAMhlB,GACJ,IAAIgmB,EAAStoB,KAAK6mB,aAAaltB,IAAI2I,GACnC,GAAIgmB,EAAQ,OAAOA,EACL,OAAVvC,KACFzjB,EAAOA,EAAK9D,QAAQ,MAAO,MAE7B,IAAIgE,EAAMumB,UAAUzmB,GAAM9D,QAAQ,QAASqqB,oBAE3C,OADA7oB,KAAK6mB,aAAazlB,IAAIkB,EAAME,GACrBA,CACT,GAGF,IAAIwmB,GAAW/I,GACXgJ,GAAc,cAAsBD,GACtC,WAAAxsB,CAAY4gB,GACVlG,MAAMkG,GACNpd,KAAK2B,KAAO,SACd,GAEF,IAAIunB,GAAYD,GAChBA,GAAYpV,QAAUoV,GACtB,IAIIE,GAAWC,GAAUC,GAAYC,IAJ/B5Q,QAAS6Q,GAAa5Q,GAAI6Q,IAAW/Q,GACvCgR,GAAkBpJ,GAClBqJ,GAAcR,GACdS,GAAW1J,GAEf,SAAS2J,GAAc5P,GACrB,OAAOA,EAAM9B,IAAKtT,IACZA,EAAGoV,QAAOpV,EAAGoV,MAAQ4P,GAAchlB,EAAGoV,eACnCpV,EAAGlI,OACHkI,GAEX,CACA,SAASilB,GAAc5oB,GAErB,GADAA,EAAMsoB,KAAe,EACjBtoB,EAAM+e,QAAQhG,MAChB,IAAK,IAAIpV,KAAM3D,EAAM+e,QAAQhG,MAC3B6P,GAAcjlB,EAGpB,CACA,IAAIklB,GAAgB,MAAMC,UAAkBJ,GAC1C,MAAArM,IAAU0M,GACR,IAAK,IAAItP,KAASsP,EAAU,CAC1B,IAAIhQ,EAAQha,KAAKiqB,UAAUvP,EAAO1a,KAAKya,MACvC,IAAK,IAAIxZ,KAAS+Y,EAAOha,KAAKggB,QAAQhG,MAAM7a,KAAK8B,EACnD,CAEA,OADAjB,KAAKqe,YACEre,IACT,CACA,SAAA6d,CAAUC,GAER,GADA5G,MAAM2G,UAAUC,GACZ9d,KAAKga,MACP,IAAK,IAAI/Y,KAASjB,KAAKga,MAAO/Y,EAAM4c,UAAUC,EAElD,CACA,IAAAoM,CAAKC,GACH,IAAKnqB,KAAKggB,QAAQhG,MAAO,OACzB,IACI7B,EAAQgH,EADRiL,EAAWpqB,KAAKqqB,cAEpB,KAAOrqB,KAAKsqB,QAAQF,GAAYpqB,KAAKggB,QAAQhG,MAAMlb,SACjDqZ,EAASnY,KAAKsqB,QAAQF,GACtBjL,EAAUgL,EAASnqB,KAAKggB,QAAQhG,MAAM7B,GAASA,IAC/B,IAAZgH,IACJnf,KAAKsqB,QAAQF,IAAa,EAG5B,cADOpqB,KAAKsqB,QAAQF,GACbjL,CACT,CACA,KAAA7lB,CAAMixB,GACJ,OAAOvqB,KAAKga,MAAM1gB,MAAMixB,EAC1B,CACA,WAAAF,GACOrqB,KAAKwqB,WAAUxqB,KAAKwqB,SAAW,GAC/BxqB,KAAKsqB,UAAStqB,KAAKsqB,QAAU,CAAA,GAClCtqB,KAAKwqB,UAAY,EACjB,IAAIJ,EAAWpqB,KAAKwqB,SAEpB,OADAxqB,KAAKsqB,QAAQF,GAAY,EAClBA,CACT,CACA,iBAAAjM,GACE,MAAO,CACLxkB,IAAG,CAACsH,EAAO+Z,IACI,YAATA,EACK/Z,EACGA,EAAM+Z,GAEE,SAATA,GAAmC,iBAATA,GAAqBA,EAAKjU,WAAW,QACjE,IAAI0jB,IACFxpB,EAAM+Z,MACRyP,EAAKvS,IAAKtT,GACO,mBAAPA,EACF,CAAC8V,EAAOvC,IAAWvT,EAAG8V,EAAM0D,UAAWjG,GAEvCvT,IAKG,UAAToW,GAA6B,SAATA,EACrB0P,GACCzpB,EAAM+Z,GACX,CAACN,KAAU3e,IAAU2uB,EAAGhQ,EAAM0D,aAAcriB,IAG9B,SAATif,EACF,IAAM/Z,EAAMoa,OAAO+C,UACR,UAATpD,EACF/Z,EAAM+Y,MAAM9B,IAAKtT,GAAOA,EAAGwZ,WAChB,UAATpD,GAA6B,SAATA,EACtB/Z,EAAM+Z,GAAMoD,UAEZnd,EAAM+Z,GA1BN/Z,EAAM+Z,GA6BjB5Z,IAAG,CAACH,EAAO+Z,EAAMnjB,KACXoJ,EAAM+Z,KAAUnjB,IACpBoJ,EAAM+Z,GAAQnjB,EACD,SAATmjB,GAA4B,WAATA,GAA8B,aAATA,GAC1C/Z,EAAMod,cAH0B,GAQxC,CACA,KAAAE,CAAM7D,GACJ,MAAqB,iBAAVA,EAA2BA,GAClCA,EAAMsF,UAAStF,EAAQA,EAAMsF,SAC1BhgB,KAAKggB,QAAQhG,MAAMpW,QAAQ8W,GACpC,CACA,WAAAgD,CAAYiN,EAAOzpB,GACjB,IAIIiX,EAJAyS,EAAa5qB,KAAKue,MAAMoM,GACxB3Q,EAAQha,KAAKiqB,UAAU/oB,EAAKlB,KAAKggB,QAAQhG,MAAM4Q,IAAaC,UAChED,EAAa5qB,KAAKue,MAAMoM,GACxB,IAAK,IAAI1pB,KAAS+Y,EAAOha,KAAKggB,QAAQhG,MAAM8Q,OAAOF,EAAa,EAAG,EAAG3pB,GAEtE,IAAK,IAAIZ,KAAML,KAAKsqB,QAClBnS,EAASnY,KAAKsqB,QAAQjqB,GAClBuqB,EAAazS,IACfnY,KAAKsqB,QAAQjqB,GAAM8X,EAAS6B,EAAMlb,QAItC,OADAkB,KAAKqe,YACEre,IACT,CACA,YAAA4d,CAAa+M,EAAOzpB,GAClB,IAKIiX,EALAyS,EAAa5qB,KAAKue,MAAMoM,GACxBhpB,EAAsB,IAAfipB,GAAmB,UAC1B5Q,EAAQha,KAAKiqB,UAAU/oB,EAAKlB,KAAKggB,QAAQhG,MAAM4Q,GAAajpB,GAAMkpB,UACtED,EAAa5qB,KAAKue,MAAMoM,GACxB,IAAK,IAAI1pB,KAAS+Y,EAAOha,KAAKggB,QAAQhG,MAAM8Q,OAAOF,EAAY,EAAG3pB,GAElE,IAAK,IAAIZ,KAAML,KAAKsqB,QAClBnS,EAASnY,KAAKsqB,QAAQjqB,GAClBuqB,GAAczS,IAChBnY,KAAKsqB,QAAQjqB,GAAM8X,EAAS6B,EAAMlb,QAItC,OADAkB,KAAKqe,YACEre,IACT,CACA,SAAAiqB,CAAUjQ,EAAO+Q,GACf,GAAqB,iBAAV/Q,EACTA,EAAQ4P,GAAcT,GAAUnP,GAAOA,YAClC,QAAqB,IAAVA,EAChBA,EAAQ,QACH,GAAI9b,MAAMgf,QAAQlD,GAAQ,CAC/BA,EAAQA,EAAMnW,MAAM,GACpB,IAAK,IAAIe,KAAMoV,EACTpV,EAAG4K,QAAQ5K,EAAG4K,OAAO9U,YAAYkK,EAAI,SAE7C,MAAO,GAAmB,SAAfoV,EAAMrY,MAAiC,aAAd3B,KAAK2B,KAAqB,CAC5DqY,EAAQA,EAAMA,MAAMnW,MAAM,GAC1B,IAAK,IAAIe,KAAMoV,EACTpV,EAAG4K,QAAQ5K,EAAG4K,OAAO9U,YAAYkK,EAAI,SAE7C,MAAO,GAAIoV,EAAMrY,KACfqY,EAAQ,CAACA,QACJ,GAAIA,EAAMgB,KAAM,CACrB,QAA2B,IAAhBhB,EAAMniB,MACf,MAAM,IAAI+e,MAAM,0CACgB,iBAAhBoD,EAAMniB,QACtBmiB,EAAMniB,MAAQkD,OAAOif,EAAMniB,QAE7BmiB,EAAQ,CAAC,IAAIyP,GAAgBzP,GAC/B,MAAO,GAAIA,EAAMgR,SACfhR,EAAQ,CAAC,IAAIoP,GAASpP,SACjB,GAAIA,EAAMrd,KACfqd,EAAQ,CAAC,IAAIqP,GAAWrP,QACnB,KAAIA,EAAMnY,KAGf,MAAM,IAAI+U,MAAM,sCAFhBoD,EAAQ,CAAC,IAAI0P,GAAY1P,GAG3B,CAcA,OAbgBA,EAAM9B,IAAKtT,IACpBA,EAAG4kB,KAASO,EAAUkB,QAAQrmB,IACnCA,EAAKA,EAAGob,SACDxQ,QAAQ5K,EAAG4K,OAAO9U,YAAYkK,GACjCA,EAAG2kB,KAAcM,GAAcjlB,QACL,IAAnBA,EAAGkV,KAAKa,QACboQ,QAAwC,IAAvBA,EAAOjR,KAAKa,SAC/B/V,EAAGkV,KAAKa,OAASoQ,EAAOjR,KAAKa,OAAOnc,QAAQ,MAAO,KAGvDoG,EAAG4K,OAASxP,KAAKggB,QACVpb,GAGX,CACA,OAAAsmB,IAAWlB,GACTA,EAAWA,EAASa,UACpB,IAAK,IAAInQ,KAASsP,EAAU,CAC1B,IAAIhQ,EAAQha,KAAKiqB,UAAUvP,EAAO1a,KAAKmb,MAAO,WAAW0P,UACzD,IAAK,IAAI5pB,KAAS+Y,EAAOha,KAAKggB,QAAQhG,MAAMmR,QAAQlqB,GACpD,IAAK,IAAIZ,KAAML,KAAKsqB,QAClBtqB,KAAKsqB,QAAQjqB,GAAML,KAAKsqB,QAAQjqB,GAAM2Z,EAAMlb,MAEhD,CAEA,OADAkB,KAAKqe,YACEre,IACT,CACA,IAAAb,CAAKub,GAGH,OAFAA,EAAMlL,OAASxP,KACfA,KAAKggB,QAAQhG,MAAM7a,KAAKub,GACjB1a,IACT,CACA,SAAAorB,GACE,IAAK,IAAInqB,KAASjB,KAAKggB,QAAQhG,MAAO/Y,EAAMuO,YAAS,EAGrD,OAFAxP,KAAKggB,QAAQhG,MAAQ,GACrBha,KAAKqe,YACEre,IACT,CACA,WAAAtF,CAAYggB,GAIV,IAAIvC,EAHJuC,EAAQ1a,KAAKue,MAAM7D,GACnB1a,KAAKggB,QAAQhG,MAAMU,GAAOlL,YAAS,EACnCxP,KAAKggB,QAAQhG,MAAM8Q,OAAOpQ,EAAO,GAEjC,IAAK,IAAIra,KAAML,KAAKsqB,QAClBnS,EAASnY,KAAKsqB,QAAQjqB,GAClB8X,GAAUuC,IACZ1a,KAAKsqB,QAAQjqB,GAAM8X,EAAS,GAIhC,OADAnY,KAAKqe,YACEre,IACT,CACA,aAAAqrB,CAAcC,EAASrN,EAAMkM,GAW3B,OAVKA,IACHA,EAAWlM,EACXA,EAAO,CAAA,GAETje,KAAK6b,UAAWf,IACVmD,EAAKsN,QAAUtN,EAAKsN,MAAM1xB,SAASihB,EAAKE,OACxCiD,EAAKuN,OAAS1Q,EAAKjjB,MAAMgC,SAASokB,EAAKuN,QAC3C1Q,EAAKjjB,MAAQijB,EAAKjjB,MAAM2G,QAAQ8sB,EAASnB,MAE3CnqB,KAAKqe,YACEre,IACT,CACA,IAAAkM,CAAKqe,GACH,OAAOvqB,KAAKga,MAAM9N,KAAKqe,EACzB,CACA,IAAA/O,CAAK2O,GACH,OAAOnqB,KAAKkqB,KAAK,CAACxP,EAAO9V,KACvB,IAAIua,EACJ,IACEA,EAAUgL,EAASzP,EAAO9V,EAC5B,CAAE,MAAO6D,GACP,MAAMiS,EAAM6C,WAAW9U,EACzB,CAIA,OAHgB,IAAZ0W,GAAqBzE,EAAMc,OAC7B2D,EAAUzE,EAAMc,KAAK2O,IAEhBhL,GAEX,CACA,WAAAsM,CAAY9uB,EAAMwtB,GAChB,OAAKA,EAQDxtB,aAAgBmJ,OACX9F,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,WAAf8V,EAAM/Y,MAAqBhF,EAAKgH,KAAK+W,EAAM/d,MAC7C,OAAOwtB,EAASzP,EAAO9V,KAItB5E,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,WAAf8V,EAAM/Y,MAAqB+Y,EAAM/d,OAASA,EAC5C,OAAOwtB,EAASzP,EAAO9V,MAhBzBulB,EAAWxtB,EACJqD,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,WAAf8V,EAAM/Y,KACR,OAAOwoB,EAASzP,EAAO9V,KAgB/B,CACA,YAAA+W,CAAawO,GACX,OAAOnqB,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,YAAf8V,EAAM/Y,KACR,OAAOwoB,EAASzP,EAAO9V,IAG7B,CACA,SAAAiX,CAAUb,EAAMmP,GACd,OAAKA,EAQDnP,aAAgBlV,OACX9F,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,SAAf8V,EAAM/Y,MAAmBqZ,EAAKrX,KAAK+W,EAAMM,MAC3C,OAAOmP,EAASzP,EAAO9V,KAItB5E,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,SAAf8V,EAAM/Y,MAAmB+Y,EAAMM,OAASA,EAC1C,OAAOmP,EAASzP,EAAO9V,MAhBzBulB,EAAWnP,EACJhb,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,SAAf8V,EAAM/Y,KACR,OAAOwoB,EAASzP,EAAO9V,KAgB/B,CACA,SAAA8mB,CAAUV,EAAUb,GAClB,OAAKA,EAQDa,aAAoBllB,OACf9F,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,SAAf8V,EAAM/Y,MAAmBqpB,EAASrnB,KAAK+W,EAAMsQ,UAC/C,OAAOb,EAASzP,EAAO9V,KAItB5E,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,SAAf8V,EAAM/Y,MAAmB+Y,EAAMsQ,WAAaA,EAC9C,OAAOb,EAASzP,EAAO9V,MAhBzBulB,EAAWa,EACJhrB,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,SAAf8V,EAAM/Y,KACR,OAAOwoB,EAASzP,EAAO9V,KAgB/B,CACA,SAAIuW,GACF,GAAKnb,KAAKggB,QAAQhG,MAClB,OAAOha,KAAKggB,QAAQhG,MAAM,EAC5B,CACA,QAAIS,GACF,GAAKza,KAAKggB,QAAQhG,MAClB,OAAOha,KAAKggB,QAAQhG,MAAMha,KAAKggB,QAAQhG,MAAMlb,OAAS,EACxD,GAEFgrB,GAAc6B,cAAiBC,IAC7BzC,GAAYyC,GAEd9B,GAAc+B,aAAgBD,IAC5BxC,GAAWwC,GAEb9B,GAAcgC,eAAkBF,IAC9BvC,GAAauC,GAEf9B,GAAciC,aAAgBH,IAC5BtC,GAAWsC,GAEb,IAAII,GAAclC,GAClBA,GAAcjW,QAAUiW,GACxBA,GAAcmB,QAAWhqB,IACJ,WAAfA,EAAMU,KACRnK,OAAOy0B,eAAehrB,EAAOooB,GAAWnwB,WAChB,SAAf+H,EAAMU,KACfnK,OAAOy0B,eAAehrB,EAAOmoB,GAASlwB,WACd,SAAf+H,EAAMU,KACfnK,OAAOy0B,eAAehrB,EAAOwoB,GAAgBvwB,WACrB,YAAf+H,EAAMU,KACfnK,OAAOy0B,eAAehrB,EAAOyoB,GAAYxwB,WACjB,SAAf+H,EAAMU,MACfnK,OAAOy0B,eAAehrB,EAAOqoB,GAASpwB,WAExC+H,EAAMuoB,KAAU,EACZvoB,EAAM+Y,OACR/Y,EAAM+Y,MAAMnZ,QAAS6Z,IACnBoP,GAAcmB,QAAQvQ,MAI5B,IACIwR,GAAgBC,GADhBC,GAAgBJ,GAEhBK,GAAe,cAAwBD,GACzC,WAAA5vB,CAAY4gB,GACVlG,MAAM,CAAEvV,KAAM,cAAeyb,IACxBpd,KAAKga,QACRha,KAAKga,MAAQ,GAEjB,CACA,QAAAsS,CAASrO,EAAO,IAEd,OADW,IAAIiO,GAAe,IAAIC,GAAiBnsB,KAAMie,GAC7Chf,WACd,GAEFotB,GAAaE,mBAAsBX,IACjCM,GAAiBN,GAEnBS,GAAaG,kBAAqBZ,IAChCO,GAAgBP,GAElB,IAAIa,GAAeJ,GACnBA,GAAaxY,QAAUwY,GACvB,IAAIK,GAAY,CAAA,EAChB,IAAIC,GAAe,SAAkB9V,GAC/B6V,GAAU7V,KACd6V,GAAU7V,IAAW,EACE,oBAAZtJ,SAA2BA,QAAQC,MAC5CD,QAAQC,KAAKqJ,GAEjB,EACA,IAAI+V,GAAc,MAChB,WAAApwB,CAAYqF,EAAMoc,EAAO,IAGvB,GAFAje,KAAK2B,KAAO,UACZ3B,KAAK6B,KAAOA,EACRoc,EAAK8B,MAAQ9B,EAAK8B,KAAKrjB,OAAQ,CACjC,IAAImwB,EAAQ5O,EAAK8B,KAAK7B,QAAQD,GAC9Bje,KAAK8W,KAAO+V,EAAM9U,MAAMjB,KACxB9W,KAAK+W,OAAS8V,EAAM9U,MAAMhB,OAC1B/W,KAAKqX,QAAUwV,EAAM7U,IAAIlB,KACzB9W,KAAKsX,UAAYuV,EAAM7U,IAAIjB,MAC7B,CACA,IAAK,IAAI+V,KAAO7O,EAAMje,KAAK8sB,GAAO7O,EAAK6O,EACzC,CACA,QAAAlzB,GACE,OAAIoG,KAAK+f,KACA/f,KAAK+f,KAAKthB,MAAMuB,KAAK6B,KAAM,CAChC0c,MAAOve,KAAKue,MACZnH,OAAQpX,KAAKoX,OACbuH,KAAM3e,KAAK2e,OACV9H,QAED7W,KAAKoX,OACApX,KAAKoX,OAAS,KAAOpX,KAAK6B,KAE5B7B,KAAK6B,IACd,GAEF,IAAIkrB,GAAYH,GAChBA,GAAY/Y,QAAU+Y,GACtB,IAAII,GAAcD,GACdE,GAAa,MACf,WAAAzwB,CAAY0wB,EAAY9R,EAAO6C,GAC7Bje,KAAKmtB,UAAYD,EACjBltB,KAAKotB,SAAW,GAChBptB,KAAKqb,KAAOD,EACZpb,KAAKie,KAAOA,EACZje,KAAK2X,SAAM,EACX3X,KAAKkY,SAAM,CACb,CACA,QAAAte,GACE,OAAOoG,KAAK2X,GACd,CACA,IAAAnK,CAAK3L,EAAMoc,EAAO,IACXA,EAAK7G,QACJpX,KAAKqtB,YAAcrtB,KAAKqtB,WAAWC,gBACrCrP,EAAK7G,OAASpX,KAAKqtB,WAAWC,eAGlC,IAAIC,EAAW,IAAIP,GAAYnrB,EAAMoc,GAErC,OADAje,KAAKotB,SAASjuB,KAAKouB,GACZA,CACT,CACA,QAAAC,GACE,OAAOxtB,KAAKotB,SAASK,OAAQ7oB,GAAmB,YAAZA,EAAGjD,KACzC,CACA,WAAIolB,GACF,OAAO/mB,KAAK2X,GACd,GAEF,IAAI+V,GAAWT,GACfA,GAAWpZ,QAAUoZ,GACrB,MAAMU,GAAiB,IAAItF,WAAW,GAChCuF,GAAiB,IAAIvF,WAAW,GAChCwF,GAAc,KAAKxF,WAAW,GAC9ByF,GAAU,IAAIzF,WAAW,GACzB0F,GAAY,KAAK1F,WAAW,GAC5B2F,GAAU,IAAI3F,WAAW,GACzB4F,GAAS,KAAK5F,WAAW,GACzB6F,GAAQ,KAAI7F,WAAW,GACvB8F,GAAO,KAAK9F,WAAW,GACvB+F,GAAgB,IAAI/F,WAAW,GAC/BgG,GAAiB,IAAIhG,WAAW,GAChCiG,GAAqB,IAAIjG,WAAW,GACpCkG,GAAsB,IAAIlG,WAAW,GACrCmG,GAAe,IAAInG,WAAW,GAC9BoG,GAAgB,IAAIpG,WAAW,GAC/BqG,GAAc,IAAIrG,WAAW,GAC7BsG,GAAa,IAAItG,WAAW,GAC5BuG,GAAU,IAAIvG,WAAW,GACzBwG,GAAO,IAAIxG,WAAW,GACtByG,GAAc,6BACdC,GAAgB,wCAChBC,GAAmB,gBACnBC,GAAkB,WA0LxB,IAAIC,GAAgBlD,GAChBmD,GAAa,cAAqBD,GACpC,WAAA1yB,CAAY4gB,GACVlG,MAAMkG,GACNpd,KAAK2B,KAAO,QACd,CACA,MAAA2b,IAAU0M,GAER,OADKhqB,KAAKggB,QAAQhG,QAAOha,KAAKga,MAAQ,IAC/B9C,MAAMoG,UAAU0M,EACzB,CACA,OAAAkB,IAAWlB,GAET,OADKhqB,KAAKggB,QAAQhG,QAAOha,KAAKga,MAAQ,IAC/B9C,MAAMgU,WAAWlB,EAC1B,GAEF,IAAIoF,GAAWD,GACfA,GAAWtb,QAAUsb,GACrBD,GAAcpD,eAAeqD,IAC7B,IACIE,GAAgBC,GADhBC,GAAgBvD,GAEhBwD,GAAW,cAAmBD,GAChC,WAAA/yB,CAAY4gB,GACVlG,MAAMkG,GACNpd,KAAK2B,KAAO,OACP3B,KAAKga,QAAOha,KAAKga,MAAQ,GAChC,CACA,SAAAiQ,CAAUvP,EAAOqQ,EAAQppB,GACvB,IAAIqY,EAAQ9C,MAAM+S,UAAUvP,GAC5B,GAAIqQ,EACF,GAAa,YAATppB,EACE3B,KAAKga,MAAMlb,OAAS,EACtBisB,EAAOjR,KAAKa,OAAS3a,KAAKga,MAAM,GAAGF,KAAKa,cAEjCoQ,EAAOjR,KAAKa,YAEhB,GAAI3a,KAAKmb,QAAU4P,EACxB,IAAK,IAAI9pB,KAAS+Y,EAChB/Y,EAAM6Y,KAAKa,OAASoQ,EAAOjR,KAAKa,OAItC,OAAOX,CACT,CACA,WAAAtf,CAAYggB,EAAO+U,GACjB,IAAItX,EAASnY,KAAKue,MAAM7D,GAIxB,OAHK+U,GAAqB,IAAXtX,GAAgBnY,KAAKga,MAAMlb,OAAS,IACjDkB,KAAKga,MAAM,GAAGF,KAAKa,OAAS3a,KAAKga,MAAM7B,GAAQ2B,KAAKa,QAE/CzD,MAAMxc,YAAYggB,EAC3B,CACA,QAAA4R,CAASrO,EAAO,IAEd,OADW,IAAIoR,GAAe,IAAIC,GAAiBtvB,KAAMie,GAC7Chf,WACd,GAEFuwB,GAASjD,mBAAsBX,IAC7ByD,GAAiBzD,GAEnB4D,GAAShD,kBAAqBZ,IAC5B0D,GAAgB1D,GAElB,IAAI8D,GAASF,GACbA,GAAS3b,QAAU2b,GACnBD,GAAcxD,aAAayD,IAC3B,IAAIG,GAAW,CACbC,MAAM7U,GACG4U,GAAS9wB,MAAMkc,EAAQ,CAAC,MAAM,GAEvC8U,MAAM9U,GAEG4U,GAAS9wB,MAAMkc,EADT,CAAC,IAAK,KAAM,OAG3B,KAAAlc,CAAMkc,EAAQ+U,EAAYrV,GACxB,IAAIsV,EAAQ,GACRC,EAAU,GACVnxB,GAAQ,EACRoxB,EAAO,EACPC,GAAU,EACVC,EAAY,GACZC,GAAS,EACb,IAAK,IAAIC,KAAUtV,EACbqV,EACFA,GAAS,EACW,OAAXC,EACTD,GAAS,EACAF,EACLG,IAAWF,IACbD,GAAU,GAEQ,MAAXG,GAA6B,MAAXA,GAC3BH,GAAU,EACVC,EAAYE,GACQ,MAAXA,EACTJ,GAAQ,EACY,MAAXI,EACLJ,EAAO,IAAGA,GAAQ,GACJ,IAATA,GACLH,EAAWj2B,SAASw2B,KAASxxB,GAAQ,GAEvCA,GACc,KAAZmxB,GAAgBD,EAAM5wB,KAAK6wB,EAAQxpB,QACvCwpB,EAAU,GACVnxB,GAAQ,GAERmxB,GAAWK,EAIf,OADI5V,GAAoB,KAAZuV,IAAgBD,EAAM5wB,KAAK6wB,EAAQxpB,QACxCupB,CACT,GAEF,IAAIO,GAAWX,GACfA,GAAS9b,QAAU8b,GACnB,IAAIY,GAAgBvE,GAChBwE,GAAWF,GACXG,GAAW,cAAmBF,GAChC,WAAA/zB,CAAY4gB,GACVlG,MAAMkG,GACNpd,KAAK2B,KAAO,OACP3B,KAAKga,QAAOha,KAAKga,MAAQ,GAChC,CACA,aAAI3d,GACF,OAAOm0B,GAASZ,MAAM5vB,KAAKgrB,SAC7B,CACA,aAAI3uB,CAAUq0B,GACZ,IAAI7tB,EAAQ7C,KAAKgrB,SAAWhrB,KAAKgrB,SAASnoB,MAAM,QAAU,KACtD8tB,EAAO9tB,EAAQA,EAAM,GAAK,IAAM7C,KAAKqa,IAAI,UAAW,cACxDra,KAAKgrB,SAAW0F,EAAOpyB,KAAKqyB,EAC9B,GAEF,IAAIC,GAASH,GACbA,GAAS5c,QAAU4c,GACnBF,GAAc1E,aAAa4E,IAC3B,IAAII,GAAkBxQ,GAClByQ,GA/Ta,SAAmBnR,EAAQhX,EAAU,CAAA,GACpD,IAEI4P,EAAM+F,EAAMyS,EAAOhK,EAASqJ,EAC5BY,EAASC,EAAWrS,EAAMnjB,EAAIy1B,EAH9BvZ,EAAMgI,EAAOhI,IAAIwZ,UACjB1B,EAAS9mB,EAAQyoB,aAGjBtyB,EAAS6Y,EAAI7Y,OACboI,EAAM,EACN+E,EAAS,GACTolB,EAAW,GAIf,SAASC,EAASC,GAChB,MAAM5R,EAAOlhB,MAAM,YAAc8yB,EAAMrqB,EACzC,CAoKA,MAAO,CACLsqB,KAJF,SAAcC,GACZJ,EAASlyB,KAAKsyB,EAChB,EAGEC,UArKF,WACE,OAA2B,IAApBL,EAASvyB,QAAgBoI,GAAOpI,CACzC,EAoKE6yB,UAnKF,SAAmB1T,GACjB,GAAIoT,EAASvyB,OAAQ,OAAOuyB,EAASptB,MACrC,GAAIiD,GAAOpI,EAAQ,OACnB,IAAI8yB,IAAiB3T,GAAOA,EAAK2T,eAEjC,OADArZ,EAAOZ,EAAI0Q,WAAWnhB,GACdqR,GACN,KAAKwV,GACL,KAAKC,GACL,KAAKE,GACL,KAAKC,GACL,KAAKF,GACH3P,EAAOpX,EACP,GACEoX,GAAQ,EACR/F,EAAOZ,EAAI0Q,WAAW/J,SACf/F,IAASyV,IAAWzV,IAASwV,IAAaxV,IAAS2V,IAAS3V,IAAS4V,IAAQ5V,IAAS0V,IAC/FiD,EAAe,CAAC,QAASvZ,EAAI9T,MAAMqD,EAAKoX,IACxCpX,EAAMoX,EAAO,EACb,MAEF,KAAK8P,GACL,KAAKC,GACL,KAAKG,GACL,KAAKC,GACL,KAAKG,GACL,KAAKF,GACL,KAAKH,GAAqB,CACxB,IAAIsD,EAAc92B,OAAO+2B,aAAavZ,GACtC2Y,EAAe,CAACW,EAAaA,EAAa3qB,GAC1C,KACF,CACA,KAAKonB,GAGH,GAFA1P,EAAO3S,EAAOnN,OAASmN,EAAOhI,MAAM,GAAK,GACzCxI,EAAKkc,EAAI0Q,WAAWnhB,EAAM,GACb,QAAT0X,GAAkBnjB,IAAOkyB,IAAkBlyB,IAAOmyB,IAAkBnyB,IAAOuyB,IAAWvyB,IAAOsyB,IAAatyB,IAAOyyB,IAASzyB,IAAOwyB,IAAUxyB,IAAO0yB,GAAM,CAC1J7P,EAAOpX,EACP,EAAG,CAGD,GAFA8pB,GAAU,EACV1S,EAAO3G,EAAI/T,QAAQ,IAAK0a,EAAO,IAClB,IAATA,EAAa,CACf,GAAImR,GAAUmC,EAAgB,CAC5BtT,EAAOpX,EACP,KACF,CACEoqB,EAAS,UAEb,CAEA,IADAL,EAAY3S,EACL3G,EAAI0Q,WAAW4I,EAAY,KAAOpD,IACvCoD,GAAa,EACbD,GAAWA,CAEf,OAASA,GACTE,EAAe,CAAC,WAAYvZ,EAAI9T,MAAMqD,EAAKoX,EAAO,GAAIpX,EAAKoX,GAC3DpX,EAAMoX,CACR,MACEA,EAAO3G,EAAI/T,QAAQ,IAAKsD,EAAM,GAC9B6f,EAAUpP,EAAI9T,MAAMqD,EAAKoX,EAAO,IACnB,IAATA,GAAe0Q,GAAiBrrB,KAAKojB,GACvCmK,EAAe,CAAC,IAAK,IAAKhqB,IAE1BgqB,EAAe,CAAC,WAAYnK,EAAS7f,EAAKoX,GAC1CpX,EAAMoX,GAGV,MAEF,KAAKqP,GACL,KAAKC,GACHmD,EAAQxY,IAASoV,GAAiB,IAAM,IACxCrP,EAAOpX,EACP,EAAG,CAGD,GAFA8pB,GAAU,EACV1S,EAAO3G,EAAI/T,QAAQmtB,EAAOzS,EAAO,IACpB,IAATA,EAAa,CACf,GAAImR,GAAUmC,EAAgB,CAC5BtT,EAAOpX,EAAM,EACb,KACF,CACEoqB,EAAS,SAEb,CAEA,IADAL,EAAY3S,EACL3G,EAAI0Q,WAAW4I,EAAY,KAAOpD,IACvCoD,GAAa,EACbD,GAAWA,CAEf,OAASA,GACTE,EAAe,CAAC,SAAUvZ,EAAI9T,MAAMqD,EAAKoX,EAAO,GAAIpX,EAAKoX,GACzDpX,EAAMoX,EACN,MAEF,KAAKuQ,GACHC,GAAYiD,UAAY7qB,EAAM,EAC9B4nB,GAAYnrB,KAAKgU,GAEf2G,EAD4B,IAA1BwQ,GAAYiD,UACPpa,EAAI7Y,OAAS,EAEbgwB,GAAYiD,UAAY,EAEjCb,EAAe,CAAC,UAAWvZ,EAAI9T,MAAMqD,EAAKoX,EAAO,GAAIpX,EAAKoX,GAC1DpX,EAAMoX,EACN,MAEF,KAAKuP,GAGH,IAFAvP,EAAOpX,EACPkpB,GAAS,EACFzY,EAAI0Q,WAAW/J,EAAO,KAAOuP,IAClCvP,GAAQ,EACR8R,GAAUA,EAGZ,GADA7X,EAAOZ,EAAI0Q,WAAW/J,EAAO,GACzB8R,GAAU7X,IAASuV,IAAWvV,IAASyV,IAAWzV,IAASwV,IAAaxV,IAAS2V,IAAS3V,IAAS4V,IAAQ5V,IAAS0V,KACtH3P,GAAQ,EACJ2Q,GAAgBtrB,KAAKgU,EAAIhQ,OAAO2W,KAAQ,CAC1C,KAAO2Q,GAAgBtrB,KAAKgU,EAAIhQ,OAAO2W,EAAO,KAC5CA,GAAQ,EAEN3G,EAAI0Q,WAAW/J,EAAO,KAAO0P,KAC/B1P,GAAQ,EAEZ,CAEF4S,EAAe,CAAC,OAAQvZ,EAAI9T,MAAMqD,EAAKoX,EAAO,GAAIpX,EAAKoX,GACvDpX,EAAMoX,EACN,MAEF,QACM/F,IAASuV,IAAWnW,EAAI0Q,WAAWnhB,EAAM,KAAOynB,IAClDrQ,EAAO3G,EAAI/T,QAAQ,KAAMsD,EAAM,GAAK,EACvB,IAAToX,IACEmR,GAAUmC,EACZtT,EAAO3G,EAAI7Y,OAEXwyB,EAAS,YAGbJ,EAAe,CAAC,UAAWvZ,EAAI9T,MAAMqD,EAAKoX,EAAO,GAAIpX,EAAKoX,GAC1DpX,EAAMoX,IAENyQ,GAAcgD,UAAY7qB,EAAM,EAChC6nB,GAAcprB,KAAKgU,GAEjB2G,EAD8B,IAA5ByQ,GAAcgD,UACTpa,EAAI7Y,OAAS,EAEbiwB,GAAcgD,UAAY,EAEnCb,EAAe,CAAC,OAAQvZ,EAAI9T,MAAMqD,EAAKoX,EAAO,GAAIpX,EAAKoX,GACvDrS,EAAO9M,KAAK+xB,GACZhqB,EAAMoX,GAMZ,OADApX,IACOgqB,CACT,EAQEc,SA7KF,WACE,OAAO9qB,CACT,EA6KF,EAwII+qB,GAAc/I,GACdgJ,GAAa9C,GACb+C,GAAWzC,GACX0C,GAAWxB,GACf,MAAMyB,GAA0B,CAC9BC,OAAO,EACPzC,OAAO,GAogBT,IAAI0C,GA3fa,MACf,WAAA/1B,CAAYmjB,GACV3f,KAAKyd,MAAQkC,EACb3f,KAAKqb,KAAO,IAAI8W,GAChBnyB,KAAKgwB,QAAUhwB,KAAKqb,KACpBrb,KAAKwyB,OAAS,GACdxyB,KAAKwZ,WAAY,EACjBxZ,KAAKyyB,kBACLzyB,KAAKqb,KAAK3e,OAAS,CAAE+gB,MAAOkC,EAAQ5H,MAAO,CAAEhB,OAAQ,EAAGD,KAAM,EAAGyN,OAAQ,GAC3E,CACA,MAAA5K,CAAO8X,GACL,IAMI9vB,EACAid,EACA8T,EARAzxB,EAAQ,IAAIixB,GAChBjxB,EAAMtE,KAAO80B,EAAM,GAAG5tB,MAAM,GACT,KAAf5C,EAAMtE,MACRqD,KAAK2yB,cAAc1xB,EAAOwwB,GAE5BzxB,KAAK4yB,KAAK3xB,EAAOwwB,EAAM,IAIvB,IAAIhX,GAAO,EACPvP,GAAO,EACP0O,EAAS,GACTiZ,EAAW,GACf,MAAQ7yB,KAAK8yB,UAAUpB,aAAa,CAUlC,GARA/vB,GADA8vB,EAAQzxB,KAAK8yB,UAAUnB,aACV,GACA,MAAThwB,GAAyB,MAATA,EAClBkxB,EAAS1zB,KAAc,MAATwC,EAAe,IAAM,KACjB,MAATA,GAAgBkxB,EAAS/zB,OAAS,EAC3C+zB,EAAS1zB,KAAK,KACLwC,IAASkxB,EAASA,EAAS/zB,OAAS,IAC7C+zB,EAAS5uB,MAEa,IAApB4uB,EAAS/zB,OAAc,CACzB,GAAa,MAAT6C,EAAc,CAChBV,EAAMvE,OAAOsb,IAAMhY,KAAK+yB,YAAYtB,EAAM,IAC1CxwB,EAAMvE,OAAOsb,IAAIuM,SACjBvkB,KAAKwZ,WAAY,EACjB,KACF,CAAO,GAAa,MAAT7X,EAAc,CACvBuJ,GAAO,EACP,KACF,CAAO,GAAa,MAATvJ,EAAc,CACvB,GAAIiY,EAAO9a,OAAS,EAAG,CAGrB,IAFA4zB,EAAQ9Y,EAAO9a,OAAS,EACxB8f,EAAOhF,EAAO8Y,GACP9T,GAAoB,UAAZA,EAAK,IAClBA,EAAOhF,IAAS8Y,GAEd9T,IACF3d,EAAMvE,OAAOsb,IAAMhY,KAAK+yB,YAAYnU,EAAK,IAAMA,EAAK,IACpD3d,EAAMvE,OAAOsb,IAAIuM,SAErB,CACAvkB,KAAKgY,IAAIyZ,GACT,KACF,CACE7X,EAAOza,KAAKsyB,EAEhB,MACE7X,EAAOza,KAAKsyB,GAEd,GAAIzxB,KAAK8yB,UAAUpB,YAAa,CAC9BjX,GAAO,EACP,KACF,CACF,CACAxZ,EAAM6Y,KAAKI,QAAUla,KAAKgzB,yBAAyBpZ,GAC/CA,EAAO9a,QACTmC,EAAM6Y,KAAKC,UAAY/Z,KAAKizB,2BAA2BrZ,GACvD5Z,KAAKqa,IAAIpZ,EAAO,SAAU2Y,GACtBa,IACFgX,EAAQ7X,EAAOA,EAAO9a,OAAS,GAC/BmC,EAAMvE,OAAOsb,IAAMhY,KAAK+yB,YAAYtB,EAAM,IAAMA,EAAM,IACtDxwB,EAAMvE,OAAOsb,IAAIuM,SACjBvkB,KAAKwyB,OAASvxB,EAAM6Y,KAAKI,QACzBjZ,EAAM6Y,KAAKI,QAAU,MAGvBjZ,EAAM6Y,KAAKC,UAAY,GACvB9Y,EAAM2Y,OAAS,IAEb1O,IACFjK,EAAM+Y,MAAQ,GACdha,KAAKgwB,QAAU/uB,EAEnB,CACA,oBAAAiyB,CAAqBC,GACnB,IAAIha,EAAQnZ,KAAKmZ,MAAMga,GACvB,IAAc,IAAVha,EAAiB,OACrB,IACIsY,EADA2B,EAAU,EAEd,IAAK,IAAIruB,EAAIoU,EAAQ,EAAGpU,GAAK,IAC3B0sB,EAAQ0B,EAAOpuB,GACE,UAAb0sB,EAAM,KACR2B,GAAW,EACK,IAAZA,IAJwBruB,KAOhC,MAAM/E,KAAKyd,MAAMhf,MACf,mBACa,SAAbgzB,EAAM,GAAgBA,EAAM,GAAK,EAAIA,EAAM,GAE/C,CACA,KAAAtY,CAAMga,GACJ,IACI1B,EAAO9vB,EAAMid,EADbiU,EAAW,EAEf,IAAK,IAAKjuB,EAAIpD,KAAY2xB,EAAOE,UAAW,CAS1C,GARA5B,EAAQjwB,EACRG,EAAO8vB,EAAM,GACA,MAAT9vB,IACFkxB,GAAY,GAED,MAATlxB,IACFkxB,GAAY,GAEG,IAAbA,GAA2B,MAATlxB,EAAc,CAClC,GAAKid,EAEE,IAAgB,SAAZA,EAAK,IAA6B,WAAZA,EAAK,GACpC,SAEA,OAAOha,CACT,CALE5E,KAAKszB,YAAY7B,EAMrB,CACA7S,EAAO6S,CACT,CACA,OAAO,CACT,CACA,OAAAjhB,CAAQihB,GACN,IAAIxwB,EAAQ,IAAIgxB,GAChBjyB,KAAK4yB,KAAK3xB,EAAOwwB,EAAM,IACvBxwB,EAAMvE,OAAOsb,IAAMhY,KAAK+yB,YAAYtB,EAAM,IAAMA,EAAM,IACtDxwB,EAAMvE,OAAOsb,IAAIuM,SACjB,IAAI1iB,EAAO4vB,EAAM,GAAG5tB,MAAM,MAC1B,GAAI,QAAQF,KAAK9B,GACfZ,EAAMY,KAAO,GACbZ,EAAM6Y,KAAKc,KAAO/Y,EAClBZ,EAAM6Y,KAAKe,MAAQ,OACd,CACL,IAAIhY,EAAQhB,EAAKgB,MAAM,wBACvB5B,EAAMY,KAAOgB,EAAM,GACnB5B,EAAM6Y,KAAKc,KAAO/X,EAAM,GACxB5B,EAAM6Y,KAAKe,MAAQhY,EAAM,EAC3B,CACF,CACA,eAAA4vB,GACEzyB,KAAK8yB,UAAYhC,GAAa9wB,KAAKyd,MACrC,CACA,IAAA3C,CAAKqY,EAAQI,GACX,IAAItyB,EAAQ,IAAI4vB,GAChB7wB,KAAK4yB,KAAK3xB,EAAOkyB,EAAO,GAAG,IAC3B,IAuBI1B,EAvBAhX,EAAO0Y,EAAOA,EAAOr0B,OAAS,GASlC,IARgB,MAAZ2b,EAAK,KACPza,KAAKwZ,WAAY,EACjB2Z,EAAOlvB,OAEThD,EAAMvE,OAAOsb,IAAMhY,KAAK+yB,YACtBtY,EAAK,IAAMA,EAAK,IAtKtB,SAAgC0Y,GAC9B,IAAK,IAAIvuB,EAAKuuB,EAAOr0B,OAAS,EAAG8F,GAAM,EAAGA,IAAM,CAC9C,IAAI6sB,EAAQ0B,EAAOvuB,GACfsC,EAAMuqB,EAAM,IAAMA,EAAM,GAC5B,GAAIvqB,EAAK,OAAOA,CAClB,CACF,CAgK4BssB,CAAuBL,IAE/ClyB,EAAMvE,OAAOsb,IAAIuM,SACO,SAAjB4O,EAAO,GAAG,IACO,IAAlBA,EAAOr0B,QAAckB,KAAKyzB,YAAYN,GAC1ClyB,EAAM6Y,KAAKa,QAAUwY,EAAOT,QAAQ,GAItC,IAFAzxB,EAAMvE,OAAOqb,MAAQ/X,KAAK+yB,YAAYI,EAAO,GAAG,IAChDlyB,EAAM+Z,KAAO,GACNmY,EAAOr0B,QAAQ,CACpB,IAAI6C,EAAOwxB,EAAO,GAAG,GACrB,GAAa,MAATxxB,GAAyB,UAATA,GAA6B,YAATA,EACtC,MAEFV,EAAM+Z,MAAQmY,EAAOT,QAAQ,EAC/B,CAGA,IAFAzxB,EAAM6Y,KAAKI,QAAU,GAEdiZ,EAAOr0B,QAAQ,CAEpB,GADA2yB,EAAQ0B,EAAOT,QACE,MAAbjB,EAAM,GAAY,CACpBxwB,EAAM6Y,KAAKI,SAAWuX,EAAM,GAC5B,KACF,CACmB,SAAbA,EAAM,IAAiB,KAAK9tB,KAAK8tB,EAAM,KACzCzxB,KAAKyzB,YAAY,CAAChC,IAEpBxwB,EAAM6Y,KAAKI,SAAWuX,EAAM,EAEhC,CACsB,MAAlBxwB,EAAM+Z,KAAK,IAAgC,MAAlB/Z,EAAM+Z,KAAK,KACtC/Z,EAAM6Y,KAAKa,QAAU1Z,EAAM+Z,KAAK,GAChC/Z,EAAM+Z,KAAO/Z,EAAM+Z,KAAKnX,MAAM,IAEhC,IACIya,EADAoV,EAAc,GAElB,KAAOP,EAAOr0B,SACZwf,EAAO6U,EAAO,GAAG,GACJ,UAAT7U,GAA6B,YAATA,IACxBoV,EAAYv0B,KAAKg0B,EAAOT,SAE1B1yB,KAAK2zB,wBAAwBR,GAC7B,IAAK,IAAIvuB,EAAKuuB,EAAOr0B,OAAS,EAAG8F,GAAM,EAAGA,IAAM,CAE9C,GADA6sB,EAAQ0B,EAAOvuB,GACgB,eAA3B6sB,EAAM,GAAG1vB,cAAgC,CAC3Cd,EAAMga,WAAY,EAClB,IAAIF,EAAS/a,KAAK4zB,WAAWT,EAAQvuB,GACrCmW,EAAS/a,KAAK6zB,cAAcV,GAAUpY,EACvB,gBAAXA,IAA0B9Z,EAAM6Y,KAAKmB,UAAYF,GACrD,KACF,CAAO,GAA+B,cAA3B0W,EAAM,GAAG1vB,cAA+B,CACjD,IAAI+xB,EAAQX,EAAOtvB,MAAM,GACrB5B,EAAM,GACV,IAAK,IAAI8C,EAAIH,EAAIG,EAAI,EAAGA,IAAK,CAC3B,IAAIpD,EAAOmyB,EAAM/uB,GAAG,GACpB,GAAgC,IAA5B9C,EAAIuE,OAAO5C,QAAQ,MAAuB,UAATjC,EACnC,MAEFM,EAAM6xB,EAAM7vB,MAAM,GAAKhC,CACzB,CACgC,IAA5BA,EAAIuE,OAAO5C,QAAQ,OACrB3C,EAAMga,WAAY,EAClBha,EAAM6Y,KAAKmB,UAAYhZ,EACvBkxB,EAASW,EAEb,CACA,GAAiB,UAAbrC,EAAM,IAA+B,YAAbA,EAAM,GAChC,KAEJ,CACc0B,EAAOjnB,KAAMtH,GAAiB,UAAVA,EAAG,IAA4B,YAAVA,EAAG,MAExD3D,EAAM6Y,KAAKI,SAAWwZ,EAAYxb,IAAKtT,GAAOA,EAAG,IAAItG,KAAK,IAC1Do1B,EAAc,IAEhB1zB,KAAKqa,IAAIpZ,EAAO,QAASyyB,EAAYK,OAAOZ,GAASI,GACjDtyB,EAAMpJ,MAAMgC,SAAS,OAAS05B,GAChCvzB,KAAKkzB,qBAAqBC,EAE9B,CACA,WAAAG,CAAY7B,GACV,MAAMzxB,KAAKyd,MAAMhf,MACf,eACA,CAAE8lB,OAAQkN,EAAM,IAChB,CAAElN,OAAQkN,EAAM,GAAKA,EAAM,GAAG3yB,QAElC,CACA,SAAAk1B,CAAUvC,GACR,IAAIxwB,EAAQ,IAAImxB,GAChBpyB,KAAK4yB,KAAK3xB,EAAOwwB,EAAM,IACvBxwB,EAAM+pB,SAAW,GACjB/pB,EAAM6Y,KAAKI,QAAU,GACrBla,KAAKgwB,QAAU/uB,CACjB,CACA,GAAA+W,CAAIyZ,GACEzxB,KAAKgwB,QAAQhW,OAASha,KAAKgwB,QAAQhW,MAAMlb,SAC3CkB,KAAKgwB,QAAQlW,KAAKN,UAAYxZ,KAAKwZ,WAErCxZ,KAAKwZ,WAAY,EACjBxZ,KAAKgwB,QAAQlW,KAAKjB,OAAS7Y,KAAKgwB,QAAQlW,KAAKjB,OAAS,IAAM7Y,KAAKwyB,OACjExyB,KAAKwyB,OAAS,GACVxyB,KAAKgwB,QAAQxgB,QACfxP,KAAKgwB,QAAQtzB,OAAOsb,IAAMhY,KAAK+yB,YAAYtB,EAAM,IACjDzxB,KAAKgwB,QAAQtzB,OAAOsb,IAAIuM,SACxBvkB,KAAKgwB,QAAUhwB,KAAKgwB,QAAQxgB,QAE5BxP,KAAKi0B,gBAAgBxC,EAEzB,CACA,OAAAyC,GACMl0B,KAAKgwB,QAAQxgB,QAAQxP,KAAKm0B,gBAC1Bn0B,KAAKgwB,QAAQhW,OAASha,KAAKgwB,QAAQhW,MAAMlb,SAC3CkB,KAAKgwB,QAAQlW,KAAKN,UAAYxZ,KAAKwZ,WAErCxZ,KAAKgwB,QAAQlW,KAAKjB,OAAS7Y,KAAKgwB,QAAQlW,KAAKjB,OAAS,IAAM7Y,KAAKwyB,OACjExyB,KAAKqb,KAAK3e,OAAOsb,IAAMhY,KAAK+yB,YAAY/yB,KAAK8yB,UAAUd,WACzD,CACA,aAAAoC,CAAc3C,GAEZ,GADAzxB,KAAKwyB,QAAUf,EAAM,GACjBzxB,KAAKgwB,QAAQhW,MAAO,CACtB,IAAI4E,EAAO5e,KAAKgwB,QAAQhW,MAAMha,KAAKgwB,QAAQhW,MAAMlb,OAAS,GACtD8f,GAAsB,SAAdA,EAAKjd,OAAoBid,EAAK9E,KAAKwC,eAC7CsC,EAAK9E,KAAKwC,aAAetc,KAAKwyB,OAC9BxyB,KAAKwyB,OAAS,GAElB,CACF,CAEA,WAAAO,CAAYxO,GACV,IAAIrd,EAAMlH,KAAKyd,MAAM+G,WAAWD,GAChC,MAAO,CACLxN,OAAQ7P,EAAIud,IACZ3N,KAAM5P,EAAI4P,KACVyN,SAEJ,CACA,IAAAqO,CAAK3xB,EAAOsjB,GACVvkB,KAAKgwB,QAAQ7wB,KAAK8B,GAClBA,EAAMvE,OAAS,CACb+gB,MAAOzd,KAAKyd,MACZ1F,MAAO/X,KAAK+yB,YAAYxO,IAE1BtjB,EAAM6Y,KAAKa,OAAS3a,KAAKwyB,OACzBxyB,KAAKwyB,OAAS,GACK,YAAfvxB,EAAMU,OAAoB3B,KAAKwZ,WAAY,EACjD,CACA,KAAAzd,CAAMgc,GACJ,IAAIC,GAAM,EACNrW,EAAO,KACPwX,GAAQ,EACRkb,EAAU,KACVxB,EAAW,GACXU,EAAiBxb,EAAM,GAAGhR,WAAW,MACrCosB,EAAS,GACT1B,EAAQ1Z,EACZ,KAAO0Z,GAAO,CAGZ,GAFA9vB,EAAO8vB,EAAM,GACb0B,EAAOh0B,KAAKsyB,GACC,MAAT9vB,GAAyB,MAATA,EACb0yB,IAASA,EAAU5C,GACxBoB,EAAS1zB,KAAc,MAATwC,EAAe,IAAM,UAC9B,GAAI4xB,GAAkBpa,GAAkB,MAATxX,EAC/B0yB,IAASA,EAAU5C,GACxBoB,EAAS1zB,KAAK,UACT,GAAwB,IAApB0zB,EAAS/zB,OAAc,CAChC,GAAa,MAAT6C,EAAc,CAChB,GAAIwX,EAEF,YADAnZ,KAAK8a,KAAKqY,EAAQI,GAGlB,KAEJ,CAAO,GAAa,MAAT5xB,EAET,YADA3B,KAAKqc,KAAK8W,GAEL,GAAa,MAATxxB,EAAc,CACvB3B,KAAK8yB,UAAUtB,KAAK2B,EAAOlvB,OAC3B+T,GAAM,EACN,KACF,CAAoB,MAATrW,IACTwX,GAAQ,EAEZ,MAAWxX,IAASkxB,EAASA,EAAS/zB,OAAS,KAC7C+zB,EAAS5uB,MACe,IAApB4uB,EAAS/zB,SAAcu1B,EAAU,OAEvC5C,EAAQzxB,KAAK8yB,UAAUnB,WACzB,CAGA,GAFI3xB,KAAK8yB,UAAUpB,cAAa1Z,GAAM,GAClC6a,EAAS/zB,OAAS,GAAGkB,KAAKs0B,gBAAgBD,GAC1Crc,GAAOmB,EAAO,CAChB,IAAKoa,EACH,KAAOJ,EAAOr0B,SACZ2yB,EAAQ0B,EAAOA,EAAOr0B,OAAS,GAAG,GACpB,UAAV2yB,GAA+B,YAAVA,IACzBzxB,KAAK8yB,UAAUtB,KAAK2B,EAAOlvB,OAG/BjE,KAAK8a,KAAKqY,EAAQI,EACpB,MACEvzB,KAAKyzB,YAAYN,EAErB,CACA,KAAAoB,GACE,IAAI9C,EACJ,MAAQzxB,KAAK8yB,UAAUpB,aAErB,OADAD,EAAQzxB,KAAK8yB,UAAUnB,YACfF,EAAM,IACZ,IAAK,QACHzxB,KAAKwyB,QAAUf,EAAM,GACrB,MACF,IAAK,IACHzxB,KAAKo0B,cAAc3C,GACnB,MACF,IAAK,IACHzxB,KAAKgY,IAAIyZ,GACT,MACF,IAAK,UACHzxB,KAAKwQ,QAAQihB,GACb,MACF,IAAK,UACHzxB,KAAK2Z,OAAO8X,GACZ,MACF,IAAK,IACHzxB,KAAKg0B,UAAUvC,GACf,MACF,QACEzxB,KAAKjE,MAAM01B,GAIjBzxB,KAAKk0B,SACP,CACA,uBAAAP,GACA,CACA,GAAAtZ,CAAIpZ,EAAO+Z,EAAMmY,EAAQI,GACvB,IAAI9B,EAAO9vB,EAIP2c,EAAMM,EAHN9f,EAASq0B,EAAOr0B,OAChBjH,EAAQ,GACR28B,GAAQ,EAEZ,IAAK,IAAI5vB,EAAK,EAAGA,EAAK9F,EAAQ8F,GAAM,EAClC6sB,EAAQ0B,EAAOvuB,GACfjD,EAAO8vB,EAAM,GACA,UAAT9vB,GAAoBiD,IAAO9F,EAAS,GAAMy0B,EAE1B,YAAT5xB,GACTid,EAAOuU,EAAOvuB,EAAK,GAAKuuB,EAAOvuB,EAAK,GAAG,GAAK,QAC5C0Z,EAAO6U,EAAOvuB,EAAK,GAAKuuB,EAAOvuB,EAAK,GAAG,GAAK,QACvCytB,GAAwBzT,IAAUyT,GAAwB/T,IACrC,MAApBzmB,EAAMgM,OAAM,GAMhB2wB,GAAQ,EAHN38B,GAAS45B,EAAM,IAMnB55B,GAAS45B,EAAM,GAdf+C,GAAQ,EAiBZ,IAAKA,EAAO,CACV,IAAIna,EAAM8Y,EAAOsB,OAAO,CAACC,EAAK9vB,IAAO8vB,EAAM9vB,EAAG,GAAI,IAClD3D,EAAM6Y,KAAKkB,GAAQ,CAAEX,MAAKxiB,QAC5B,CACAoJ,EAAM+Z,GAAQnjB,CAChB,CACA,IAAAwkB,CAAK8W,GACHA,EAAOlvB,MACP,IAAIhD,EAAQ,IAAImxB,GAChBpyB,KAAK4yB,KAAK3xB,EAAOkyB,EAAO,GAAG,IAC3BlyB,EAAM6Y,KAAKI,QAAUla,KAAKgzB,yBAAyBG,GACnDnzB,KAAKqa,IAAIpZ,EAAO,WAAYkyB,GAC5BnzB,KAAKgwB,QAAU/uB,CACjB,CACA,wBAAA+xB,CAAyBG,GACvB,IAAIwB,EACAnC,EAAS,GACb,KAAOW,EAAOr0B,SACZ61B,EAAgBxB,EAAOA,EAAOr0B,OAAS,GAAG,GACpB,UAAlB61B,GAA+C,YAAlBA,IACjCnC,EAASW,EAAOlvB,MAAM,GAAKuuB,EAE7B,OAAOA,CACT,CAEA,0BAAAS,CAA2BE,GACzB,IAAI7U,EACAkU,EAAS,GACb,KAAOW,EAAOr0B,SACZwf,EAAO6U,EAAO,GAAG,GACJ,UAAT7U,GAA6B,YAATA,IACxBkU,GAAUW,EAAOT,QAAQ,GAE3B,OAAOF,CACT,CACA,aAAAqB,CAAcV,GACZ,IAAIwB,EACAnC,EAAS,GACb,KAAOW,EAAOr0B,SACZ61B,EAAgBxB,EAAOA,EAAOr0B,OAAS,GAAG,GACpB,UAAlB61B,IACJnC,EAASW,EAAOlvB,MAAM,GAAKuuB,EAE7B,OAAOA,CACT,CACA,UAAAoB,CAAWT,EAAQh1B,GACjB,IAAIghB,EAAU,GACd,IAAK,IAAIva,EAAKzG,EAAMyG,EAAKuuB,EAAOr0B,OAAQ8F,IACtCua,GAAWgU,EAAOvuB,GAAI,GAGxB,OADAuuB,EAAOrI,OAAO3sB,EAAMg1B,EAAOr0B,OAASX,GAC7BghB,CACT,CACA,aAAAgV,GACE,IAAIjtB,EAAMlH,KAAKgwB,QAAQtzB,OAAOqb,MAC9B,MAAM/X,KAAKyd,MAAMhf,MAAM,iBAAkByI,EAAI4P,KAAM5P,EAAI6P,OACzD,CACA,eAAAud,CAAgBD,GACd,MAAMr0B,KAAKyd,MAAMhf,MACf,mBACA,CAAE8lB,OAAQ8P,EAAQ,IAClB,CAAE9P,OAAQ8P,EAAQ,GAAK,GAE3B,CACA,eAAAJ,CAAgBxC,GACd,MAAMzxB,KAAKyd,MAAMhf,MACf,eACA,CAAE8lB,OAAQkN,EAAM,IAChB,CAAElN,OAAQkN,EAAM,GAAK,GAEzB,CACA,WAAAgC,CAAYN,GACV,MAAMnzB,KAAKyd,MAAMhf,MACf,eACA,CAAE8lB,OAAQ4O,EAAO,GAAG,IACpB,CAAE5O,OAAQ4O,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAGr0B,QAE1C,CACA,aAAA6zB,CAAc1xB,EAAOwwB,GACnB,MAAMzxB,KAAKyd,MAAMhf,MACf,uBACA,CAAE8lB,OAAQkN,EAAM,IAChB,CAAElN,OAAQkN,EAAM,GAAKA,EAAM,GAAG3yB,QAElC,GAGF,IAAI81B,GAAgB5I,GAChB6I,GAAYtC,GACZuC,GAAYxP,GAChB,SAASyP,GAAUpd,EAAKsG,GACtB,IAAI0B,EAAS,IAAImV,GAAUnd,EAAKsG,GAC5B+W,EAAU,IAAIH,GAAUlV,GAC5B,IACEqV,EAAQT,OACV,CAAE,MAAO9rB,GAYP,KAX6B,eAAzBwsB,QAAQC,IAAIC,UACE,mBAAZ1sB,EAAG9L,MAA6BshB,GAAQA,EAAK9f,OAC3C,WAAWwF,KAAKsa,EAAK9f,MACvBsK,EAAGoO,SAAW,iGACL,UAAUlT,KAAKsa,EAAK9f,MAC7BsK,EAAGoO,SAAW,iGACL,WAAWlT,KAAKsa,EAAK9f,QAC9BsK,EAAGoO,SAAW,mGAIdpO,CACR,CACA,OAAOusB,EAAQ3Z,IACjB,CACA,IAAI+Z,GAAYL,GAChBA,GAAUlhB,QAAUkhB,GACpBH,GAAcjJ,cAAcoJ,IAC5B,IAAMrc,QAAS2c,GAAW1c,GAAI2c,IAAS7c,GACnC8c,GAAmBnP,GACnBoP,GAAgB9Y,GAChB+Y,GAAgBzJ,GAChB0J,GAAejJ,GACfkJ,GAAehJ,GACfiJ,GAAalI,GACbmI,GAAYT,GACZU,GAAWpG,GACf,MAAMqG,GAAuB,CAC3Bpc,OAAQ,SACRnJ,QAAS,UACTsK,KAAM,cACN3gB,SAAU,WACVkhB,KAAM,OACNgB,KAAM,QAEF2Z,GAAiB,CACrBC,QAAQ,EACRC,YAAY,EACZhmB,SAAS,EACTimB,aAAa,EACbC,aAAa,EACbC,iBAAiB,EACjBvsB,UAAU,EACVwsB,cAAc,EACdC,MAAM,EACNC,UAAU,EACVlJ,eAAe,EACfmJ,SAAS,EACTC,MAAM,EACNC,UAAU,EACVC,MAAM,EACNC,UAAU,GAENC,GAAiB,CACrBP,MAAM,EACNjJ,eAAe,EACfmJ,SAAS,GAGX,SAASM,GAAYp/B,GACnB,MAAsB,iBAARA,GAAwC,mBAAbA,EAAIq/B,IAC/C,CACA,SAASC,GAAYh2B,GACnB,IAAIrJ,GAAM,EACN+J,EAAOo0B,GAAqB90B,EAAMU,MAMtC,MALmB,SAAfV,EAAMU,KACR/J,EAAMqJ,EAAM+Z,KAAKjZ,cACO,WAAfd,EAAMU,OACf/J,EAAMqJ,EAAMtE,KAAKoF,eAEfnK,GAAOqJ,EAAMqc,OACR,CACL3b,EACAA,EAAO,IAAM/J,EAfA,EAiBb+J,EAAO,OACPA,EAAO,QAAU/J,GAEVA,EACF,CAAC+J,EAAMA,EAAO,IAAM/J,EAAK+J,EAAO,OAAQA,EAAO,QAAU/J,GACvDqJ,EAAMqc,OACR,CAAC3b,EAvBO,EAuBWA,EAAO,QAE1B,CAACA,EAAMA,EAAO,OAEzB,CACA,SAASu1B,GAAUj2B,GACjB,IAAIk2B,EAQJ,OANEA,EADiB,aAAfl2B,EAAMU,KACC,CAAC,WA/BK,EA+BmB,gBACV,SAAfV,EAAMU,KACN,CAAC,OAjCK,EAiCe,YAErBs1B,GAAYh2B,GAEhB,CACLm2B,WAAY,EACZD,SACA/M,SAAU,EACVrK,KAAM9e,EACNo2B,aAAc,EACdC,SAAU,GAEd,CACA,SAASC,GAAat2B,GAGpB,OAFAA,EAAMo0B,KAAa,EACfp0B,EAAM+Y,OAAO/Y,EAAM+Y,MAAMnZ,QAAS+D,GAAO2yB,GAAa3yB,IACnD3D,CACT,CACA,IAAIu2B,GAAc,CAAA,EACdC,GAAiB,MAAMC,EACzB,WAAAl7B,CAAY0wB,EAAYvV,EAAKsG,GAG3B,IAAI7C,EACJ,GAHApb,KAAK23B,aAAc,EACnB33B,KAAK43B,WAAY,EAEE,iBAARjgB,GAA4B,OAARA,GAA8B,SAAbA,EAAIhW,MAAgC,aAAbgW,EAAIhW,KAEpE,GAAIgW,aAAe+f,GAAc/f,aAAeie,GACrDxa,EAAQmc,GAAa5f,EAAI0D,MACrB1D,EAAIO,WACkB,IAAb+F,EAAK/F,MAAqB+F,EAAK/F,IAAM,CAAA,GAC3C+F,EAAK/F,IAAIqJ,SAAQtD,EAAK/F,IAAIqJ,QAAS,GACxCtD,EAAK/F,IAAI0G,KAAOjH,EAAIO,SAEjB,CACL,IAAI8c,EAAUa,GACV5X,EAAK4Z,SAAQ7C,EAAU/W,EAAK4Z,OAAOtD,OACnCtW,EAAK6Z,SAAQ9C,EAAU/W,EAAK6Z,QAC5B9C,EAAQT,QAAOS,EAAUA,EAAQT,OACrC,IACEnZ,EAAQ4Z,EAAQrd,EAAKsG,EACvB,CAAE,MAAOxf,GACPuB,KAAK43B,WAAY,EACjB53B,KAAKvB,MAAQA,CACf,CACI2c,IAAUA,EAAMka,KAClBG,GAAcxK,QAAQ7P,EAE1B,MAtBEA,EAAQmc,GAAa5f,GAuBvB3X,KAAK+3B,OAAS,IAAInC,GAAW1I,EAAY9R,EAAO6C,GAChDje,KAAKg4B,QAAU,IAAKR,GAAaS,QAAST,GAAaO,OAAQ/3B,KAAK+3B,QACpE/3B,KAAKk4B,QAAUl4B,KAAKmtB,UAAU+K,QAAQhgB,IAAKjB,GACjB,iBAAbA,GAAyBA,EAASwf,QACpC,IAAKxf,KAAaA,EAASwf,QAAQz2B,KAAK+3B,SAExC9gB,EAGb,CACA,KAAAkhB,GACE,OAAIn4B,KAAKvB,MAAc25B,QAAQC,OAAOr4B,KAAKvB,OACvCuB,KAAK43B,UAAkBQ,QAAQzU,QAAQ3jB,KAAK+3B,SAC3C/3B,KAAKs4B,aACRt4B,KAAKs4B,WAAat4B,KAAKu4B,YAElBv4B,KAAKs4B,WACd,CACA,MAAME,GACJ,OAAOx4B,KAAKm4B,QAAQM,MAAMD,EAC5B,CACA,QAAQE,GACN,OAAO14B,KAAKm4B,QAAQnB,KAAK0B,EAAWA,EACtC,CACA,aAAAC,GACE,MAAM,IAAI/hB,MAAM,uDAClB,CACA,WAAAgiB,CAAYn6B,EAAOwC,GACjB,IAAIgW,EAAWjX,KAAK+3B,OAAO1K,WAC3B,IAGE,GAFIpsB,GAAOA,EAAMsc,WAAW9e,GAC5BuB,KAAKvB,MAAQA,EACM,mBAAfA,EAAM9B,MAA8B8B,EAAM2Y,QAGvC,GAAIH,EAAS4hB,gBACW,eAAzB5D,QAAQC,IAAIC,SAA2B,CACzC,IAAI2D,EAAa7hB,EAASqW,cACtByL,EAAY9hB,EAAS4hB,eACrBG,EAAah5B,KAAK+3B,OAAO5K,UAAU8L,QACnCnyB,EAAKiyB,EAAUl6B,MAAM,KACrBq6B,EAAIF,EAAWn6B,MAAM,MACrBiI,EAAG,KAAOoyB,EAAE,IAAMC,SAASryB,EAAG,IAAMqyB,SAASD,EAAE,MACjD3rB,QAAQ9O,MACN,sEAAwEu6B,EAAa,SAAWF,EAAa,SAAWC,EAAY,mDAG1I,OAdAt6B,EAAM2Y,OAASH,EAASqW,cACxB7uB,EAAM8Y,YAeV,CAAE,MAAO3U,GACH2K,SAAWA,QAAQ9O,OAAO8O,QAAQ9O,MAAMmE,EAC9C,CACA,OAAOnE,CACT,CACA,eAAA26B,GACEp5B,KAAKq5B,UAAY,CAAA,EACjB,IAAIn4B,EAAM,CAAC+V,EAAUtV,EAAM+oB,KACpB1qB,KAAKq5B,UAAU13B,KAAO3B,KAAKq5B,UAAU13B,GAAQ,IAClD3B,KAAKq5B,UAAU13B,GAAMxC,KAAK,CAAC8X,EAAUyT,KAEvC,IAAK,IAAIzT,KAAYjX,KAAKk4B,QACxB,GAAwB,iBAAbjhB,EACT,IAAK,IAAIqiB,KAASriB,EAAU,CAC1B,IAAK+e,GAAesD,IAAU,SAAS31B,KAAK21B,GAC1C,MAAM,IAAI1iB,MACR,iBAAiB0iB,QAAYriB,EAASqW,yCAAyCttB,KAAKmtB,UAAU8L,iBAGlG,IAAKnC,GAAewC,GAClB,GAA+B,iBAApBriB,EAASqiB,GAClB,IAAK,IAAI7L,KAAUxW,EAASqiB,GAExBp4B,EAAI+V,EADS,MAAXwW,EACY6L,EAIZA,EAAQ,IAAM7L,EAAO1rB,cAJFkV,EAASqiB,GAAO7L,QASL,mBAApBxW,EAASqiB,IACzBp4B,EAAI+V,EAAUqiB,EAAOriB,EAASqiB,GAGpC,CAGJt5B,KAAKu5B,YAAc/hC,OAAOiJ,KAAKT,KAAKq5B,WAAWv6B,OAAS,CAC1D,CACA,cAAMy5B,GACJv4B,KAAKoX,OAAS,EACd,IAAK,IAAIxS,EAAK,EAAGA,EAAK5E,KAAKk4B,QAAQp5B,OAAQ8F,IAAM,CAC/C,IAAIqS,EAAWjX,KAAKk4B,QAAQtzB,GACxB40B,EAAUx5B,KAAKy5B,UAAUxiB,GAC7B,GAAI8f,GAAYyC,GACd,UACQA,CACR,CAAE,MAAO/6B,GACP,MAAMuB,KAAK44B,YAAYn6B,EACzB,CAEJ,CAEA,GADAuB,KAAKo5B,kBACDp5B,KAAKu5B,YAAa,CACpB,IAAIne,EAAQpb,KAAK+3B,OAAO1c,KACxB,MAAQD,EAAMia,KAAY,CACxBja,EAAMia,KAAa,EACnB,IAAItxB,EAAQ,CAACmzB,GAAU9b,IACvB,KAAOrX,EAAMjF,OAAS,GAAG,CACvB,IAAI06B,EAAUx5B,KAAK05B,UAAU31B,GAC7B,GAAIgzB,GAAYyC,GACd,UACQA,CACR,CAAE,MAAO/wB,GACP,IAAIxH,EAAQ8C,EAAMA,EAAMjF,OAAS,GAAGihB,KACpC,MAAM/f,KAAK44B,YAAYnwB,EAAIxH,EAC7B,CAEJ,CACF,CACA,GAAIjB,KAAKq5B,UAAU7C,SACjB,IAAK,IAAKvf,EAAU0iB,KAAY35B,KAAKq5B,UAAU7C,SAAU,CACvDx2B,KAAK+3B,OAAO1K,WAAapW,EACzB,IACE,GAAmB,aAAfmE,EAAMzZ,KAAqB,CAC7B,IAAIi4B,EAAQxe,EAAMpB,MAAM9B,IACrB2hB,GAAYF,EAAQE,EAAS75B,KAAKg4B,gBAE/BI,QAAQ1D,IAAIkF,EACpB,YACQD,EAAQve,EAAOpb,KAAKg4B,QAE9B,CAAE,MAAOvvB,GACP,MAAMzI,KAAK44B,YAAYnwB,EACzB,CACF,CAEJ,CAEA,OADAzI,KAAK43B,WAAY,EACV53B,KAAKf,WACd,CACA,SAAAw6B,CAAUxiB,GACRjX,KAAK+3B,OAAO1K,WAAapW,EACzB,IACE,GAAwB,iBAAbA,GAAyBA,EAASsf,KAAM,CACjD,GAA8B,aAA1Bv2B,KAAK+3B,OAAO1c,KAAK1Z,KAAqB,CACxC,IAAIi4B,EAAQ55B,KAAK+3B,OAAO1c,KAAKrB,MAAM9B,IAChCkD,GAAUnE,EAASsf,KAAKnb,EAAOpb,KAAKg4B,UAEvC,OAAIjB,GAAY6C,EAAM,IACbxB,QAAQ1D,IAAIkF,GAEdA,CACT,CACA,OAAO3iB,EAASsf,KAAKv2B,KAAK+3B,OAAO1c,KAAMrb,KAAKg4B,QAC9C,CAAO,GAAwB,mBAAb/gB,EAChB,OAAOA,EAASjX,KAAK+3B,OAAO1c,KAAMrb,KAAK+3B,OAE3C,CAAE,MAAOt5B,GACP,MAAMuB,KAAK44B,YAAYn6B,EACzB,CACF,CACA,SAAAQ,GACE,GAAIe,KAAKvB,MAAO,MAAMuB,KAAKvB,MAC3B,GAAIuB,KAAK23B,YAAa,OAAO33B,KAAK+3B,OAClC/3B,KAAK23B,aAAc,EACnB33B,KAAK85B,OACL,IAAI7b,EAAOje,KAAK+3B,OAAO9Z,KACnBhc,EAAMuzB,GACNvX,EAAK4Z,SAAQ51B,EAAMgc,EAAK4Z,OAAO54B,WAC/Bgf,EAAK8b,cAAa93B,EAAMgc,EAAK8b,aAC7B93B,EAAIhD,YAAWgD,EAAMA,EAAIhD,WAC7B,IACI+M,EADM,IAAIupB,GAAiBtzB,EAAKjC,KAAK+3B,OAAO1c,KAAMrb,KAAK+3B,OAAO9Z,MACnDwJ,WAGf,OAFAznB,KAAK+3B,OAAOpgB,IAAM3L,EAAK,GACvBhM,KAAK+3B,OAAO7f,IAAMlM,EAAK,GAChBhM,KAAK+3B,MACd,CACA,IAAA+B,GACE,GAAI95B,KAAKvB,MAAO,MAAMuB,KAAKvB,MAC3B,GAAIuB,KAAK43B,UAAW,OAAO53B,KAAK+3B,OAEhC,GADA/3B,KAAK43B,WAAY,EACb53B,KAAKs4B,WACP,MAAMt4B,KAAK24B,gBAEb,IAAK,IAAI1hB,KAAYjX,KAAKk4B,QAAS,CAEjC,GAAInB,GADU/2B,KAAKy5B,UAAUxiB,IAE3B,MAAMjX,KAAK24B,eAEf,CAEA,GADA34B,KAAKo5B,kBACDp5B,KAAKu5B,YAAa,CACpB,IAAIne,EAAQpb,KAAK+3B,OAAO1c,KACxB,MAAQD,EAAMia,KACZja,EAAMia,KAAa,EACnBr1B,KAAKg6B,SAAS5e,GAEhB,GAAIpb,KAAKq5B,UAAU7C,SACjB,GAAmB,aAAfpb,EAAMzZ,KACR,IAAK,IAAIk4B,KAAWze,EAAMpB,MACxBha,KAAKi6B,UAAUj6B,KAAKq5B,UAAU7C,SAAUqD,QAG1C75B,KAAKi6B,UAAUj6B,KAAKq5B,UAAU7C,SAAUpb,EAG9C,CACA,OAAOpb,KAAK+3B,MACd,CACA,IAAAf,CAAKkD,EAAa1B,GAQhB,MAP6B,eAAzBvD,QAAQC,IAAIC,WACR,SAAUn1B,KAAKie,MACnB0X,GACE,4KAIC31B,KAAKm4B,QAAQnB,KAAKkD,EAAa1B,EACxC,CACA,QAAA5+B,GACE,OAAOoG,KAAK2X,GACd,CACA,SAAAsiB,CAAU3C,EAAUr2B,GAClB,IAAK,IAAKgW,EAAU0iB,KAAYrC,EAAU,CAExC,IAAIkC,EADJx5B,KAAK+3B,OAAO1K,WAAapW,EAEzB,IACEuiB,EAAUG,EAAQ14B,EAAOjB,KAAKg4B,QAChC,CAAE,MAAOvvB,GACP,MAAMzI,KAAK44B,YAAYnwB,EAAIxH,EAAM+e,QACnC,CACA,GAAmB,SAAf/e,EAAMU,MAAkC,aAAfV,EAAMU,OAAwBV,EAAMuO,OAC/D,OAAO,EAET,GAAIunB,GAAYyC,GACd,MAAMx5B,KAAK24B,eAEf,CACF,CACA,SAAAe,CAAU31B,GACR,IAAIo2B,EAASp2B,EAAMA,EAAMjF,OAAS,IAC5BihB,KAAM9e,EAAKq2B,SAAEA,GAAa6C,EAChC,GAAmB,SAAfl5B,EAAMU,MAAkC,aAAfV,EAAMU,OAAwBV,EAAMuO,OAE/D,YADAzL,EAAME,MAGR,GAAIqzB,EAASx4B,OAAS,GAAKq7B,EAAO9C,aAAeC,EAASx4B,OAAQ,CAChE,IAAKmY,EAAU0iB,GAAWrC,EAAS6C,EAAO9C,cAC1C8C,EAAO9C,cAAgB,EACnB8C,EAAO9C,eAAiBC,EAASx4B,SACnCq7B,EAAO7C,SAAW,GAClB6C,EAAO9C,aAAe,GAExBr3B,KAAK+3B,OAAO1K,WAAapW,EACzB,IACE,OAAO0iB,EAAQ14B,EAAMmd,UAAWpe,KAAKg4B,QACvC,CAAE,MAAOvvB,GACP,MAAMzI,KAAK44B,YAAYnwB,EAAIxH,EAC7B,CACF,CACA,GAAwB,IAApBk5B,EAAO/P,SAAgB,CACzB,IACI1P,EADA0P,EAAW+P,EAAO/P,SAEtB,KAAO1P,EAAQzZ,EAAM+Y,MAAM/Y,EAAMqpB,QAAQF,KAEvC,GADAnpB,EAAMqpB,QAAQF,IAAa,GACtB1P,EAAM2a,IAGT,OAFA3a,EAAM2a,KAAa,OACnBtxB,EAAM5E,KAAK+3B,GAAUxc,IAIzByf,EAAO/P,SAAW,SACXnpB,EAAMqpB,QAAQF,EACvB,CACA,IAAI+M,EAASgD,EAAOhD,OACpB,KAAOgD,EAAO/C,WAAaD,EAAOr4B,QAAQ,CACxC,IAAIw6B,EAAQnC,EAAOgD,EAAO/C,YAE1B,GADA+C,EAAO/C,YAAc,EAxWR,IAyWTkC,EAKF,YAJIr4B,EAAM+Y,OAAS/Y,EAAM+Y,MAAMlb,SAC7BmC,EAAMo0B,KAAa,EACnB8E,EAAO/P,SAAWnpB,EAAMopB,gBAGrB,GAAIrqB,KAAKq5B,UAAUC,GAExB,YADAa,EAAO7C,SAAWt3B,KAAKq5B,UAAUC,GAGrC,CACAv1B,EAAME,KACR,CACA,QAAA+1B,CAAS/4B,GACPA,EAAMo0B,KAAa,EACnB,IAAI8B,EAASF,GAAYh2B,GACzB,IAAK,IAAIq4B,KAASnC,EAChB,GA1Xa,IA0XTmC,EACEr4B,EAAM+Y,OACR/Y,EAAMipB,KAAMxP,IACLA,EAAM2a,KAAYr1B,KAAKg6B,SAAStf,SAGpC,CACL,IAAI4c,EAAWt3B,KAAKq5B,UAAUC,GAC9B,GAAIhC,GACEt3B,KAAKi6B,UAAU3C,EAAUr2B,EAAMmd,WAAY,MAEnD,CAEJ,CACA,QAAAoP,GACE,OAAOxtB,KAAK85B,OAAOtM,UACrB,CACA,WAAIzG,GACF,OAAO/mB,KAAKf,YAAY8nB,OAC1B,CACA,OAAIpP,GACF,OAAO3X,KAAKf,YAAY0Y,GAC1B,CACA,OAAIO,GACF,OAAOlY,KAAKf,YAAYiZ,GAC1B,CACA,YAAIkV,GACF,OAAOptB,KAAK85B,OAAO1M,QACrB,CACA,QAAInP,GACF,OAAOje,KAAK+3B,OAAO9Z,IACrB,CACA,aAAIkP,GACF,OAAOntB,KAAK+3B,OAAO5K,SACrB,CACA,QAAI9R,GACF,OAAOrb,KAAK85B,OAAOze,IACrB,CACA,IAAK/E,OAAOC,eACV,MAAO,YACT,GAEFkhB,GAAe2C,gBAAmBxO,IAChC4L,GAAc5L,GAEhB,IAAIyO,GAAe5C,GACnBA,GAAe5jB,QAAU4jB,GACzB3B,GAASvJ,mBAAmBkL,IAC5B/B,GAAanJ,mBAAmBkL,IAChC,IAAI6C,GAAkBlU,GAClBmU,GAAgB7d,GAChB8d,GAAc7N,GACd8N,GAAYrF,GAChB,MAAMsF,GAAahN,GACnB,IAAIiN,GAAmB,MACrB,WAAAn+B,CAAY0wB,EAAYvV,EAAKsG,GAO3B,IAAI7C,EANJzD,EAAMA,EAAI/d,WACVoG,KAAK23B,aAAc,EACnB33B,KAAK46B,WAAa1N,EAClBltB,KAAK66B,KAAOljB,EACZ3X,KAAK86B,MAAQ7c,EACbje,KAAK+6B,UAAO,EAEZ,IAAI94B,EAAMs4B,GACVv6B,KAAK+3B,OAAS,IAAI2C,GAAW16B,KAAK46B,WAAYxf,EAAOpb,KAAK86B,OAC1D96B,KAAK+3B,OAAOpgB,IAAMA,EAClB,IAAIqjB,EAAOh7B,KACXxI,OAAOC,eAAeuI,KAAK+3B,OAAQ,OAAQ,CACzCp+B,IAAG,IACMqhC,EAAK3f,OAGhB,IAAInD,EAAM,IAAIoiB,GAAgBr4B,EAAKmZ,EAAOpb,KAAK86B,MAAOnjB,GACtD,GAAIO,EAAIqK,QAAS,CACf,IAAK0Y,EAAcC,GAAgBhjB,EAAIuP,WACnCwT,IACFj7B,KAAK+3B,OAAOpgB,IAAMsjB,GAEhBC,IACFl7B,KAAK+3B,OAAO7f,IAAMgjB,EAEtB,MACEhjB,EAAIsP,kBACJxnB,KAAK+3B,OAAOpgB,IAAMO,EAAIP,GAE1B,CACA,KAAAwgB,GACE,OAAIn4B,KAAKvB,MAAc25B,QAAQC,OAAOr4B,KAAKvB,OACpC25B,QAAQzU,QAAQ3jB,KAAK+3B,OAC9B,CACA,MAAMS,GACJ,OAAOx4B,KAAKm4B,QAAQM,MAAMD,EAC5B,CACA,QAAQE,GACN,OAAO14B,KAAKm4B,QAAQnB,KAAK0B,EAAWA,EACtC,CACA,IAAAoB,GACE,GAAI95B,KAAKvB,MAAO,MAAMuB,KAAKvB,MAC3B,OAAOuB,KAAK+3B,MACd,CACA,IAAAf,CAAKkD,EAAa1B,GAQhB,MAP6B,eAAzBvD,QAAQC,IAAIC,WACR,SAAUn1B,KAAK86B,OACnBN,GACE,4KAICx6B,KAAKm4B,QAAQnB,KAAKkD,EAAa1B,EACxC,CACA,QAAA5+B,GACE,OAAOoG,KAAK66B,IACd,CACA,QAAArN,GACE,MAAO,EACT,CACA,WAAIzG,GACF,OAAO/mB,KAAK+3B,OAAOpgB,GACrB,CACA,OAAIA,GACF,OAAO3X,KAAK+3B,OAAOpgB,GACrB,CACA,OAAIO,GACF,OAAOlY,KAAK+3B,OAAO7f,GACrB,CACA,YAAIkV,GACF,MAAO,EACT,CACA,QAAInP,GACF,OAAOje,KAAK+3B,OAAO9Z,IACrB,CACA,aAAIkP,GACF,OAAOntB,KAAK+3B,OAAO5K,SACrB,CACA,QAAI9R,GACF,GAAIrb,KAAKm7B,MACP,OAAOn7B,KAAKm7B,MAEd,IAAI/f,EACA4Z,EAAUyF,GACd,IACErf,EAAQ4Z,EAAQh1B,KAAK66B,KAAM76B,KAAK86B,MAClC,CAAE,MAAOr8B,GACPuB,KAAKvB,MAAQA,CACf,CACA,GAAIuB,KAAKvB,MACP,MAAMuB,KAAKvB,MAGX,OADAuB,KAAKm7B,MAAQ/f,EACNA,CAEX,CACA,IAAK9E,OAAOC,eACV,MAAO,cACT,GAEF,IAAI6kB,GAAiBT,GACrBA,GAAiB9mB,QAAU8mB,GAC3B,IAAIU,GAAkBD,GAClBE,GAAiBjB,GACjBkB,GAAe9O,GACf+O,GAAW9L,GACX+L,GAAgB,MAClB,WAAAj/B,CAAY07B,EAAU,IACpBl4B,KAAKi5B,QAAU,SACfj5B,KAAKk4B,QAAUl4B,KAAKiqB,UAAUiO,EAChC,CACA,SAAAjO,CAAUiO,GACR,IAAIwD,EAAa,GACjB,IAAK,IAAI92B,KAAMszB,EAMb,IALmB,IAAftzB,EAAGqzB,QACLrzB,EAAKA,IACIA,EAAGqzB,UACZrzB,EAAKA,EAAGqzB,SAEQ,iBAAPrzB,GAAmB1G,MAAMgf,QAAQtY,EAAGszB,SAC7CwD,EAAaA,EAAW3H,OAAOnvB,EAAGszB,cAC7B,GAAkB,iBAAPtzB,GAAmBA,EAAG0oB,cACtCoO,EAAWv8B,KAAKyF,QACX,GAAkB,mBAAPA,EAChB82B,EAAWv8B,KAAKyF,OACX,IAAkB,iBAAPA,IAAoBA,EAAG2vB,QAAS3vB,EAAG3F,UAOnD,MAAM,IAAI2X,MAAMhS,EAAK,4BANrB,GAA6B,eAAzBqwB,QAAQC,IAAIC,SACd,MAAM,IAAIve,MACR,iKAKN,CAEF,OAAO8kB,CACT,CACA,OAAAzG,CAAQtd,EAAKsG,EAAO,IAClB,OAAKje,KAAKk4B,QAAQp5B,QAAWmf,EAAK6Z,QAAW7Z,EAAK8b,aAAgB9b,EAAK4Z,OAG9D,IAAIyD,GAAet7B,KAAM2X,EAAKsG,GAF9B,IAAIod,GAAgBr7B,KAAM2X,EAAKsG,EAI1C,CACA,GAAA0d,CAAI1kB,GAEF,OADAjX,KAAKk4B,QAAUl4B,KAAKk4B,QAAQnE,OAAO/zB,KAAKiqB,UAAU,CAAChT,KAC5CjX,IACT,GAEF,IAAI47B,GAAcH,GAClBA,GAAc5nB,QAAU4nB,GACxBD,GAAShP,kBAAkBiP,IAC3BF,GAAa/O,kBAAkBiP,IAC/B,IAAII,GAAkBxb,GAClByb,GAAiB5Y,GACjB6Y,GAAc7S,GACd8S,GAAa5M,GACb6M,GAAY3W,GACZ4W,GAAWxM,GACXyM,GAAWvL,GACf,SAASwL,GAAa/W,EAAM/F,GAC1B,GAAIphB,MAAMgf,QAAQmI,GAAO,OAAOA,EAAKnN,IAAKzc,GAAO2gC,GAAa3gC,IAC9D,IAAM6jB,OAAQ+c,KAAcjf,GAAaiI,EACzC,GAAIgX,EAAW,CACb/c,EAAS,GACT,IAAK,IAAIK,KAAU0c,EAAW,CAC5B,IAAIC,EAAgB,IAAK3c,EAAQtJ,UAAW4lB,GAAU/iC,WAClDojC,EAAcpkB,MAChBokB,EAAcpkB,IAAM,IACfokB,EAAcpkB,IACjB7B,UAAWylB,GAAe5iC,YAG9BomB,EAAOngB,KAAKm9B,EACd,CACF,CAIA,GAHIlf,EAASpD,QACXoD,EAASpD,MAAQqL,EAAKrL,MAAM9B,IAAKzc,GAAO2gC,GAAa3gC,EAAI6jB,KAEvDlC,EAAS1gB,OAAQ,CACnB,IAAIgjB,QAAEA,KAAYhjB,GAAW0gB,EAAS1gB,OACtC0gB,EAAS1gB,OAASA,EACH,MAAXgjB,IACFtC,EAAS1gB,OAAO+gB,MAAQ6B,EAAOI,GAEnC,CACA,GAAsB,SAAlBtC,EAASzb,KACX,OAAO,IAAIu6B,GAAS9e,GACf,GAAsB,SAAlBA,EAASzb,KAClB,OAAO,IAAIk6B,GAAgBze,GACtB,GAAsB,SAAlBA,EAASzb,KAClB,OAAO,IAAIw6B,GAAS/e,GACf,GAAsB,YAAlBA,EAASzb,KAClB,OAAO,IAAIo6B,GAAY3e,GAClB,GAAsB,WAAlBA,EAASzb,KAClB,OAAO,IAAIq6B,GAAW5e,GAEtB,MAAM,IAAIxG,MAAM,sBAAwByO,EAAK1jB,KAEjD,CACA,IAAI46B,GAAeH,GACnBA,GAAavoB,QAAUuoB,GACvB,IAAII,GAAoBhkB,GACpBikB,GAAiBpc,GACjBqc,GAAgBrC,GAChBsC,GAAe3Q,GACf4Q,GAAehB,GACfiB,GAAcngB,GACdogB,GAAaP,GACbQ,GAAatQ,GACbuQ,GAAajQ,GACbkQ,GAAa/T,GACbgU,GAAY9N,GACZ+N,GAAYzP,GACZ0P,GAAW9X,GACX+X,GAAUjI,GACVkI,GAAShN,GACTiN,GAAU3M,GACV4M,GAAU9N,GACV+N,GAAUxd,GACd,SAASyd,MAAaxF,GAIpB,OAHuB,IAAnBA,EAAQp5B,QAAgBZ,MAAMgf,QAAQgb,EAAQ,MAChDA,EAAUA,EAAQ,IAEb,IAAI0E,GAAa1E,EAC1B,CACAwF,GAAUtmB,OAAS,SAAgBza,EAAMghC,GACvC,IAkBI7J,EAlBA8J,GAAiB,EACrB,SAASC,KAAWpT,GACdld,SAAWA,QAAQC,OAASowB,IAC9BA,GAAiB,EACjBrwB,QAAQC,KACN7Q,EAAO,qHAELs4B,QAAQC,IAAI4I,MAAQ7I,QAAQC,IAAI4I,KAAK/2B,WAAW,OAClDwG,QAAQC,KACN7Q,EAAO,uEAIb,IAAIohC,EAAcJ,KAAelT,GAGjC,OAFAsT,EAAYzQ,cAAgB3wB,EAC5BohC,EAAYlF,gBAAiB,IAAI+D,IAAe3D,QACzC8E,CACT,CAWA,OATAvmC,OAAOC,eAAeomC,EAAS,UAAW,CACxClkC,IAAG,KACIm6B,IAAOA,EAAQ+J,KACb/J,KAGX+J,EAAQ5I,QAAU,SAAStd,EAAKqmB,EAAaC,GAC3C,OAAOP,GAAU,CAACG,EAAQI,KAAchJ,QAAQtd,EAAKqmB,EACvD,EACOH,CACT,EACAH,GAAUz+B,UAAY49B,GACtBa,GAAUnJ,MAAQ8I,GAClBK,GAAUQ,SAAWpB,GACrBY,GAAUS,KAAOb,GACjBI,GAAUltB,QAAW4M,GAAa,IAAI6f,GAAW7f,GACjDsgB,GAAUU,OAAUhhB,GAAa,IAAI8f,GAAU9f,GAC/CsgB,GAAU5iB,KAAQsC,GAAa,IAAIqf,GAAerf,GAClDsgB,GAAUrhB,KAAQe,GAAa,IAAImgB,GAAQngB,GAC3CsgB,GAAUriB,KAAQ+B,GAAa,IAAIogB,GAAQpgB,GAC3CsgB,GAAUvjC,SAAYijB,GAAa,IAAI2f,GAAW3f,GAClDsgB,GAAU/mB,eAAiB6lB,GAC3BkB,GAAUtH,YAAcqG,GACxBiB,GAAU3T,UAAY4S,GACtBe,GAAUW,UAAYzB,GACtBc,GAAU5zB,SAAWizB,GACrBW,GAAUxtB,QAAU+sB,GACpBS,GAAUY,QAAUtB,GACpBU,GAAUzH,OAASiH,GACnBQ,GAAUa,OAASpB,GACnBO,GAAUc,MAAQpB,GAClBM,GAAU9G,KAAO2G,GACjBG,GAAUhH,KAAO8G,GACjBE,GAAUllC,KAAOilC,GACjBf,GAActC,gBAAgBsD,IAC9B,IAAIe,GAAcf,GAClBA,GAAU7pB,QAAU6pB,GACpB,MAAMgB,GAA8BlrB,GAA0BirB,IAC9DC,GAAYz/B,UACZy/B,GAAYR,SACZQ,GAAYtnB,OACZsnB,GAAYnK,MACZmK,GAAYP,KACZO,GAAYvkC,SACZukC,GAAYluB,QACZkuB,GAAYN,OACZM,GAAYriB,KACZqiB,GAAY5jB,KACZ4jB,GAAYrjB,KACZqjB,GAAY/nB,eACZ+nB,GAAYtI,YACZsI,GAAY3U,UACZ2U,GAAYL,UACZK,GAAY50B,SACZ40B,GAAYxuB,QACZwuB,GAAYJ,QACZI,GAAYzI,OACZyI,GAAYH,OACZG,GAAYF,MACZE,GAAY9H,KACZ8H,GAAYhI,KACZgI,GAAYlmC,KACZ,IAAImmC,GAAannC,OAAOC,eAEpBmnC,GAAiB,CAACjnC,EAAKC,EAAKC,IADT,EAACF,EAAKC,EAAKC,IAAUD,KAAOD,EAAMgnC,GAAWhnC,EAAKC,EAAK,CAAEE,YAAY,EAAMC,cAAc,EAAMC,UAAU,EAAMH,UAAWF,EAAIC,GAAOC,EAClHgnC,CAAiBlnC,EAAoB,iBAARC,EAAmBA,EAAM,GAAKA,EAAKC,GAC1G,SAASinC,GAAwBtzB,GAC/B,OAAOA,GAAMA,EAAGiI,YAAcjc,OAAO0B,UAAUwa,eAAe1Y,KAAKwQ,EAAI,WAAaA,EAAY,QAAIA,CACtG,CACA,SAASuzB,GAAsBtjC,GAC7B,GAAIA,EAAGgY,WAAY,OAAOhY,EAC1B,IAAImY,EAAKnY,EAAGoY,QACZ,GAAiB,mBAAND,EAAkB,CAC3B,IAAI9M,EAAK,SAASgN,IAChB,OAAI9T,gBAAgB8T,EACXC,QAAQC,UAAUJ,EAAIK,UAAWjU,KAAKxD,aAExCoX,EAAGM,MAAMlU,KAAMiU,UACxB,EACAnN,EAAG5N,UAAY0a,EAAG1a,SACpB,MAAO4N,EAAK,CAAA,EAWZ,OAVAtP,OAAOC,eAAeqP,EAAI,aAAc,CAAEjP,OAAO,IACjDL,OAAOiJ,KAAKhF,GAAIoF,QAAQ,SAASyE,GAC/B,IAAI6O,EAAI3c,OAAOkC,yBAAyB+B,EAAI6J,GAC5C9N,OAAOC,eAAeqP,EAAIxB,EAAG6O,EAAExa,IAAMwa,EAAI,CACvCrc,YAAY,EACZ6B,IAAK,WACH,OAAO8B,EAAG6J,EACZ,GAEJ,GACOwB,CACT,CACA,IAAIk4B,GAAqB,CAAE3qB,QAAS,IAChC4qB,GAAMlkC,OACNmkC,GAAS,WACX,MAAO,CAAE1qB,kBAAkB,EAAOlT,MAAO29B,GAAKxqB,KAAMwqB,GAAKvqB,IAAKuqB,GAAKtqB,OAAQsqB,GAAKrqB,UAAWqqB,GAAKpqB,QAASoqB,GAAKnqB,OAAQmqB,GAAKlqB,cAAekqB,GAAKjqB,MAAOiqB,GAAKhqB,IAAKgqB,GAAK/pB,MAAO+pB,GAAK9pB,OAAQ8pB,GAAK7pB,KAAM6pB,GAAK5pB,QAAS4pB,GAAK3pB,KAAM2pB,GAAK1pB,MAAO0pB,GAAKzpB,KAAMypB,GAAKxpB,QAASwpB,GAAKvpB,MAAOupB,GAAKtpB,QAASspB,GAAKrpB,SAAUqpB,GAAKppB,OAAQopB,GAAKnpB,UAAWmpB,GAAKlpB,OAAQkpB,GAAKjpB,QAASipB,GACrW,EACAD,GAAmB3qB,QAAU6qB,KAC7BF,GAAmB3qB,QAAQ4B,aAAeipB,GAC1C,IAAIC,GAA4BH,GAAmB3qB,QACnD,MAKM+qB,GAA6BL,GAJavnC,OAAO4e,OAAuB5e,OAAOC,eAAe,CAClG4e,UAAW,KACXxC,QAH4B,CAAA,GAI3ByC,OAAOC,YAAa,CAAE1e,MAAO,aAEhC,IAAIwnC,GAAOF,GACPG,GAAsBF,GACtBG,GAAmB,MAAMC,UAAwB5oB,MACnD,WAAApa,CAAYqa,EAASC,EAAMC,EAAQra,EAAQsa,EAAMC,GAC/CC,MAAML,GACN7W,KAAKrD,KAAO,iBACZqD,KAAKmX,OAASN,EACVG,IACFhX,KAAKgX,KAAOA,GAEVta,IACFsD,KAAKtD,OAASA,GAEZua,IACFjX,KAAKoX,OAASH,QAEI,IAATH,QAA0C,IAAXC,IACpB,iBAATD,GACT9W,KAAK8W,KAAOA,EACZ9W,KAAK+W,OAASA,IAEd/W,KAAK8W,KAAOA,EAAKA,KACjB9W,KAAK+W,OAASD,EAAKC,OACnB/W,KAAKqX,QAAUN,EAAOD,KACtB9W,KAAKsX,UAAYP,EAAOA,SAG5B/W,KAAKuX,aACDX,MAAMY,mBACRZ,MAAMY,kBAAkBxX,KAAMw/B,EAElC,CACA,UAAAjoB,GACEvX,KAAK6W,QAAU7W,KAAKoX,OAASpX,KAAKoX,OAAS,KAAO,GAClDpX,KAAK6W,SAAW7W,KAAKgX,KAAOhX,KAAKgX,KAAO,mBACf,IAAdhX,KAAK8W,OACd9W,KAAK6W,SAAW,IAAM7W,KAAK8W,KAAO,IAAM9W,KAAK+W,QAE/C/W,KAAK6W,SAAW,KAAO7W,KAAKmX,MAC9B,CACA,cAAAM,CAAeC,GACb,IAAK1X,KAAKtD,OAAQ,MAAO,GACzB,IAAIib,EAAM3X,KAAKtD,OACF,MAATgb,IAAeA,EAAQ2nB,GAAK7qB,kBAC5B8qB,IACE5nB,IAAOC,EAAM2nB,GAAoB3nB,IAEvC,IAIIC,EAAMC,EAJNC,EAAQH,EAAI9Y,MAAM,SAClBkZ,EAAQxS,KAAKG,IAAI1F,KAAK8W,KAAO,EAAG,GAChCkB,EAAMzS,KAAKwG,IAAI/L,KAAK8W,KAAO,EAAGgB,EAAMhZ,QACpCmZ,EAAWld,OAAOid,GAAKlZ,OAE3B,GAAI4Y,EAAO,CACT,IAAIjD,KAAEA,EAAIe,KAAEA,EAAIP,IAAEA,GAAQoqB,GAAKppB,cAAa,GAC5C2B,EAAQ/V,GAAS4S,EAAKQ,EAAIpT,IAC1BgW,EAAShW,GAAS2T,EAAK3T,EACzB,MACE+V,EAAOC,EAAS5V,GAAQA,EAE1B,OAAO6V,EAAMjU,MAAMkU,EAAOC,GAAKE,IAAI,CAACpB,EAAMqB,KACxC,IAAIC,EAASL,EAAQ,EAAII,EACrBE,EAAS,KAAO,IAAMD,GAAQvU,OAAOoU,GAAY,MACrD,GAAIG,IAAWpY,KAAK8W,KAAM,CACxB,IAAIwB,EAAUT,EAAMQ,EAAO7Z,QAAQ,MAAO,MAAQsY,EAAKjT,MAAM,EAAG7D,KAAK+W,OAAS,GAAGvY,QAAQ,SAAU,KACnG,OAAOoZ,EAAK,KAAOC,EAAMQ,GAAUvB,EAAO,MAAQwB,EAAUV,EAAK,IACnE,CACA,MAAO,IAAMC,EAAMQ,GAAUvB,IAC5BxY,KAAK,KACV,CACA,QAAA1E,GACE,IAAI2e,EAAOvY,KAAKyX,iBAIhB,OAHIc,IACFA,EAAO,OAASA,EAAO,MAElBvY,KAAKrD,KAAO,KAAOqD,KAAK6W,QAAU0B,CAC3C,GAEF,IAAIknB,GAAiBF,GACrBA,GAAiB1rB,QAAU0rB,GAC3B,IAAIG,GAAU,CAAA,EACdA,GAAQhnB,QAAUpC,OAAO,WACzBopB,GAAQ/mB,GAAKrC,OAAO,MACpB,MAAMqpB,GAAc,CAClB9mB,MAAO,KACPC,YAAa,KACbC,cAAe,KACfC,WAAY,KACZC,WAAY,IACZC,WAAY,KACZC,MAAO,KACPC,YAAa,IACbC,aAAc,IACdC,UAAW,GACXC,OAAQ,OACRC,WAAW,GAKb,IAAIomB,GAAgB,MAClB,WAAApjC,CAAYkd,GACV1Z,KAAK0Z,QAAUA,CACjB,CACA,MAAAC,CAAO1Y,EAAOuY,GACZ,IAAI7c,EAAO,IAAMsE,EAAMtE,KACnBid,EAAS3Y,EAAM2Y,OAAS5Z,KAAK6Z,SAAS5Y,EAAO,UAAY,GAM7D,QALoC,IAAzBA,EAAM6Y,KAAKC,UACpBpd,GAAQsE,EAAM6Y,KAAKC,UACVH,IACTjd,GAAQ,KAENsE,EAAM+Y,MACRha,KAAKia,MAAMhZ,EAAOtE,EAAOid,OACpB,CACL,IAAI5B,GAAO/W,EAAM6Y,KAAKI,SAAW,KAAOV,EAAY,IAAM,IAC1DxZ,KAAK0Z,QAAQ/c,EAAOid,EAAS5B,EAAK/W,EACpC,CACF,CACA,WAAAkZ,CAAYlZ,EAAOmZ,GACjB,IAAIviB,EAEFA,EADiB,SAAfoJ,EAAMU,KACA3B,KAAKqa,IAAIpZ,EAAO,KAAM,cACN,YAAfA,EAAMU,KACP3B,KAAKqa,IAAIpZ,EAAO,KAAM,iBACV,WAAXmZ,EACDpa,KAAKqa,IAAIpZ,EAAO,KAAM,cAEtBjB,KAAKqa,IAAIpZ,EAAO,KAAM,eAEhC,IAAIqZ,EAAMrZ,EAAMuO,OACZ+K,EAAQ,EACZ,KAAOD,GAAoB,SAAbA,EAAI3Y,MAChB4Y,GAAS,EACTD,EAAMA,EAAI9K,OAEZ,GAAI3X,EAAMgC,SAAS,MAAO,CACxB,IAAI0f,EAASvZ,KAAKqa,IAAIpZ,EAAO,KAAM,UACnC,GAAIsY,EAAOza,OACT,IAAK,IAAI0b,EAAO,EAAGA,EAAOD,EAAOC,IAAQ3iB,GAAS0hB,CAEtD,CACA,OAAO1hB,CACT,CACA,KAAAoiB,CAAMhZ,EAAO8W,GACX,IAEIc,EAFAqB,EAAUla,KAAKqa,IAAIpZ,EAAO,UAAW,cACzCjB,KAAK0Z,QAAQ3B,EAAQmC,EAAU,IAAKjZ,EAAO,SAEvCA,EAAM+Y,OAAS/Y,EAAM+Y,MAAMlb,QAC7BkB,KAAK3F,KAAK4G,GACV4X,EAAQ7Y,KAAKqa,IAAIpZ,EAAO,UAExB4X,EAAQ7Y,KAAKqa,IAAIpZ,EAAO,QAAS,aAE/B4X,GAAO7Y,KAAK0Z,QAAQb,GACxB7Y,KAAK0Z,QAAQ,IAAKzY,EAAO,MAC3B,CACA,IAAA5G,CAAK4G,GACH,IAAIwZ,EAAOxZ,EAAM+Y,MAAMlb,OAAS,EAChC,KAAO2b,EAAO,GACmB,YAA3BxZ,EAAM+Y,MAAMS,GAAM9Y,MACtB8Y,GAAQ,EAEV,IAAIjB,EAAYxZ,KAAKqa,IAAIpZ,EAAO,aAChC,IAAK,IAAI2D,EAAK,EAAGA,EAAK3D,EAAM+Y,MAAMlb,OAAQ8F,IAAM,CAC9C,IAAI8V,EAAQzZ,EAAM+Y,MAAMpV,GACpB+V,EAAS3a,KAAKqa,IAAIK,EAAO,UACzBC,GAAQ3a,KAAK0Z,QAAQiB,GACzB3a,KAAKf,UAAUyb,EAAOD,IAAS7V,GAAM4U,EACvC,CACF,CACA,OAAAhJ,CAAQvP,GACN,IAAI2Z,EAAO5a,KAAKqa,IAAIpZ,EAAO,OAAQ,eAC/B4Z,EAAQ7a,KAAKqa,IAAIpZ,EAAO,QAAS,gBACrCjB,KAAK0Z,QAAQ,KAAOkB,EAAO3Z,EAAMY,KAAOgZ,EAAQ,KAAM5Z,EACxD,CACA,IAAA6Z,CAAK7Z,EAAOuY,GACV,IAAIU,EAAUla,KAAKqa,IAAIpZ,EAAO,UAAW,SACrC8Z,EAAS9Z,EAAM+Z,KAAOd,EAAUla,KAAK6Z,SAAS5Y,EAAO,SACrDA,EAAMga,YACRF,GAAU9Z,EAAM6Y,KAAKmB,WAAa,eAEhCzB,IAAWuB,GAAU,KACzB/a,KAAK0Z,QAAQqB,EAAQ9Z,EACvB,CACA,QAAA9G,CAAS8G,GACPjB,KAAK3F,KAAK4G,EACZ,CACA,GAAAoZ,CAAIpZ,EAAOia,EAAKd,GACd,IAAIviB,EAEJ,GADKuiB,IAAQA,EAASc,GAClBA,IACFrjB,EAAQoJ,EAAM6Y,KAAKoB,QACE,IAAVrjB,GAAuB,OAAOA,EAE3C,IAAI2X,EAASvO,EAAMuO,OACnB,GAAe,WAAX4K,EAAqB,CACvB,IAAK5K,GAA0B,SAAhBA,EAAO7N,MAAmB6N,EAAO2L,QAAUla,EACxD,MAAO,GAET,GAAIuO,GAA0B,aAAhBA,EAAO7N,KACnB,MAAO,EAEX,CACA,IAAK6N,EAAQ,OAAOmwB,GAAYvlB,GAChC,IAAIgB,EAAQna,EAAMoa,OAElB,GADKD,EAAME,WAAUF,EAAME,SAAW,CAAA,QACA,IAA3BF,EAAME,SAASlB,GACxB,OAAOgB,EAAME,SAASlB,GAExB,GAAe,WAAXA,GAAkC,UAAXA,EACzB,OAAOpa,KAAKma,YAAYlZ,EAAOmZ,GAC1B,CACL,IAAIpgB,EAAS,QApHCiI,EAoHkBmY,GAnHzB,GAAGmB,cAAgBtZ,EAAI4B,MAAM,IAoHhC7D,KAAKhG,GACPnC,EAAQmI,KAAKhG,GAAQohB,EAAOna,GAE5Bma,EAAMI,KAAM5W,IAEV,GADA/M,EAAQ+M,EAAGkV,KAAKoB,QACK,IAAVrjB,EAAuB,OAAO,GAG/C,CA7HJ,IAAoBoK,EAgIhB,YAFqB,IAAVpK,IAAuBA,EAAQ8nC,GAAYvlB,IACtDgB,EAAME,SAASlB,GAAUviB,EAClBA,CACT,CACA,cAAA4jB,CAAeL,GACb,IAAIvjB,EAaJ,OAZAujB,EAAMI,KAAM5W,IACV,GAAIA,EAAGoV,OAASpV,EAAGoV,MAAMlb,OAAS,QACH,IAAlB8F,EAAGkV,KAAKjB,MAKjB,OAJAhhB,EAAQ+M,EAAGkV,KAAKjB,MACZhhB,EAAMgC,SAAS,QACjBhC,EAAQA,EAAM2G,QAAQ,UAAW,MAE5B,IAIT3G,IAAOA,EAAQA,EAAM2G,QAAQ,MAAO,KACjC3G,CACT,CACA,gBAAA6jB,CAAiBN,EAAOna,GACtB,IAAIpJ,EAeJ,OAdAujB,EAAMO,aAAc/W,IAClB,QAA8B,IAAnBA,EAAGkV,KAAKa,OAKjB,OAJA9iB,EAAQ+M,EAAGkV,KAAKa,OACZ9iB,EAAMgC,SAAS,QACjBhC,EAAQA,EAAM2G,QAAQ,UAAW,MAE5B,SAGU,IAAV3G,EACTA,EAAQmI,KAAKqa,IAAIpZ,EAAO,KAAM,cACrBpJ,IACTA,EAAQA,EAAM2G,QAAQ,MAAO,KAExB3G,CACT,CACA,aAAA+jB,CAAcR,EAAOna,GACnB,IAAIpJ,EAeJ,OAdAujB,EAAMS,UAAWjX,IACf,QAA8B,IAAnBA,EAAGkV,KAAKa,OAKjB,OAJA9iB,EAAQ+M,EAAGkV,KAAKa,OACZ9iB,EAAMgC,SAAS,QACjBhC,EAAQA,EAAM2G,QAAQ,UAAW,MAE5B,SAGU,IAAV3G,EACTA,EAAQmI,KAAKqa,IAAIpZ,EAAO,KAAM,cACrBpJ,IACTA,EAAQA,EAAM2G,QAAQ,MAAO,KAExB3G,CACT,CACA,aAAAikB,CAAcV,GACZ,IAAIvjB,EAOJ,OANAujB,EAAMI,KAAM5W,IACV,GAAgB,SAAZA,EAAGjD,OACL9J,EAAQ+M,EAAGkV,KAAKI,aACK,IAAVriB,GAAuB,OAAO,IAGtCA,CACT,CACA,aAAAkkB,CAAcX,GACZ,IAAIvjB,EAaJ,OAZAujB,EAAMI,KAAM5W,IACV,GAAIA,EAAGoV,QAAUpV,EAAG4K,SAAW4L,GAASA,EAAMD,QAAUvW,SACxB,IAAnBA,EAAGkV,KAAKa,OAKjB,OAJA9iB,EAAQ+M,EAAGkV,KAAKa,OACZ9iB,EAAMgC,SAAS,QACjBhC,EAAQA,EAAM2G,QAAQ,UAAW,MAE5B,IAIT3G,IAAOA,EAAQA,EAAM2G,QAAQ,MAAO,KACjC3G,CACT,CACA,QAAAmkB,CAASZ,GACP,IAAIvjB,EAOJ,OANAujB,EAAMS,UAAWjX,IACf,QAA+B,IAApBA,EAAGkV,KAAKI,QAEjB,OADAriB,EAAQ+M,EAAGkV,KAAKI,QAAQ1b,QAAQ,UAAW,KACpC,IAGJ3G,CACT,CACA,YAAAokB,CAAab,GACX,IAAIvjB,EAOJ,OANAujB,EAAMI,KAAM5W,IACV,GAAIA,EAAGoV,OAA6B,IAApBpV,EAAGoV,MAAMlb,SACvBjH,EAAQ+M,EAAGkV,KAAKjB,WACK,IAAVhhB,GAAuB,OAAO,IAGtCA,CACT,CACA,SAAAqkB,CAAUd,GACR,GAAIA,EAAMtB,KAAKP,OAAQ,OAAO6B,EAAMtB,KAAKP,OACzC,IAAI1hB,EAYJ,OAXAujB,EAAMI,KAAM5W,IACV,IAAIuX,EAAIvX,EAAG4K,OACX,GAAI2M,GAAKA,IAAMf,GAASe,EAAE3M,QAAU2M,EAAE3M,SAAW4L,QACjB,IAAnBxW,EAAGkV,KAAKa,OAAwB,CACzC,IAAI3W,EAAQY,EAAGkV,KAAKa,OAAO9b,MAAM,MAGjC,OAFAhH,EAAQmM,EAAMA,EAAMlF,OAAS,GAC7BjH,EAAQA,EAAM2G,QAAQ,MAAO,KACtB,CACT,IAGG3G,CACT,CACA,YAAAukB,CAAahB,GACX,IAAIvjB,EAOJ,OANAujB,EAAMI,KAAM5W,IACV,GAAIA,EAAGoV,OAASpV,EAAGoV,MAAMlb,QAA2B,SAAjB8F,EAAG6V,KAAK9Y,OACzC9J,EAAQ+M,EAAGkV,KAAKN,eACK,IAAV3hB,GAAuB,OAAO,IAGtCA,CACT,CACA,QAAAgiB,CAAS5Y,EAAO+Z,GACd,IAAInjB,EAAQoJ,EAAM+Z,GACdX,EAAMpZ,EAAM6Y,KAAKkB,GACrB,OAAIX,GAAOA,EAAIxiB,QAAUA,EAChBwiB,EAAIA,IAENxiB,CACT,CACA,IAAAwjB,CAAKpa,GACHjB,KAAK3F,KAAK4G,GACNA,EAAM6Y,KAAKjB,OAAO7Y,KAAK0Z,QAAQzY,EAAM6Y,KAAKjB,MAChD,CACA,IAAAwD,CAAKpb,GACHjB,KAAKia,MAAMhZ,EAAOjB,KAAK6Z,SAAS5Y,EAAO,aACnCA,EAAM6Y,KAAKwC,cACbtc,KAAK0Z,QAAQzY,EAAM6Y,KAAKwC,aAAcrb,EAAO,MAEjD,CACA,SAAAhC,CAAUgC,EAAOuY,GACf,IAAKxZ,KAAKiB,EAAMU,MACd,MAAM,IAAIiV,MACR,yBAA2B3V,EAAMU,KAAO,mDAG5C3B,KAAKiB,EAAMU,MAAMV,EAAOuY,EAC1B,GAEF,IAAIugB,GAAc6F,GAClBA,GAAc/rB,QAAU+rB,GACxB,IAAIC,GAAgB9F,GACpB,SAAS+F,GAAY7+B,EAAOyY,GAChB,IAAImmB,GAAcnmB,GACxBza,UAAUgC,EAChB,CACA,IAAI8+B,GAAcD,GAClBA,GAAYjsB,QAAUisB,GACtB,IAAMpnB,QAASsnB,GAAWrnB,GAAIsnB,IAASP,GACnCQ,GAAmBT,GACnBU,GAAgBpG,GAChBqG,GAAcL,GAClB,SAASM,GAAU1oC,EAAK6X,GACtB,IAAIyN,EAAS,IAAItlB,EAAI6E,YACrB,IAAK,IAAIoI,KAAMjN,EAAK,CAClB,IAAKH,OAAO0B,UAAUwa,eAAe1Y,KAAKrD,EAAKiN,GAC7C,SAEF,GAAW,eAAPA,EAAqB,SACzB,IAAI/M,EAAQF,EAAIiN,GACZjD,SAAc9J,EACP,WAAP+M,GAA4B,WAATjD,EACjB6N,IAAQyN,EAAOrY,GAAM4K,GACT,WAAP5K,EACTqY,EAAOrY,GAAM/M,EACJqG,MAAMgf,QAAQrlB,GACvBolB,EAAOrY,GAAM/M,EAAMqgB,IAAKnT,GAAMs7B,GAAUt7B,EAAGkY,KAE9B,WAATtb,GAA+B,OAAV9J,IAAgBA,EAAQwoC,GAAUxoC,IAC3DolB,EAAOrY,GAAM/M,EAEjB,CACA,OAAOolB,CACT,CACA,IAAIqjB,GAAS,MACX,WAAA9jC,CAAY4gB,EAAW,IACrBpd,KAAK8Z,KAAO,CAAA,EACZ9Z,KAAKggC,KAAa,EAClBhgC,KAAKigC,KAAQ,EACb,IAAK,IAAItjC,KAAQygB,EACf,GAAa,UAATzgB,EAAkB,CACpBqD,KAAKga,MAAQ,GACb,IAAK,IAAI/Y,KAASmc,EAASzgB,GACE,mBAAhBsE,EAAMoc,MACfrd,KAAKsd,OAAOrc,EAAMoc,SAElBrd,KAAKsd,OAAOrc,EAGlB,MACEjB,KAAKrD,GAAQygB,EAASzgB,EAG5B,CACA,UAAA4gB,CAAW9e,GAET,GADAA,EAAM+e,YAAcxd,KAChBvB,EAAMsF,OAAS/D,KAAKtD,QAAU,aAAaiH,KAAKlF,EAAMsF,OAAQ,CAChE,IAAItG,EAAKuC,KAAKtD,OACd+B,EAAMsF,MAAQtF,EAAMsF,MAAMvF,QACxB,aACA,KAAKf,EAAGggB,MAAMtf,QAAQV,EAAGsa,MAAMjB,QAAQrZ,EAAGsa,MAAMhB,WAEpD,CACA,OAAOtY,CACT,CACA,KAAAoa,CAAM3X,GAEJ,OADAlB,KAAKwP,OAAOkO,YAAY1d,KAAMkB,GACvBlB,IACT,CACA,MAAAiS,CAAO0L,EAAY,IACjB,IAAK,IAAIhhB,KAAQghB,EACf3d,KAAKrD,GAAQghB,EAAUhhB,GAEzB,OAAOqD,IACT,CACA,MAAA2a,CAAOzZ,GAEL,OADAlB,KAAKwP,OAAOoO,aAAa5d,KAAMkB,GACxBlB,IACT,CACA,SAAA6d,CAAUC,UACD9d,KAAK8Z,KAAKa,cACV3a,KAAK8Z,KAAKjB,MACZiF,UAAoB9d,KAAK8Z,KAAKI,OACrC,CACA,KAAAmD,CAAMM,EAAY,IAChB,IAAIV,EAASojB,GAAUrgC,MACvB,IAAK,IAAIrD,KAAQghB,EACfV,EAAOtgB,GAAQghB,EAAUhhB,GAE3B,OAAOsgB,CACT,CACA,UAAAc,CAAWJ,EAAY,IACrB,IAAIV,EAASjd,KAAKqd,MAAMM,GAExB,OADA3d,KAAKwP,OAAOkO,YAAY1d,KAAMid,GACvBA,CACT,CACA,WAAAe,CAAYL,EAAY,IACtB,IAAIV,EAASjd,KAAKqd,MAAMM,GAExB,OADA3d,KAAKwP,OAAOoO,aAAa5d,KAAMid,GACxBA,CACT,CACA,KAAAxe,CAAMoY,EAASoH,EAAO,IACpB,GAAIje,KAAKtD,OAAQ,CACf,IAAIsb,IAAEA,EAAGD,MAAEA,GAAU/X,KAAKke,QAAQD,GAClC,OAAOje,KAAKtD,OAAO+gB,MAAMhf,MACvBoY,EACA,CAAEE,OAAQgB,EAAMhB,OAAQD,KAAMiB,EAAMjB,MACpC,CAAEC,OAAQiB,EAAIjB,OAAQD,KAAMkB,EAAIlB,MAChCmH,EAEJ,CACA,OAAO,IAAIiiB,GAAiBrpB,EAC9B,CACA,iBAAAsH,GACE,MAAO,CACLxkB,IAAG,CAACsH,EAAO+Z,IACI,YAATA,EACK/Z,EACW,SAAT+Z,EACF,IAAM/Z,EAAMoa,OAAO+C,UAEnBnd,EAAM+Z,GAGjB5Z,IAAG,CAACH,EAAO+Z,EAAMnjB,KACXoJ,EAAM+Z,KAAUnjB,IACpBoJ,EAAM+Z,GAAQnjB,EACD,SAATmjB,GAA4B,UAATA,GAA6B,SAATA,GAA4B,WAATA,GAA8B,cAATA,GAC1E,SAATA,GACE/Z,EAAMod,cAJ0B,GASxC,CACA,SAAAA,GACE,GAAIre,KAAKggC,IAAY,CACnBhgC,KAAKggC,KAAa,EAClB,IAAI1hB,EAAOte,KACX,KAAOse,EAAOA,EAAK9O,QACjB8O,EAAK0hB,KAAa,CAEtB,CACF,CACA,IAAA1hB,GACE,IAAKte,KAAKwP,OAAQ,OAClB,IAAI2I,EAASnY,KAAKwP,OAAO+O,MAAMve,MAC/B,OAAOA,KAAKwP,OAAOwK,MAAM7B,EAAS,EACpC,CACA,UAAAqG,CAAWP,EAAMQ,GACf,IAAIvX,EAAMlH,KAAKtD,OAAOqb,MACtB,GAAIkG,EAAKM,MACPrX,EAAMlH,KAAK0e,eAAeT,EAAKM,MAAOE,QACjC,GAAIR,EAAKU,KAAM,CAEpB,IAAIxG,GADJsG,EAAuBze,KAAKpG,YACMgK,QAAQqa,EAAKU,OAChC,IAAXxG,IAAejR,EAAMlH,KAAK0e,eAAevG,EAAQsG,GACvD,CACA,OAAOvX,CACT,CACA,cAAAwX,CAAevG,EAAQsG,GACrB,IAAI1D,EAAS0D,GAAwBze,KAAKpG,WACtCmd,EAAS/W,KAAKtD,OAAOqb,MAAMhB,OAC3BD,EAAO9W,KAAKtD,OAAOqb,MAAMjB,KAC7B,IAAK,IAAIlS,EAAK,EAAGA,EAAKuT,EAAQvT,IACT,OAAfmW,EAAOnW,IACTmS,EAAS,EACTD,GAAQ,GAERC,GAAU,EAGd,MAAO,CAAEA,SAAQD,OACnB,CACA,IAAA8H,GACE,IAAK5e,KAAKwP,OAAQ,OAClB,IAAI2I,EAASnY,KAAKwP,OAAO+O,MAAMve,MAC/B,OAAOA,KAAKwP,OAAOwK,MAAM7B,EAAS,EACpC,CACA,OAAA+F,CAAQD,GACN,IAAIlG,EAAQ,CACVhB,OAAQ/W,KAAKtD,OAAOqb,MAAMhB,OAC1BD,KAAM9W,KAAKtD,OAAOqb,MAAMjB,MAEtBkB,EAAMhY,KAAKtD,OAAOsb,IAAM,CAC1BjB,OAAQ/W,KAAKtD,OAAOsb,IAAIjB,OAAS,EACjCD,KAAM9W,KAAKtD,OAAOsb,IAAIlB,MACpB,CACFC,OAAQgB,EAAMhB,OAAS,EACvBD,KAAMiB,EAAMjB,MAEd,GAAImH,EAAKU,KAAM,CACb,IAAIF,EAAuBze,KAAKpG,WAC5Bue,EAASsG,EAAqB7a,QAAQqa,EAAKU,OAChC,IAAXxG,IACFJ,EAAQ/X,KAAK0e,eAAevG,EAAQsG,GACpCzG,EAAMhY,KAAK0e,eAAevG,EAAS8F,EAAKU,KAAK7f,OAAQ2f,GAEzD,MACMR,EAAKlG,MACPA,EAAQ,CACNhB,OAAQkH,EAAKlG,MAAMhB,OACnBD,KAAMmH,EAAKlG,MAAMjB,MAEVmH,EAAKM,QACdxG,EAAQ/X,KAAK0e,eAAeT,EAAKM,QAE/BN,EAAKjG,IACPA,EAAM,CACJjB,OAAQkH,EAAKjG,IAAIjB,OACjBD,KAAMmH,EAAKjG,IAAIlB,MAEiB,iBAAlBmH,EAAKY,SACrB7G,EAAMhY,KAAK0e,eAAeT,EAAKY,UACtBZ,EAAKM,QACdvG,EAAMhY,KAAK0e,eAAeT,EAAKM,MAAQ,IAM3C,OAHIvG,EAAIlB,KAAOiB,EAAMjB,MAAQkB,EAAIlB,OAASiB,EAAMjB,MAAQkB,EAAIjB,QAAUgB,EAAMhB,UAC1EiB,EAAM,CAAEjB,OAAQgB,EAAMhB,OAAS,EAAGD,KAAMiB,EAAMjB,OAEzC,CAAEkB,MAAKD,QAChB,CACA,GAAAsC,CAAIW,EAAM8D,GAER,OADU,IAAIqhB,IACH9lB,IAAIra,KAAMgb,EAAM8D,EAC7B,CACA,MAAAC,GAKE,OAJI/e,KAAKwP,QACPxP,KAAKwP,OAAO9U,YAAYsF,MAE1BA,KAAKwP,YAAS,EACPxP,IACT,CACA,WAAAgf,IAAehF,GACb,GAAIha,KAAKwP,OAAQ,CACf,IAAIyP,EAAWjf,KACXkf,GAAY,EAChB,IAAK,IAAIje,KAAS+Y,EACZ/Y,IAAUjB,KACZkf,GAAY,EACHA,GACTlf,KAAKwP,OAAOkO,YAAYuB,EAAUhe,GAClCge,EAAWhe,GAEXjB,KAAKwP,OAAOoO,aAAaqB,EAAUhe,GAGlCie,GACHlf,KAAK+e,QAET,CACA,OAAO/e,IACT,CACA,IAAAqb,GACE,IAAI8D,EAAUnf,KACd,KAAOmf,EAAQ3P,QAAkC,aAAxB2P,EAAQ3P,OAAO7N,MACtCwd,EAAUA,EAAQ3P,OAEpB,OAAO2P,CACT,CACA,MAAAC,CAAOC,EAAGC,GACR,IAAIC,EAAQ,CAAA,EACRC,EAAuB,MAAVF,EACjBA,EAASA,GAA0B,IAAIrf,IACvC,IAAIwf,EAAkB,EACtB,IAAK,IAAI9iB,KAAQqD,KAAM,CACrB,IAAKxI,OAAO0B,UAAUwa,eAAe1Y,KAAKgF,KAAMrD,GAC9C,SAEF,GAAa,WAATA,GAA8B,eAATA,EAAuB,SAChD,IAAI9E,EAAQmI,KAAKrD,GACjB,GAAIuB,MAAMgf,QAAQrlB,GAChB0nB,EAAM5iB,GAAQ9E,EAAMqgB,IAAKtT,GACL,iBAAPA,GAAmBA,EAAGwa,OACxBxa,EAAGwa,OAAO,KAAME,GAEhB1a,QAGN,GAAqB,iBAAV/M,GAAsBA,EAAMunB,OAC5CG,EAAM5iB,GAAQ9E,EAAMunB,OAAO,KAAME,QAC5B,GAAa,WAAT3iB,EAAmB,CAC5B,IAAI+iB,EAAUJ,EAAO3lB,IAAI9B,EAAM4lB,OAChB,MAAXiC,IACFA,EAAUD,EACVH,EAAOle,IAAIvJ,EAAM4lB,MAAOgC,GACxBA,KAEFF,EAAM5iB,GAAQ,CACZqb,IAAKngB,EAAMmgB,IACX0H,UACA3H,MAAOlgB,EAAMkgB,MAEjB,MACEwH,EAAM5iB,GAAQ9E,CAElB,CAIA,OAHI2nB,IACFD,EAAMD,OAAS,IAAIA,EAAO7e,QAAQyX,IAAKyH,GAAWA,EAAOP,WAEpDG,CACT,CACA,OAAAnB,GAIE,OAHKpe,KAAK4f,aACR5f,KAAK4f,WAAa,IAAIC,MAAM7f,KAAMA,KAAKme,sBAElCne,KAAK4f,UACd,CACA,QAAAhmB,CAASkmB,EAAesgB,IAClBtgB,EAAa7gB,YAAW6gB,EAAeA,EAAa7gB,WACxD,IAAIkgB,EAAU,GAId,OAHAW,EAAa9f,KAAO4E,IAClBua,GAAWva,IAENua,CACT,CACA,IAAA3R,CAAK2R,EAAStd,EAAMoc,GAClB,IAAIjS,EAAO,CAAE+T,KAAM/f,MACnB,IAAK,IAAI4E,KAAMqZ,EAAMjS,EAAKpH,GAAMqZ,EAAKrZ,GACrC,OAAOua,EAAQ3R,KAAK3L,EAAMmK,EAC5B,CACA,WAAIgU,GACF,OAAOhgB,IACT,GAEF,IAAI+f,GAAOugB,GACXA,GAAOzsB,QAAUysB,GACjB,IAAIC,GAASxgB,GACTygB,GAAgB,cAA2BD,GAC7C,WAAA/jC,CAAY4gB,GACNA,QAAsC,IAAnBA,EAASvlB,OAAmD,iBAAnBulB,EAASvlB,QACvEulB,EAAW,IAAKA,EAAUvlB,MAAOkD,OAAOqiB,EAASvlB,SAEnDqf,MAAMkG,GACNpd,KAAK2B,KAAO,MACd,CACA,YAAIye,GACF,OAAOpgB,KAAKgb,KAAKjU,WAAW,OAA0B,MAAjB/G,KAAKgb,KAAK,EACjD,GAEF,IAAIylB,GAAcD,GAClBA,GAAc3sB,QAAU2sB,GAUxB,IAAIE,GAAY,CAAEngB,OARH,CAACC,EAAO,MACrB,IAAIngB,EAAK,GACLuE,EAAK4b,EACT,KAAO5b,KACLvE,GALc,mEAKoB,GAAhBkF,KAAKkb,SAAgB,GAEzC,OAAOpgB,IAGT,IAAMqgB,kBAAmBigB,GAAqB/f,mBAAoBggB,IAAyBxB,IACvFte,WAAEA,GAAUE,aAAEA,IAAiBoe,IAC7Ble,QAAS2f,GAASviC,KAAEA,IAAS8gC,GAQnC,IAAI0B,GAAgB,MAClB,WAAAtkC,CAAYmb,EAAKsG,GACf,IAAiB,IAAbA,EAAK/F,IAAe,OACxBlY,KAAKshB,eAAe3J,GACpB3X,KAAKuhB,OAASvhB,KAAKwhB,UAAUxhB,KAAKyhB,WAAY,SAC9C,IAAI7C,EAAOX,EAAK/F,IAAM+F,EAAK/F,IAAI0G,UAAO,EAClC/c,EAAO7B,KAAK0hB,QAAQzD,EAAK9f,KAAMygB,IAC9B5e,KAAK2hB,SAAW1D,EAAK9f,OACxB6B,KAAK2hB,QAAU1D,EAAK9f,MAElB6B,KAAK2hB,UAAS3hB,KAAKqb,KAAOwlB,GAAU7gC,KAAK2hB,UACzC9f,IAAM7B,KAAK6B,KAAOA,EACxB,CACA,QAAA+f,GAIE,OAHK5hB,KAAK6hB,gBACR7hB,KAAK6hB,cAAgB,IAAI8e,GAAoB3gC,KAAK6B,OAE7C7B,KAAK6hB,aACd,CACA,YAAAC,CAAajgB,GAKX,GAFiB,0CAEF8B,KAAK9B,IADV,2BACuB8B,KAAK9B,GACpC,OAAOkgB,mBAAmBlgB,EAAKmgB,OAAOlc,OAAOmc,UAAUnjB,SAEzD,GAPqB,iDAOF6E,KAAK9B,IANV,kCAM2B8B,KAAK9B,GAC5C,OAnCcI,EAmCIJ,EAAKmgB,OAAOlc,OAAOmc,UAAUnjB,QAlC/CojB,OACKA,OAAO/jB,KAAK8D,EAAK,UAAUrI,WAE3B8I,OAAOyf,KAAKlgB,GAJvB,IAAoBA,EAqChB,IAAImgB,EAAWvgB,EAAKgB,MAAM,mCAAmC,GAC7D,MAAM,IAAI+T,MAAM,mCAAqCwL,EACvD,CACA,gBAAAC,CAAiBC,GACf,OAAOA,EAAgB9jB,QAAQ,8BAA+B,IAAIgI,MACpE,CACA,KAAA+b,CAAMrK,GACJ,MAAmB,iBAARA,IACoB,iBAAjBA,EAAIsK,UAAkD,iBAAlBtK,EAAIuK,WAA0BvkB,MAAMgf,QAAQhF,EAAIwK,UACpG,CACA,cAAApB,CAAe3J,GACb,IAAIgL,EAAWhL,EAAI9U,MAAM,gCACzB,IAAK8f,EAAU,OACf,IAAI5K,EAAQJ,EAAIiL,YAAYD,EAAS1e,OACjC+T,EAAML,EAAI/T,QAAQ,KAAMmU,GACxBA,GAAQ,GAAMC,OAChBhY,KAAKyhB,WAAazhB,KAAKqiB,iBAAiB1K,EAAI3S,UAAU+S,EAAOC,IAEjE,CACA,QAAA6K,CAASvgB,GAEP,GADAtC,KAAKqb,KAAOwlB,GAAUv+B,GAClBwe,GAAWxe,GAEb,OADAtC,KAAK2hB,QAAUrf,EACR0e,GAAa1e,EAAM,SAAS1I,WAAW4M,MAElD,CACA,OAAAkb,CAAQ1K,EAAM4H,GACZ,IAAa,IAATA,EAAgB,OAAO,EAC3B,GAAIA,EAAM,CACR,GAAoB,iBAATA,EACT,OAAOA,EACF,GAAoB,mBAATA,EAWX,IAAIA,aAAgB+hB,GACzB,OAAOC,GAAqB9d,cAAclE,GAAMhlB,WAC3C,GAAIglB,aAAgBgiB,GACzB,OAAOhiB,EAAKhlB,WACP,GAAIoG,KAAKuiB,MAAM3D,GACpB,OAAO5f,KAAKC,UAAU2f,GAEtB,MAAM,IAAIhI,MACR,2CAA6CgI,EAAKhlB,WAEtD,CArBuC,CACrC,IAAImpB,EAAWnE,EAAK5H,GACpB,GAAI+L,EAAU,CACZ,IAAI7K,EAAMlY,KAAK6iB,SAASE,GACxB,IAAK7K,EACH,MAAM,IAAItB,MACR,uCAAyCmM,EAASnpB,YAGtD,OAAOse,CACT,CACF,CAWF,KAAO,IAAIlY,KAAKuhB,OACd,OAAOvhB,KAAK8hB,aAAa9hB,KAAKyhB,YACzB,GAAIzhB,KAAKyhB,WAAY,CAC1B,IAAIvJ,EAAMlY,KAAKyhB,WAEf,OADIzK,IAAMkB,EAAM5Z,GAAKuiC,GAAU7pB,GAAOkB,IAC/BlY,KAAK6iB,SAAS3K,EACvB,EACF,CACA,SAAAsJ,CAAUzG,EAAQhD,GAChB,QAAKgD,GACEA,EAAOiH,OAAO,EAAGjK,EAAMjZ,UAAYiZ,CAC5C,CACA,WAAAiL,GACE,SAAUhjB,KAAK4hB,WAAWqB,gBAAkBjjB,KAAK4hB,WAAWqB,eAAenkB,OAAS,EACtF,GAEF,IAAIiiC,GAAcD,GAClBA,GAAcjtB,QAAUitB,GACxB,IAAMpgB,kBAAmBsgB,GAAqBpgB,mBAAoBqgB,IAAyB7B,IACvF/b,cAAEA,GAAeE,cAAe2d,IAAoB9B,IACpD3b,WAAEA,GAAYE,QAASwd,IAAc/B,IACrC7e,OAAEA,IAAWmgB,GACbU,GAAoBhC,GACpBiC,GAAmB5B,GACnB6B,GAAgBP,GAChBQ,GAAkBjrB,OAAO,mBACzBkrB,GAAuBnoC,QAAQ2nC,IAAuBC,IACtDQ,GAAkBpoC,QAAQ8nC,IAAa1d,IACvCie,GAAU,MACZ,WAAAllC,CAAYmb,EAAKsG,EAAO,IACtB,GAAItG,SAA6D,iBAARA,IAAqBA,EAAI/d,SAChF,MAAM,IAAIgd,MAAM,oBAAoBe,2BAgBtC,GAdA3X,KAAK2X,IAAMA,EAAI/d,WACK,WAAhBoG,KAAK2X,IAAI,IAAmC,MAAhB3X,KAAK2X,IAAI,IACvC3X,KAAKqkB,QAAS,EACdrkB,KAAK2X,IAAM3X,KAAK2X,IAAI9T,MAAM,IAE1B7D,KAAKqkB,QAAS,EAEZpG,EAAK9f,QACFsjC,IAAmB,YAAY99B,KAAKsa,EAAK9f,OAASslB,GAAWxF,EAAK9f,MACrE6B,KAAKgX,KAAOiH,EAAK9f,KAEjB6B,KAAKgX,KAAOmqB,GAAUljB,EAAK9f,OAG3BsjC,IAAmBD,GAAsB,CAC3C,IAAItpB,EAAM,IAAIopB,GAActhC,KAAK2X,IAAKsG,GACtC,GAAI/F,EAAIrW,KAAM,CACZ7B,KAAKkY,IAAMA,EACX,IAAIlB,EAAOkB,EAAI0J,WAAW5K,MACrBhX,KAAKgX,MAAQA,IAAMhX,KAAKgX,KAAOhX,KAAKskB,WAAWtN,GACtD,CACF,CACKhX,KAAKgX,OACRhX,KAAKK,GAAK,cAAgBkgB,GAAO,GAAK,KAEpCvgB,KAAKkY,MAAKlY,KAAKkY,IAAIlB,KAAOhX,KAAK7B,KACrC,CACA,KAAAM,CAAMoY,EAASC,EAAMC,EAAQkH,EAAO,CAAA,GAClC,IAAIkB,EAAS9H,EAASC,EACtB,GAAIR,GAAwB,iBAATA,EAAmB,CACpC,IAAIiB,EAAQjB,EACRkB,EAAMjB,EACV,GAA4B,iBAAjBgB,EAAMwM,OAAqB,CACpC,IAAIrd,EAAMlH,KAAKwkB,WAAWzM,EAAMwM,QAChCzN,EAAO5P,EAAI4P,KACXC,EAAS7P,EAAIud,GACf,MACE3N,EAAOiB,EAAMjB,KACbC,EAASgB,EAAMhB,OAEjB,GAA0B,iBAAfiB,EAAIuM,OAAqB,CAClC,IAAIrd,EAAMlH,KAAKwkB,WAAWxM,EAAIuM,QAC9BlN,EAAUnQ,EAAI4P,KACdQ,EAAYpQ,EAAIud,GAClB,MACEpN,EAAUW,EAAIlB,KACdQ,EAAYU,EAAIjB,MAEpB,MAAO,IAAKA,EAAQ,CAClB,IAAI7P,EAAMlH,KAAKwkB,WAAW1N,GAC1BA,EAAO5P,EAAI4P,KACXC,EAAS7P,EAAIud,GACf,CACA,IAAIthB,EAASnD,KAAKmD,OAAO2T,EAAMC,EAAQM,EAASC,GA2BhD,OAzBE6H,EADEhc,EACQ,IAAIk+B,GACZxqB,OACmB,IAAnB1T,EAAOkU,QAAqBlU,EAAO2T,KAAO,CAAEC,OAAQ5T,EAAO4T,OAAQD,KAAM3T,EAAO2T,WAC7D,IAAnB3T,EAAOkU,QAAqBlU,EAAO4T,OAAS,CAAEA,OAAQ5T,EAAOmU,UAAWR,KAAM3T,EAAOkU,SACrFlU,EAAOzG,OACPyG,EAAO6T,KACPiH,EAAK7G,QAGG,IAAIiqB,GACZxqB,OACY,IAAZQ,EAAqBP,EAAO,CAAEC,SAAQD,aAC1B,IAAZO,EAAqBN,EAAS,CAAEA,OAAQO,EAAWR,KAAMO,GACzDrX,KAAK2X,IACL3X,KAAKgX,KACLiH,EAAK7G,QAGT+H,EAAQ1B,MAAQ,CAAE1G,SAAQO,YAAWD,UAASP,OAAMpa,OAAQsD,KAAK2X,KAC7D3X,KAAKgX,OACHkqB,KACF/hB,EAAQ1B,MAAMjb,IAAM0+B,GAAgBlhC,KAAKgX,MAAMpd,YAEjDulB,EAAQ1B,MAAMzG,KAAOhX,KAAKgX,MAErBmI,CACT,CACA,UAAAqF,CAAWD,GACT,IAAIG,EAAUC,EACd,GAAK3kB,KAAKuhC,IAUR5c,EAAc3kB,KAAKuhC,QAVO,CAC1B,IAAIzpB,EAAQ9X,KAAK2X,IAAI9Y,MAAM,MAC3B8lB,EAAc,IAAIzmB,MAAM4Z,EAAMhZ,QAC9B,IAAI8lB,EAAY,EAChB,IAAK,IAAIhgB,EAAK,EAAGigB,EAAK/M,EAAMhZ,OAAQ8F,EAAKigB,EAAIjgB,IAC3C+f,EAAY/f,GAAMggB,EAClBA,GAAa9M,EAAMlT,GAAI9F,OAAS,EAElCkB,KAAKuhC,IAAmB5c,CAC1B,CAGAD,EAAWC,EAAYA,EAAY7lB,OAAS,GAC5C,IAAIiN,EAAM,EACV,GAAIwY,GAAUG,EACZ3Y,EAAM4Y,EAAY7lB,OAAS,MACtB,CACL,IACIgmB,EADApf,EAAMif,EAAY7lB,OAAS,EAE/B,KAAOiN,EAAMrG,GAEX,GADAof,EAAM/Y,GAAOrG,EAAMqG,GAAO,GACtBwY,EAASI,EAAYG,GACvBpf,EAAMof,EAAM,MACP,MAAIP,GAAUI,EAAYG,EAAM,IAEhC,CACL/Y,EAAM+Y,EACN,KACF,CAJE/Y,EAAM+Y,EAAM,CAId,CAEJ,CACA,MAAO,CACLL,IAAKF,EAASI,EAAY5Y,GAAO,EACjC+K,KAAM/K,EAAM,EAEhB,CACA,UAAAuY,CAAWtN,GACT,MAAI,YAAYrT,KAAKqT,GACZA,EAEFmqB,GAAUnhC,KAAKkY,IAAI0J,WAAWmD,YAAc/kB,KAAKkY,IAAImD,MAAQ,IAAKrE,EAC3E,CACA,MAAA7T,CAAO2T,EAAMC,EAAQM,EAASC,GAC5B,IAAKtX,KAAKkY,IAAK,OAAO,EACtB,IAGI8M,EAIAC,EAPArD,EAAW5hB,KAAKkY,IAAI0J,WACpBzjB,EAAOyjB,EAASsD,oBAAoB,CAAEnO,SAAQD,SAClD,IAAK3Y,EAAKzB,OAAQ,OAAO,EAEF,iBAAZ2a,IACT2N,EAAKpD,EAASsD,oBAAoB,CAAEnO,OAAQO,EAAWR,KAAMO,KAI7D4N,EADExB,GAAWtlB,EAAKzB,QACRwkC,GAAgB/iC,EAAKzB,QAErB,IAAI+F,IACZtE,EAAKzB,OACLsD,KAAKkY,IAAI0J,WAAWmD,YAAcmc,GAAgBlhC,KAAKkY,IAAIyJ,UAG/D,IAAIxC,EAAU,CACZpI,OAAQ5Y,EAAK4Y,OACbO,UAAW0N,GAAMA,EAAGjO,OACpBM,QAAS2N,GAAMA,EAAGlO,KAClBA,KAAM3Y,EAAK2Y,KACXtU,IAAKyiB,EAAQrrB,YAEf,GAAyB,UAArBqrB,EAAQE,SAAsB,CAChC,IAAI9B,GAGF,MAAM,IAAIzM,MAAM,yDAFhBuI,EAAQnI,KAAOqM,GAAc4B,EAIjC,CACA,IAAIvoB,EAASklB,EAASwD,iBAAiBjnB,EAAKzB,QAE5C,OADIA,IAAQyiB,EAAQziB,OAASA,GACtByiB,CACT,CACA,MAAAC,GACE,IAAIiG,EAAO,CAAA,EACX,IAAK,IAAI1oB,IAAQ,CAAC,SAAU,MAAO,OAAQ,MACvB,MAAdqD,KAAKrD,KACP0oB,EAAK1oB,GAAQqD,KAAKrD,IAStB,OANIqD,KAAKkY,MACPmN,EAAKnN,IAAM,IAAKlY,KAAKkY,KACjBmN,EAAKnN,IAAI2J,gBACXwD,EAAKnN,IAAI2J,mBAAgB,IAGtBwD,CACT,CACA,QAAIlnB,GACF,OAAO6B,KAAKgX,MAAQhX,KAAKK,EAC3B,GAEF,IAAIod,GAAQikB,GACZA,GAAQ7tB,QAAU6tB,GACdN,IAAqBA,GAAkB7b,eACzC6b,GAAkB7b,cAAcmc,IAElC,IAAIhhB,kBAAEA,GAAiBE,mBAAEA,IAAuBwe,IAC5Cle,QAAEA,GAAOyE,SAAEA,GAAQhC,QAAEA,GAAOmC,IAAEA,IAAQsZ,IACtC7b,cAAEA,IAAkB6b,GACpBuC,GAAUlkB,GACVmkB,GAAqBvoC,QAAQqnB,IAAqBE,IAClDihB,GAAgBxoC,QAAQ6nB,IAAWyC,IAAWgC,IAAYG,IAgT9D,IAAIgc,GA/SiB,MACnB,WAAAtlC,CAAY6pB,EAAYjL,EAAO6C,EAAMqI,GACnCtmB,KAAKf,UAAYonB,EACjBrmB,KAAKumB,QAAUtI,EAAK/F,KAAO,CAAA,EAC3BlY,KAAKqb,KAAOD,EACZpb,KAAKie,KAAOA,EACZje,KAAK2X,IAAM2O,EACXtmB,KAAKwmB,YAAcF,EACnBtmB,KAAKymB,cAAgBzmB,KAAKumB,QAAQpoB,MAAQ6B,KAAKumB,QAAQG,SACvD1mB,KAAK2mB,iBAAmC,IAAI1mB,IAC5CD,KAAK4mB,cAAgC,IAAI3mB,IACzCD,KAAK6mB,aAA+B,IAAI5mB,GAC1C,CACA,aAAA6mB,GACE,IAAIC,EAEFA,EADE/mB,KAAKgnB,WACG,gCAAkChnB,KAAKinB,SAASjnB,KAAKkY,IAAIte,YACvB,iBAA5BoG,KAAKumB,QAAQ9E,WACnBzhB,KAAKumB,QAAQ9E,WACqB,mBAA5BzhB,KAAKumB,QAAQ9E,WACnBzhB,KAAKumB,QAAQ9E,WAAWzhB,KAAKie,KAAK+G,GAAIhlB,KAAKqb,MAE3Crb,KAAKknB,aAAe,OAEhC,IAAIC,EAAM,KACNnnB,KAAK2X,IAAI9d,SAAS,UAASstB,EAAM,QACrCnnB,KAAK2X,KAAOwP,EAAM,wBAA0BJ,EAAU,KACxD,CACA,aAAAK,GACE,IAAK,IAAIxI,KAAQ5e,KAAKqnB,WAAY,CAChC,IAEInP,EAFA/Z,EAAO6B,KAAKsnB,MAAMtnB,KAAKsC,KAAKsc,EAAK5H,OACjCoE,EAAQwD,EAAKvD,MAAQ6F,GAAQtC,EAAK5H,OAEF,IAAhChX,KAAKumB,QAAQtD,gBACf/K,EAAM,IAAIwI,GAAkB9B,EAAK/c,MAC7BqW,EAAI+K,iBACN/K,EAAI+K,eAAiB,OAGvB/K,EAAM0G,EAAKgD,WAEb5hB,KAAKkY,IAAIqP,eAAerP,EAAK/Z,EAAM6B,KAAKsnB,MAAMtnB,KAAKsC,KAAK8Y,IAC1D,CACF,CACA,eAAAoM,GACE,IAAgC,IAA5BxnB,KAAKumB,QAAQ9E,WACjB,GAAIzhB,KAAKqb,KAAM,CACb,IAAIpa,EACJ,IAAK,IAAI2D,EAAK5E,KAAKqb,KAAKrB,MAAMlb,OAAS,EAAG8F,GAAM,EAAGA,IACjD3D,EAAQjB,KAAKqb,KAAKrB,MAAMpV,GACL,YAAf3D,EAAMU,MACwC,IAA9CV,EAAMY,KAAK+B,QAAQ,wBACrB5D,KAAKqb,KAAK3gB,YAAYkK,EAG5B,MAAW5E,KAAK2X,MACd3X,KAAK2X,IAAM3X,KAAK2X,IAAInZ,QAAQ,2BAA4B,IAE5D,CACA,QAAAipB,GAEE,GADAznB,KAAKwnB,kBACDqa,IAAiBD,IAAsB5hC,KAAKuiB,QAC9C,OAAOviB,KAAK0nB,cACP,CACL,IAAIvI,EAAU,GAId,OAHAnf,KAAKf,UAAUe,KAAKqb,KAAOzW,IACzBua,GAAWva,IAEN,CAACua,EACV,CACF,CACA,WAAAuI,GACE,GAAI1nB,KAAKqb,KACPrb,KAAK2nB,sBACA,GAA+B,IAA3B3nB,KAAKqnB,WAAWvoB,OAAc,CACvC,IAAI8f,EAAO5e,KAAKqnB,WAAW,GAAGzF,WAC9BhD,EAAK5H,KAAOhX,KAAKknB,aACjBlnB,KAAKkY,IAAM0I,GAAmBkC,cAAclE,EAAM,CAChDgJ,sBAAsB,GAE1B,MACE5nB,KAAKkY,IAAM,IAAI0I,GAAmB,CAChC5J,KAAMhX,KAAKknB,aACXU,sBAAsB,IAExB5nB,KAAKkY,IAAI2P,WAAW,CAClBC,UAAW,CAAE/Q,OAAQ,EAAGD,KAAM,GAC9Bja,SAAU,CAAEka,OAAQ,EAAGD,KAAM,GAC7Bpa,OAAQsD,KAAKie,KAAK9f,KAAO6B,KAAKsnB,MAAMtnB,KAAKsC,KAAKtC,KAAKie,KAAK9f,OAAS,gBAMrE,OAHI6B,KAAK+nB,oBAAoB/nB,KAAKgoB,oBAC9BhoB,KAAKqb,MAAQrb,KAAKqnB,WAAWvoB,OAAS,GAAGkB,KAAKonB,gBAC9CpnB,KAAKioB,gBAAgBjoB,KAAK8mB,gBAC1B9mB,KAAKgnB,WACA,CAAChnB,KAAK2X,KAEN,CAAC3X,KAAK2X,IAAK3X,KAAKkY,IAE3B,CACA,cAAAyP,GACE3nB,KAAK2X,IAAM,GACX3X,KAAKkY,IAAM,IAAI0I,GAAmB,CAChC5J,KAAMhX,KAAKknB,aACXU,sBAAsB,IAExB,IAQI9P,EAAO2C,EARP3D,EAAO,EACPC,EAAS,EACTmR,EAAW,cACXC,EAAU,CACZL,UAAW,CAAE/Q,OAAQ,EAAGD,KAAM,GAC9Bja,SAAU,CAAEka,OAAQ,EAAGD,KAAM,GAC7Bpa,OAAQ,IAGVsD,KAAKf,UAAUe,KAAKqb,KAAM,CAACpZ,EAAKhB,EAAOU,KAyBrC,GAxBA3B,KAAK2X,KAAO1V,EACRhB,GAAkB,QAATU,IACXwmB,EAAQL,UAAUhR,KAAOA,EACzBqR,EAAQL,UAAU/Q,OAASA,EAAS,EAChC9V,EAAMvE,QAAUuE,EAAMvE,OAAOqb,OAC/BoQ,EAAQzrB,OAASsD,KAAKooB,WAAWnnB,GACjCknB,EAAQtrB,SAASia,KAAO7V,EAAMvE,OAAOqb,MAAMjB,KAC3CqR,EAAQtrB,SAASka,OAAS9V,EAAMvE,OAAOqb,MAAMhB,OAAS,EACtD/W,KAAKkY,IAAI2P,WAAWM,KAEpBA,EAAQzrB,OAASwrB,EACjBC,EAAQtrB,SAASia,KAAO,EACxBqR,EAAQtrB,SAASka,OAAS,EAC1B/W,KAAKkY,IAAI2P,WAAWM,KAGxBrQ,EAAQ7V,EAAIY,MAAM,OACdiV,GACFhB,GAAQgB,EAAMhZ,OACd2b,EAAOxY,EAAI2gB,YAAY,MACvB7L,EAAS9U,EAAInD,OAAS2b,GAEtB1D,GAAU9U,EAAInD,OAEZmC,GAAkB,UAATU,EAAkB,CAC7B,IAAIwa,EAAIlb,EAAMuO,QAAU,CAAEsK,KAAM,CAAA,IACD,SAAf7Y,EAAMU,MAAkC,WAAfV,EAAMU,OAAsBV,EAAM+Y,QACzD/Y,IAAUkb,EAAE1B,OAAQ0B,EAAErC,KAAKN,YACvCvY,EAAMvE,QAAUuE,EAAMvE,OAAOsb,KAC/BmQ,EAAQzrB,OAASsD,KAAKooB,WAAWnnB,GACjCknB,EAAQtrB,SAASia,KAAO7V,EAAMvE,OAAOsb,IAAIlB,KACzCqR,EAAQtrB,SAASka,OAAS9V,EAAMvE,OAAOsb,IAAIjB,OAAS,EACpDoR,EAAQL,UAAUhR,KAAOA,EACzBqR,EAAQL,UAAU/Q,OAASA,EAAS,EACpC/W,KAAKkY,IAAI2P,WAAWM,KAEpBA,EAAQzrB,OAASwrB,EACjBC,EAAQtrB,SAASia,KAAO,EACxBqR,EAAQtrB,SAASka,OAAS,EAC1BoR,EAAQL,UAAUhR,KAAOA,EACzBqR,EAAQL,UAAU/Q,OAASA,EAAS,EACpC/W,KAAKkY,IAAI2P,WAAWM,IAG1B,GAEJ,CACA,YAAAF,GACE,QAAIjoB,KAAKgnB,kBAG8B,IAA5BhnB,KAAKumB,QAAQ9E,WACfzhB,KAAKumB,QAAQ9E,YAElBzhB,KAAKqnB,WAAWvoB,QACXkB,KAAKqnB,WAAWnb,KAAMtH,GAAOA,EAAG6c,YAG3C,CACA,QAAAuF,GACE,QAAmC,IAAxBhnB,KAAKumB,QAAQhF,OACtB,OAAOvhB,KAAKumB,QAAQhF,OAEtB,IAAIE,EAAazhB,KAAKumB,QAAQ9E,WAC9B,YAA0B,IAAfA,IAA6C,IAAfA,MAGrCzhB,KAAKqnB,WAAWvoB,QACXkB,KAAKqnB,WAAWnb,KAAMtH,GAAOA,EAAG2c,QAG3C,CACA,KAAAgB,GACE,YAA6B,IAAlBviB,KAAKie,KAAK/F,MACVlY,KAAKie,KAAK/F,IAEdlY,KAAKqnB,WAAWvoB,OAAS,CAClC,CACA,gBAAAipB,GACE,YAA2C,IAAhC/nB,KAAKumB,QAAQtD,eACfjjB,KAAKumB,QAAQtD,gBAElBjjB,KAAKqnB,WAAWvoB,QACXkB,KAAKqnB,WAAWnb,KAAMtH,GAAOA,EAAGoe,cAG3C,CACA,UAAAkE,GACE,OAAIlnB,KAAKie,KAAK+G,GACLhlB,KAAKsC,KAAKtC,KAAKie,KAAK+G,IAClBhlB,KAAKie,KAAK9f,KACZ6B,KAAKsC,KAAKtC,KAAKie,KAAK9f,MAEpB,QAEX,CACA,IAAAmE,CAAK0U,GACH,GAAIhX,KAAKumB,QAAQG,SAAU,OAAO1P,EAClC,GAA2B,KAAvBA,EAAKqR,WAAW,GAAW,OAAOrR,EACtC,GAAI,YAAYrT,KAAKqT,GAAO,OAAOA,EACnC,IAAIsR,EAAStoB,KAAK4mB,cAAcjtB,IAAIqd,GACpC,GAAIsR,EAAQ,OAAOA,EACnB,IAAInqB,EAAO6B,KAAKie,KAAK+G,GAAK9D,GAAQlhB,KAAKie,KAAK+G,IAAM,IACX,iBAA5BhlB,KAAKumB,QAAQ9E,aACtBtjB,EAAO+iB,GAAQyC,GAAQxlB,EAAM6B,KAAKumB,QAAQ9E,cAE5C,IAAInf,EAAOqjB,GAASxnB,EAAM6Y,GAE1B,OADAhX,KAAK4mB,cAAcxlB,IAAI4V,EAAM1U,GACtBA,CACT,CACA,QAAA+kB,GACE,IAAKrnB,KAAKuoB,aAER,GADAvoB,KAAKuoB,aAAe,GAChBvoB,KAAKqb,KACPrb,KAAKqb,KAAKG,KAAMva,IACd,GAAIA,EAAMvE,QAAUuE,EAAMvE,OAAO+gB,MAAMvF,IAAK,CAC1C,IAAIA,EAAMjX,EAAMvE,OAAO+gB,MAAMvF,IACxBlY,KAAKuoB,aAAa1uB,SAASqe,IAC9BlY,KAAKuoB,aAAappB,KAAK+Y,EAE3B,QAEG,CACL,IAAIyH,EAAS,IAAIgiB,GAAQ3hC,KAAKwmB,YAAaxmB,KAAKie,MAC5C0B,EAAOzH,KAAKlY,KAAKuoB,aAAappB,KAAKwgB,EAAOzH,IAChD,CAEF,OAAOlY,KAAKuoB,YACd,CACA,iBAAAP,GACE,IAAIQ,EAAU,CAAA,EACd,GAAIxoB,KAAKqb,KACPrb,KAAKqb,KAAKG,KAAMva,IACd,GAAIA,EAAMvE,OAAQ,CAChB,IAAIyB,EAAO8C,EAAMvE,OAAO+gB,MAAMtf,KAC9B,GAAIA,IAASqqB,EAAQrqB,GAAO,CAC1BqqB,EAAQrqB,IAAQ,EAChB,IAAI8mB,EAAUjlB,KAAKymB,aAAezmB,KAAKyoB,UAAUtqB,GAAQ6B,KAAKsnB,MAAMtnB,KAAKsC,KAAKnE,IAC9E6B,KAAKkY,IAAIwQ,iBAAiBzD,EAAShkB,EAAMvE,OAAO+gB,MAAM9F,IACxD,CACF,SAEG,GAAI3X,KAAK2X,IAAK,CACnB,IAAIxZ,EAAO6B,KAAKie,KAAK9f,KAAO6B,KAAKsnB,MAAMtnB,KAAKsC,KAAKtC,KAAKie,KAAK9f,OAAS,cACpE6B,KAAKkY,IAAIwQ,iBAAiBvqB,EAAM6B,KAAK2X,IACvC,CACF,CACA,UAAAyQ,CAAWnnB,GACT,OAAIjB,KAAKumB,QAAQpoB,KACR6B,KAAKsnB,MAAMtnB,KAAKumB,QAAQpoB,MACtB6B,KAAKymB,aACPzmB,KAAKyoB,UAAUxnB,EAAMvE,OAAO+gB,MAAMtf,MAElC6B,KAAKsnB,MAAMtnB,KAAKsC,KAAKrB,EAAMvE,OAAO+gB,MAAMtf,MAEnD,CACA,QAAA8oB,CAAShlB,GACP,OAAIigB,OACKA,OAAO/jB,KAAK8D,GAAKrI,SAAS,UAE1B8I,OAAOimB,KAAKC,SAASC,mBAAmB5mB,IAEnD,CACA,SAAAwmB,CAAUnmB,GACR,IAAIgmB,EAAStoB,KAAK2mB,iBAAiBhtB,IAAI2I,GACvC,GAAIgmB,EAAQ,OAAOA,EACnB,GAAI/E,GAAe,CACjB,IAAIuF,EAAUvF,GAAcjhB,GAAM1I,WAElC,OADAoG,KAAK2mB,iBAAiBvlB,IAAIkB,EAAMwmB,GACzBA,CACT,CACE,MAAM,IAAIlS,MACR,+DAGN,CACA,KAAA0Q,CAAMhlB,GACJ,IAAIgmB,EAAStoB,KAAK6mB,aAAaltB,IAAI2I,GACnC,GAAIgmB,EAAQ,OAAOA,EACP,OAARxC,KACFxjB,EAAOA,EAAK9D,QAAQ,MAAO,MAE7B,IAAIgE,EAAMumB,UAAUzmB,GAAM9D,QAAQ,QAASqqB,oBAE3C,OADA7oB,KAAK6mB,aAAazlB,IAAIkB,EAAME,GACrBA,CACT,GAGF,IAAIu/B,GAAShiB,GACTiiB,GAAY,cAAuBD,GACrC,WAAAvlC,CAAY4gB,GACVlG,MAAMkG,GACNpd,KAAK2B,KAAO,SACd,GAEF,IAAI6O,GAAUwxB,GACdA,GAAUnuB,QAAUmuB,GACpB,IAIIC,GAASC,GAAQC,GAAUC,IAJzB1pB,QAAS2pB,GAAW1pB,GAAI2pB,IAAS5C,GACnC6C,GAAgB9B,GAChB+B,GAAYhyB,GACZiyB,GAAS1iB,GAEb,SAAS2iB,GAAY1oB,GACnB,OAAOA,EAAM9B,IAAKtT,IACZA,EAAGoV,QAAOpV,EAAGoV,MAAQ0oB,GAAY99B,EAAGoV,eACjCpV,EAAGlI,OACHkI,GAEX,CACA,SAAS+9B,GAAY1hC,GAEnB,GADAA,EAAMohC,KAAa,EACfphC,EAAM+e,QAAQhG,MAChB,IAAK,IAAIpV,KAAM3D,EAAM+e,QAAQhG,MAC3B2oB,GAAY/9B,EAGlB,CACA,IAAIg+B,GAAc,MAAMC,UAAmBJ,GACzC,MAAAnlB,IAAU0M,GACR,IAAK,IAAItP,KAASsP,EAAU,CAC1B,IAAIhQ,EAAQha,KAAKiqB,UAAUvP,EAAO1a,KAAKya,MACvC,IAAK,IAAIxZ,KAAS+Y,EAAOha,KAAKggB,QAAQhG,MAAM7a,KAAK8B,EACnD,CAEA,OADAjB,KAAKqe,YACEre,IACT,CACA,SAAA6d,CAAUC,GAER,GADA5G,MAAM2G,UAAUC,GACZ9d,KAAKga,MACP,IAAK,IAAI/Y,KAASjB,KAAKga,MAAO/Y,EAAM4c,UAAUC,EAElD,CACA,IAAAoM,CAAKC,GACH,IAAKnqB,KAAKggB,QAAQhG,MAAO,OACzB,IACI7B,EAAQgH,EADRiL,EAAWpqB,KAAKqqB,cAEpB,KAAOrqB,KAAKsqB,QAAQF,GAAYpqB,KAAKggB,QAAQhG,MAAMlb,SACjDqZ,EAASnY,KAAKsqB,QAAQF,GACtBjL,EAAUgL,EAASnqB,KAAKggB,QAAQhG,MAAM7B,GAASA,IAC/B,IAAZgH,IACJnf,KAAKsqB,QAAQF,IAAa,EAG5B,cADOpqB,KAAKsqB,QAAQF,GACbjL,CACT,CACA,KAAA7lB,CAAMixB,GACJ,OAAOvqB,KAAKga,MAAM1gB,MAAMixB,EAC1B,CACA,WAAAF,GACOrqB,KAAKwqB,WAAUxqB,KAAKwqB,SAAW,GAC/BxqB,KAAKsqB,UAAStqB,KAAKsqB,QAAU,CAAA,GAClCtqB,KAAKwqB,UAAY,EACjB,IAAIJ,EAAWpqB,KAAKwqB,SAEpB,OADAxqB,KAAKsqB,QAAQF,GAAY,EAClBA,CACT,CACA,iBAAAjM,GACE,MAAO,CACLxkB,IAAG,CAACsH,EAAO+Z,IACI,YAATA,EACK/Z,EACGA,EAAM+Z,GAEE,SAATA,GAAmC,iBAATA,GAAqBA,EAAKjU,WAAW,QACjE,IAAI0jB,IACFxpB,EAAM+Z,MACRyP,EAAKvS,IAAKtT,GACO,mBAAPA,EACF,CAAC8V,EAAOvC,IAAWvT,EAAG8V,EAAM0D,UAAWjG,GAEvCvT,IAKG,UAAToW,GAA6B,SAATA,EACrB0P,GACCzpB,EAAM+Z,GACX,CAACN,KAAU3e,IAAU2uB,EAAGhQ,EAAM0D,aAAcriB,IAG9B,SAATif,EACF,IAAM/Z,EAAMoa,OAAO+C,UACR,UAATpD,EACF/Z,EAAM+Y,MAAM9B,IAAKtT,GAAOA,EAAGwZ,WAChB,UAATpD,GAA6B,SAATA,EACtB/Z,EAAM+Z,GAAMoD,UAEZnd,EAAM+Z,GA1BN/Z,EAAM+Z,GA6BjB5Z,IAAG,CAACH,EAAO+Z,EAAMnjB,KACXoJ,EAAM+Z,KAAUnjB,IACpBoJ,EAAM+Z,GAAQnjB,EACD,SAATmjB,GAA4B,WAATA,GAA8B,aAATA,GAC1C/Z,EAAMod,cAH0B,GAQxC,CACA,KAAAE,CAAM7D,GACJ,MAAqB,iBAAVA,EAA2BA,GAClCA,EAAMsF,UAAStF,EAAQA,EAAMsF,SAC1BhgB,KAAKggB,QAAQhG,MAAMpW,QAAQ8W,GACpC,CACA,WAAAgD,CAAYiN,EAAOzpB,GACjB,IAIIiX,EAJAyS,EAAa5qB,KAAKue,MAAMoM,GACxB3Q,EAAQha,KAAKiqB,UAAU/oB,EAAKlB,KAAKggB,QAAQhG,MAAM4Q,IAAaC,UAChED,EAAa5qB,KAAKue,MAAMoM,GACxB,IAAK,IAAI1pB,KAAS+Y,EAAOha,KAAKggB,QAAQhG,MAAM8Q,OAAOF,EAAa,EAAG,EAAG3pB,GAEtE,IAAK,IAAIZ,KAAML,KAAKsqB,QAClBnS,EAASnY,KAAKsqB,QAAQjqB,GAClBuqB,EAAazS,IACfnY,KAAKsqB,QAAQjqB,GAAM8X,EAAS6B,EAAMlb,QAItC,OADAkB,KAAKqe,YACEre,IACT,CACA,YAAA4d,CAAa+M,EAAOzpB,GAClB,IAKIiX,EALAyS,EAAa5qB,KAAKue,MAAMoM,GACxBhpB,EAAsB,IAAfipB,GAAmB,UAC1B5Q,EAAQha,KAAKiqB,UAAU/oB,EAAKlB,KAAKggB,QAAQhG,MAAM4Q,GAAajpB,GAAMkpB,UACtED,EAAa5qB,KAAKue,MAAMoM,GACxB,IAAK,IAAI1pB,KAAS+Y,EAAOha,KAAKggB,QAAQhG,MAAM8Q,OAAOF,EAAY,EAAG3pB,GAElE,IAAK,IAAIZ,KAAML,KAAKsqB,QAClBnS,EAASnY,KAAKsqB,QAAQjqB,GAClBuqB,GAAczS,IAChBnY,KAAKsqB,QAAQjqB,GAAM8X,EAAS6B,EAAMlb,QAItC,OADAkB,KAAKqe,YACEre,IACT,CACA,SAAAiqB,CAAUjQ,EAAO+Q,GACf,GAAqB,iBAAV/Q,EACTA,EAAQ0oB,GAAYT,GAAQjoB,GAAOA,YAC9B,QAAqB,IAAVA,EAChBA,EAAQ,QACH,GAAI9b,MAAMgf,QAAQlD,GAAQ,CAC/BA,EAAQA,EAAMnW,MAAM,GACpB,IAAK,IAAIe,KAAMoV,EACTpV,EAAG4K,QAAQ5K,EAAG4K,OAAO9U,YAAYkK,EAAI,SAE7C,MAAO,GAAmB,SAAfoV,EAAMrY,MAAiC,aAAd3B,KAAK2B,KAAqB,CAC5DqY,EAAQA,EAAMA,MAAMnW,MAAM,GAC1B,IAAK,IAAIe,KAAMoV,EACTpV,EAAG4K,QAAQ5K,EAAG4K,OAAO9U,YAAYkK,EAAI,SAE7C,MAAO,GAAIoV,EAAMrY,KACfqY,EAAQ,CAACA,QACJ,GAAIA,EAAMgB,KAAM,CACrB,QAA2B,IAAhBhB,EAAMniB,MACf,MAAM,IAAI+e,MAAM,0CACgB,iBAAhBoD,EAAMniB,QACtBmiB,EAAMniB,MAAQkD,OAAOif,EAAMniB,QAE7BmiB,EAAQ,CAAC,IAAIuoB,GAAcvoB,GAC7B,MAAO,GAAIA,EAAMgR,SACfhR,EAAQ,CAAC,IAAIkoB,GAAOloB,SACf,GAAIA,EAAMrd,KACfqd,EAAQ,CAAC,IAAImoB,GAASnoB,QACjB,KAAIA,EAAMnY,KAGf,MAAM,IAAI+U,MAAM,sCAFhBoD,EAAQ,CAAC,IAAIwoB,GAAUxoB,GAGzB,CAcA,OAbgBA,EAAM9B,IAAKtT,IACpBA,EAAG09B,KAAOO,EAAW5X,QAAQrmB,IAClCA,EAAKA,EAAGob,SACDxQ,QAAQ5K,EAAG4K,OAAO9U,YAAYkK,GACjCA,EAAGy9B,KAAYM,GAAY/9B,QACD,IAAnBA,EAAGkV,KAAKa,QACboQ,QAAwC,IAAvBA,EAAOjR,KAAKa,SAC/B/V,EAAGkV,KAAKa,OAASoQ,EAAOjR,KAAKa,OAAOnc,QAAQ,MAAO,KAGvDoG,EAAG4K,OAASxP,KAAKggB,QACVpb,GAGX,CACA,OAAAsmB,IAAWlB,GACTA,EAAWA,EAASa,UACpB,IAAK,IAAInQ,KAASsP,EAAU,CAC1B,IAAIhQ,EAAQha,KAAKiqB,UAAUvP,EAAO1a,KAAKmb,MAAO,WAAW0P,UACzD,IAAK,IAAI5pB,KAAS+Y,EAAOha,KAAKggB,QAAQhG,MAAMmR,QAAQlqB,GACpD,IAAK,IAAIZ,KAAML,KAAKsqB,QAClBtqB,KAAKsqB,QAAQjqB,GAAML,KAAKsqB,QAAQjqB,GAAM2Z,EAAMlb,MAEhD,CAEA,OADAkB,KAAKqe,YACEre,IACT,CACA,IAAAb,CAAKub,GAGH,OAFAA,EAAMlL,OAASxP,KACfA,KAAKggB,QAAQhG,MAAM7a,KAAKub,GACjB1a,IACT,CACA,SAAAorB,GACE,IAAK,IAAInqB,KAASjB,KAAKggB,QAAQhG,MAAO/Y,EAAMuO,YAAS,EAGrD,OAFAxP,KAAKggB,QAAQhG,MAAQ,GACrBha,KAAKqe,YACEre,IACT,CACA,WAAAtF,CAAYggB,GAIV,IAAIvC,EAHJuC,EAAQ1a,KAAKue,MAAM7D,GACnB1a,KAAKggB,QAAQhG,MAAMU,GAAOlL,YAAS,EACnCxP,KAAKggB,QAAQhG,MAAM8Q,OAAOpQ,EAAO,GAEjC,IAAK,IAAIra,KAAML,KAAKsqB,QAClBnS,EAASnY,KAAKsqB,QAAQjqB,GAClB8X,GAAUuC,IACZ1a,KAAKsqB,QAAQjqB,GAAM8X,EAAS,GAIhC,OADAnY,KAAKqe,YACEre,IACT,CACA,aAAAqrB,CAAcC,EAASrN,EAAMkM,GAW3B,OAVKA,IACHA,EAAWlM,EACXA,EAAO,CAAA,GAETje,KAAK6b,UAAWf,IACVmD,EAAKsN,QAAUtN,EAAKsN,MAAM1xB,SAASihB,EAAKE,OACxCiD,EAAKuN,OAAS1Q,EAAKjjB,MAAMgC,SAASokB,EAAKuN,QAC3C1Q,EAAKjjB,MAAQijB,EAAKjjB,MAAM2G,QAAQ8sB,EAASnB,MAE3CnqB,KAAKqe,YACEre,IACT,CACA,IAAAkM,CAAKqe,GACH,OAAOvqB,KAAKga,MAAM9N,KAAKqe,EACzB,CACA,IAAA/O,CAAK2O,GACH,OAAOnqB,KAAKkqB,KAAK,CAACxP,EAAO9V,KACvB,IAAIua,EACJ,IACEA,EAAUgL,EAASzP,EAAO9V,EAC5B,CAAE,MAAO6D,GACP,MAAMiS,EAAM6C,WAAW9U,EACzB,CAIA,OAHgB,IAAZ0W,GAAqBzE,EAAMc,OAC7B2D,EAAUzE,EAAMc,KAAK2O,IAEhBhL,GAEX,CACA,WAAAsM,CAAY9uB,EAAMwtB,GAChB,OAAKA,EAQDxtB,aAAgBmJ,OACX9F,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,WAAf8V,EAAM/Y,MAAqBhF,EAAKgH,KAAK+W,EAAM/d,MAC7C,OAAOwtB,EAASzP,EAAO9V,KAItB5E,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,WAAf8V,EAAM/Y,MAAqB+Y,EAAM/d,OAASA,EAC5C,OAAOwtB,EAASzP,EAAO9V,MAhBzBulB,EAAWxtB,EACJqD,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,WAAf8V,EAAM/Y,KACR,OAAOwoB,EAASzP,EAAO9V,KAgB/B,CACA,YAAA+W,CAAawO,GACX,OAAOnqB,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,YAAf8V,EAAM/Y,KACR,OAAOwoB,EAASzP,EAAO9V,IAG7B,CACA,SAAAiX,CAAUb,EAAMmP,GACd,OAAKA,EAQDnP,aAAgBlV,OACX9F,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,SAAf8V,EAAM/Y,MAAmBqZ,EAAKrX,KAAK+W,EAAMM,MAC3C,OAAOmP,EAASzP,EAAO9V,KAItB5E,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,SAAf8V,EAAM/Y,MAAmB+Y,EAAMM,OAASA,EAC1C,OAAOmP,EAASzP,EAAO9V,MAhBzBulB,EAAWnP,EACJhb,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,SAAf8V,EAAM/Y,KACR,OAAOwoB,EAASzP,EAAO9V,KAgB/B,CACA,SAAA8mB,CAAUV,EAAUb,GAClB,OAAKA,EAQDa,aAAoBllB,OACf9F,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,SAAf8V,EAAM/Y,MAAmBqpB,EAASrnB,KAAK+W,EAAMsQ,UAC/C,OAAOb,EAASzP,EAAO9V,KAItB5E,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,SAAf8V,EAAM/Y,MAAmB+Y,EAAMsQ,WAAaA,EAC9C,OAAOb,EAASzP,EAAO9V,MAhBzBulB,EAAWa,EACJhrB,KAAKwb,KAAK,CAACd,EAAO9V,KACvB,GAAmB,SAAf8V,EAAM/Y,KACR,OAAOwoB,EAASzP,EAAO9V,KAgB/B,CACA,SAAIuW,GACF,GAAKnb,KAAKggB,QAAQhG,MAClB,OAAOha,KAAKggB,QAAQhG,MAAM,EAC5B,CACA,QAAIS,GACF,GAAKza,KAAKggB,QAAQhG,MAClB,OAAOha,KAAKggB,QAAQhG,MAAMha,KAAKggB,QAAQhG,MAAMlb,OAAS,EACxD,GAEF8jC,GAAYjX,cAAiBC,IAC3BqW,GAAUrW,GAEZgX,GAAY/W,aAAgBD,IAC1BsW,GAAStW,GAEXgX,GAAY9W,eAAkBF,IAC5BuW,GAAWvW,GAEbgX,GAAY7W,aAAgBH,IAC1BwW,GAASxW,GAEX,IAAIkX,GAAYF,GAChBA,GAAY/uB,QAAU+uB,GACtBA,GAAY3X,QAAWhqB,IACF,WAAfA,EAAMU,KACRnK,OAAOy0B,eAAehrB,EAAOkhC,GAASjpC,WACd,SAAf+H,EAAMU,KACfnK,OAAOy0B,eAAehrB,EAAOihC,GAAOhpC,WACZ,SAAf+H,EAAMU,KACfnK,OAAOy0B,eAAehrB,EAAOshC,GAAcrpC,WACnB,YAAf+H,EAAMU,KACfnK,OAAOy0B,eAAehrB,EAAOuhC,GAAUtpC,WACf,SAAf+H,EAAMU,MACfnK,OAAOy0B,eAAehrB,EAAOmhC,GAAOlpC,WAEtC+H,EAAMqhC,KAAQ,EACVrhC,EAAM+Y,OACR/Y,EAAM+Y,MAAMnZ,QAAS6Z,IACnBkoB,GAAY3X,QAAQvQ,MAI1B,IACIqoB,GAAcC,GADdC,GAAcH,GAEdI,GAAa,cAAyBD,GACxC,WAAAzmC,CAAY4gB,GACVlG,MAAM,CAAEvV,KAAM,cAAeyb,IACxBpd,KAAKga,QACRha,KAAKga,MAAQ,GAEjB,CACA,QAAAsS,CAASrO,EAAO,IAEd,OADW,IAAI8kB,GAAa,IAAIC,GAAehjC,KAAMie,GACzChf,WACd,GAEFikC,GAAW3W,mBAAsBX,IAC/BmX,GAAenX,GAEjBsX,GAAW1W,kBAAqBZ,IAC9BoX,GAAcpX,GAEhB,IAAIuX,GAAaD,GACjBA,GAAWrvB,QAAUqvB,GACrB,IAAIE,GAAU,CAAA,EACd,IAAIC,GAAa,SAAmBxsB,GAC9BusB,GAAQvsB,KACZusB,GAAQvsB,IAAW,EACI,oBAAZtJ,SAA2BA,QAAQC,MAC5CD,QAAQC,KAAKqJ,GAEjB,EACA,IAAIysB,GAAY,MACd,WAAA9mC,CAAYqF,EAAMoc,EAAO,IAGvB,GAFAje,KAAK2B,KAAO,UACZ3B,KAAK6B,KAAOA,EACRoc,EAAK8B,MAAQ9B,EAAK8B,KAAKrjB,OAAQ,CACjC,IAAImwB,EAAQ5O,EAAK8B,KAAK7B,QAAQD,GAC9Bje,KAAK8W,KAAO+V,EAAM9U,MAAMjB,KACxB9W,KAAK+W,OAAS8V,EAAM9U,MAAMhB,OAC1B/W,KAAKqX,QAAUwV,EAAM7U,IAAIlB,KACzB9W,KAAKsX,UAAYuV,EAAM7U,IAAIjB,MAC7B,CACA,IAAK,IAAI+V,KAAO7O,EAAMje,KAAK8sB,GAAO7O,EAAK6O,EACzC,CACA,QAAAlzB,GACE,OAAIoG,KAAK+f,KACA/f,KAAK+f,KAAKthB,MAAMuB,KAAK6B,KAAM,CAChC0c,MAAOve,KAAKue,MACZnH,OAAQpX,KAAKoX,OACbuH,KAAM3e,KAAK2e,OACV9H,QAED7W,KAAKoX,OACApX,KAAKoX,OAAS,KAAOpX,KAAK6B,KAE5B7B,KAAK6B,IACd,GAEF,IAAI0hC,GAAUD,GACdA,GAAUzvB,QAAUyvB,GACpB,IAAIE,GAAYD,GACZE,GAAW,MACb,WAAAjnC,CAAY0wB,EAAY9R,EAAO6C,GAC7Bje,KAAKmtB,UAAYD,EACjBltB,KAAKotB,SAAW,GAChBptB,KAAKqb,KAAOD,EACZpb,KAAKie,KAAOA,EACZje,KAAK2X,SAAM,EACX3X,KAAKkY,SAAM,CACb,CACA,QAAAte,GACE,OAAOoG,KAAK2X,GACd,CACA,IAAAnK,CAAK3L,EAAMoc,EAAO,IACXA,EAAK7G,QACJpX,KAAKqtB,YAAcrtB,KAAKqtB,WAAWC,gBACrCrP,EAAK7G,OAASpX,KAAKqtB,WAAWC,eAGlC,IAAIC,EAAW,IAAIiW,GAAU3hC,EAAMoc,GAEnC,OADAje,KAAKotB,SAASjuB,KAAKouB,GACZA,CACT,CACA,QAAAC,GACE,OAAOxtB,KAAKotB,SAASK,OAAQ7oB,GAAmB,YAAZA,EAAGjD,KACzC,CACA,WAAIolB,GACF,OAAO/mB,KAAK2X,GACd,GAEF,IAAIogB,GAAS0L,GACbA,GAAS5vB,QAAU4vB,GACnB,MAAMC,GAAe,IAAIrb,WAAW,GAC9Bsb,GAAe,IAAItb,WAAW,GAC9Bub,GAAY,KAAKvb,WAAW,GAC5Bwb,GAAQ,IAAIxb,WAAW,GACvByb,GAAU,KAAKzb,WAAW,GAC1B0b,GAAQ,IAAI1b,WAAW,GACvB2b,GAAO,KAAK3b,WAAW,GACvB4b,GAAM,KAAI5b,WAAW,GACrB6b,GAAK,KAAK7b,WAAW,GACrB8b,GAAc,IAAI9b,WAAW,GAC7B+b,GAAe,IAAI/b,WAAW,GAC9Bgc,GAAmB,IAAIhc,WAAW,GAClCic,GAAoB,IAAIjc,WAAW,GACnCkc,GAAa,IAAIlc,WAAW,GAC5Bmc,GAAc,IAAInc,WAAW,GAC7Boc,GAAY,IAAIpc,WAAW,GAC3Bqc,GAAW,IAAIrc,WAAW,GAC1Bsc,GAAQ,IAAItc,WAAW,GACvBuc,GAAK,IAAIvc,WAAW,GACpBwc,GAAY,6BACZC,GAAc,wCACdC,GAAiB,gBACjBC,GAAgB,WA0LtB,IAAIC,GAAcnC,GACdoC,GAAW,cAAsBD,GACnC,WAAAzoC,CAAY4gB,GACVlG,MAAMkG,GACNpd,KAAK2B,KAAO,QACd,CACA,MAAA2b,IAAU0M,GAER,OADKhqB,KAAKggB,QAAQhG,QAAOha,KAAKga,MAAQ,IAC/B9C,MAAMoG,UAAU0M,EACzB,CACA,OAAAkB,IAAWlB,GAET,OADKhqB,KAAKggB,QAAQhG,QAAOha,KAAKga,MAAQ,IAC/B9C,MAAMgU,WAAWlB,EAC1B,GAEF,IAAIoU,GAAS8G,GACbA,GAASrxB,QAAUqxB,GACnBD,GAAYnZ,eAAeoZ,IAC3B,IACIC,GAAcC,GADdC,GAAcvC,GAEdwC,GAAS,cAAoBD,GAC/B,WAAA7oC,CAAY4gB,GACVlG,MAAMkG,GACNpd,KAAK2B,KAAO,OACP3B,KAAKga,QAAOha,KAAKga,MAAQ,GAChC,CACA,SAAAiQ,CAAUvP,EAAOqQ,EAAQppB,GACvB,IAAIqY,EAAQ9C,MAAM+S,UAAUvP,GAC5B,GAAIqQ,EACF,GAAa,YAATppB,EACE3B,KAAKga,MAAMlb,OAAS,EACtBisB,EAAOjR,KAAKa,OAAS3a,KAAKga,MAAM,GAAGF,KAAKa,cAEjCoQ,EAAOjR,KAAKa,YAEhB,GAAI3a,KAAKmb,QAAU4P,EACxB,IAAK,IAAI9pB,KAAS+Y,EAChB/Y,EAAM6Y,KAAKa,OAASoQ,EAAOjR,KAAKa,OAItC,OAAOX,CACT,CACA,WAAAtf,CAAYggB,EAAO+U,GACjB,IAAItX,EAASnY,KAAKue,MAAM7D,GAIxB,OAHK+U,GAAqB,IAAXtX,GAAgBnY,KAAKga,MAAMlb,OAAS,IACjDkB,KAAKga,MAAM,GAAGF,KAAKa,OAAS3a,KAAKga,MAAM7B,GAAQ2B,KAAKa,QAE/CzD,MAAMxc,YAAYggB,EAC3B,CACA,QAAA4R,CAASrO,EAAO,IAEd,OADW,IAAIknB,GAAa,IAAIC,GAAeplC,KAAMie,GACzChf,WACd,GAEFqmC,GAAO/Y,mBAAsBX,IAC3BuZ,GAAevZ,GAEjB0Z,GAAO9Y,kBAAqBZ,IAC1BwZ,GAAcxZ,GAEhB,IAAIvQ,GAAOiqB,GACXA,GAAOzxB,QAAUyxB,GACjBD,GAAYtZ,aAAauZ,IACzB,IAAIC,GAAS,CACX3V,MAAM7U,GACGwqB,GAAO1mC,MAAMkc,EAAQ,CAAC,MAAM,GAErC8U,MAAM9U,GAEGwqB,GAAO1mC,MAAMkc,EADP,CAAC,IAAK,KAAM,OAG3B,KAAAlc,CAAMkc,EAAQ+U,EAAYrV,GACxB,IAAIsV,EAAQ,GACRC,EAAU,GACVnxB,GAAQ,EACRoxB,EAAO,EACPC,GAAU,EACVC,EAAY,GACZC,GAAS,EACb,IAAK,IAAIC,KAAUtV,EACbqV,EACFA,GAAS,EACW,OAAXC,EACTD,GAAS,EACAF,EACLG,IAAWF,IACbD,GAAU,GAEQ,MAAXG,GAA6B,MAAXA,GAC3BH,GAAU,EACVC,EAAYE,GACQ,MAAXA,EACTJ,GAAQ,EACY,MAAXI,EACLJ,EAAO,IAAGA,GAAQ,GACJ,IAATA,GACLH,EAAWj2B,SAASw2B,KAASxxB,GAAQ,GAEvCA,GACc,KAAZmxB,GAAgBD,EAAM5wB,KAAK6wB,EAAQxpB,QACvCwpB,EAAU,GACVnxB,GAAQ,GAERmxB,GAAWK,EAIf,OADI5V,GAAoB,KAAZuV,IAAgBD,EAAM5wB,KAAK6wB,EAAQxpB,QACxCupB,CACT,GAEF,IAAIyV,GAASD,GACbA,GAAO1xB,QAAU0xB,GACjB,IAAIE,GAAc3C,GACd4C,GAASF,GACTG,GAAS,cAAoBF,GAC/B,WAAAjpC,CAAY4gB,GACVlG,MAAMkG,GACNpd,KAAK2B,KAAO,OACP3B,KAAKga,QAAOha,KAAKga,MAAQ,GAChC,CACA,aAAI3d,GACF,OAAOqpC,GAAO9V,MAAM5vB,KAAKgrB,SAC3B,CACA,aAAI3uB,CAAUq0B,GACZ,IAAI7tB,EAAQ7C,KAAKgrB,SAAWhrB,KAAKgrB,SAASnoB,MAAM,QAAU,KACtD8tB,EAAO9tB,EAAQA,EAAM,GAAK,IAAM7C,KAAKqa,IAAI,UAAW,cACxDra,KAAKgrB,SAAW0F,EAAOpyB,KAAKqyB,EAC9B,GAEF,IAAItU,GAAOspB,GACXA,GAAO9xB,QAAU8xB,GACjBF,GAAY5Z,aAAa8Z,IACzB,IAAIC,GAAgBnF,GAChBoF,GA/TW,SAAoBlmB,EAAQhX,EAAU,CAAA,GACnD,IAEI4P,EAAM+F,EAAMyS,EAAOhK,EAASqJ,EAC5BY,EAASC,EAAWrS,EAAMnjB,EAAIy1B,EAH9BvZ,EAAMgI,EAAOhI,IAAIwZ,UACjB1B,EAAS9mB,EAAQyoB,aAGjBtyB,EAAS6Y,EAAI7Y,OACboI,EAAM,EACN+E,EAAS,GACTolB,EAAW,GAIf,SAASC,EAASC,GAChB,MAAM5R,EAAOlhB,MAAM,YAAc8yB,EAAMrqB,EACzC,CAoKA,MAAO,CACLsqB,KAJF,SAAcC,GACZJ,EAASlyB,KAAKsyB,EAChB,EAGEC,UArKF,WACE,OAA2B,IAApBL,EAASvyB,QAAgBoI,GAAOpI,CACzC,EAoKE6yB,UAnKF,SAAmB1T,GACjB,GAAIoT,EAASvyB,OAAQ,OAAOuyB,EAASptB,MACrC,GAAIiD,GAAOpI,EAAQ,OACnB,IAAI8yB,IAAiB3T,GAAOA,EAAK2T,eAEjC,OADArZ,EAAOZ,EAAI0Q,WAAWnhB,GACdqR,GACN,KAAKurB,GACL,KAAKC,GACL,KAAKE,GACL,KAAKC,GACL,KAAKF,GACH1lB,EAAOpX,EACP,GACEoX,GAAQ,EACR/F,EAAOZ,EAAI0Q,WAAW/J,SACf/F,IAASwrB,IAASxrB,IAASurB,IAAWvrB,IAAS0rB,IAAO1rB,IAAS2rB,IAAM3rB,IAASyrB,IACvF9S,EAAe,CAAC,QAASvZ,EAAI9T,MAAMqD,EAAKoX,IACxCpX,EAAMoX,EAAO,EACb,MAEF,KAAK6lB,GACL,KAAKC,GACL,KAAKG,GACL,KAAKC,GACL,KAAKG,GACL,KAAKF,GACL,KAAKH,GAAmB,CACtB,IAAIzS,EAAc92B,OAAO+2B,aAAavZ,GACtC2Y,EAAe,CAACW,EAAaA,EAAa3qB,GAC1C,KACF,CACA,KAAKm9B,GAGH,GAFAzlB,EAAO3S,EAAOnN,OAASmN,EAAOhI,MAAM,GAAK,GACzCxI,EAAKkc,EAAI0Q,WAAWnhB,EAAM,GACb,QAAT0X,GAAkBnjB,IAAOioC,IAAgBjoC,IAAOkoC,IAAgBloC,IAAOsoC,IAAStoC,IAAOqoC,IAAWroC,IAAOwoC,IAAOxoC,IAAOuoC,IAAQvoC,IAAOyoC,GAAI,CAC5I5lB,EAAOpX,EACP,EAAG,CAGD,GAFA8pB,GAAU,EACV1S,EAAO3G,EAAI/T,QAAQ,IAAK0a,EAAO,IAClB,IAATA,EAAa,CACf,GAAImR,GAAUmC,EAAgB,CAC5BtT,EAAOpX,EACP,KACF,CACEoqB,EAAS,UAEb,CAEA,IADAL,EAAY3S,EACL3G,EAAI0Q,WAAW4I,EAAY,KAAO2S,IACvC3S,GAAa,EACbD,GAAWA,CAEf,OAASA,GACTE,EAAe,CAAC,WAAYvZ,EAAI9T,MAAMqD,EAAKoX,EAAO,GAAIpX,EAAKoX,GAC3DpX,EAAMoX,CACR,MACEA,EAAO3G,EAAI/T,QAAQ,IAAKsD,EAAM,GAC9B6f,EAAUpP,EAAI9T,MAAMqD,EAAKoX,EAAO,IACnB,IAATA,GAAeymB,GAAephC,KAAKojB,GACrCmK,EAAe,CAAC,IAAK,IAAKhqB,IAE1BgqB,EAAe,CAAC,WAAYnK,EAAS7f,EAAKoX,GAC1CpX,EAAMoX,GAGV,MAEF,KAAKolB,GACL,KAAKC,GACH5S,EAAQxY,IAASmrB,GAAe,IAAM,IACtCplB,EAAOpX,EACP,EAAG,CAGD,GAFA8pB,GAAU,EACV1S,EAAO3G,EAAI/T,QAAQmtB,EAAOzS,EAAO,IACpB,IAATA,EAAa,CACf,GAAImR,GAAUmC,EAAgB,CAC5BtT,EAAOpX,EAAM,EACb,KACF,CACEoqB,EAAS,SAEb,CAEA,IADAL,EAAY3S,EACL3G,EAAI0Q,WAAW4I,EAAY,KAAO2S,IACvC3S,GAAa,EACbD,GAAWA,CAEf,OAASA,GACTE,EAAe,CAAC,SAAUvZ,EAAI9T,MAAMqD,EAAKoX,EAAO,GAAIpX,EAAKoX,GACzDpX,EAAMoX,EACN,MAEF,KAAKsmB,GACHC,GAAU9S,UAAY7qB,EAAM,EAC5B29B,GAAUlhC,KAAKgU,GAEb2G,EAD0B,IAAxBumB,GAAU9S,UACLpa,EAAI7Y,OAAS,EAEb+lC,GAAU9S,UAAY,EAE/Bb,EAAe,CAAC,UAAWvZ,EAAI9T,MAAMqD,EAAKoX,EAAO,GAAIpX,EAAKoX,GAC1DpX,EAAMoX,EACN,MAEF,KAAKslB,GAGH,IAFAtlB,EAAOpX,EACPkpB,GAAS,EACFzY,EAAI0Q,WAAW/J,EAAO,KAAOslB,IAClCtlB,GAAQ,EACR8R,GAAUA,EAGZ,GADA7X,EAAOZ,EAAI0Q,WAAW/J,EAAO,GACzB8R,GAAU7X,IAASsrB,IAAStrB,IAASwrB,IAASxrB,IAASurB,IAAWvrB,IAAS0rB,IAAO1rB,IAAS2rB,IAAM3rB,IAASyrB,KAC5G1lB,GAAQ,EACJ0mB,GAAcrhC,KAAKgU,EAAIhQ,OAAO2W,KAAQ,CACxC,KAAO0mB,GAAcrhC,KAAKgU,EAAIhQ,OAAO2W,EAAO,KAC1CA,GAAQ,EAEN3G,EAAI0Q,WAAW/J,EAAO,KAAOylB,KAC/BzlB,GAAQ,EAEZ,CAEF4S,EAAe,CAAC,OAAQvZ,EAAI9T,MAAMqD,EAAKoX,EAAO,GAAIpX,EAAKoX,GACvDpX,EAAMoX,EACN,MAEF,QACM/F,IAASsrB,IAASlsB,EAAI0Q,WAAWnhB,EAAM,KAAOw9B,IAChDpmB,EAAO3G,EAAI/T,QAAQ,KAAMsD,EAAM,GAAK,EACvB,IAAToX,IACEmR,GAAUmC,EACZtT,EAAO3G,EAAI7Y,OAEXwyB,EAAS,YAGbJ,EAAe,CAAC,UAAWvZ,EAAI9T,MAAMqD,EAAKoX,EAAO,GAAIpX,EAAKoX,GAC1DpX,EAAMoX,IAENwmB,GAAY/S,UAAY7qB,EAAM,EAC9B49B,GAAYnhC,KAAKgU,GAEf2G,EAD4B,IAA1BwmB,GAAY/S,UACPpa,EAAI7Y,OAAS,EAEbgmC,GAAY/S,UAAY,EAEjCb,EAAe,CAAC,OAAQvZ,EAAI9T,MAAMqD,EAAKoX,EAAO,GAAIpX,EAAKoX,GACvDrS,EAAO9M,KAAK+xB,GACZhqB,EAAMoX,GAMZ,OADApX,IACOgqB,CACT,EAQEc,SA7KF,WACE,OAAO9qB,CACT,EA6KF,EAwII4+B,GAAYt1B,GACZu1B,GAAW3H,GACX4H,GAAS3qB,GACT4qB,GAAS5pB,GACb,MAAM6pB,GAAwB,CAC5B5T,OAAO,EACPzC,OAAO,GAogBT,IAAIiI,GA3fW,MACb,WAAAt7B,CAAYmjB,GACV3f,KAAKyd,MAAQkC,EACb3f,KAAKqb,KAAO,IAAI2qB,GAChBhmC,KAAKgwB,QAAUhwB,KAAKqb,KACpBrb,KAAKwyB,OAAS,GACdxyB,KAAKwZ,WAAY,EACjBxZ,KAAKyyB,kBACLzyB,KAAKqb,KAAK3e,OAAS,CAAE+gB,MAAOkC,EAAQ5H,MAAO,CAAEhB,OAAQ,EAAGD,KAAM,EAAGyN,OAAQ,GAC3E,CACA,MAAA5K,CAAO8X,GACL,IAMI9vB,EACAid,EACA8T,EARAzxB,EAAQ,IAAI8kC,GAChB9kC,EAAMtE,KAAO80B,EAAM,GAAG5tB,MAAM,GACT,KAAf5C,EAAMtE,MACRqD,KAAK2yB,cAAc1xB,EAAOwwB,GAE5BzxB,KAAK4yB,KAAK3xB,EAAOwwB,EAAM,IAIvB,IAAIhX,GAAO,EACPvP,GAAO,EACP0O,EAAS,GACTiZ,EAAW,GACf,MAAQ7yB,KAAK8yB,UAAUpB,aAAa,CAUlC,GARA/vB,GADA8vB,EAAQzxB,KAAK8yB,UAAUnB,aACV,GACA,MAAThwB,GAAyB,MAATA,EAClBkxB,EAAS1zB,KAAc,MAATwC,EAAe,IAAM,KACjB,MAATA,GAAgBkxB,EAAS/zB,OAAS,EAC3C+zB,EAAS1zB,KAAK,KACLwC,IAASkxB,EAASA,EAAS/zB,OAAS,IAC7C+zB,EAAS5uB,MAEa,IAApB4uB,EAAS/zB,OAAc,CACzB,GAAa,MAAT6C,EAAc,CAChBV,EAAMvE,OAAOsb,IAAMhY,KAAK+yB,YAAYtB,EAAM,IAC1CxwB,EAAMvE,OAAOsb,IAAIuM,SACjBvkB,KAAKwZ,WAAY,EACjB,KACF,CAAO,GAAa,MAAT7X,EAAc,CACvBuJ,GAAO,EACP,KACF,CAAO,GAAa,MAATvJ,EAAc,CACvB,GAAIiY,EAAO9a,OAAS,EAAG,CAGrB,IAFA4zB,EAAQ9Y,EAAO9a,OAAS,EACxB8f,EAAOhF,EAAO8Y,GACP9T,GAAoB,UAAZA,EAAK,IAClBA,EAAOhF,IAAS8Y,GAEd9T,IACF3d,EAAMvE,OAAOsb,IAAMhY,KAAK+yB,YAAYnU,EAAK,IAAMA,EAAK,IACpD3d,EAAMvE,OAAOsb,IAAIuM,SAErB,CACAvkB,KAAKgY,IAAIyZ,GACT,KACF,CACE7X,EAAOza,KAAKsyB,EAEhB,MACE7X,EAAOza,KAAKsyB,GAEd,GAAIzxB,KAAK8yB,UAAUpB,YAAa,CAC9BjX,GAAO,EACP,KACF,CACF,CACAxZ,EAAM6Y,KAAKI,QAAUla,KAAKgzB,yBAAyBpZ,GAC/CA,EAAO9a,QACTmC,EAAM6Y,KAAKC,UAAY/Z,KAAKizB,2BAA2BrZ,GACvD5Z,KAAKqa,IAAIpZ,EAAO,SAAU2Y,GACtBa,IACFgX,EAAQ7X,EAAOA,EAAO9a,OAAS,GAC/BmC,EAAMvE,OAAOsb,IAAMhY,KAAK+yB,YAAYtB,EAAM,IAAMA,EAAM,IACtDxwB,EAAMvE,OAAOsb,IAAIuM,SACjBvkB,KAAKwyB,OAASvxB,EAAM6Y,KAAKI,QACzBjZ,EAAM6Y,KAAKI,QAAU,MAGvBjZ,EAAM6Y,KAAKC,UAAY,GACvB9Y,EAAM2Y,OAAS,IAEb1O,IACFjK,EAAM+Y,MAAQ,GACdha,KAAKgwB,QAAU/uB,EAEnB,CACA,oBAAAiyB,CAAqBC,GACnB,IAAIha,EAAQnZ,KAAKmZ,MAAMga,GACvB,IAAc,IAAVha,EAAiB,OACrB,IACIsY,EADA2B,EAAU,EAEd,IAAK,IAAIruB,EAAIoU,EAAQ,EAAGpU,GAAK,IAC3B0sB,EAAQ0B,EAAOpuB,GACE,UAAb0sB,EAAM,KACR2B,GAAW,EACK,IAAZA,IAJwBruB,KAOhC,MAAM/E,KAAKyd,MAAMhf,MACf,mBACa,SAAbgzB,EAAM,GAAgBA,EAAM,GAAK,EAAIA,EAAM,GAE/C,CACA,KAAAtY,CAAMga,GACJ,IACI1B,EAAO9vB,EAAMid,EADbiU,EAAW,EAEf,IAAK,IAAKjuB,EAAIpD,KAAY2xB,EAAOE,UAAW,CAS1C,GARA5B,EAAQjwB,EACRG,EAAO8vB,EAAM,GACA,MAAT9vB,IACFkxB,GAAY,GAED,MAATlxB,IACFkxB,GAAY,GAEG,IAAbA,GAA2B,MAATlxB,EAAc,CAClC,GAAKid,EAEE,IAAgB,SAAZA,EAAK,IAA6B,WAAZA,EAAK,GACpC,SAEA,OAAOha,CACT,CALE5E,KAAKszB,YAAY7B,EAMrB,CACA7S,EAAO6S,CACT,CACA,OAAO,CACT,CACA,OAAAjhB,CAAQihB,GACN,IAAIxwB,EAAQ,IAAI6kC,GAChB9lC,KAAK4yB,KAAK3xB,EAAOwwB,EAAM,IACvBxwB,EAAMvE,OAAOsb,IAAMhY,KAAK+yB,YAAYtB,EAAM,IAAMA,EAAM,IACtDxwB,EAAMvE,OAAOsb,IAAIuM,SACjB,IAAI1iB,EAAO4vB,EAAM,GAAG5tB,MAAM,MAC1B,GAAI,QAAQF,KAAK9B,GACfZ,EAAMY,KAAO,GACbZ,EAAM6Y,KAAKc,KAAO/Y,EAClBZ,EAAM6Y,KAAKe,MAAQ,OACd,CACL,IAAIhY,EAAQhB,EAAKgB,MAAM,wBACvB5B,EAAMY,KAAOgB,EAAM,GACnB5B,EAAM6Y,KAAKc,KAAO/X,EAAM,GACxB5B,EAAM6Y,KAAKe,MAAQhY,EAAM,EAC3B,CACF,CACA,eAAA4vB,GACEzyB,KAAK8yB,UAAY+S,GAAY7lC,KAAKyd,MACpC,CACA,IAAA3C,CAAKqY,EAAQI,GACX,IAAItyB,EAAQ,IAAI2kC,GAChB5lC,KAAK4yB,KAAK3xB,EAAOkyB,EAAO,GAAG,IAC3B,IAuBI1B,EAvBAhX,EAAO0Y,EAAOA,EAAOr0B,OAAS,GASlC,IARgB,MAAZ2b,EAAK,KACPza,KAAKwZ,WAAY,EACjB2Z,EAAOlvB,OAEThD,EAAMvE,OAAOsb,IAAMhY,KAAK+yB,YACtBtY,EAAK,IAAMA,EAAK,IAtKtB,SAA8B0Y,GAC5B,IAAK,IAAIvuB,EAAKuuB,EAAOr0B,OAAS,EAAG8F,GAAM,EAAGA,IAAM,CAC9C,IAAI6sB,EAAQ0B,EAAOvuB,GACfsC,EAAMuqB,EAAM,IAAMA,EAAM,GAC5B,GAAIvqB,EAAK,OAAOA,CAClB,CACF,CAgK4Bi/B,CAAqBhT,IAE7ClyB,EAAMvE,OAAOsb,IAAIuM,SACO,SAAjB4O,EAAO,GAAG,IACO,IAAlBA,EAAOr0B,QAAckB,KAAKyzB,YAAYN,GAC1ClyB,EAAM6Y,KAAKa,QAAUwY,EAAOT,QAAQ,GAItC,IAFAzxB,EAAMvE,OAAOqb,MAAQ/X,KAAK+yB,YAAYI,EAAO,GAAG,IAChDlyB,EAAM+Z,KAAO,GACNmY,EAAOr0B,QAAQ,CACpB,IAAI6C,EAAOwxB,EAAO,GAAG,GACrB,GAAa,MAATxxB,GAAyB,UAATA,GAA6B,YAATA,EACtC,MAEFV,EAAM+Z,MAAQmY,EAAOT,QAAQ,EAC/B,CAGA,IAFAzxB,EAAM6Y,KAAKI,QAAU,GAEdiZ,EAAOr0B,QAAQ,CAEpB,GADA2yB,EAAQ0B,EAAOT,QACE,MAAbjB,EAAM,GAAY,CACpBxwB,EAAM6Y,KAAKI,SAAWuX,EAAM,GAC5B,KACF,CACmB,SAAbA,EAAM,IAAiB,KAAK9tB,KAAK8tB,EAAM,KACzCzxB,KAAKyzB,YAAY,CAAChC,IAEpBxwB,EAAM6Y,KAAKI,SAAWuX,EAAM,EAEhC,CACsB,MAAlBxwB,EAAM+Z,KAAK,IAAgC,MAAlB/Z,EAAM+Z,KAAK,KACtC/Z,EAAM6Y,KAAKa,QAAU1Z,EAAM+Z,KAAK,GAChC/Z,EAAM+Z,KAAO/Z,EAAM+Z,KAAKnX,MAAM,IAEhC,IACIya,EADAoV,EAAc,GAElB,KAAOP,EAAOr0B,SACZwf,EAAO6U,EAAO,GAAG,GACJ,UAAT7U,GAA6B,YAATA,IACxBoV,EAAYv0B,KAAKg0B,EAAOT,SAE1B1yB,KAAK2zB,wBAAwBR,GAC7B,IAAK,IAAIvuB,EAAKuuB,EAAOr0B,OAAS,EAAG8F,GAAM,EAAGA,IAAM,CAE9C,GADA6sB,EAAQ0B,EAAOvuB,GACgB,eAA3B6sB,EAAM,GAAG1vB,cAAgC,CAC3Cd,EAAMga,WAAY,EAClB,IAAIF,EAAS/a,KAAK4zB,WAAWT,EAAQvuB,GACrCmW,EAAS/a,KAAK6zB,cAAcV,GAAUpY,EACvB,gBAAXA,IAA0B9Z,EAAM6Y,KAAKmB,UAAYF,GACrD,KACF,CAAO,GAA+B,cAA3B0W,EAAM,GAAG1vB,cAA+B,CACjD,IAAI+xB,EAAQX,EAAOtvB,MAAM,GACrB5B,EAAM,GACV,IAAK,IAAI8C,EAAIH,EAAIG,EAAI,EAAGA,IAAK,CAC3B,IAAIpD,EAAOmyB,EAAM/uB,GAAG,GACpB,GAAgC,IAA5B9C,EAAIuE,OAAO5C,QAAQ,MAAuB,UAATjC,EACnC,MAEFM,EAAM6xB,EAAM7vB,MAAM,GAAKhC,CACzB,CACgC,IAA5BA,EAAIuE,OAAO5C,QAAQ,OACrB3C,EAAMga,WAAY,EAClBha,EAAM6Y,KAAKmB,UAAYhZ,EACvBkxB,EAASW,EAEb,CACA,GAAiB,UAAbrC,EAAM,IAA+B,YAAbA,EAAM,GAChC,KAEJ,CACc0B,EAAOjnB,KAAMtH,GAAiB,UAAVA,EAAG,IAA4B,YAAVA,EAAG,MAExD3D,EAAM6Y,KAAKI,SAAWwZ,EAAYxb,IAAKtT,GAAOA,EAAG,IAAItG,KAAK,IAC1Do1B,EAAc,IAEhB1zB,KAAKqa,IAAIpZ,EAAO,QAASyyB,EAAYK,OAAOZ,GAASI,GACjDtyB,EAAMpJ,MAAMgC,SAAS,OAAS05B,GAChCvzB,KAAKkzB,qBAAqBC,EAE9B,CACA,WAAAG,CAAY7B,GACV,MAAMzxB,KAAKyd,MAAMhf,MACf,eACA,CAAE8lB,OAAQkN,EAAM,IAChB,CAAElN,OAAQkN,EAAM,GAAKA,EAAM,GAAG3yB,QAElC,CACA,SAAAk1B,CAAUvC,GACR,IAAIxwB,EAAQ,IAAIglC,GAChBjmC,KAAK4yB,KAAK3xB,EAAOwwB,EAAM,IACvBxwB,EAAM+pB,SAAW,GACjB/pB,EAAM6Y,KAAKI,QAAU,GACrBla,KAAKgwB,QAAU/uB,CACjB,CACA,GAAA+W,CAAIyZ,GACEzxB,KAAKgwB,QAAQhW,OAASha,KAAKgwB,QAAQhW,MAAMlb,SAC3CkB,KAAKgwB,QAAQlW,KAAKN,UAAYxZ,KAAKwZ,WAErCxZ,KAAKwZ,WAAY,EACjBxZ,KAAKgwB,QAAQlW,KAAKjB,OAAS7Y,KAAKgwB,QAAQlW,KAAKjB,OAAS,IAAM7Y,KAAKwyB,OACjExyB,KAAKwyB,OAAS,GACVxyB,KAAKgwB,QAAQxgB,QACfxP,KAAKgwB,QAAQtzB,OAAOsb,IAAMhY,KAAK+yB,YAAYtB,EAAM,IACjDzxB,KAAKgwB,QAAQtzB,OAAOsb,IAAIuM,SACxBvkB,KAAKgwB,QAAUhwB,KAAKgwB,QAAQxgB,QAE5BxP,KAAKi0B,gBAAgBxC,EAEzB,CACA,OAAAyC,GACMl0B,KAAKgwB,QAAQxgB,QAAQxP,KAAKm0B,gBAC1Bn0B,KAAKgwB,QAAQhW,OAASha,KAAKgwB,QAAQhW,MAAMlb,SAC3CkB,KAAKgwB,QAAQlW,KAAKN,UAAYxZ,KAAKwZ,WAErCxZ,KAAKgwB,QAAQlW,KAAKjB,OAAS7Y,KAAKgwB,QAAQlW,KAAKjB,OAAS,IAAM7Y,KAAKwyB,OACjExyB,KAAKqb,KAAK3e,OAAOsb,IAAMhY,KAAK+yB,YAAY/yB,KAAK8yB,UAAUd,WACzD,CACA,aAAAoC,CAAc3C,GAEZ,GADAzxB,KAAKwyB,QAAUf,EAAM,GACjBzxB,KAAKgwB,QAAQhW,MAAO,CACtB,IAAI4E,EAAO5e,KAAKgwB,QAAQhW,MAAMha,KAAKgwB,QAAQhW,MAAMlb,OAAS,GACtD8f,GAAsB,SAAdA,EAAKjd,OAAoBid,EAAK9E,KAAKwC,eAC7CsC,EAAK9E,KAAKwC,aAAetc,KAAKwyB,OAC9BxyB,KAAKwyB,OAAS,GAElB,CACF,CAEA,WAAAO,CAAYxO,GACV,IAAIrd,EAAMlH,KAAKyd,MAAM+G,WAAWD,GAChC,MAAO,CACLxN,OAAQ7P,EAAIud,IACZ3N,KAAM5P,EAAI4P,KACVyN,SAEJ,CACA,IAAAqO,CAAK3xB,EAAOsjB,GACVvkB,KAAKgwB,QAAQ7wB,KAAK8B,GAClBA,EAAMvE,OAAS,CACb+gB,MAAOzd,KAAKyd,MACZ1F,MAAO/X,KAAK+yB,YAAYxO,IAE1BtjB,EAAM6Y,KAAKa,OAAS3a,KAAKwyB,OACzBxyB,KAAKwyB,OAAS,GACK,YAAfvxB,EAAMU,OAAoB3B,KAAKwZ,WAAY,EACjD,CACA,KAAAzd,CAAMgc,GACJ,IAAIC,GAAM,EACNrW,EAAO,KACPwX,GAAQ,EACRkb,EAAU,KACVxB,EAAW,GACXU,EAAiBxb,EAAM,GAAGhR,WAAW,MACrCosB,EAAS,GACT1B,EAAQ1Z,EACZ,KAAO0Z,GAAO,CAGZ,GAFA9vB,EAAO8vB,EAAM,GACb0B,EAAOh0B,KAAKsyB,GACC,MAAT9vB,GAAyB,MAATA,EACb0yB,IAASA,EAAU5C,GACxBoB,EAAS1zB,KAAc,MAATwC,EAAe,IAAM,UAC9B,GAAI4xB,GAAkBpa,GAAkB,MAATxX,EAC/B0yB,IAASA,EAAU5C,GACxBoB,EAAS1zB,KAAK,UACT,GAAwB,IAApB0zB,EAAS/zB,OAAc,CAChC,GAAa,MAAT6C,EAAc,CAChB,GAAIwX,EAEF,YADAnZ,KAAK8a,KAAKqY,EAAQI,GAGlB,KAEJ,CAAO,GAAa,MAAT5xB,EAET,YADA3B,KAAKqc,KAAK8W,GAEL,GAAa,MAATxxB,EAAc,CACvB3B,KAAK8yB,UAAUtB,KAAK2B,EAAOlvB,OAC3B+T,GAAM,EACN,KACF,CAAoB,MAATrW,IACTwX,GAAQ,EAEZ,MAAWxX,IAASkxB,EAASA,EAAS/zB,OAAS,KAC7C+zB,EAAS5uB,MACe,IAApB4uB,EAAS/zB,SAAcu1B,EAAU,OAEvC5C,EAAQzxB,KAAK8yB,UAAUnB,WACzB,CAGA,GAFI3xB,KAAK8yB,UAAUpB,cAAa1Z,GAAM,GAClC6a,EAAS/zB,OAAS,GAAGkB,KAAKs0B,gBAAgBD,GAC1Crc,GAAOmB,EAAO,CAChB,IAAKoa,EACH,KAAOJ,EAAOr0B,SACZ2yB,EAAQ0B,EAAOA,EAAOr0B,OAAS,GAAG,GACpB,UAAV2yB,GAA+B,YAAVA,IACzBzxB,KAAK8yB,UAAUtB,KAAK2B,EAAOlvB,OAG/BjE,KAAK8a,KAAKqY,EAAQI,EACpB,MACEvzB,KAAKyzB,YAAYN,EAErB,CACA,KAAAoB,GACE,IAAI9C,EACJ,MAAQzxB,KAAK8yB,UAAUpB,aAErB,OADAD,EAAQzxB,KAAK8yB,UAAUnB,YACfF,EAAM,IACZ,IAAK,QACHzxB,KAAKwyB,QAAUf,EAAM,GACrB,MACF,IAAK,IACHzxB,KAAKo0B,cAAc3C,GACnB,MACF,IAAK,IACHzxB,KAAKgY,IAAIyZ,GACT,MACF,IAAK,UACHzxB,KAAKwQ,QAAQihB,GACb,MACF,IAAK,UACHzxB,KAAK2Z,OAAO8X,GACZ,MACF,IAAK,IACHzxB,KAAKg0B,UAAUvC,GACf,MACF,QACEzxB,KAAKjE,MAAM01B,GAIjBzxB,KAAKk0B,SACP,CACA,uBAAAP,GACA,CACA,GAAAtZ,CAAIpZ,EAAO+Z,EAAMmY,EAAQI,GACvB,IAAI9B,EAAO9vB,EAIP2c,EAAMM,EAHN9f,EAASq0B,EAAOr0B,OAChBjH,EAAQ,GACR28B,GAAQ,EAEZ,IAAK,IAAI5vB,EAAK,EAAGA,EAAK9F,EAAQ8F,GAAM,EAClC6sB,EAAQ0B,EAAOvuB,GACfjD,EAAO8vB,EAAM,GACA,UAAT9vB,GAAoBiD,IAAO9F,EAAS,GAAMy0B,EAE1B,YAAT5xB,GACTid,EAAOuU,EAAOvuB,EAAK,GAAKuuB,EAAOvuB,EAAK,GAAG,GAAK,QAC5C0Z,EAAO6U,EAAOvuB,EAAK,GAAKuuB,EAAOvuB,EAAK,GAAG,GAAK,QACvCshC,GAAsBtnB,IAAUsnB,GAAsB5nB,IACjC,MAApBzmB,EAAMgM,OAAM,GAMhB2wB,GAAQ,EAHN38B,GAAS45B,EAAM,IAMnB55B,GAAS45B,EAAM,GAdf+C,GAAQ,EAiBZ,IAAKA,EAAO,CACV,IAAIna,EAAM8Y,EAAOsB,OAAO,CAACC,EAAK9vB,IAAO8vB,EAAM9vB,EAAG,GAAI,IAClD3D,EAAM6Y,KAAKkB,GAAQ,CAAEX,MAAKxiB,QAC5B,CACAoJ,EAAM+Z,GAAQnjB,CAChB,CACA,IAAAwkB,CAAK8W,GACHA,EAAOlvB,MACP,IAAIhD,EAAQ,IAAIglC,GAChBjmC,KAAK4yB,KAAK3xB,EAAOkyB,EAAO,GAAG,IAC3BlyB,EAAM6Y,KAAKI,QAAUla,KAAKgzB,yBAAyBG,GACnDnzB,KAAKqa,IAAIpZ,EAAO,WAAYkyB,GAC5BnzB,KAAKgwB,QAAU/uB,CACjB,CACA,wBAAA+xB,CAAyBG,GACvB,IAAIwB,EACAnC,EAAS,GACb,KAAOW,EAAOr0B,SACZ61B,EAAgBxB,EAAOA,EAAOr0B,OAAS,GAAG,GACpB,UAAlB61B,GAA+C,YAAlBA,IACjCnC,EAASW,EAAOlvB,MAAM,GAAKuuB,EAE7B,OAAOA,CACT,CAEA,0BAAAS,CAA2BE,GACzB,IAAI7U,EACAkU,EAAS,GACb,KAAOW,EAAOr0B,SACZwf,EAAO6U,EAAO,GAAG,GACJ,UAAT7U,GAA6B,YAATA,IACxBkU,GAAUW,EAAOT,QAAQ,GAE3B,OAAOF,CACT,CACA,aAAAqB,CAAcV,GACZ,IAAIwB,EACAnC,EAAS,GACb,KAAOW,EAAOr0B,SACZ61B,EAAgBxB,EAAOA,EAAOr0B,OAAS,GAAG,GACpB,UAAlB61B,IACJnC,EAASW,EAAOlvB,MAAM,GAAKuuB,EAE7B,OAAOA,CACT,CACA,UAAAoB,CAAWT,EAAQh1B,GACjB,IAAIghB,EAAU,GACd,IAAK,IAAIva,EAAKzG,EAAMyG,EAAKuuB,EAAOr0B,OAAQ8F,IACtCua,GAAWgU,EAAOvuB,GAAI,GAGxB,OADAuuB,EAAOrI,OAAO3sB,EAAMg1B,EAAOr0B,OAASX,GAC7BghB,CACT,CACA,aAAAgV,GACE,IAAIjtB,EAAMlH,KAAKgwB,QAAQtzB,OAAOqb,MAC9B,MAAM/X,KAAKyd,MAAMhf,MAAM,iBAAkByI,EAAI4P,KAAM5P,EAAI6P,OACzD,CACA,eAAAud,CAAgBD,GACd,MAAMr0B,KAAKyd,MAAMhf,MACf,mBACA,CAAE8lB,OAAQ8P,EAAQ,IAClB,CAAE9P,OAAQ8P,EAAQ,GAAK,GAE3B,CACA,eAAAJ,CAAgBxC,GACd,MAAMzxB,KAAKyd,MAAMhf,MACf,eACA,CAAE8lB,OAAQkN,EAAM,IAChB,CAAElN,OAAQkN,EAAM,GAAK,GAEzB,CACA,WAAAgC,CAAYN,GACV,MAAMnzB,KAAKyd,MAAMhf,MACf,eACA,CAAE8lB,OAAQ4O,EAAO,GAAG,IACpB,CAAE5O,OAAQ4O,EAAO,GAAG,GAAKA,EAAO,GAAG,GAAGr0B,QAE1C,CACA,aAAA6zB,CAAc1xB,EAAOwwB,GACnB,MAAMzxB,KAAKyd,MAAMhf,MACf,uBACA,CAAE8lB,OAAQkN,EAAM,IAChB,CAAElN,OAAQkN,EAAM,GAAKA,EAAM,GAAG3yB,QAElC,GAGF,IAAIsnC,GAActD,GACduD,GAAWvO,GACXwO,GAAU7oB,GACd,SAAS8oB,GAAQ5uB,EAAKsG,GACpB,IAAI0B,EAAS,IAAI2mB,GAAQ3uB,EAAKsG,GAC1B+W,EAAU,IAAIqR,GAAS1mB,GAC3B,IACEqV,EAAQT,OACV,CAAE,MAAO9rB,GAYP,KAX6B,eAAzBwsB,QAAQC,IAAIC,UACE,mBAAZ1sB,EAAG9L,MAA6BshB,GAAQA,EAAK9f,OAC3C,WAAWwF,KAAKsa,EAAK9f,MACvBsK,EAAGoO,SAAW,iGACL,UAAUlT,KAAKsa,EAAK9f,MAC7BsK,EAAGoO,SAAW,iGACL,WAAWlT,KAAKsa,EAAK9f,QAC9BsK,EAAGoO,SAAW,mGAIdpO,CACR,CACA,OAAOusB,EAAQ3Z,IACjB,CACA,IAAImrB,GAAUD,GACdA,GAAQ1yB,QAAU0yB,GAClBH,GAAYza,cAAc4a,IAC1B,IAAI7tB,QAAEA,GAAOC,GAAEA,IAAO+mB,GAClB+G,GAAiB3E,GACjB4E,GAAc3G,GACd4G,GAAc7D,GACd8D,GAAazD,GACb0D,GAAaxD,GACbyD,GAAW/O,GACXgP,GAAUP,GACVQ,GAAS3rB,GACb,MAAM4rB,GAAqB,CACzBttB,OAAQ,SACRnJ,QAAS,UACTsK,KAAM,cACN3gB,SAAU,WACVkhB,KAAM,OACNgB,KAAM,QAEF6qB,GAAe,CACnBjR,QAAQ,EACRC,YAAY,EACZhmB,SAAS,EACTimB,aAAa,EACbC,aAAa,EACbC,iBAAiB,EACjBvsB,UAAU,EACVwsB,cAAc,EACdC,MAAM,EACNC,UAAU,EACVlJ,eAAe,EACfmJ,SAAS,EACTC,MAAM,EACNC,UAAU,EACVC,MAAM,EACNC,UAAU,GAENsQ,GAAe,CACnB5Q,MAAM,EACNjJ,eAAe,EACfmJ,SAAS,GAGX,SAAS2Q,GAAUzvC,GACjB,MAAsB,iBAARA,GAAwC,mBAAbA,EAAIq/B,IAC/C,CACA,SAASqQ,GAAUpmC,GACjB,IAAIrJ,GAAM,EACN+J,EAAOslC,GAAmBhmC,EAAMU,MAMpC,MALmB,SAAfV,EAAMU,KACR/J,EAAMqJ,EAAM+Z,KAAKjZ,cACO,WAAfd,EAAMU,OACf/J,EAAMqJ,EAAMtE,KAAKoF,eAEfnK,GAAOqJ,EAAMqc,OACR,CACL3b,EACAA,EAAO,IAAM/J,EAfF,EAiBX+J,EAAO,OACPA,EAAO,QAAU/J,GAEVA,EACF,CAAC+J,EAAMA,EAAO,IAAM/J,EAAK+J,EAAO,OAAQA,EAAO,QAAU/J,GACvDqJ,EAAMqc,OACR,CAAC3b,EAvBK,EAuBWA,EAAO,QAExB,CAACA,EAAMA,EAAO,OAEzB,CACA,SAAS2lC,GAAQrmC,GACf,IAAIk2B,EAQJ,OANEA,EADiB,aAAfl2B,EAAMU,KACC,CAAC,WA/BG,EA+BmB,gBACR,SAAfV,EAAMU,KACN,CAAC,OAjCG,EAiCe,YAEnB0lC,GAAUpmC,GAEd,CACLm2B,WAAY,EACZD,SACA/M,SAAU,EACVrK,KAAM9e,EACNo2B,aAAc,EACdC,SAAU,GAEd,CACA,SAASiQ,GAAWtmC,GAGlB,OAFAA,EAAMyX,KAAW,EACbzX,EAAM+Y,OAAO/Y,EAAM+Y,MAAMnZ,QAAS+D,GAAO2iC,GAAW3iC,IACjD3D,CACT,CACA,IAAIumC,GAAY,CAAA,EACZC,GAAe,MAAMC,EACvB,WAAAlrC,CAAY0wB,EAAYvV,EAAKsG,GAG3B,IAAI7C,EACJ,GAHApb,KAAK23B,aAAc,EACnB33B,KAAK43B,WAAY,EAEE,iBAARjgB,GAA4B,OAARA,GAA8B,SAAbA,EAAIhW,MAAgC,aAAbgW,EAAIhW,KAEpE,GAAIgW,aAAe+vB,GAAe/vB,aAAemvB,GACtD1rB,EAAQmsB,GAAW5vB,EAAI0D,MACnB1D,EAAIO,WACkB,IAAb+F,EAAK/F,MAAqB+F,EAAK/F,IAAM,CAAA,GAC3C+F,EAAK/F,IAAIqJ,SAAQtD,EAAK/F,IAAIqJ,QAAS,GACxCtD,EAAK/F,IAAI0G,KAAOjH,EAAIO,SAEjB,CACL,IAAI8c,EAAU+R,GACV9oB,EAAK4Z,SAAQ7C,EAAU/W,EAAK4Z,OAAOtD,OACnCtW,EAAK6Z,SAAQ9C,EAAU/W,EAAK6Z,QAC5B9C,EAAQT,QAAOS,EAAUA,EAAQT,OACrC,IACEnZ,EAAQ4Z,EAAQrd,EAAKsG,EACvB,CAAE,MAAOxf,GACPuB,KAAK43B,WAAY,EACjB53B,KAAKvB,MAAQA,CACf,CACI2c,IAAUA,EAAMzC,KAClBguB,GAAY1b,QAAQ7P,EAExB,MAtBEA,EAAQmsB,GAAW5vB,GAuBrB3X,KAAK+3B,OAAS,IAAI+O,GAAS5Z,EAAY9R,EAAO6C,GAC9Cje,KAAKg4B,QAAU,IAAKwP,GAAWvP,QAASuP,GAAWzP,OAAQ/3B,KAAK+3B,QAChE/3B,KAAKk4B,QAAUl4B,KAAKmtB,UAAU+K,QAAQhgB,IAAKjB,GACjB,iBAAbA,GAAyBA,EAASwf,QACpC,IAAKxf,KAAaA,EAASwf,QAAQz2B,KAAK+3B,SAExC9gB,EAGb,CACA,KAAAkhB,GACE,OAAIn4B,KAAKvB,MAAc25B,QAAQC,OAAOr4B,KAAKvB,OACvCuB,KAAK43B,UAAkBQ,QAAQzU,QAAQ3jB,KAAK+3B,SAC3C/3B,KAAKs4B,aACRt4B,KAAKs4B,WAAat4B,KAAKu4B,YAElBv4B,KAAKs4B,WACd,CACA,MAAME,GACJ,OAAOx4B,KAAKm4B,QAAQM,MAAMD,EAC5B,CACA,QAAQE,GACN,OAAO14B,KAAKm4B,QAAQnB,KAAK0B,EAAWA,EACtC,CACA,aAAAC,GACE,MAAM,IAAI/hB,MAAM,uDAClB,CACA,WAAAgiB,CAAYn6B,EAAOwC,GACjB,IAAIgW,EAAWjX,KAAK+3B,OAAO1K,WAC3B,IAGE,GAFIpsB,GAAOA,EAAMsc,WAAW9e,GAC5BuB,KAAKvB,MAAQA,EACM,mBAAfA,EAAM9B,MAA8B8B,EAAM2Y,QAGvC,GAAIH,EAAS4hB,gBACW,eAAzB5D,QAAQC,IAAIC,SAA2B,CACzC,IAAI2D,EAAa7hB,EAASqW,cACtByL,EAAY9hB,EAAS4hB,eACrBG,EAAah5B,KAAK+3B,OAAO5K,UAAU8L,QACnCnyB,EAAKiyB,EAAUl6B,MAAM,KACrBq6B,EAAIF,EAAWn6B,MAAM,MACrBiI,EAAG,KAAOoyB,EAAE,IAAMC,SAASryB,EAAG,IAAMqyB,SAASD,EAAE,MACjD3rB,QAAQ9O,MACN,sEAAwEu6B,EAAa,SAAWF,EAAa,SAAWC,EAAY,mDAG1I,OAdAt6B,EAAM2Y,OAASH,EAASqW,cACxB7uB,EAAM8Y,YAeV,CAAE,MAAO3U,GACH2K,SAAWA,QAAQ9O,OAAO8O,QAAQ9O,MAAMmE,EAC9C,CACA,OAAOnE,CACT,CACA,eAAA26B,GACEp5B,KAAKq5B,UAAY,CAAA,EACjB,IAAIn4B,EAAM,CAAC+V,EAAUtV,EAAM+oB,KACpB1qB,KAAKq5B,UAAU13B,KAAO3B,KAAKq5B,UAAU13B,GAAQ,IAClD3B,KAAKq5B,UAAU13B,GAAMxC,KAAK,CAAC8X,EAAUyT,KAEvC,IAAK,IAAIzT,KAAYjX,KAAKk4B,QACxB,GAAwB,iBAAbjhB,EACT,IAAK,IAAIqiB,KAASriB,EAAU,CAC1B,IAAKiwB,GAAa5N,IAAU,SAAS31B,KAAK21B,GACxC,MAAM,IAAI1iB,MACR,iBAAiB0iB,QAAYriB,EAASqW,yCAAyCttB,KAAKmtB,UAAU8L,iBAGlG,IAAKkO,GAAa7N,GAChB,GAA+B,iBAApBriB,EAASqiB,GAClB,IAAK,IAAI7L,KAAUxW,EAASqiB,GAExBp4B,EAAI+V,EADS,MAAXwW,EACY6L,EAIZA,EAAQ,IAAM7L,EAAO1rB,cAJFkV,EAASqiB,GAAO7L,QASL,mBAApBxW,EAASqiB,IACzBp4B,EAAI+V,EAAUqiB,EAAOriB,EAASqiB,GAGpC,CAGJt5B,KAAKu5B,YAAc/hC,OAAOiJ,KAAKT,KAAKq5B,WAAWv6B,OAAS,CAC1D,CACA,cAAMy5B,GACJv4B,KAAKoX,OAAS,EACd,IAAK,IAAIxS,EAAK,EAAGA,EAAK5E,KAAKk4B,QAAQp5B,OAAQ8F,IAAM,CAC/C,IAAIqS,EAAWjX,KAAKk4B,QAAQtzB,GACxB40B,EAAUx5B,KAAKy5B,UAAUxiB,GAC7B,GAAImwB,GAAU5N,GACZ,UACQA,CACR,CAAE,MAAO/6B,GACP,MAAMuB,KAAK44B,YAAYn6B,EACzB,CAEJ,CAEA,GADAuB,KAAKo5B,kBACDp5B,KAAKu5B,YAAa,CACpB,IAAIne,EAAQpb,KAAK+3B,OAAO1c,KACxB,MAAQD,EAAM1C,KAAU,CACtB0C,EAAM1C,KAAW,EACjB,IAAI3U,EAAQ,CAACujC,GAAQlsB,IACrB,KAAOrX,EAAMjF,OAAS,GAAG,CACvB,IAAI06B,EAAUx5B,KAAK05B,UAAU31B,GAC7B,GAAIqjC,GAAU5N,GACZ,UACQA,CACR,CAAE,MAAO/wB,GACP,IAAIxH,EAAQ8C,EAAMA,EAAMjF,OAAS,GAAGihB,KACpC,MAAM/f,KAAK44B,YAAYnwB,EAAIxH,EAC7B,CAEJ,CACF,CACA,GAAIjB,KAAKq5B,UAAU7C,SACjB,IAAK,IAAKvf,EAAU0iB,KAAY35B,KAAKq5B,UAAU7C,SAAU,CACvDx2B,KAAK+3B,OAAO1K,WAAapW,EACzB,IACE,GAAmB,aAAfmE,EAAMzZ,KAAqB,CAC7B,IAAIi4B,EAAQxe,EAAMpB,MAAM9B,IACrB2hB,GAAYF,EAAQE,EAAS75B,KAAKg4B,gBAE/BI,QAAQ1D,IAAIkF,EACpB,YACQD,EAAQve,EAAOpb,KAAKg4B,QAE9B,CAAE,MAAOvvB,GACP,MAAMzI,KAAK44B,YAAYnwB,EACzB,CACF,CAEJ,CAEA,OADAzI,KAAK43B,WAAY,EACV53B,KAAKf,WACd,CACA,SAAAw6B,CAAUxiB,GACRjX,KAAK+3B,OAAO1K,WAAapW,EACzB,IACE,GAAwB,iBAAbA,GAAyBA,EAASsf,KAAM,CACjD,GAA8B,aAA1Bv2B,KAAK+3B,OAAO1c,KAAK1Z,KAAqB,CACxC,IAAIi4B,EAAQ55B,KAAK+3B,OAAO1c,KAAKrB,MAAM9B,IAChCkD,GAAUnE,EAASsf,KAAKnb,EAAOpb,KAAKg4B,UAEvC,OAAIoP,GAAUxN,EAAM,IACXxB,QAAQ1D,IAAIkF,GAEdA,CACT,CACA,OAAO3iB,EAASsf,KAAKv2B,KAAK+3B,OAAO1c,KAAMrb,KAAKg4B,QAC9C,CAAO,GAAwB,mBAAb/gB,EAChB,OAAOA,EAASjX,KAAK+3B,OAAO1c,KAAMrb,KAAK+3B,OAE3C,CAAE,MAAOt5B,GACP,MAAMuB,KAAK44B,YAAYn6B,EACzB,CACF,CACA,SAAAQ,GACE,GAAIe,KAAKvB,MAAO,MAAMuB,KAAKvB,MAC3B,GAAIuB,KAAK23B,YAAa,OAAO33B,KAAK+3B,OAClC/3B,KAAK23B,aAAc,EACnB33B,KAAK85B,OACL,IAAI7b,EAAOje,KAAK+3B,OAAO9Z,KACnBhc,EAAMykC,GACNzoB,EAAK4Z,SAAQ51B,EAAMgc,EAAK4Z,OAAO54B,WAC/Bgf,EAAK8b,cAAa93B,EAAMgc,EAAK8b,aAC7B93B,EAAIhD,YAAWgD,EAAMA,EAAIhD,WAC7B,IACI+M,EADM,IAAIy6B,GAAexkC,EAAKjC,KAAK+3B,OAAO1c,KAAMrb,KAAK+3B,OAAO9Z,MACjDwJ,WAGf,OAFAznB,KAAK+3B,OAAOpgB,IAAM3L,EAAK,GACvBhM,KAAK+3B,OAAO7f,IAAMlM,EAAK,GAChBhM,KAAK+3B,MACd,CACA,IAAA+B,GACE,GAAI95B,KAAKvB,MAAO,MAAMuB,KAAKvB,MAC3B,GAAIuB,KAAK43B,UAAW,OAAO53B,KAAK+3B,OAEhC,GADA/3B,KAAK43B,WAAY,EACb53B,KAAKs4B,WACP,MAAMt4B,KAAK24B,gBAEb,IAAK,IAAI1hB,KAAYjX,KAAKk4B,QAAS,CAEjC,GAAIkP,GADUpnC,KAAKy5B,UAAUxiB,IAE3B,MAAMjX,KAAK24B,eAEf,CAEA,GADA34B,KAAKo5B,kBACDp5B,KAAKu5B,YAAa,CACpB,IAAIne,EAAQpb,KAAK+3B,OAAO1c,KACxB,MAAQD,EAAM1C,KACZ0C,EAAM1C,KAAW,EACjB1Y,KAAKg6B,SAAS5e,GAEhB,GAAIpb,KAAKq5B,UAAU7C,SACjB,GAAmB,aAAfpb,EAAMzZ,KACR,IAAK,IAAIk4B,KAAWze,EAAMpB,MACxBha,KAAKi6B,UAAUj6B,KAAKq5B,UAAU7C,SAAUqD,QAG1C75B,KAAKi6B,UAAUj6B,KAAKq5B,UAAU7C,SAAUpb,EAG9C,CACA,OAAOpb,KAAK+3B,MACd,CACA,IAAAf,CAAKkD,EAAa1B,GAQhB,MAP6B,eAAzBvD,QAAQC,IAAIC,WACR,SAAUn1B,KAAKie,MACnB4oB,GACE,4KAIC7mC,KAAKm4B,QAAQnB,KAAKkD,EAAa1B,EACxC,CACA,QAAA5+B,GACE,OAAOoG,KAAK2X,GACd,CACA,SAAAsiB,CAAU3C,EAAUr2B,GAClB,IAAK,IAAKgW,EAAU0iB,KAAYrC,EAAU,CAExC,IAAIkC,EADJx5B,KAAK+3B,OAAO1K,WAAapW,EAEzB,IACEuiB,EAAUG,EAAQ14B,EAAOjB,KAAKg4B,QAChC,CAAE,MAAOvvB,GACP,MAAMzI,KAAK44B,YAAYnwB,EAAIxH,EAAM+e,QACnC,CACA,GAAmB,SAAf/e,EAAMU,MAAkC,aAAfV,EAAMU,OAAwBV,EAAMuO,OAC/D,OAAO,EAET,GAAI43B,GAAU5N,GACZ,MAAMx5B,KAAK24B,eAEf,CACF,CACA,SAAAe,CAAU31B,GACR,IAAIo2B,EAASp2B,EAAMA,EAAMjF,OAAS,IAC5BihB,KAAM9e,EAAKq2B,SAAEA,GAAa6C,EAChC,GAAmB,SAAfl5B,EAAMU,MAAkC,aAAfV,EAAMU,OAAwBV,EAAMuO,OAE/D,YADAzL,EAAME,MAGR,GAAIqzB,EAASx4B,OAAS,GAAKq7B,EAAO9C,aAAeC,EAASx4B,OAAQ,CAChE,IAAKmY,EAAU0iB,GAAWrC,EAAS6C,EAAO9C,cAC1C8C,EAAO9C,cAAgB,EACnB8C,EAAO9C,eAAiBC,EAASx4B,SACnCq7B,EAAO7C,SAAW,GAClB6C,EAAO9C,aAAe,GAExBr3B,KAAK+3B,OAAO1K,WAAapW,EACzB,IACE,OAAO0iB,EAAQ14B,EAAMmd,UAAWpe,KAAKg4B,QACvC,CAAE,MAAOvvB,GACP,MAAMzI,KAAK44B,YAAYnwB,EAAIxH,EAC7B,CACF,CACA,GAAwB,IAApBk5B,EAAO/P,SAAgB,CACzB,IACI1P,EADA0P,EAAW+P,EAAO/P,SAEtB,KAAO1P,EAAQzZ,EAAM+Y,MAAM/Y,EAAMqpB,QAAQF,KAEvC,GADAnpB,EAAMqpB,QAAQF,IAAa,GACtB1P,EAAMhC,IAGT,OAFAgC,EAAMhC,KAAW,OACjB3U,EAAM5E,KAAKmoC,GAAQ5sB,IAIvByf,EAAO/P,SAAW,SACXnpB,EAAMqpB,QAAQF,EACvB,CACA,IAAI+M,EAASgD,EAAOhD,OACpB,KAAOgD,EAAO/C,WAAaD,EAAOr4B,QAAQ,CACxC,IAAIw6B,EAAQnC,EAAOgD,EAAO/C,YAE1B,GADA+C,EAAO/C,YAAc,EAxWV,IAyWPkC,EAKF,YAJIr4B,EAAM+Y,OAAS/Y,EAAM+Y,MAAMlb,SAC7BmC,EAAMyX,KAAW,EACjByhB,EAAO/P,SAAWnpB,EAAMopB,gBAGrB,GAAIrqB,KAAKq5B,UAAUC,GAExB,YADAa,EAAO7C,SAAWt3B,KAAKq5B,UAAUC,GAGrC,CACAv1B,EAAME,KACR,CACA,QAAA+1B,CAAS/4B,GACPA,EAAMyX,KAAW,EACjB,IAAIye,EAASkQ,GAAUpmC,GACvB,IAAK,IAAIq4B,KAASnC,EAChB,GA1XW,IA0XPmC,EACEr4B,EAAM+Y,OACR/Y,EAAMipB,KAAMxP,IACLA,EAAMhC,KAAU1Y,KAAKg6B,SAAStf,SAGlC,CACL,IAAI4c,EAAWt3B,KAAKq5B,UAAUC,GAC9B,GAAIhC,GACEt3B,KAAKi6B,UAAU3C,EAAUr2B,EAAMmd,WAAY,MAEnD,CAEJ,CACA,QAAAoP,GACE,OAAOxtB,KAAK85B,OAAOtM,UACrB,CACA,WAAIzG,GACF,OAAO/mB,KAAKf,YAAY8nB,OAC1B,CACA,OAAIpP,GACF,OAAO3X,KAAKf,YAAY0Y,GAC1B,CACA,OAAIO,GACF,OAAOlY,KAAKf,YAAYiZ,GAC1B,CACA,YAAIkV,GACF,OAAOptB,KAAK85B,OAAO1M,QACrB,CACA,QAAInP,GACF,OAAOje,KAAK+3B,OAAO9Z,IACrB,CACA,aAAIkP,GACF,OAAOntB,KAAK+3B,OAAO5K,SACrB,CACA,QAAI9R,GACF,OAAOrb,KAAK85B,OAAOze,IACrB,CACA,IAAK/E,OAAOC,eACV,MAAO,YACT,GAEFkxB,GAAarN,gBAAmBxO,IAC9B4b,GAAY5b,GAEd,IAAI+b,GAAaF,GACjBA,GAAa5zB,QAAU4zB,GACvBT,GAAOza,mBAAmBkb,IAC1Bb,GAAWra,mBAAmBkb,IAC9B,IAAIG,GAAiB9F,GACjB+F,GAAc9H,GACd+H,GAAazE,GACb0E,GAAUvB,GACd,MAAMwB,GAAWjQ,GACjB,IAAIkQ,GAAiB,MACnB,WAAAzrC,CAAY0wB,EAAYvV,EAAKsG,GAO3B,IAAI7C,EANJzD,EAAMA,EAAI/d,WACVoG,KAAK23B,aAAc,EACnB33B,KAAK46B,WAAa1N,EAClBltB,KAAK66B,KAAOljB,EACZ3X,KAAK86B,MAAQ7c,EACbje,KAAK+6B,UAAO,EAEZ,IAAI94B,EAAM4lC,GACV7nC,KAAK+3B,OAAS,IAAIiQ,GAAShoC,KAAK46B,WAAYxf,EAAOpb,KAAK86B,OACxD96B,KAAK+3B,OAAOpgB,IAAMA,EAClB,IAAIqjB,EAAOh7B,KACXxI,OAAOC,eAAeuI,KAAK+3B,OAAQ,OAAQ,CACzCp+B,IAAG,IACMqhC,EAAK3f,OAGhB,IAAInD,EAAM,IAAI0vB,GAAe3lC,EAAKmZ,EAAOpb,KAAK86B,MAAOnjB,GACrD,GAAIO,EAAIqK,QAAS,CACf,IAAK0Y,EAAcC,GAAgBhjB,EAAIuP,WACnCwT,IACFj7B,KAAK+3B,OAAOpgB,IAAMsjB,GAEhBC,IACFl7B,KAAK+3B,OAAO7f,IAAMgjB,EAEtB,MACEhjB,EAAIsP,kBACJxnB,KAAK+3B,OAAOpgB,IAAMO,EAAIP,GAE1B,CACA,KAAAwgB,GACE,OAAIn4B,KAAKvB,MAAc25B,QAAQC,OAAOr4B,KAAKvB,OACpC25B,QAAQzU,QAAQ3jB,KAAK+3B,OAC9B,CACA,MAAMS,GACJ,OAAOx4B,KAAKm4B,QAAQM,MAAMD,EAC5B,CACA,QAAQE,GACN,OAAO14B,KAAKm4B,QAAQnB,KAAK0B,EAAWA,EACtC,CACA,IAAAoB,GACE,GAAI95B,KAAKvB,MAAO,MAAMuB,KAAKvB,MAC3B,OAAOuB,KAAK+3B,MACd,CACA,IAAAf,CAAKkD,EAAa1B,GAQhB,MAP6B,eAAzBvD,QAAQC,IAAIC,WACR,SAAUn1B,KAAK86B,OACnBgN,GACE,4KAIC9nC,KAAKm4B,QAAQnB,KAAKkD,EAAa1B,EACxC,CACA,QAAA5+B,GACE,OAAOoG,KAAK66B,IACd,CACA,QAAArN,GACE,MAAO,EACT,CACA,WAAIzG,GACF,OAAO/mB,KAAK+3B,OAAOpgB,GACrB,CACA,OAAIA,GACF,OAAO3X,KAAK+3B,OAAOpgB,GACrB,CACA,OAAIO,GACF,OAAOlY,KAAK+3B,OAAO7f,GACrB,CACA,YAAIkV,GACF,MAAO,EACT,CACA,QAAInP,GACF,OAAOje,KAAK+3B,OAAO9Z,IACrB,CACA,aAAIkP,GACF,OAAOntB,KAAK+3B,OAAO5K,SACrB,CACA,QAAI9R,GACF,GAAIrb,KAAKm7B,MACP,OAAOn7B,KAAKm7B,MAEd,IAAI/f,EACA4Z,EAAU+S,GACd,IACE3sB,EAAQ4Z,EAAQh1B,KAAK66B,KAAM76B,KAAK86B,MAClC,CAAE,MAAOr8B,GACPuB,KAAKvB,MAAQA,CACf,CACA,GAAIuB,KAAKvB,MACP,MAAMuB,KAAKvB,MAGX,OADAuB,KAAKm7B,MAAQ/f,EACNA,CAEX,CACA,IAAK9E,OAAOC,eACV,MAAO,cACT,GAEF,IAAI2xB,GAAeD,GACnBA,GAAep0B,QAAUo0B,GACzB,IAAIE,GAAiBD,GACjBE,GAAeT,GACfU,GAAalF,GACbmF,GAASjtB,GACTktB,GAAc,MAChB,WAAA/rC,CAAY07B,EAAU,IACpBl4B,KAAKi5B,QAAU,SACfj5B,KAAKk4B,QAAUl4B,KAAKiqB,UAAUiO,EAChC,CACA,SAAAjO,CAAUiO,GACR,IAAIwD,EAAa,GACjB,IAAK,IAAI92B,KAAMszB,EAMb,IALmB,IAAftzB,EAAGqzB,QACLrzB,EAAKA,IACIA,EAAGqzB,UACZrzB,EAAKA,EAAGqzB,SAEQ,iBAAPrzB,GAAmB1G,MAAMgf,QAAQtY,EAAGszB,SAC7CwD,EAAaA,EAAW3H,OAAOnvB,EAAGszB,cAC7B,GAAkB,iBAAPtzB,GAAmBA,EAAG0oB,cACtCoO,EAAWv8B,KAAKyF,QACX,GAAkB,mBAAPA,EAChB82B,EAAWv8B,KAAKyF,OACX,IAAkB,iBAAPA,IAAoBA,EAAG2vB,QAAS3vB,EAAG3F,UAOnD,MAAM,IAAI2X,MAAMhS,EAAK,4BANrB,GAA6B,eAAzBqwB,QAAQC,IAAIC,SACd,MAAM,IAAIve,MACR,iKAKN,CAEF,OAAO8kB,CACT,CACA,OAAAzG,CAAQtd,EAAKsG,EAAO,IAClB,OAAKje,KAAKk4B,QAAQp5B,QAAWmf,EAAK6Z,QAAW7Z,EAAK8b,aAAgB9b,EAAK4Z,OAG9D,IAAIuQ,GAAapoC,KAAM2X,EAAKsG,GAF5B,IAAIkqB,GAAenoC,KAAM2X,EAAKsG,EAIzC,CACA,GAAA0d,CAAI1kB,GAEF,OADAjX,KAAKk4B,QAAUl4B,KAAKk4B,QAAQnE,OAAO/zB,KAAKiqB,UAAU,CAAChT,KAC5CjX,IACT,GAEF,IAAImtB,GAAYob,GAChBA,GAAY10B,QAAU00B,GACtBD,GAAO9b,kBAAkB+b,IACzBF,GAAW7b,kBAAkB+b,IAC7B,IAAIC,GAAgB/H,GAChBgI,GAAgB1H,GAChB2H,GAAYl4B,GACZm4B,GAAWvK,GACXwK,GAAUnrB,GACVorB,GAASxtB,GACTytB,GAASzsB,GACb,SAAS0sB,GAAW1jB,EAAM/F,GACxB,GAAIphB,MAAMgf,QAAQmI,GAAO,OAAOA,EAAKnN,IAAKzc,GAAOstC,GAAWttC,IAC5D,IAAM6jB,OAAQ+c,KAAcjf,GAAaiI,EACzC,GAAIgX,EAAW,CACb/c,EAAS,GACT,IAAK,IAAIK,KAAU0c,EAAW,CAC5B,IAAIC,EAAgB,IAAK3c,EAAQtJ,UAAWuyB,GAAQ1vC,WAChDojC,EAAcpkB,MAChBokB,EAAcpkB,IAAM,IACfokB,EAAcpkB,IACjB7B,UAAWoyB,GAAcvvC,YAG7BomB,EAAOngB,KAAKm9B,EACd,CACF,CAIA,GAHIlf,EAASpD,QACXoD,EAASpD,MAAQqL,EAAKrL,MAAM9B,IAAKzc,GAAOstC,GAAWttC,EAAI6jB,KAErDlC,EAAS1gB,OAAQ,CACnB,IAAIgjB,QAAEA,KAAYhjB,GAAW0gB,EAAS1gB,OACtC0gB,EAAS1gB,OAASA,EACH,MAAXgjB,IACFtC,EAAS1gB,OAAO+gB,MAAQ6B,EAAOI,GAEnC,CACA,GAAsB,SAAlBtC,EAASzb,KACX,OAAO,IAAIknC,GAAOzrB,GACb,GAAsB,SAAlBA,EAASzb,KAClB,OAAO,IAAI6mC,GAAcprB,GACpB,GAAsB,SAAlBA,EAASzb,KAClB,OAAO,IAAImnC,GAAO1rB,GACb,GAAsB,YAAlBA,EAASzb,KAClB,OAAO,IAAI+mC,GAAUtrB,GAChB,GAAsB,WAAlBA,EAASzb,KAClB,OAAO,IAAIgnC,GAASvrB,GAEpB,MAAM,IAAIxG,MAAM,sBAAwByO,EAAK1jB,KAEjD,CACA,IAAIqnC,GAAaD,GACjBA,GAAWl1B,QAAUk1B,GACrB,IAAIE,GAAmBxJ,GACnByJ,GAAgBzI,GAChB0I,GAAexB,GACfyB,GAActG,GACduG,GAAclc,GACdluB,GAAY8gC,GACZ7B,GAAW8K,GACXM,GAAcnG,GACdoG,GAAYhG,GACZiG,GAAYh5B,GACZi5B,GAAWrL,GACXsL,GAAW3R,GACX4R,GAAUlsB,GACV8W,GAAQiS,GACRrI,GAAOqH,GACPoE,GAASvtB,GACTwtB,GAASxuB,GACTyuB,GAAS/pB,GACb,SAASkY,MAAWC,GAIlB,OAHuB,IAAnBA,EAAQp5B,QAAgBZ,MAAMgf,QAAQgb,EAAQ,MAChDA,EAAUA,EAAQ,IAEb,IAAImR,GAAYnR,EACzB,CACAD,GAAQ7gB,OAAS,SAAiBza,EAAMghC,GACtC,IAkBI7J,EAlBA8J,GAAiB,EACrB,SAASC,KAAWpT,GACdld,SAAWA,QAAQC,OAASowB,IAC9BA,GAAiB,EACjBrwB,QAAQC,KACN7Q,EAAO,qHAELs4B,QAAQC,IAAI4I,MAAQ7I,QAAQC,IAAI4I,KAAK/2B,WAAW,OAClDwG,QAAQC,KACN7Q,EAAO,uEAIb,IAAIohC,EAAcJ,KAAelT,GAGjC,OAFAsT,EAAYzQ,cAAgB3wB,EAC5BohC,EAAYlF,gBAAiB,IAAIwQ,IAAcpQ,QACxC8E,CACT,CAWA,OATAvmC,OAAOC,eAAeomC,EAAS,UAAW,CACxClkC,IAAG,KACIm6B,IAAOA,EAAQ+J,KACb/J,KAGX+J,EAAQ5I,QAAU,SAAStd,EAAKqmB,EAAaC,GAC3C,OAAOhG,GAAQ,CAAC4F,EAAQI,KAAchJ,QAAQtd,EAAKqmB,EACrD,EACOH,CACT,EACA5F,GAAQh5B,UAAYA,GACpBg5B,GAAQ1D,MAAQA,GAChB0D,GAAQiG,SAAWA,GACnBjG,GAAQkG,KAAOA,GACflG,GAAQznB,QAAW4M,GAAa,IAAIosB,GAAUpsB,GAC9C6a,GAAQmG,OAAUhhB,GAAa,IAAIqsB,GAASrsB,GAC5C6a,GAAQnd,KAAQsC,GAAa,IAAI8rB,GAAc9rB,GAC/C6a,GAAQ5b,KAAQe,GAAa,IAAIwsB,GAAOxsB,GACxC6a,GAAQ5c,KAAQ+B,GAAa,IAAIysB,GAAOzsB,GACxC6a,GAAQ99B,SAAYijB,GAAa,IAAIksB,GAAYlsB,GACjD6a,GAAQthB,eAAiBsyB,GACzBhR,GAAQ7B,YAAc8S,GACtBjR,GAAQlO,UAAYqf,GACpBnR,GAAQoG,UAAYgL,GACpBpR,GAAQnuB,SAAWw/B,GACnBrR,GAAQ/nB,QAAUs5B,GAClBvR,GAAQqG,QAAUiL,GAClBtR,GAAQhC,OAASwT,GACjBxR,GAAQsG,OAASmL,GACjBzR,GAAQuG,MAAQmL,GAChB1R,GAAQrB,KAAOgT,GACf3R,GAAQvB,KAAOmT,GACf5R,GAAQz/B,KAAOsxC,GACfX,GAAa/O,gBAAgBnC,IAC7B,IAAI8R,GAAY9R,GAChBA,GAAQpkB,QAAUokB,GAClB,MAAM+R,GAA4BlL,GAAwBiL,IAC1DC,GAAU/qC,UACV+qC,GAAU9L,SACV8L,GAAU5yB,OACV4yB,GAAUzV,MACVyV,GAAU7L,KACV6L,GAAU7vC,SACV6vC,GAAUx5B,QACVw5B,GAAU5L,OACV4L,GAAU3tB,KACV2tB,GAAUlvB,KACVkvB,GAAU3uB,KACV2uB,GAAUrzB,eACVqzB,GAAU5T,YACV4T,GAAUjgB,UACVigB,GAAU3L,UACV2L,GAAUlgC,SACVkgC,GAAU95B,QACV85B,GAAU1L,QACV0L,GAAU/T,OACV+T,GAAUzL,OACVyL,GAAUxL,MACVwL,GAAUpT,KACVoT,GAAUtT,KACVsT,GAAUxxC,KACV,MAAMyxC,GAEJ,WAAAztC,IAAe0tC,GACbtL,GAAe5+B,KAAM,gBAAiB,MACtC4+B,GAAe5+B,KAAM,aAAc,MACnC4+B,GAAe5+B,KAAM,iBACrB4+B,GAAe5+B,KAAM,aAAc,MACnC4+B,GAAe5+B,KAAM,YAAa,MAClC4+B,GAAe5+B,KAAM,kBAAmB,MACxC4+B,GAAe5+B,KAAM,cAAe,MACpC4+B,GAAe5+B,KAAM,eAAgB,GACrC4+B,GAAe5+B,KAAM,YAAa,GAClC4+B,GAAe5+B,KAAM,YACrB4+B,GAAe5+B,KAAM,YACrB4+B,GAAe5+B,KAAM,aACvB,CACA,cAAItE,GACF,MAAM6I,EAAc,GACpB,IAAI4lC,EAAgBnqC,KAAKoqC,WACzB,KAAOD,GACL5lC,EAAYpF,KAAKgrC,GACjBA,EAAgBA,EAAcE,YAEhC,OAAO9lC,CACT,CACA,QAAAzI,CAASmF,GACP,KAAMA,aAAiBgpC,IAAa,OAAO,EACtC,GAAIhpC,EAAMzF,gBAAkBwE,KAAKxE,cAAe,OAAO,EACvD,GAAIyF,IAAUjB,KAAM,OAAO,EAChC,KAAOiB,EAAMtF,YAAY,CACvB,GAAIsF,EAAMtF,aAAeqE,KAAM,OAAO,EACtCiB,EAAQA,EAAMtF,UAChB,CACA,OAAO,CACT,CAEA,WAAArB,CAAYgwC,GACV,MAAM,IAAI1zB,MACR,8GAEJ,CAEA,YAAAgH,CAAa0sB,EAAWC,GACtB,MAAM,IAAI3zB,MACR,+GAEJ,CAEA,WAAAlc,CAAY8vC,GACV,MAAM,IAAI5zB,MACR,8GAEJ,CACA,QAAAhd,GACE,MAAO,QACT,EAEF,MAAM6wC,GAAoB,CACxBjyC,KAAM,CACJ,aACA,aACA,gBACA,cACA,iBAEFC,WAAY,CAAC,OAAQ,eACrBC,QAAS,CAAC,aAAc,gBAAiB,oBACzCC,iBAAkB,IAEd+xC,GAAkB,CACtBlyC,KAAM,CAAC,WAAY,eACnBC,WAAY,CAAC,gBACbC,QAAS,GACTC,iBAAkB,CAAC,gBAEfgyC,GAAyB,CAAA,EAI/B,SAASC,GAAsBhzC,GAC7B,GAAI+yC,GAAuB/yC,GACzB,OAAO+yC,GAAuB/yC,GAChC,MAAMmB,EAAaC,WAAWpB,GACxBqB,EAAmBF,EAAWG,UAC9BC,EAAgBvB,KAAO6yC,GAAoBA,GAAkB7yC,QAAO,EACpEwB,EAAuBC,QAC3BF,GACAA,EAAcG,MACXC,IACC,IAAIC,EAAKC,EACT,OAAOJ,QACoG,OAAxGI,EAA4E,OAAtED,EAAMhC,OAAOkC,yBAAyBT,EAAkBM,SAAqB,EAASC,EAAIG,UAAe,EAASF,EAAGG,WAAWC,SAAS,qBAKlJC,EAAclC,KAAO8yC,GAAkBA,GAAgB9yC,QAAO,EAC9DmC,EAAqBV,QACzBS,GAAeA,EAAYR,MAExBU,IACC,IAAIR,EACJ,MAA2C,mBAA7BP,EAAiBe,KAA+D,OAAnCR,EAAMP,EAAiBe,SAAmB,EAASR,EAAII,WAAWC,SAAS,qBAI5I,GAAIT,GAAwBW,IA7BnBf,WAAWiB,KA+BlB,OADA0wC,GAAuB/yC,GAAOmB,EAAWG,UAClCH,EAAWG,UAEpB,IACE,MAAMgB,EAAWC,SAASC,cAAc,UACxCD,SAASE,KAAKC,YAAYJ,GAC1B,MAAMK,EAAML,EAASM,cACrB,IAAKD,EAAK,OAAOxB,EAAWG,UAC5B,MAAMuB,EAAkBF,EAAI3C,GAAKsB,UAEjC,OADAiB,SAASE,KAAKK,YAAYR,GACrBO,EACEkwC,GAAuB/yC,GAAO6C,EADRxB,CAE/B,CAAE,MACA,OAAOA,CACT,CACF,CACA,MAAM4xC,GAAyB,CAAA,EAC/B,SAASC,GAAqBlzC,EAAKiD,EAAUtB,GAC3C,IAAIC,EACJ,MAAMsB,EAAW,GAAGlD,KAAOmD,OAAOxB,KAClC,GAAIsxC,GAAuB/vC,GACzB,OAAO+vC,GAAuB/vC,GAAUE,KACtCH,GAEJ,MAAMI,EAAqB2vC,GAAsBhzC,GAC3CsD,EAGA,OAHqB1B,EAAMhC,OAAOkC,yBACtCuB,EACA1B,SACW,EAASC,EAAIG,IAC1B,OAAKuB,GACL2vC,GAAuB/vC,GAAYI,EAC5BA,EAAkBF,KAAKH,IAFCA,EAAStB,EAG1C,CACA,MAAMwxC,GAAuB,CAAA,EAC7B,SAASC,GAAmBpzC,EAAKiD,EAAUb,GACzC,MAAMc,EAAW,GAAGlD,KAAOmD,OAAOf,KAClC,GAAI+wC,GAAqBjwC,GACvB,OAAOiwC,GAAqBjwC,GAAUO,KACpCR,GAEJ,MACMS,EADqBsvC,GAAsBhzC,GACNoC,GAC3C,MAA+B,mBAApBsB,EAAuCT,EAASb,IAC3D+wC,GAAqBjwC,GAAYQ,EAC1BA,EAAgBD,KAAKR,GAC9B,CAuCA,SAASowC,KACP,OAAOL,GAAsB,oBAAoBpuC,WACnD,CACA,SAASC,GAAMC,EAAQC,EAAMC,GAC3B,IACE,KAAMD,KAAQD,GACZ,MAAO,OAGT,MAAMG,EAAWH,EAAOC,GAClBG,EAAUF,EAAYC,GAW5B,MAVuB,mBAAZC,IACTA,EAAQ5D,UAAY4D,EAAQ5D,WAAa,CAAA,EACzC1B,OAAOuF,iBAAiBD,EAAS,CAC/BE,mBAAoB,CAClBlF,YAAY,EACZD,MAAOgF,MAIbH,EAAOC,GAAQG,EACR,KACLJ,EAAOC,GAAQE,EAEnB,CAAE,MACA,MAAO,MAET,CACF,CACA,MAAM0hB,GAAQ,CACZ/iB,cApEF,SAAuBC,GACrB,OAAOqvC,GAAqB,OAAQrvC,EAAI,gBAC1C,EAmEEC,WAlEF,SAAoBD,GAClB,OAAOqvC,GAAqB,OAAQrvC,EAAI,aAC1C,EAiEEE,WAhEF,SAAoBF,GAClB,OAAOqvC,GAAqB,OAAQrvC,EAAI,aAC1C,EA+DEG,cA9DF,SAAuBH,GACrB,OAAOqvC,GAAqB,OAAQrvC,EAAI,gBAC1C,EA6DEI,YA5DF,SAAqBJ,GACnB,OAAOqvC,GAAqB,OAAQrvC,EAAI,cAC1C,EA2DEK,SA1DF,SAAkBL,EAAIM,GACpB,OAAOivC,GAAmB,OAAQvvC,EAAI,WAA/BuvC,CAA2CjvC,EACpD,EAyDEC,YAxDF,SAAqBP,GACnB,OAAOuvC,GAAmB,OAAQvvC,EAAI,cAA/BuvC,EACT,EAuDE/uC,KAtDF,SAAcR,GACZ,OAAKA,GAAQ,SAAUA,EAChBqvC,GAAqB,aAAcrvC,EAAI,QADX,IAErC,EAoDES,YAnDF,SAAqBT,GACnB,OAAOA,EAAGS,WACZ,EAkDEC,WAjDF,SAAoBV,GAClB,OAAKA,GAAQ,eAAgBA,EACtBqvC,GAAqB,UAAWrvC,EAAI,cADF,IAE3C,EA+CEW,cA9CF,SAAuBX,EAAIY,GACzB,OAAOyuC,GAAqB,UAAWrvC,EAAI,gBAApCqvC,CAAqDzuC,EAC9D,EA6CEC,iBA5CF,SAA0Bb,EAAIY,GAC5B,OAAOyuC,GAAqB,UAAWrvC,EAAI,mBAApCqvC,CAAwDzuC,EACjE,EA2CEE,iBAAkB0uC,GAClBxuC,UAEF,SAASyuC,GAAGvpC,EAAMwpC,EAAIC,EAASjxC,UAC7B,MAAMwO,EAAU,CAAE0iC,SAAS,EAAMC,SAAS,GAE1C,OADAF,EAAO99B,iBAAiB3L,EAAMwpC,EAAIxiC,GAC3B,IAAMyiC,EAAOn+B,oBAAoBtL,EAAMwpC,EAAIxiC,EACpD,CACA,MAAM4iC,GAAiC,4NACvC,IAAIC,GAAU,CACZtzB,IAAK,CAAA,EACL/X,MAAK,KACHoN,QAAQ9O,MAAM8sC,KACP,GAETjrC,QAAO,KACLiN,QAAQ9O,MAAM8sC,IACP,MAET,iBAAA5qC,GACE4M,QAAQ9O,MAAM8sC,GAChB,EACAxqC,IAAG,KACDwM,QAAQ9O,MAAM8sC,KACP,GAET,KAAAjqC,GACEiM,QAAQ9O,MAAM8sC,GAChB,GAYF,SAASE,GAASxb,EAAMyb,EAAM/iC,EAAU,CAAA,GACtC,IAAIgjC,EAAU,KACVtkB,EAAW,EACf,OAAO,YAAYoD,GACjB,MAAMmhB,EAAMC,KAAKD,MACZvkB,IAAgC,IAApB1e,EAAQmjC,UACvBzkB,EAAWukB,GAEb,MAAMG,EAAYL,GAAQE,EAAMvkB,GAC1B2kB,EAAUhsC,KACZ+rC,GAAa,GAAKA,EAAYL,GAC5BC,IACF74B,aAAa64B,GACbA,EAAU,MAEZtkB,EAAWukB,EACX3b,EAAK/b,MAAM83B,EAASvhB,IACVkhB,IAAgC,IAArBhjC,EAAQsjC,WAC7BN,EAAU94B,WAAW,KACnBwU,GAA+B,IAApB1e,EAAQmjC,QAAoB,EAAID,KAAKD,MAChDD,EAAU,KACV1b,EAAK/b,MAAM83B,EAASvhB,IACnBshB,GAEP,CACF,CACA,SAASG,GAAWd,EAAQxzC,EAAKuc,EAAGg4B,EAAW5xC,EAAMmI,QACnD,MAAM7F,EAAWtC,EAAI/C,OAAOkC,yBAAyB0xC,EAAQxzC,GAe7D,OAdA2C,EAAI/C,OAAOC,eACT2zC,EACAxzC,EACAu0C,EAAYh4B,EAAI,CACd,GAAA/S,CAAIvJ,GACFgb,WAAW,KACTsB,EAAE/S,IAAIpG,KAAKgF,KAAMnI,IAChB,GACCgF,GAAYA,EAASuE,KACvBvE,EAASuE,IAAIpG,KAAKgF,KAAMnI,EAE5B,IAGG,IAAMq0C,GAAWd,EAAQxzC,EAAKiF,GAAY,CAAA,GAAI,EACvD,CArDsB,oBAAX6F,QAA0BA,OAAOmd,OAASnd,OAAOqR,UAC1Dy3B,GAAU,IAAI3rB,MAAM2rB,GAAS,CAC3B7xC,IAAG,CAACyxC,EAAQpwB,EAAMoxB,KACH,QAATpxB,GACFzN,QAAQ9O,MAAM8sC,IAETx3B,QAAQpa,IAAIyxC,EAAQpwB,EAAMoxB,OAgDvC,IAAIC,GAAeR,KAAKD,IAIxB,SAASU,GAAgB/xC,GACvB,IAAIf,EAAKC,EAAI8yC,EAAIC,EACjB,MAAMlmC,EAAM/L,EAAIJ,SAChB,MAAO,CACLygB,KAAMtU,EAAImmC,iBAAmBnmC,EAAImmC,iBAAiBl+B,gBAAiC,IAApBhU,EAAImyC,YAAyBnyC,EAAImyC,YAAcpmC,EAAIqmC,gBAAgBp+B,aAAsB,MAAPjI,OAAc,EAASA,EAAIjM,QAAmD,OAAxCb,EAAM+kB,GAAM3iB,cAAc0K,EAAIjM,YAAiB,EAASb,EAAI+U,cAA0D,OAAzC9U,EAAY,MAAP6M,OAAc,EAASA,EAAIjM,WAAgB,EAASZ,EAAG8U,aAAe,EAC/Uq+B,IAAKtmC,EAAImmC,iBAAmBnmC,EAAImmC,iBAAiBh+B,eAAgC,IAApBlU,EAAIsyC,YAAyBtyC,EAAIsyC,aAAsB,MAAPvmC,OAAc,EAASA,EAAIqmC,gBAAgBl+B,aAAsB,MAAPnI,OAAc,EAASA,EAAIjM,QAAkD,OAAvCkyC,EAAKhuB,GAAM3iB,cAAc0K,EAAIjM,YAAiB,EAASkyC,EAAG99B,aAAyD,OAAzC+9B,EAAY,MAAPlmC,OAAc,EAASA,EAAIjM,WAAgB,EAASmyC,EAAG/9B,YAAc,EAErW,CACA,SAASq+B,KACP,OAAOpqC,OAAOqqC,aAAe5yC,SAASwyC,iBAAmBxyC,SAASwyC,gBAAgBK,cAAgB7yC,SAASE,MAAQF,SAASE,KAAK2yC,YACnI,CACA,SAASC,KACP,OAAOvqC,OAAOwqC,YAAc/yC,SAASwyC,iBAAmBxyC,SAASwyC,gBAAgBQ,aAAehzC,SAASE,MAAQF,SAASE,KAAK8yC,WACjI,CACA,SAASC,GAAqBnsC,GAC5B,IAAKA,EACH,OAAO,KAGT,OADWA,EAAM/D,WAAa+D,EAAM9D,aAAe8D,EAAQsd,GAAM3iB,cAAcqF,EAEjF,CACA,SAASosC,GAAUpsC,EAAO6H,EAAYC,EAAef,GACnD,IAAK/G,EACH,OAAO,EAET,MAAM0F,EAAKymC,GAAqBnsC,GAChC,IAAK0F,EACH,OAAO,EAET,IACE,GAA0B,iBAAfmC,EAAyB,CAClC,GAAInC,EAAGuB,UAAUpM,SAASgN,GAAa,OAAO,EAC9C,GAAId,GAAmD,OAAjCrB,EAAG4B,QAAQ,IAAMO,GAAsB,OAAO,CACtE,MACE,GAAIf,GAAkBpB,EAAImC,EAAYd,GAAiB,OAAO,CAElE,CAAE,MAAOS,GACT,CACA,GAAIM,EAAe,CACjB,GAAIpC,EAAG6B,QAAQO,GAAgB,OAAO,EACtC,GAAIf,GAAgD,OAA9BrB,EAAG4B,QAAQQ,GAAyB,OAAO,CACnE,CACA,OAAO,CACT,CAIA,SAASukC,GAAU7xC,EAAIoN,EAASuI,GAC9B,QAAmB,UAAf3V,EAAGiG,UAAuB0P,EAAeH,sBA3pQ1B,IA8pQZpI,EAAQ1I,MAAM1E,EACvB,CACA,SAAS8xC,GAAkBnC,EAAQviC,GACjC,GAAIzL,EAAaguC,GACf,OAAO,EAET,MAAM/qC,EAAKwI,EAAQ1I,MAAMirC,GACzB,IAAKviC,EAAQ9H,IAAIV,GACf,OAAO,EAET,MAAMmP,EAAS+O,GAAM5iB,WAAWyvC,GAChC,QAAI57B,GAAUA,EAAOtS,WAAakuC,EAAOxhC,kBAGpC4F,GAGE+9B,GAAkB/9B,EAAQ3G,GACnC,CACA,SAAS2kC,GAAoBlU,GAC3B,OAAOjgC,QAAQigC,EAAMmU,eACvB,CASA,SAASC,GAAmBjyC,EAAIoN,GAC9B,OAAOxP,QAAwB,WAAhBoC,EAAGkyC,UAAyB9kC,EAAQzI,QAAQ3E,GAC7D,CACA,SAASmyC,GAAuBnyC,EAAIoN,GAClC,OAAOxP,QACW,SAAhBoC,EAAGkyC,UAAuBlyC,EAAGyB,WAAazB,EAAG0B,cAAgB1B,EAAGoR,cAA2C,eAA3BpR,EAAGoR,aAAa,QAA2BhE,EAAQzI,QAAQ3E,GAE/I,CACA,SAASoyC,GAAcpyC,GACrB,QAAKA,IACDA,aAAcwuC,IAAc,eAAgBxuC,EACvCpC,QAAQoC,EAAGU,YAEb9C,QAAQklB,GAAMpiB,WAAWV,IAClC,CAlGqB,iBAAiBkI,KAAKkoC,KAAKD,MAAMhyC,cACpDyyC,GAAe,KAAM,IAAqBR,MAAQiC,WAkGpD,MAAMC,GACJ,WAAAvxC,GACE9E,EAAcsI,KAAM,KAAM,GAC1BtI,EAAcsI,KAAM,aAA8B,IAAIE,SACtDxI,EAAcsI,KAAM,aAA8B,IAAIC,IACxD,CACA,KAAAE,CAAMwK,GACJ,OAAO3K,KAAKguC,WAAWr0C,IAAIgR,KAAe,CAC5C,CACA,GAAA5J,CAAI4J,GACF,OAAO3K,KAAKguC,WAAWjtC,IAAI4J,EAC7B,CAIA,GAAAzJ,CAAIyJ,EAAYtK,GACd,GAAIL,KAAKe,IAAI4J,GAAa,OAAO3K,KAAKG,MAAMwK,GAC5C,IAAIsjC,EAMJ,OAJEA,OADS,IAAP5tC,EACML,KAAKK,KACAA,EACfL,KAAKguC,WAAW5sC,IAAIuJ,EAAYsjC,GAChCjuC,KAAKkuC,WAAW9sC,IAAI6sC,EAAOtjC,GACpBsjC,CACT,CACA,QAAAE,CAAS9tC,GACP,OAAOL,KAAKkuC,WAAWv0C,IAAI0G,IAAO,IACpC,CACA,KAAAiB,GACEtB,KAAKguC,WAA6B,IAAI9tC,QACtCF,KAAKkuC,WAA6B,IAAIjuC,IACtCD,KAAKK,GAAK,CACZ,CACA,UAAA+tC,GACE,OAAOpuC,KAAKK,IACd,EAEF,SAASguC,GAAc5yC,GACrB,IAAIjC,EACJ,IAAI80C,EAAa,KAGjB,MAFI,gBAAiB7yC,IAAwC,OAAhCjC,EAAM+kB,GAAMviB,YAAYP,SAAe,EAASjC,EAAI0D,YAAc1E,KAAK+1C,wBAA0BhwB,GAAMtiB,KAAKsiB,GAAMviB,YAAYP,MACzJ6yC,EAAa/vB,GAAMtiB,KAAKsiB,GAAMviB,YAAYP,KACrC6yC,CACT,CAQA,SAASE,GAAgB/yC,GACvB,MAAM6K,EAAMiY,GAAM/iB,cAAcC,GAChC,IAAK6K,EAAK,OAAO,EACjB,MAAMgoC,EAVR,SAA2B7yC,GACzB,IACI6yC,EADAG,EAAiBhzC,EAErB,KAAO6yC,EAAaD,GAAcI,IAChCA,EAAiBH,EACnB,OAAOG,CACT,CAIqBC,CAAkBjzC,GACrC,OAAO8iB,GAAMziB,SAASwK,EAAKgoC,EAC7B,CACA,SAASK,GAAMlzC,GACb,MAAM6K,EAAMiY,GAAM/iB,cAAcC,GAChC,QAAK6K,IACEiY,GAAMziB,SAASwK,EAAK7K,IAAO+yC,GAAgB/yC,GACpD,CACA,IAAImzC,GAA4B,CAAEC,IAChCA,EAAWA,EAA6B,iBAAI,GAAK,mBACjDA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAyB,aAAI,GAAK,eAC7CA,EAAWA,EAAgC,oBAAI,GAAK,sBACpDA,EAAWA,EAAiB,KAAI,GAAK,OACrCA,EAAWA,EAAmB,OAAI,GAAK,SACvCA,EAAWA,EAAmB,OAAI,GAAK,SAChCA,GARuB,CAS7BD,IAAa,CAAA,GACZE,GAAoC,CAAEC,IACxCA,EAAmBA,EAA6B,SAAI,GAAK,WACzDA,EAAmBA,EAA8B,UAAI,GAAK,YAC1DA,EAAmBA,EAAqC,iBAAI,GAAK,mBACjEA,EAAmBA,EAA2B,OAAI,GAAK,SACvDA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAA8B,UAAI,GAAK,YAC1DA,EAAmBA,EAAqC,iBAAI,GAAK,mBACjEA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAAyB,KAAI,IAAM,OACtDA,EAAmBA,EAAwB,IAAI,IAAM,MACrDA,EAAmBA,EAAyB,KAAI,IAAM,OACtDA,EAAmBA,EAAqC,iBAAI,IAAM,mBAClEA,EAAmBA,EAA8B,UAAI,IAAM,YAC3DA,EAAmBA,EAAsC,kBAAI,IAAM,oBACnEA,EAAmBA,EAAkC,cAAI,IAAM,gBACxDA,GAlB+B,CAmBrCD,IAAqB,CAAA,GACpBE,GAAoC,CAAEC,IACxCA,EAAmBA,EAA4B,QAAI,GAAK,UACxDA,EAAmBA,EAA8B,UAAI,GAAK,YAC1DA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAAgC,YAAI,GAAK,cAC5DA,EAAmBA,EAA6B,SAAI,GAAK,WACzDA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAAyB,KAAI,GAAK,OACrDA,EAAmBA,EAA+B,WAAI,GAAK,aAC3DA,EAAmBA,EAAuC,mBAAI,GAAK,qBACnEA,EAAmBA,EAA6B,SAAI,GAAK,WACzDA,EAAmBA,EAAgC,YAAI,IAAM,cACtDA,GAZ+B,CAarCD,IAAqB,CAAA,GACpBE,GAA+B,CAAEC,IACnCA,EAAcA,EAAqB,MAAI,GAAK,QAC5CA,EAAcA,EAAmB,IAAI,GAAK,MAC1CA,EAAcA,EAAqB,MAAI,GAAK,QACrCA,GAJ0B,CAKhCD,IAAgB,CAAA,GACfE,GAAgC,CAAEC,IACpCA,EAAeA,EAAe,MAAQ,GAAK,KAC3CA,EAAeA,EAAsB,MAAI,GAAK,QAC9CA,EAAeA,EAAuB,OAAI,GAAK,SACxCA,GAJ2B,CAKjCD,IAAiB,CAAA,GAChBE,GAAoC,CAAEC,IACxCA,EAAmBA,EAAyB,KAAI,GAAK,OACrDA,EAAmBA,EAA0B,MAAI,GAAK,QACtDA,EAAmBA,EAA2B,OAAI,GAAK,SACvDA,EAAmBA,EAAiC,aAAI,GAAK,eAC7DA,EAAmBA,EAA+B,WAAI,GAAK,aACpDA,GAN+B,CAOrCD,IAAqB,CAAA,GACpBE,GAA2B,CAAEl3C,IAC/BA,EAAUA,EAAoB,SAAI,GAAK,WACvCA,EAAUA,EAAwB,aAAI,GAAK,eAC3CA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAgB,KAAI,GAAK,OACnCA,EAAUA,EAAiB,MAAI,GAAK,QACpCA,EAAUA,EAAmB,QAAI,GAAK,UAC/BA,GAPsB,CAQ5Bk3C,IAAY,CAAA,GACf,SAASC,GAAmBh0C,GAC1B,MAAO,SAAUA,CACnB,CACA,MAAMi0C,GACJ,WAAAlzC,GACE9E,EAAcsI,KAAM,SAAU,GAC9BtI,EAAcsI,KAAM,OAAQ,MAC5BtI,EAAcsI,KAAM,OAAQ,KAC9B,CACA,GAAArG,CAAIq4B,GACF,GAAIA,GAAYhyB,KAAKlB,OACnB,MAAM,IAAI8X,MAAM,kCAElB,IAAIoZ,EAAUhwB,KAAK2vC,KACnB,IAAK,IAAIx3B,EAAS,EAAGA,EAAS6Z,EAAU7Z,IACtC6X,GAAsB,MAAXA,OAAkB,EAASA,EAAQ1R,OAAS,KAEzD,OAAO0R,CACT,CACA,OAAA4f,CAAQn0C,GACN,MAAMwF,EAAQ,CACZpJ,MAAO4D,EACP4rB,SAAU,KACV/I,KAAM,MAGR,GADA7iB,EAAGo0C,KAAO5uC,EACNxF,EAAGq0C,iBAAmBL,GAAmBh0C,EAAGq0C,iBAAkB,CAChE,MAAM9f,EAAUv0B,EAAGq0C,gBAAgBD,KAAKvxB,KACxCrd,EAAMqd,KAAO0R,EACb/uB,EAAMomB,SAAW5rB,EAAGq0C,gBAAgBD,KACpCp0C,EAAGq0C,gBAAgBD,KAAKvxB,KAAOrd,EAC3B+uB,IACFA,EAAQ3I,SAAWpmB,EAEvB,MAAO,GAAIxF,EAAG4uC,aAAeoF,GAAmBh0C,EAAG4uC,cAAgB5uC,EAAG4uC,YAAYwF,KAAKxoB,SAAU,CAC/F,MAAM2I,EAAUv0B,EAAG4uC,YAAYwF,KAAKxoB,SACpCpmB,EAAMomB,SAAW2I,EACjB/uB,EAAMqd,KAAO7iB,EAAG4uC,YAAYwF,KAC5Bp0C,EAAG4uC,YAAYwF,KAAKxoB,SAAWpmB,EAC3B+uB,IACFA,EAAQ1R,KAAOrd,EAEnB,MACMjB,KAAK2vC,OACP3vC,KAAK2vC,KAAKtoB,SAAWpmB,GAEvBA,EAAMqd,KAAOte,KAAK2vC,KAClB3vC,KAAK2vC,KAAO1uC,EAEK,OAAfA,EAAMqd,OACRte,KAAK+vC,KAAO9uC,GAEdjB,KAAKlB,QACP,CACA,UAAAkxC,CAAWv0C,GACT,MAAMu0B,EAAUv0B,EAAGo0C,KACd7vC,KAAK2vC,OAGL3f,EAAQ3I,UAQX2I,EAAQ3I,SAAS/I,KAAO0R,EAAQ1R,KAC5B0R,EAAQ1R,KACV0R,EAAQ1R,KAAK+I,SAAW2I,EAAQ3I,SAEhCrnB,KAAK+vC,KAAO/f,EAAQ3I,WAXtBrnB,KAAK2vC,KAAO3f,EAAQ1R,KAChBte,KAAK2vC,KACP3vC,KAAK2vC,KAAKtoB,SAAW,KAErBrnB,KAAK+vC,KAAO,MAUZt0C,EAAGo0C,aACEp0C,EAAGo0C,KAEZ7vC,KAAKlB,SACP,EAEF,MAAMmxC,GAAU,CAAC5vC,EAAI6vC,IAAa,GAAG7vC,KAAM6vC,IAC3C,MAAMC,GACJ,WAAA3zC,GACE9E,EAAcsI,KAAM,UAAU,GAC9BtI,EAAcsI,KAAM,UAAU,GAC9BtI,EAAcsI,KAAM,QAAS,IAC7BtI,EAAcsI,KAAM,aAAc,IAClCtI,EAAcsI,KAAM,eAAgC,IAAIE,SACxDxI,EAAcsI,KAAM,UAAW,IAC/BtI,EAAcsI,KAAM,aAAc,IAClCtI,EAAcsI,KAAM,WAAY,IAChCtI,EAAcsI,KAAM,WAA4B,IAAIowC,KACpD14C,EAAcsI,KAAM,WAA4B,IAAIowC,KACpD14C,EAAcsI,KAAM,aAA8B,IAAIowC,KACtD14C,EAAcsI,KAAM,sBAAuC,IAAIowC,KAC/D14C,EAAcsI,KAAM,cACpBtI,EAAcsI,KAAM,cACpBtI,EAAcsI,KAAM,iBACpBtI,EAAcsI,KAAM,iBACpBtI,EAAcsI,KAAM,oBACpBtI,EAAcsI,KAAM,oBACpBtI,EAAcsI,KAAM,oBACpBtI,EAAcsI,KAAM,cACpBtI,EAAcsI,KAAM,eACpBtI,EAAcsI,KAAM,mBACpBtI,EAAcsI,KAAM,gBACpBtI,EAAcsI,KAAM,gBACpBtI,EAAcsI,KAAM,kBACpBtI,EAAcsI,KAAM,kBACpBtI,EAAcsI,KAAM,OACpBtI,EAAcsI,KAAM,UACpBtI,EAAcsI,KAAM,iBACpBtI,EAAcsI,KAAM,qBACpBtI,EAAcsI,KAAM,oBACpBtI,EAAcsI,KAAM,iBACpBtI,EAAcsI,KAAM,wBACpBtI,EAAcsI,KAAM,iBACpBtI,EAAcsI,KAAM,mBAAqBqwC,IACvCA,EAAUxvC,QAAQb,KAAKswC,iBACvBtwC,KAAKuwC,SAEP74C,EAAcsI,KAAM,OAAQ,KAC1B,GAAIA,KAAKwwC,QAAUxwC,KAAKywC,OACtB,OAEF,MAAMC,EAAO,GACPC,EAA2B,IAAIP,IAC/BQ,EAAU,IAAIlB,GACdmB,EAAap1C,IACjB,IAAIq1C,EAAKr1C,EACLs1C,GAp9QS,EAq9Qb,MAr9Qa,IAq9QNA,GACLD,EAAKA,GAAMA,EAAGzG,YACd0G,EAASD,GAAM9wC,KAAK4I,OAAOzI,MAAM2wC,GAEnC,OAAOC,GAEHC,EAAWv1C,IACf,MAAM+T,EAAS+O,GAAM5iB,WAAWF,GAChC,IAAK+T,IAAWm/B,GAAMlzC,GACpB,OAEF,IAAI+N,GAAc,EAClB,GAAI/N,EAAGyB,WAAa1E,KAAK+W,UAAW,CAClC,MAAM0hC,EAAYzhC,EAAO9N,QACzB,GAAkB,aAAduvC,EACF,OACuB,UAAdA,GAAyBjxC,KAAKkxC,SAASnwC,IAAIyO,KACpDhG,GAAc,EAElB,CACA,MAAM0mC,EAAW9yC,EAAaoS,GAAUxP,KAAK4I,OAAOzI,MAAMkuC,GAAc5yC,IAAOuE,KAAK4I,OAAOzI,MAAMqP,GAC3FuhC,EAASF,EAAUp1C,GACzB,IAAiB,IAAby0C,QAAmBa,EACrB,OAAOH,EAAQhB,QAAQn0C,GAEzB,MAAMmW,EAAKV,GAAoBzV,EAAI,CACjC6K,IAAKtG,KAAKsG,IACVsC,OAAQ5I,KAAK4I,OACbE,WAAY9I,KAAK8I,WACjBC,cAAe/I,KAAK+I,cACpBV,cAAerI,KAAKqI,cACpBC,iBAAkBtI,KAAKsI,iBACvB6I,WAAW,EACX5H,mBAAmB,EACnBN,iBAAkBjJ,KAAKiJ,iBACvBxH,iBAAkBzB,KAAKyB,iBACvByH,WAAYlJ,KAAKkJ,WACjBtH,YAAa5B,KAAK4B,YAClBwP,eAAgBpR,KAAKoR,eACrBjI,eAAgBnJ,KAAKmJ,eACrBE,aAAcrJ,KAAKqJ,aACnBD,aAAcpJ,KAAKoJ,aACnBiI,YAAc8/B,IACRzD,GAAmByD,EAAUnxC,KAAK4I,SACpC5I,KAAKoxC,cAAcC,UAAUF,GAE3BvD,GAAuBuD,EAAUnxC,KAAK4I,SACxC5I,KAAKsxC,kBAAkBC,iBACrBJ,GAGAtD,GAAcpyC,IAChBuE,KAAKwxC,iBAAiBC,cAAclzB,GAAMpiB,WAAWV,GAAKuE,KAAKsG,MAGnEgL,aAAc,CAACogC,EAAQC,KACrB3xC,KAAKoxC,cAAcQ,aAAaF,EAAQC,GACxC3xC,KAAKwxC,iBAAiBK,oBAAoBH,IAE5ClgC,iBAAkB,CAAC2B,EAAMw+B,KACvB3xC,KAAKsxC,kBAAkBQ,kBAAkB3+B,EAAMw+B,IAEjDnoC,gBAEEoI,IACF8+B,EAAKvxC,KAAK,CACR+wC,WACAa,SACAhxB,KAAMnO,IAER++B,EAASzvC,IAAI0Q,EAAGvR,MAGpB,KAAOL,KAAK+xC,WAAWjzC,QACrBkB,KAAK4I,OAAOjI,kBAAkBX,KAAK+xC,WAAWrf,SAEhD,IAAK,MAAMj3B,KAAMuE,KAAKgyC,SAChBC,GAAgBjyC,KAAKkyC,oBAAqBz2C,EAAIuE,KAAK4I,UAAY5I,KAAKgyC,SAASjxC,IAAIwd,GAAM5iB,WAAWF,KAGtGu1C,EAAQv1C,GAEV,IAAK,MAAMA,KAAMuE,KAAKkxC,SACfiB,GAAgBnyC,KAAKoyC,WAAY32C,IAAQw2C,GAAgBjyC,KAAKkyC,oBAAqBz2C,EAAIuE,KAAK4I,QAEtFupC,GAAgBnyC,KAAKgyC,SAAUv2C,GACxCu1C,EAAQv1C,GAERuE,KAAKoyC,WAAWlxC,IAAIzF,GAJpBu1C,EAAQv1C,GAOZ,IAAI42C,EAAY,KAChB,KAAOzB,EAAQ9xC,QAAQ,CACrB,IAAImC,EAAQ,KACZ,GAAIoxC,EAAW,CACb,MAAMnC,EAAWlwC,KAAK4I,OAAOzI,MAAMoe,GAAM5iB,WAAW02C,EAAUx6C,QACxDk5C,EAASF,EAAUwB,EAAUx6C,QAClB,IAAbq4C,QAAmBa,IACrB9vC,EAAQoxC,EAEZ,CACA,IAAKpxC,EAAO,CACV,IAAIqxC,EAAW1B,EAAQb,KACvB,KAAOuC,GAAU,CACf,MAAM9H,EAAQ8H,EAEd,GADAA,EAAWA,EAASjrB,SAChBmjB,EAAO,CACT,MAAM0F,EAAWlwC,KAAK4I,OAAOzI,MAAMoe,GAAM5iB,WAAW6uC,EAAM3yC,QAE1D,IAAe,IADAg5C,EAAUrG,EAAM3yC,OACZ,SACd,IAAiB,IAAbq4C,EAAiB,CACxBjvC,EAAQupC,EACR,KACF,CAAO,CACL,MAAM+H,EAAgB/H,EAAM3yC,MACtB2X,EAAS+O,GAAM5iB,WAAW42C,GAChC,GAAI/iC,GAAUA,EAAOtS,WAAa1E,KAAK+1C,uBAAwB,CAC7D,MAAMD,EAAa/vB,GAAMtiB,KAAKuT,GAE9B,IAAkB,IADAxP,KAAK4I,OAAOzI,MAAMmuC,GACd,CACpBrtC,EAAQupC,EACR,KACF,CACF,CACF,CACF,CACF,CACF,CACA,IAAKvpC,EAAO,CACV,KAAO2vC,EAAQjB,MACbiB,EAAQZ,WAAWY,EAAQjB,KAAK93C,OAElC,KACF,CACAw6C,EAAYpxC,EAAMomB,SAClBupB,EAAQZ,WAAW/uC,EAAMpJ,OACzBm5C,EAAQ/vC,EAAMpJ,MAChB,CACA,MAAM26C,EAAU,CACdC,MAAOzyC,KAAKyyC,MAAMv6B,IAAKrW,IACrB,MAAMpG,EAAKoG,EAAKke,KACVvQ,EAAS+O,GAAM5iB,WAAWF,GAIhC,OAHI+T,GAA6B,aAAnBA,EAAO9N,SACnB1B,KAAK0yC,yBAAyBljC,GAEzB,CACLnP,GAAIL,KAAK4I,OAAOzI,MAAM1E,GACtB5D,MAAOgK,EAAKhK,SAEb41B,OAAQ5rB,IAAU8uC,EAAS5vC,IAAIc,EAAKxB,KAAKotB,OAAQ5rB,GAAS7B,KAAK4I,OAAO7H,IAAIc,EAAKxB,KAClFmK,WAAYxK,KAAKwK,WAAW0N,IAAKy6B,IAC/B,MAAMnoC,WAAEA,GAAemoC,EACvB,GAAgC,iBAArBnoC,EAAWlG,MAAoB,CACxC,MAAMsuC,EAAY5zC,KAAKC,UAAU0zC,EAAUE,WACrCC,EAAiB9zC,KAAKC,UAAU0zC,EAAUI,kBAC5CH,EAAU9zC,OAAS0L,EAAWlG,MAAMxF,SACjC8zC,EAAYE,GAAgBj0C,MAAM,QAAQC,SAAW0L,EAAWlG,MAAMzF,MAAM,QAAQC,SACvF0L,EAAWlG,MAAQquC,EAAUE,UAGnC,CACA,MAAO,CACLxyC,GAAIL,KAAK4I,OAAOzI,MAAMwyC,EAAU5yB,MAChCvV,gBAEDijB,OAAQklB,IAAehC,EAAS5vC,IAAI4xC,EAAUtyC,KAAKotB,OAAQklB,GAAc3yC,KAAK4I,OAAO7H,IAAI4xC,EAAUtyC,KACtG2yC,QAAShzC,KAAKgzC,QACdtC,SAEG8B,EAAQC,MAAM3zC,QAAW0zC,EAAQhoC,WAAW1L,QAAW0zC,EAAQQ,QAAQl0C,QAAW0zC,EAAQ9B,KAAK5xC,UAGpGkB,KAAKyyC,MAAQ,GACbzyC,KAAKwK,WAAa,GAClBxK,KAAKizC,aAA+B,IAAI/yC,QACxCF,KAAKgzC,QAAU,GACfhzC,KAAKkxC,SAA2B,IAAId,IACpCpwC,KAAKgyC,SAA2B,IAAI5B,IACpCpwC,KAAKoyC,WAA6B,IAAIhC,IACtCpwC,KAAKkyC,oBAAsC,IAAI9B,IAC/CpwC,KAAKkzC,SAAW,CAAA,EAChBlzC,KAAKmzC,WAAWX,MAElB96C,EAAcsI,KAAM,2BAA6BozC,IAC/C,IAAIC,EAAOrzC,KAAKizC,aAAat5C,IAAIy5C,GAC5BC,IACHA,EAAO,CACLtzB,KAAMqzB,EACN5oC,WAAY,CAAA,EACZqoC,UAAW,CAAA,EACXE,iBAAkB,CAAA,GAEpB/yC,KAAKwK,WAAWrL,KAAKk0C,GACrBrzC,KAAKizC,aAAa7xC,IAAIgyC,EAAUC,IAElC,MAAMx7C,EAAQqG,MAAMC,KAClBogB,GAAM7iB,WAAW03C,GAChBE,GAAO/0B,GAAM1iB,YAAYy3C,IAAO,IACjCh1C,KAAK,IACP+0C,EAAK7oC,WAAW3S,MAAQ0J,EAAe,CACrCC,QAAS4xC,EACT3xC,iBAAkBzB,KAAKyB,iBACvBC,QAAS0xC,EAAS1xC,QAClBC,KAAMQ,EAAaixC,GACnBv7C,QACA+J,YAAa5B,KAAK4B,gBAGtBlK,EAAcsI,KAAM,kBAAoBuzC,IACtC,IAAIjG,GAAUiG,EAAEnI,OAAQprC,KAAK4I,OAAQ5I,KAAKoR,gBAG1C,OAAQmiC,EAAE5xC,MACR,IAAK,gBAAiB,CACpB,MAAM9J,EAAQ0mB,GAAM1iB,YAAY03C,EAAEnI,QAC7BiC,GAAUkG,EAAEnI,OAAQprC,KAAK8I,WAAY9I,KAAK+I,eAAe,IAAUlR,IAAU07C,EAAEC,UAClFxzC,KAAKyyC,MAAMtzC,KAAK,CACdtH,MAAOuQ,GACLmrC,EAAEnI,OACFprC,KAAKqI,cACLrI,KAAKsI,kBACL,IAEGzQ,EAAQmI,KAAKkJ,WAAalJ,KAAKkJ,WAAWrR,EAAOu1C,GAAqBmG,EAAEnI,SAAWvzC,EAAM2G,QAAQ,QAAS,KAAO3G,EACtHkoB,KAAMwzB,EAAEnI,SAGZ,KACF,CACA,IAAK,aAAc,CACjB,MAAMA,EAASmI,EAAEnI,OACjB,IAAIqI,EAAgBF,EAAEE,cAClB57C,EAAQ07C,EAAEnI,OAAOv+B,aAAa4mC,GAClC,GAAsB,UAAlBA,EAA2B,CAC7B,MAAM9xC,EAAOQ,EAAaipC,GAC1BvzC,EAAQ0J,EAAe,CACrBC,QAAS4pC,EACT3pC,iBAAkBzB,KAAKyB,iBACvBC,QAAS0pC,EAAO1pC,QAChBC,OACA9J,QACA+J,YAAa5B,KAAK4B,aAEtB,CACA,GAAIyrC,GAAUkG,EAAEnI,OAAQprC,KAAK8I,WAAY9I,KAAK+I,eAAe,IAAUlR,IAAU07C,EAAEC,SACjF,OAEF,IAAIH,EAAOrzC,KAAKizC,aAAat5C,IAAI45C,EAAEnI,QACnC,GAAuB,WAAnBA,EAAO1pC,SAA0C,QAAlB+xC,IAA4BzzC,KAAKsJ,gBAAgBzR,GAAQ,CAC1F,GAAKuzC,EAAOp8B,gBAGV,OAFAykC,EAAgB,QAIpB,CAcA,GAbKJ,IACHA,EAAO,CACLtzB,KAAMwzB,EAAEnI,OACR5gC,WAAY,CAAA,EACZqoC,UAAW,CAAA,EACXE,iBAAkB,CAAA,GAEpB/yC,KAAKwK,WAAWrL,KAAKk0C,GACrBrzC,KAAKizC,aAAa7xC,IAAImyC,EAAEnI,OAAQiI,IAEZ,SAAlBI,GAA+C,UAAnBrI,EAAO1pC,SAA4D,cAApC6xC,EAAEC,UAAY,IAAIzxC,eAC/EqpC,EAAOpkC,aAAa,sBAAuB,SAExCa,GAAgBujC,EAAO1pC,QAAS+xC,GAOnC,GANAJ,EAAK7oC,WAAWipC,GAAiBxsC,GAC/BjH,KAAKsG,IACLvE,EAAYqpC,EAAO1pC,SACnBK,EAAY0xC,GACZ57C,GAEoB,UAAlB47C,EAA2B,CAC7B,IAAKzzC,KAAK0zC,cACR,IACE1zC,KAAK0zC,cAAgBv5C,SAASw5C,eAAeC,oBAC/C,CAAE,MAAOnrC,GACPzI,KAAK0zC,cAAgB1zC,KAAKsG,GAC5B,CAEF,MAAMutC,EAAM7zC,KAAK0zC,cAAct5C,cAAc,QACzCm5C,EAAEC,UACJK,EAAI7sC,aAAa,QAASusC,EAAEC,UAE9B,IAAK,MAAMM,KAAS51C,MAAMC,KAAKitC,EAAO9mC,OAAQ,CAC5C,MAAMyvC,EAAW3I,EAAO9mC,MAAM0vC,iBAAiBF,GACzCG,EAAc7I,EAAO9mC,MAAM4vC,oBAAoBJ,GACjDC,IAAaF,EAAIvvC,MAAM0vC,iBAAiBF,IAAUG,IAAgBJ,EAAIvvC,MAAM4vC,oBAAoBJ,GAEhGT,EAAKR,UAAUiB,GADG,KAAhBG,EACsBF,EAEA,CAACA,EAAUE,GAGrCZ,EAAKN,iBAAiBe,GAAS,CAACC,EAAUE,EAE9C,CACA,IAAK,MAAMH,KAAS51C,MAAMC,KAAK01C,EAAIvvC,OACY,KAAzC8mC,EAAO9mC,MAAM0vC,iBAAiBF,KAChCT,EAAKR,UAAUiB,IAAS,EAG9B,KAA6B,SAAlBL,GAA+C,WAAnBrI,EAAO1pC,UACxC0pC,EAAO5iC,QAAQ,gBACjB6qC,EAAK7oC,WAAyB,aAAI,QAElC6oC,EAAK7oC,WAAyB,aAAI,aAIxC,KACF,CACA,IAAK,YACH,GAAI6iC,GAAUkG,EAAEnI,OAAQprC,KAAK8I,WAAY9I,KAAK+I,eAAe,GAC3D,OACF,GAAyB,aAArBwqC,EAAEnI,OAAO1pC,QAEX,YADA1B,KAAK0yC,yBAAyBa,EAAEnI,QAGlCmI,EAAEY,WAAWtzC,QAASpF,GAAOuE,KAAKo0C,QAAQ34C,EAAI83C,EAAEnI,SAChDmI,EAAEc,aAAaxzC,QAASpF,IACtB,MAAM64C,EAASt0C,KAAK4I,OAAOzI,MAAM1E,GAC3By0C,EAAW9yC,EAAam2C,EAAEnI,QAAUprC,KAAK4I,OAAOzI,MAAMoe,GAAMtiB,KAAKs3C,EAAEnI,SAAWprC,KAAK4I,OAAOzI,MAAMozC,EAAEnI,QACpGiC,GAAUkG,EAAEnI,OAAQprC,KAAK8I,WAAY9I,KAAK+I,eAAe,IAAUukC,GAAU7xC,EAAIuE,KAAK4I,OAAQ5I,KAAKoR,kBApoBnH,SAAsB3V,EAAIoN,GACxB,OAA6B,IAAtBA,EAAQ1I,MAAM1E,EACvB,CAkoBuI84C,CAAa94C,EAAIuE,KAAK4I,UAG7I5I,KAAKkxC,SAASnwC,IAAItF,IACpB+4C,GAAWx0C,KAAKkxC,SAAUz1C,GAC1BuE,KAAKoyC,WAAWlxC,IAAIzF,IACXuE,KAAKkxC,SAASnwC,IAAIwyC,EAAEnI,cAAWkJ,GACjC/G,GAAkBgG,EAAEnI,OAAQprC,KAAK4I,UACjC5I,KAAKgyC,SAASjxC,IAAItF,IAAOuE,KAAKkzC,SAASjD,GAAQqE,EAAQpE,IAC9DsE,GAAWx0C,KAAKgyC,SAAUv2C,IAE1BuE,KAAKgzC,QAAQ7zC,KAAK,CAChB+wC,WACA7vC,GAAIi0C,EACJ9hC,YAAUpV,EAAam2C,EAAEnI,UAAW9tC,EAAkBi2C,EAAEnI,eAAiB,IAiGzF,SAAwB3vC,EAAIq4B,GAC1B,MAAM2gB,EAAQ,CAACh5C,GACf,KAAOg5C,EAAM31C,QAAQ,CACnB,MAAMwf,EAAOm2B,EAAMxwC,MACf6vB,EAAM/yB,IAAIud,KACdwV,EAAM5yB,IAAIod,GACVC,GAAM7iB,WAAW4iB,GAAMzd,QAAS6zC,GAAQD,EAAMt1C,KAAKu1C,IACrD,CAEF,CAxGcC,CAAel5C,EAAIuE,KAAKkyC,uBAE1BlyC,KAAK+xC,WAAW5yC,KAAK1D,SAM7B/D,EAAcsI,KAAM,UAAW,CAACvE,EAAI2vC,KAClC,IAAIprC,KAAK40C,qBAAqBC,cAAcp5C,EAAIuE,QAC5CA,KAAKkxC,SAASnwC,IAAItF,KAAOuE,KAAKgyC,SAASjxC,IAAItF,GAA/C,CACA,GAAIuE,KAAK4I,OAAO5H,QAAQvF,GAAK,CAC3B,GAAI6xC,GAAU7xC,EAAIuE,KAAK4I,OAAQ5I,KAAKoR,gBAClC,OAEFpR,KAAKgyC,SAAS9wC,IAAIzF,GAClB,IAAIq5C,EAAW,KACX1J,GAAUprC,KAAK4I,OAAO5H,QAAQoqC,KAChC0J,EAAW90C,KAAK4I,OAAOzI,MAAMirC,IAE3B0J,QAAYA,IACd90C,KAAKkzC,SAASjD,GAAQjwC,KAAK4I,OAAOzI,MAAM1E,GAAKq5C,KAAa,EAE9D,MACE90C,KAAKkxC,SAAShwC,IAAIzF,GAClBuE,KAAKoyC,WAAWxxC,OAAOnF,GAEpB4xC,GAAU5xC,EAAIuE,KAAK8I,WAAY9I,KAAK+I,eAAe,KACtDwV,GAAM7iB,WAAWD,GAAIoF,QAASyR,GAAWtS,KAAKo0C,QAAQ9hC,IAClDu7B,GAAcpyC,IAChB8iB,GAAM7iB,WAAW6iB,GAAMpiB,WAAWV,IAAKoF,QAASyR,IAC9CtS,KAAK40C,qBAAqB1zC,IAAIoR,EAAQtS,MACtCA,KAAKo0C,QAAQ9hC,EAAQ7W,KAtByB,GA2BxD,CACA,IAAAm3B,CAAKjqB,GACH,CACE,aACA,aACA,gBACA,gBACA,mBACA,mBACA,mBACA,aACA,cACA,kBACA,eACA,eACA,iBACA,iBACA,MACA,SACA,gBACA,oBACA,mBACA,gBACA,wBACA9H,QAASjJ,IACToI,KAAKpI,GAAO+Q,EAAQ/Q,IAExB,CACA,MAAAwe,GACEpW,KAAKwwC,QAAS,EACdxwC,KAAK+0C,cAAc3+B,QACrB,CACA,QAAA4+B,GACEh1C,KAAKwwC,QAAS,EACdxwC,KAAK+0C,cAAcC,WACnBh1C,KAAKuwC,MACP,CACA,QAAA0E,GACE,OAAOj1C,KAAKwwC,MACd,CACA,IAAA0E,GACEl1C,KAAKywC,QAAS,EACdzwC,KAAK+0C,cAAcG,MACrB,CACA,MAAAC,GACEn1C,KAAKywC,QAAS,EACdzwC,KAAK+0C,cAAcI,SACnBn1C,KAAKuwC,MACP,CACA,KAAAjvC,GACEtB,KAAKwxC,iBAAiBlwC,QACtBtB,KAAK+0C,cAAczzC,OACrB,EAEF,SAASkzC,GAAWY,EAAS35C,GAC3B25C,EAAQx0C,OAAOnF,GACf8iB,GAAM7iB,WAAWD,GAAIoF,QAASyR,GAAWkiC,GAAWY,EAAS9iC,GAC/D,CAWA,SAAS2/B,GAAgBe,EAASv3C,EAAIoN,GACpC,OAAqB,IAAjBmqC,EAAQxyB,MAGd,SAA0BwyB,EAASv3C,GACjC,MAAMwF,EAAQsd,GAAM5iB,WAAWF,GAC/B,QAAKwF,GACE+xC,EAAQjyC,IAAIE,EACrB,CANSo0C,CAAiBrC,EAASv3C,EACnC,CAMA,SAAS02C,GAAgB/wC,EAAK3F,GAC5B,OAAiB,IAAb2F,EAAIof,MACD80B,GAAiBl0C,EAAK3F,EAC/B,CACA,SAAS65C,GAAiBl0C,EAAK3F,GAC7B,MAAM+T,EAAS+O,GAAM5iB,WAAWF,GAChC,QAAK+T,MAGDpO,EAAIL,IAAIyO,IAGL8lC,GAAiBl0C,EAAKoO,GAC/B,CACA,IAAI+lC,GAOJ,MAAMC,GAAmB9qB,IACvB,IAAK6qB,GACH,OAAO7qB,EAYT,MAVqB,IAAI+qB,KACvB,IACE,OAAO/qB,KAAM+qB,EACf,CAAE,MAAOh3C,GACP,GAAI82C,KAAwC,IAAxBA,GAAa92C,GAC/B,OAEF,MAAMA,CACR,IAIEi3C,GAAkB,GACxB,SAASC,GAAerc,GACtB,IACE,GAAI,iBAAkBA,EAAO,CAC3B,MAAMh3B,EAAOg3B,EAAMsc,eACnB,GAAItzC,EAAKxD,OACP,OAAOwD,EAAK,EAEhB,MAAO,GAAI,SAAUg3B,GAASA,EAAMh3B,KAAKxD,OACvC,OAAOw6B,EAAMh3B,KAAK,EAEtB,CAAE,MACF,CACA,OAAOg3B,GAASA,EAAM8R,MACxB,CACA,SAASyK,GAAqBltC,EAASmtC,GACrC,MAAMC,EAAiB,IAAI5F,GAC3BuF,GAAgBv2C,KAAK42C,GACrBA,EAAenjB,KAAKjqB,GACpB,MAAMqtC,EAAW,IAAK/K,KAAL,CACfuK,GAAgBO,EAAeE,iBAAiB56C,KAAK06C,KAUvD,OARAC,EAASE,QAAQJ,EAAQ,CACvBtrC,YAAY,EACZ2rC,mBAAmB,EACnBC,eAAe,EACfC,uBAAuB,EACvBC,WAAW,EACXC,SAAS,IAEJP,CACT,CAiEA,SAASQ,IAA6BC,mBACpCA,EAAkBnwC,IAClBA,EACAsC,OAAQC,EAAOC,WACfA,EAAUC,cACVA,EAAa2tC,SACbA,IAEA,IAAkC,IAA9BA,EAASC,iBACX,MAAO,OAGT,MAAMC,GAA2C,IAA9BF,EAASC,uBAA2D,IAA9BD,EAASC,iBAA8B,GAAKD,EAASC,iBACxGE,EAAW,GACjB,IAAIC,EAAqB,KA4EzB,OArBAt/C,OAAOiJ,KAAKuuC,IAAmBvhB,OAC5B71B,GAAQm/C,OAAOC,MAAMD,OAAOn/C,MAAUA,EAAIq/C,SAAS,eAAoC,IAApBL,EAAWh/C,IAC/EiJ,QAASq2C,IACT,IAAIC,EAAYp1C,EAAYm1C,GAC5B,MAAME,EA1DW,CAACF,GACV5d,IACN,MAAM8R,EAASuK,GAAerc,GAC9B,GAAI+T,GAAUjC,EAAQtiC,EAAYC,GAAe,GAC/C,OAEF,IAAIsuC,EAAc,KACdC,EAAeJ,EACnB,GAAI,gBAAiB5d,EAAO,CAC1B,OAAQA,EAAM+d,aACZ,IAAK,QACHA,EAAcnI,GAAaqI,MAC3B,MACF,IAAK,QACHF,EAAcnI,GAAasI,MAC3B,MACF,IAAK,MACHH,EAAcnI,GAAauI,IAG3BJ,IAAgBnI,GAAasI,MAC3BxI,GAAkBkI,KAAclI,GAAkB0I,UACpDJ,EAAe,aACNtI,GAAkBkI,KAAclI,GAAkB2I,UAC3DL,EAAe,YAEQpI,GAAauI,GAC1C,MAAWjK,GAAoBlU,KAC7B+d,EAAcnI,GAAasI,OAET,OAAhBH,GACFP,EAAqBO,GACjBC,EAAavwC,WAAW,UAAYswC,IAAgBnI,GAAasI,OAASF,EAAavwC,WAAW,UAAYswC,IAAgBnI,GAAaqI,SAC7IF,EAAc,OAEPrI,GAAkBkI,KAAclI,GAAkB4I,QAC3DP,EAAcP,EACdA,EAAqB,MAEvB,MAAMruC,EAAK+kC,GAAoBlU,GAASA,EAAMmU,eAAe,GAAKnU,EAClE,IAAK7wB,EACH,OAEF,MAAMpI,EAAKwI,EAAQ1I,MAAMirC,IACnByM,QAAEA,EAAOC,QAAEA,GAAYrvC,EAC7B+sC,GAAgBiB,EAAhBjB,CAAoC,CAClC7zC,KAAMqtC,GAAkBsI,GACxBj3C,KACA03C,EAAGF,EACHnsC,EAAGosC,KACgB,OAAhBT,GAAwB,CAAEA,kBAQjBW,CAAWd,GAC3B,GAAIx0C,OAAOu1C,aACT,OAAQjJ,GAAkBkI,IACxB,KAAKlI,GAAkB0I,UACvB,KAAK1I,GAAkB2I,QACrBR,EAAYA,EAAU34C,QACpB,QACA,WAEF,MACF,KAAKwwC,GAAkBkJ,WACvB,KAAKlJ,GAAkBmJ,SACrB,OAGNtB,EAAS13C,KAAK+rC,GAAGiM,EAAWC,EAAS9wC,MAEhCkvC,GAAgB,KACrBqB,EAASh2C,QAASu3C,GAAMA,MAE5B,CACA,SAASC,IAAmBC,SAC1BA,EAAQhyC,IACRA,EACAsC,OAAQC,EAAOC,WACfA,EAAUC,cACVA,EAAa2tC,SACbA,IA4BA,OAAOxL,GAAG,SA1BasK,GACrB/J,GACE+J,GAAiB+C,IACf,MAAMnN,EAASuK,GAAe4C,GAC9B,IAAKnN,GAAUiC,GAAUjC,EAAQtiC,EAAYC,GAAe,GAC1D,OAEF,MAAM1I,EAAKwI,EAAQ1I,MAAMirC,GACzB,GAAIA,IAAW9kC,GAAOA,EAAIkyC,YAAa,CACrC,MAAMC,EAAgBnM,GAAgBhmC,EAAIkyC,aAC1CF,EAAS,CACPj4C,KACA03C,EAAGU,EAAc79B,KACjBlP,EAAG+sC,EAAc7L,KAErB,MACE0L,EAAS,CACPj4C,KACA03C,EAAG3M,EAAO78B,WACV7C,EAAG0/B,EAAO38B,cAIhBioC,EAASgC,QAAU,MAGapyC,EACtC,CAuBA,MAAMqyC,GAAa,CAAC,QAAS,WAAY,UACnCC,GAAoC,IAAI14C,QAsH9C,SAAS24C,GAA0Bz6C,GAgBjC,OAdA,SAAiB06C,EAAW5xC,GAC1B,GAAI6xC,GAAiB,oBAAsBD,EAAUE,sBAAsBC,iBAAmBF,GAAiB,iBAAmBD,EAAUE,sBAAsBE,cAAgBH,GAAiB,oBAAsBD,EAAUE,sBAAsBG,iBAAmBJ,GAAiB,qBAAuBD,EAAUE,sBAAsBI,iBAAkB,CACpW,MAGMjhC,EAHSja,MAAMC,KACnB26C,EAAUE,WAAWp7C,UAEDgG,QAAQk1C,GAC9B5xC,EAAIikB,QAAQhT,EACd,MAAO,GAAI2gC,EAAUO,iBAAkB,CACrC,MACMlhC,EADSja,MAAMC,KAAK26C,EAAUO,iBAAiBz7C,UAC/BgG,QAAQk1C,GAC9B5xC,EAAIikB,QAAQhT,EACd,CACA,OAAOjR,CACT,CACOoyC,CAAQl7C,EAfG,GAgBpB,CACA,SAASm7C,GAAgBxuC,EAAOlC,EAAS2wC,GACvC,IAAIn5C,EAAIo5C,EACR,OAAK1uC,GACDA,EAAMhN,UAAWsC,EAAKwI,EAAQ1I,MAAM4K,EAAMhN,WACzC07C,EAAUD,EAAYr5C,MAAM4K,GAC1B,CACL0uC,UACAp5C,OALiB,CAAA,CAOrB,CAkMA,SAASq5C,IACP9wC,OAAQC,EAAOyoC,kBACfA,GACCqI,GACD,IAAIngD,EAAKC,EAAI8yC,EACb,IAAIqN,EAAS,KACuBA,EAAb,cAAnBD,EAAMhM,SAAmC9kC,EAAQ1I,MAAMw5C,GAC7C9wC,EAAQ1I,MAAMoe,GAAMtiB,KAAK09C,IACvC,MAAME,EAAiC,cAAnBF,EAAMhM,SAAwD,OAA5Bn0C,EAAMmgD,EAAMnB,kBAAuB,EAASh/C,EAAIsQ,SAAkF,OAAtEyiC,EAAmC,OAA7B9yC,EAAKkgD,EAAMn+C,oBAAyB,EAAS/B,EAAG++C,kBAAuB,EAASjM,EAAG9zC,WACrMqhD,GAA6C,MAAfD,OAAsB,EAASA,EAAY3gD,WAAa1B,OAAOkC,yBAClF,MAAfmgD,OAAsB,EAASA,EAAY3gD,UAC3C,2BACE,EACJ,OAAe,OAAX0gD,IAA8B,IAAXA,GAAkBC,GAAgBC,GAGzDtiD,OAAOC,eAAekiD,EAAO,qBAAsB,CACjD5hD,aAAc+hD,EAA2B/hD,aACzCD,WAAYgiD,EAA2BhiD,WACvC,GAAA6B,GACE,IAAIogD,EACJ,OAAiD,OAAzCA,EAAMD,EAA2BngD,UAAe,EAASogD,EAAI/+C,KAAKgF,KAC5E,EACA,GAAAoB,CAAI44C,GACF,IAAID,EACJ,MAAM56B,EAAoD,OAAzC46B,EAAMD,EAA2B14C,UAAe,EAAS24C,EAAI/+C,KAAKgF,KAAMg6C,GACzF,GAAe,OAAXJ,QAAmBA,EACrB,IACEtI,EAAkB2I,iBAAiBD,EAAQJ,EAC7C,CAAE,MAAOnxC,GACT,CAEF,OAAO0W,CACT,IAEKq2B,GAAgB,KACrBh+C,OAAOC,eAAekiD,EAAO,qBAAsB,CACjD5hD,aAAc+hD,EAA2B/hD,aACzCD,WAAYgiD,EAA2BhiD,WAEvC6B,IAAKmgD,EAA2BngD,IAEhCyH,IAAK04C,EAA2B14C,SA5B3B,MA+BX,CAkTA,SAAS84C,GAAcC,EAAIC,EAAQ,IACjC,MAAMC,EAAgBF,EAAG7zC,IAAIkyC,YAC7B,IAAK6B,EACH,MAAO,OAIT,IAAI99C,GAtGN,SAAoB49C,EAAIC,GACtB,MAAMjH,WACJA,EAAUmH,YACVA,EAAW7D,mBACXA,EAAkB6B,SAClBA,EAAQiC,iBACRA,EAAgBC,QAChBA,EAAOC,mBACPA,EAAkBC,iBAClBA,EAAgBC,mBAChBA,EAAkBC,iBAClBA,EAAgBC,OAChBA,EAAMC,YACNA,EAAWC,gBACXA,GACEZ,EACJA,EAAGhH,WAAa,IAAIh3B,KACdi+B,EAAMY,UACRZ,EAAMY,YAAY7+B,GAEpBg3B,KAAch3B,IAEhBg+B,EAAGG,YAAc,IAAIn+B,KACfi+B,EAAMa,WACRb,EAAMa,aAAa9+B,GAErBm+B,KAAen+B,IAEjBg+B,EAAG1D,mBAAqB,IAAIt6B,KACtBi+B,EAAMzD,kBACRyD,EAAMzD,oBAAoBx6B,GAE5Bs6B,KAAsBt6B,IAExBg+B,EAAG7B,SAAW,IAAIn8B,KACZi+B,EAAM1B,QACR0B,EAAM1B,UAAUv8B,GAElBm8B,KAAYn8B,IAEdg+B,EAAGI,iBAAmB,IAAIp+B,KACpBi+B,EAAMc,gBACRd,EAAMc,kBAAkB/+B,GAE1Bo+B,KAAoBp+B,IAEtBg+B,EAAGK,QAAU,IAAIr+B,KACXi+B,EAAM38B,OACR28B,EAAM38B,SAAStB,GAEjBq+B,KAAWr+B,IAEbg+B,EAAGM,mBAAqB,IAAIt+B,KACtBi+B,EAAMe,iBACRf,EAAMe,mBAAmBh/B,GAE3Bs+B,KAAsBt+B,IAExBg+B,EAAGO,iBAAmB,IAAIv+B,KACpBi+B,EAAMgB,gBACRhB,EAAMgB,kBAAkBj/B,GAE1Bu+B,KAAoBv+B,IAEtBg+B,EAAGQ,mBAAqB,IAAIx+B,KACtBi+B,EAAMiB,kBACRjB,EAAMiB,oBAAoBl/B,GAE5Bw+B,KAAsBx+B,IAExBg+B,EAAGS,iBAAmB,IAAIz+B,KACpBi+B,EAAMkB,gBACRlB,EAAMkB,kBAAkBn/B,GAE1By+B,KAAoBz+B,IAEtBg+B,EAAGU,OAAS,IAAI1+B,KACVi+B,EAAMmB,MACRnB,EAAMmB,QAAQp/B,GAEhB0+B,KAAU1+B,IAEZg+B,EAAGW,YAAc,IAAI3+B,KACfi+B,EAAMoB,WACRpB,EAAMoB,aAAar/B,GAErB2+B,KAAe3+B,IAEjBg+B,EAAGY,gBAAkB,IAAIrzC,KACnB0yC,EAAMqB,eACRrB,EAAMqB,iBAAiB/zC,GAEzBqzC,KAAmBrzC,GAEvB,CAOEg0C,CAAWvB,EAAIC,GAEXD,EAAGwB,YACLp/C,EAAmBs5C,GAAqBsE,EAAIA,EAAG7zC,MAEjD,MAAMs1C,EAt5BR,UAA0BtB,YACxBA,EAAW5D,SACXA,EAAQpwC,IACRA,EACAsC,OAAQC,IAER,IAA2B,IAAvB6tC,EAASuE,UACX,MAAO,OAGT,MAAMY,EAA0C,iBAAvBnF,EAASuE,UAAyBvE,EAASuE,UAAY,GAC1Ea,EAA0D,iBAA/BpF,EAASqF,kBAAiCrF,EAASqF,kBAAoB,IACxG,IACIC,EADAC,EAAY,GAEhB,MAAMC,EAAYzQ,GAChB+J,GACG94C,IACC,MAAMy/C,EAActQ,KAAKD,MAAQoQ,EACjC1B,EACE2B,EAAU/jC,IAAKiE,IACbA,EAAEigC,YAAcD,EACThgC,IAETzf,GAEFu/C,EAAY,GACZD,EAAe,OAGnBF,GAEIO,EAAiB7G,GACrB/J,GACE+J,GAAiB+C,IACf,MAAMnN,EAASuK,GAAe4C,IACxBV,QAAEA,EAAOC,QAAEA,GAAYtK,GAAoB+K,GAAOA,EAAI9K,eAAe,GAAK8K,EAC3EyD,IACHA,EAAe3P,MAEjB4P,EAAU98C,KAAK,CACb44C,EAAGF,EACHnsC,EAAGosC,EACHz3C,GAAIwI,EAAQ1I,MAAMirC,GAClBgR,WAAY/P,KAAiB2P,IAE/BE,EACuB,oBAAdI,WAA6B/D,aAAe+D,UAAYxN,GAAkByN,KAAOhE,aAAeiE,WAAa1N,GAAkB2N,UAAY3N,GAAkB4N,aAGxKb,EACA,CACE5P,UAAU,KAIV4K,EAAW,CACf3L,GAAG,YAAamR,EAAgB/1C,GAChC4kC,GAAG,YAAamR,EAAgB/1C,GAChC4kC,GAAG,OAAQmR,EAAgB/1C,IAE7B,OAAOkvC,GAAgB,KACrBqB,EAASh2C,QAASu3C,GAAMA,MAE5B,CAu1B2BuE,CAAiBxC,GACpCyC,EAA0BpG,GAA6B2D,GACvD0C,EAAgBxE,GAAmB8B,GACnC2C,EAvtBR,UAAoCvC,iBAAEA,IAAoBhgD,IAAEA,IAC1D,IAAIwiD,GAAQ,EACRC,GAAQ,EAkBZ,OAAO9R,GAAG,SAjBcsK,GACtB/J,GACE+J,GAAgB,KACd,MAAM7pC,EAASmhC,KACTrhC,EAAQwhC,KACV8P,IAAUpxC,GAAUqxC,IAAUvxC,IAChC8uC,EAAiB,CACf9uC,MAAOsrC,OAAOtrC,GACdE,OAAQorC,OAAOprC,KAEjBoxC,EAAQpxC,EACRqxC,EAAQvxC,KAGZ,MAGiClR,EACvC,CAksBgC0iD,CAA2B9C,EAAI,CAC3D5/C,IAAK8/C,IAED6C,EAlsBR,UAA2B1C,QACzBA,EAAOl0C,IACPA,EACAsC,OAAQC,EAAOC,WACfA,EAAUC,cACVA,EAAao0C,YACbA,EAAWC,eACXA,EAAc37C,iBACdA,EAAgBG,YAChBA,EAAW80C,SACXA,EAAQ2G,qBACRA,IAEA,SAASC,EAAahkB,GACpB,IAAI8R,EAASuK,GAAerc,GAC5B,MAAMikB,EAAgBjkB,EAAMkkB,UACtB97C,EAAU0pC,GAAUA,EAAO1pC,QAIjC,GAHI0pC,GAAsB,WAAZ1pC,IACZ0pC,EAAS7sB,GAAM3iB,cAAcwvC,KAE1BA,IAAW1pC,GAAWi3C,GAAW/0C,QAAQlC,GAAW,GAAK2rC,GAAUjC,EAAQtiC,EAAYC,GAAe,GACzG,OAEF,GAAIqiC,EAAOljC,UAAUpM,SAASqhD,IAAgBC,GAAkBhS,EAAO5iC,QAAQ40C,GAC7E,OAEF,IAAIv7C,EAAOupC,EAAOvzC,MACd4lD,GAAY,EAChB,MAAM97C,EAAOQ,EAAaipC,IAAW,GACxB,UAATzpC,GAA6B,aAATA,EACtB87C,EAAYrS,EAAOpgC,SACVvJ,EAAiBC,EAAQK,gBAAkBN,EAAiBE,MACrEE,EAAON,EAAe,CACpBC,QAAS4pC,EACT3pC,mBACAC,UACAC,OACA9J,MAAOgK,EACPD,iBAGJ87C,EACEtS,EACAiS,EAAuB,CAAEx7C,OAAM47C,YAAWF,iBAAkB,CAAE17C,OAAM47C,cAEtE,MAAM9gD,EAAOyuC,EAAOzuC,KACP,UAATgF,GAAoBhF,GAAQ8gD,GAC9Bn3C,EAAIhK,iBAAiB,6BAA6BK,OAAUkE,QAAS8F,IACnE,GAAIA,IAAOykC,EAAQ,CACjB,MAAMuS,EAAQh3C,EAAG9O,MACjB6lD,EACE/2C,EACA02C,EAAuB,CAAEx7C,KAAM87C,EAAOF,WAAYA,EAAWF,eAAe,GAAU,CAAE17C,KAAM87C,EAAOF,WAAYA,GAErH,GAGN,CACA,SAASC,EAAYtS,EAAQwS,GAC3B,MAAMC,EAAiBjF,GAAkBj/C,IAAIyxC,GAC7C,IAAKyS,GAAkBA,EAAeh8C,OAAS+7C,EAAG/7C,MAAQg8C,EAAeJ,YAAcG,EAAGH,UAAW,CACnG7E,GAAkBx3C,IAAIgqC,EAAQwS,GAC9B,MAAMv9C,EAAKwI,EAAQ1I,MAAMirC,GACzBoK,GAAgBgF,EAAhBhF,CAAyB,IACpBoI,EACHv9C,MAEJ,CACF,CACA,MACMw2C,GAD4B,SAAnBH,EAASj5B,MAAmB,CAAC,UAAY,CAAC,QAAS,WAC1CvF,IACrBi/B,GAAcjM,GAAGiM,EAAW3B,GAAgB8H,GAAeh3C,IAExD+zC,EAAgB/zC,EAAIkyC,YAC1B,IAAK6B,EACH,MAAO,KACLxD,EAASh2C,QAASu3C,GAAMA,MAG5B,MAAM0F,EAAqBzD,EAAc7iD,OAAOkC,yBAC9C2gD,EAAc0D,iBAAiB7kD,UAC/B,SAEI8kD,EAAiB,CACrB,CAAC3D,EAAc0D,iBAAiB7kD,UAAW,SAC3C,CAACmhD,EAAc0D,iBAAiB7kD,UAAW,WAC3C,CAACmhD,EAAc4D,kBAAkB/kD,UAAW,SAC5C,CAACmhD,EAAc6D,oBAAoBhlD,UAAW,SAE9C,CAACmhD,EAAc4D,kBAAkB/kD,UAAW,iBAC5C,CAACmhD,EAAc8D,kBAAkBjlD,UAAW,aAuB9C,OArBI4kD,GAAsBA,EAAmB18C,KAC3Cy1C,EAAS13C,QACJ6+C,EAAe9lC,IACfiE,GAAM+vB,GACL/vB,EAAE,GACFA,EAAE,GACF,CACE,GAAA/a,GACEo0C,GAAgB8H,EAAhB9H,CAA8B,CAC5BpK,OAAQprC,KACRw9C,WAAW,GAGf,IAEF,EACAnD,KAKD7E,GAAgB,KACrBqB,EAASh2C,QAASu3C,GAAMA,MAE5B,CA8kBuBgG,CAAkBjE,GACjCkE,EA5PR,UAAsC5D,mBACpCA,EAAkB3xC,WAClBA,EAAUC,cACVA,EACAH,OAAQC,EAAO6tC,SACfA,EAAQpwC,IACRA,IAEA,MAAM8wC,EAAU5B,GACb7zC,GAAS8pC,GACR+J,GAAiBlc,IACf,MAAM8R,EAASuK,GAAerc,GAC9B,IAAK8R,GAAUiC,GAAUjC,EAAQtiC,EAAYC,GAAe,GAC1D,OAEF,MAAM+E,YAAEA,EAAWQ,OAAEA,EAAMJ,MAAEA,EAAKF,aAAEA,EAAYI,KAAEA,GAASg9B,EAC3DqP,EAAmB,CACjB94C,OACAtB,GAAIwI,EAAQ1I,MAAMirC,GAClBt9B,cACAQ,SACAJ,QACAF,eACAI,WAGJsoC,EAASr3C,OAAS,MAGhBw3C,EAAW,CACf3L,GAAG,OAAQkM,EAAQ9H,GAAkBgP,MAAOh4C,GAC5C4kC,GAAG,QAASkM,EAAQ9H,GAAkBiP,OAAQj4C,GAC9C4kC,GAAG,SAAUkM,EAAQ9H,GAAkBkP,QAASl4C,GAChD4kC,GAAG,eAAgBkM,EAAQ9H,GAAkBmP,cAAen4C,GAC5D4kC,GAAG,aAAckM,EAAQ9H,GAAkBoP,YAAap4C,IAE1D,OAAOkvC,GAAgB,KACrBqB,EAASh2C,QAASu3C,GAAMA,MAE5B,CAqNkCuG,CAA6BxE,GAC7D,IAAIyE,EAAqB,OAErBC,EAA4B,OAE5BC,EAA2B,OAE3BC,EAAe,OAEf5E,EAAGwB,YACLiD,EA5jBJ,UAAgClE,iBAAEA,EAAkB9xC,OAAQC,EAAOyoC,kBAAEA,IAAqB/2C,IAAEA,IAC1F,IAAKA,EAAIykD,gBAAkBzkD,EAAIykD,cAAc9lD,UAC3C,MAAO,OAGT,MAAM+lD,EAAa1kD,EAAIykD,cAAc9lD,UAAU+lD,WAC/C1kD,EAAIykD,cAAc9lD,UAAU+lD,WAAa,IAAIp/B,MAAMo/B,EAAY,CAC7D/qC,MAAOshC,GACL,CAACpK,EAAQ8T,EAASC,KAChB,MAAO/gD,EAAO+Z,GAAUgnC,GAClB9+C,GAAEA,EAAEo5C,QAAEA,GAAYF,GACtB2F,EACAr2C,EACAyoC,EAAkBkI,aASpB,OAPIn5C,IAAc,IAARA,GAAao5C,IAAwB,IAAbA,IAChCiB,EAAiB,CACfr6C,KACAo5C,UACA/I,KAAM,CAAC,CAAEr0B,KAAMje,EAAOmgB,MAAOpG,MAG1BizB,EAAOl3B,MAAMgrC,EAASC,OAInC5kD,EAAIykD,cAAc9lD,UAAUkmD,QAAU,SAASp0B,EAAUq0B,EAAYlnC,EAASnY,KAAKpC,SAASkB,QAC1F,MAAMV,EAAQ,GAAG4sB,OAAcq0B,MAC/B,OAAO9kD,EAAIykD,cAAc9lD,UAAU+lD,WAAW/qC,MAAMlU,KAAM,CAAC5B,EAAO+Z,GACpE,EACA,MAAMmnC,EAAa/kD,EAAIykD,cAAc9lD,UAAUomD,WAwB/C,IAAI9gD,EAwBA+gD,EA/CJhlD,EAAIykD,cAAc9lD,UAAUomD,WAAa,IAAIz/B,MAAMy/B,EAAY,CAC7DprC,MAAOshC,GACL,CAACpK,EAAQ8T,EAASC,KAChB,MAAOhnC,GAAUgnC,GACX9+C,GAAEA,EAAEo5C,QAAEA,GAAYF,GACtB2F,EACAr2C,EACAyoC,EAAkBkI,aASpB,OAPIn5C,IAAc,IAARA,GAAao5C,IAAwB,IAAbA,IAChCiB,EAAiB,CACfr6C,KACAo5C,UACAzG,QAAS,CAAC,CAAEz0B,MAAOpG,MAGhBizB,EAAOl3B,MAAMgrC,EAASC,OAInC5kD,EAAIykD,cAAc9lD,UAAUsmD,WAAa,SAASrnC,GAChD,OAAO5d,EAAIykD,cAAc9lD,UAAUomD,WAAWprC,MAAMlU,KAAM,CAACmY,GAC7D,EAEI5d,EAAIykD,cAAc9lD,UAAUsF,UAC9BA,EAAUjE,EAAIykD,cAAc9lD,UAAUsF,QACtCjE,EAAIykD,cAAc9lD,UAAUsF,QAAU,IAAIqhB,MAAMrhB,EAAS,CACvD0V,MAAOshC,GACL,CAACpK,EAAQ8T,EAASC,KAChB,MAAOt9C,GAAQs9C,GACT9+C,GAAEA,EAAEo5C,QAAEA,GAAYF,GACtB2F,EACAr2C,EACAyoC,EAAkBkI,aASpB,OAPIn5C,IAAc,IAARA,GAAao5C,IAAwB,IAAbA,IAChCiB,EAAiB,CACfr6C,KACAo5C,UACAj7C,QAASqD,IAGNupC,EAAOl3B,MAAMgrC,EAASC,QAMjC5kD,EAAIykD,cAAc9lD,UAAUqmD,cAC9BA,EAAchlD,EAAIykD,cAAc9lD,UAAUqmD,YAC1ChlD,EAAIykD,cAAc9lD,UAAUqmD,YAAc,IAAI1/B,MAAM0/B,EAAa,CAC/DrrC,MAAOshC,GACL,CAACpK,EAAQ8T,EAASC,KAChB,MAAOt9C,GAAQs9C,GACT9+C,GAAEA,EAAEo5C,QAAEA,GAAYF,GACtB2F,EACAr2C,EACAyoC,EAAkBkI,aASpB,OAPIn5C,IAAc,IAARA,GAAao5C,IAAwB,IAAbA,IAChCiB,EAAiB,CACfr6C,KACAo5C,UACA8F,YAAa19C,IAGVupC,EAAOl3B,MAAMgrC,EAASC,QAKrC,MAAMM,EAA8B,CAAA,EAChCC,GAA4B,mBAC9BD,EAA4BxG,gBAAkB1+C,EAAI0+C,iBAE9CyG,GAA4B,kBAC9BD,EAA4BvG,aAAe3+C,EAAI2+C,cAE7CwG,GAA4B,sBAC9BD,EAA4BrG,iBAAmB7+C,EAAI6+C,kBAEjDsG,GAA4B,qBAC9BD,EAA4BtG,gBAAkB5+C,EAAI4+C,kBAGtD,MAAMwG,EAAsB,CAAA,EAkE5B,OAjEAnoD,OAAO67B,QAAQosB,GAA6B5+C,QAAQ,EAAE++C,EAASj+C,MAC7Dg+C,EAAoBC,GAAW,CAE7BX,WAAYt9C,EAAKzI,UAAU+lD,WAE3BK,WAAY39C,EAAKzI,UAAUomD,YAE7B39C,EAAKzI,UAAU+lD,WAAa,IAAIp/B,MAC9B8/B,EAAoBC,GAASX,WAC7B,CACE/qC,MAAOshC,GACL,CAACpK,EAAQ8T,EAASC,KAChB,MAAO/gD,EAAO+Z,GAAUgnC,GAClB9+C,GAAEA,EAAEo5C,QAAEA,GAAYF,GACtB2F,EAAQ7F,iBACRxwC,EACAyoC,EAAkBkI,aAkBpB,OAhBIn5C,IAAc,IAARA,GAAao5C,IAAwB,IAAbA,IAChCiB,EAAiB,CACfr6C,KACAo5C,UACA/I,KAAM,CACJ,CACEr0B,KAAMje,EACNmgB,MAAO,IACFs6B,GAA0BqG,GAC7B/mC,GAAU,OAObizB,EAAOl3B,MAAMgrC,EAASC,OAKrCx9C,EAAKzI,UAAUomD,WAAa,IAAIz/B,MAC9B8/B,EAAoBC,GAASN,WAC7B,CACEprC,MAAOshC,GACL,CAACpK,EAAQ8T,EAASC,KAChB,MAAOhnC,GAAUgnC,GACX9+C,GAAEA,EAAEo5C,QAAEA,GAAYF,GACtB2F,EAAQ7F,iBACRxwC,EACAyoC,EAAkBkI,aAWpB,OATIn5C,IAAc,IAARA,GAAao5C,IAAwB,IAAbA,IAChCiB,EAAiB,CACfr6C,KACAo5C,UACAzG,QAAS,CACP,CAAEz0B,MAAO,IAAIs6B,GAA0BqG,GAAU/mC,OAIhDizB,EAAOl3B,MAAMgrC,EAASC,SAMhC3J,GAAgB,KACrBj7C,EAAIykD,cAAc9lD,UAAU+lD,WAAaA,EACzC1kD,EAAIykD,cAAc9lD,UAAUomD,WAAaA,EACzC9gD,IAAYjE,EAAIykD,cAAc9lD,UAAUsF,QAAUA,GAClD+gD,IAAgBhlD,EAAIykD,cAAc9lD,UAAUqmD,YAAcA,GAC1D/nD,OAAO67B,QAAQosB,GAA6B5+C,QAAQ,EAAE++C,EAASj+C,MAC7DA,EAAKzI,UAAU+lD,WAAaU,EAAoBC,GAASX,WACzDt9C,EAAKzI,UAAUomD,WAAaK,EAAoBC,GAASN,cAG/D,CA4XyBO,CAAuB1F,EAAI,CAAE5/C,IAAK8/C,IACvDwE,EAA4BnF,GAA8BS,EAAIA,EAAG7zC,KACjEw4C,EA/UJ,UAAsCnE,mBACpCA,EACA/xC,OAAQC,EAAOi3C,oBACfA,EAAmBxO,kBACnBA,IACC/2C,IAAEA,IACH,MAAMwlD,EAAcxlD,EAAIylD,oBAAoB9mD,UAAU6mD,YACtDxlD,EAAIylD,oBAAoB9mD,UAAU6mD,YAAc,IAAIlgC,MAAMkgC,EAAa,CACrE7rC,MAAOshC,GACL,CAACpK,EAAQ8T,EAASC,KAChB,IAAI3lD,EACJ,MAAOsY,EAAUja,EAAOooD,GAAYd,EACpC,GAAIW,EAAoB/+C,IAAI+Q,GAC1B,OAAOiuC,EAAY7rC,MAAMgrC,EAAS,CAACptC,EAAUja,EAAOooD,IAEtD,MAAM5/C,GAAEA,EAAEo5C,QAAEA,GAAYF,GACQ,OAA7B//C,EAAM0lD,EAAQlG,iBAAsB,EAASx/C,EAAI6/C,iBAClDxwC,EACAyoC,EAAkBkI,aAepB,OAbIn5C,IAAc,IAARA,GAAao5C,IAAwB,IAAbA,IAChCkB,EAAmB,CACjBt6C,KACAo5C,UACAr4C,IAAK,CACH0Q,WACAja,QACAooD,YAGF1hC,MAAOs6B,GAA0BqG,EAAQlG,cAGtC5N,EAAOl3B,MAAMgrC,EAASC,OAInC,MAAMe,EAAiB3lD,EAAIylD,oBAAoB9mD,UAAUgnD,eA6BzD,OA5BA3lD,EAAIylD,oBAAoB9mD,UAAUgnD,eAAiB,IAAIrgC,MAAMqgC,EAAgB,CAC3EhsC,MAAOshC,GACL,CAACpK,EAAQ8T,EAASC,KAChB,IAAI3lD,EACJ,MAAOsY,GAAYqtC,EACnB,GAAIW,EAAoB/+C,IAAI+Q,GAC1B,OAAOouC,EAAehsC,MAAMgrC,EAAS,CAACptC,IAExC,MAAMzR,GAAEA,EAAEo5C,QAAEA,GAAYF,GACQ,OAA7B//C,EAAM0lD,EAAQlG,iBAAsB,EAASx/C,EAAI6/C,iBAClDxwC,EACAyoC,EAAkBkI,aAapB,OAXIn5C,IAAc,IAARA,GAAao5C,IAAwB,IAAbA,IAChCkB,EAAmB,CACjBt6C,KACAo5C,UACA16B,OAAQ,CACNjN,YAGFyM,MAAOs6B,GAA0BqG,EAAQlG,cAGtC5N,EAAOl3B,MAAMgrC,EAASC,OAI5B3J,GAAgB,KACrBj7C,EAAIylD,oBAAoB9mD,UAAU6mD,YAAcA,EAChDxlD,EAAIylD,oBAAoB9mD,UAAUgnD,eAAiBA,GAEvD,CAyQ+BC,CAA6BhG,EAAI,CAC1D5/C,IAAK8/C,IAEHF,EAAGiG,eACLrB,EApON,UAA0BlE,OAAEA,EAAMv0C,IAAEA,IAClC,MAAM/L,EAAM+L,EAAIkyC,YAChB,IAAKj+C,EACH,MAAO,OAGT,MAAMs8C,EAAW,GACXwJ,EAA0B,IAAIngD,QAC9BogD,EAAmB/lD,EAAIgmD,SAC7BhmD,EAAIgmD,SAAW,SAAmBC,EAAQ9jD,EAAQ+jD,GAChD,MAAMC,EAAW,IAAIJ,EAAiBE,EAAQ9jD,EAAQ+jD,GAOtD,OANAJ,EAAQj/C,IAAIs/C,EAAU,CACpBF,SACAv0C,OAA0B,iBAAXvP,EACf+jD,cACAE,WAA8B,iBAAXjkD,EAAsBA,EAASsC,KAAKC,UAAUf,MAAMC,KAAK,IAAIyiD,WAAWlkD,OAEtFgkD,CACT,EACA,MAAMG,EAAiBpkD,GACrB6J,EAAIw6C,MACJ,MACA,SAASjkD,GACP,OAAO,SAAS6jD,GAWd,OAVA7tC,WACE2iC,GAAgB,KACd,MAAMr5B,EAAIkkC,EAAQ1mD,IAAI+mD,GAClBvkC,IACF0+B,EAAO1+B,GACPkkC,EAAQz/C,OAAO8/C,MAGnB,GAEK7jD,EAASqX,MAAMlU,KAAM,CAAC0gD,GAC/B,CACF,GAMF,OAJA7J,EAAS13C,KAAK,KACZ5E,EAAIgmD,SAAWD,IAEjBzJ,EAAS13C,KAAK0hD,GACPrL,GAAgB,KACrBqB,EAASh2C,QAASu3C,GAAMA,MAE5B,CAuLqB2I,CAAiB5G,KAGpC,MAAM6G,EAzLR,SAA+BC,GAC7B,MAAM36C,IAAEA,EAAKsC,OAAQC,EAAOC,WAAEA,EAAUC,cAAEA,EAAa+xC,YAAEA,GAAgBmG,EACzE,IAAIC,GAAY,EAChB,MAAMC,EAAkB3L,GAAgB,KACtC,MAAMgG,EAAYl1C,EAAI86C,eACtB,IAAK5F,GAAa0F,IAA2B,MAAb1F,OAAoB,EAASA,EAAU6F,aAAc,OACrFH,EAAY1F,EAAU6F,cAAe,EACrC,MAAMC,EAAS,GACTC,EAAQ/F,EAAUgG,YAAc,EACtC,IAAK,IAAI58C,EAAK,EAAGA,EAAK28C,EAAO38C,IAAM,CACjC,MAAMioB,EAAQ2uB,EAAUiG,WAAW78C,IAC7B88C,eAAEA,EAAcC,YAAEA,EAAWC,aAAEA,EAAYC,UAAEA,GAAch1B,EACjDwgB,GAAUqU,EAAgB54C,EAAYC,GAAe,IAASskC,GAAUuU,EAAc94C,EAAYC,GAAe,IAEjIu4C,EAAOniD,KAAK,CACV4Y,MAAOlP,EAAQ1I,MAAMuhD,GACrBC,cACA3pC,IAAKnP,EAAQ1I,MAAMyhD,GACnBC,aAEJ,CACA/G,EAAY,CAAEwG,aAGhB,OADAH,IACOjW,GAAG,kBAAmBiW,EAC/B,CAgK4BW,CAAsB3H,GAC1C4H,EAhKR,UAAmCz7C,IACjCA,EAAGy0C,gBACHA,IAEA,MAAMxgD,EAAM+L,EAAIkyC,YAChB,OAAKj+C,GAAQA,EAAI4U,eAEM1S,GACrBlC,EAAI4U,eACJ,SACA,SAAStS,GACP,OAAO,SAASF,EAAMH,EAAamM,GACjC,IACEoyC,EAAgB,CACdiH,OAAQ,CACNrlD,SAGN,CAAE,MAAO8L,GACP8E,QAAQC,KAAK,sCAAsC7Q,IACrD,CACA,OAAOE,EAASqX,MAAMlU,KAAM,CAACrD,EAAMH,EAAamM,GAClD,CACF,GAlBsC,MAqB1C,CAsIgCs5C,CAA0B9H,GAClD+H,EAAiB,GACvB,IAAK,MAAMC,KAAWhI,EAAGjiB,QACvBgqB,EAAe/iD,KACbgjD,EAAQnM,SAASmM,EAAQh4B,SAAUkwB,EAAe8H,EAAQx5C,UAG9D,OAAO6sC,GAAgB,KACrBE,GAAgB70C,QAASq4B,GAAMA,EAAE53B,SACb,MAApB/E,GAAoCA,EAAiB6lD,aACrDxG,IACAgB,IACAC,IACAC,IACAI,IACAmB,IACAO,IACAC,IACAC,IACAC,IACAiC,IACAe,IACAG,EAAerhD,QAASu3C,GAAMA,MAElC,CACA,SAASW,GAAiB/9B,GACxB,YAA+B,IAAjBtY,OAAOsY,EACvB,CACA,SAAS0kC,GAA4B1kC,GACnC,OAAO3hB,aACmB,IAAjBqJ,OAAOsY,IAEdtY,OAAOsY,GAAM9hB,WAAa,eAAgBwJ,OAAOsY,GAAM9hB,WAAa,eAAgBwJ,OAAOsY,GAAM9hB,UAErG,CACA,MAAMmpD,GACJ,WAAA7lD,CAAY8lD,GACV5qD,EAAcsI,KAAM,wBAAyC,IAAIE,SACjExI,EAAcsI,KAAM,wBAAyC,IAAIE,SACjEF,KAAKsiD,aAAeA,CACtB,CACA,KAAAniD,CAAMuxC,EAAQ6Q,EAAUC,EAAeC,GACrC,MAAMC,EAAkBF,GAAiBxiD,KAAK2iD,mBAAmBjR,GAC3DkR,EAAkBH,GAAiBziD,KAAK6iD,mBAAmBnR,GACjE,IAAIrxC,EAAKqiD,EAAgB/oD,IAAI4oD,GAM7B,OALKliD,IACHA,EAAKL,KAAKsiD,eACVI,EAAgBthD,IAAImhD,EAAUliD,GAC9BuiD,EAAgBxhD,IAAIf,EAAIkiD,IAEnBliD,CACT,CACA,MAAAG,CAAOkxC,EAAQ6Q,GACb,MAAMG,EAAkB1iD,KAAK2iD,mBAAmBjR,GAC1CkR,EAAkB5iD,KAAK6iD,mBAAmBnR,GAChD,OAAO6Q,EAASrqC,IACb7X,GAAOL,KAAKG,MAAMuxC,EAAQrxC,EAAIqiD,EAAiBE,GAEpD,CACA,WAAAE,CAAYpR,EAAQrxC,EAAI6X,GACtB,MAAM0qC,EAAkB1qC,GAAOlY,KAAK6iD,mBAAmBnR,GACvD,GAAkB,iBAAPrxC,EAAiB,OAAOA,EACnC,MAAMkiD,EAAWK,EAAgBjpD,IAAI0G,GACrC,OAAKkiD,IAAiB,CAExB,CACA,YAAAQ,CAAarR,EAAQsR,GACnB,MAAMJ,EAAkB5iD,KAAK6iD,mBAAmBnR,GAChD,OAAOsR,EAAI9qC,IAAK7X,GAAOL,KAAK8iD,YAAYpR,EAAQrxC,EAAIuiD,GACtD,CACA,KAAAthD,CAAMowC,GACJ,IAAKA,EAGH,OAFA1xC,KAAKijD,sBAAwC,IAAI/iD,aACjDF,KAAKkjD,sBAAwC,IAAIhjD,SAGnDF,KAAKijD,sBAAsBriD,OAAO8wC,GAClC1xC,KAAKkjD,sBAAsBtiD,OAAO8wC,EACpC,CACA,kBAAAiR,CAAmBjR,GACjB,IAAIgR,EAAkB1iD,KAAKijD,sBAAsBtpD,IAAI+3C,GAKrD,OAJKgR,IACHA,EAAkC,IAAIziD,IACtCD,KAAKijD,sBAAsB7hD,IAAIswC,EAAQgR,IAElCA,CACT,CACA,kBAAAG,CAAmBnR,GACjB,IAAIkR,EAAkB5iD,KAAKkjD,sBAAsBvpD,IAAI+3C,GAKrD,OAJKkR,IACHA,EAAkC,IAAI3iD,IACtCD,KAAKkjD,sBAAsB9hD,IAAIswC,EAAQkR,IAElCA,CACT,EAEF,MAAMO,GACJ,WAAA3mD,CAAYmM,GACVjR,EAAcsI,KAAM,UAA2B,IAAIE,SACnDxI,EAAcsI,KAAM,uBAAwC,IAAIE,SAChExI,EAAcsI,KAAM,0BAA2B,IAAIqiD,GAAwBt8C,IAC3ErO,EAAcsI,KAAM,gCACpBtI,EAAcsI,KAAM,6BAA8C,IAAIE,SACtExI,EAAcsI,KAAM,UACpBtI,EAAcsI,KAAM,cACpBtI,EAAcsI,KAAM,eACpBtI,EAAcsI,KAAM,gBACpBtI,EAAcsI,KAAM,qBACpBtI,EAAcsI,KAAM,4BACpBA,KAAKmzC,WAAaxqC,EAAQwqC,WAC1BnzC,KAAKojD,YAAcz6C,EAAQy6C,YAC3BpjD,KAAKsxC,kBAAoB3oC,EAAQ2oC,kBACjCtxC,KAAKqjD,yBAA2B16C,EAAQ06C,yBACxCrjD,KAAKsjD,6BAA+B,IAAIjB,GACtCriD,KAAKsxC,kBAAkBkI,YAAYpL,WAAW/yC,KAC5C2E,KAAKsxC,kBAAkBkI,cAG3Bx5C,KAAK4I,OAASD,EAAQC,OAClB5I,KAAKqjD,0BACP3gD,OAAO4K,iBAAiB,UAAWtN,KAAKujD,cAAcloD,KAAK2E,MAE/D,CACA,SAAAqxC,CAAUn3C,GACR8F,KAAKwjD,QAAQpiD,IAAIlH,GAAU,GACvBA,EAASM,eACXwF,KAAKyjD,qBAAqBriD,IAAIlH,EAASM,cAAeN,EAC1D,CACA,eAAAwpD,CAAgBh5B,GACd1qB,KAAK2jD,aAAej5B,CACtB,CACA,YAAAknB,CAAa13C,EAAUy3C,GACrB,IAAIn4C,EAAKC,EACTuG,KAAKmzC,WAAW,CACdzC,KAAM,CACJ,CACER,SAAUlwC,KAAK4I,OAAOzI,MAAMjG,GAC5B62C,OAAQ,KACRhxB,KAAM4xB,IAGVqB,QAAS,GACTP,MAAO,GACPjoC,WAAY,GACZo5C,gBAAgB,IAEd5jD,KAAKqjD,2BAC2B,OAAjC7pD,EAAMU,EAASM,gBAAkChB,EAAI8T,iBACpD,UACAtN,KAAKujD,cAAcloD,KAAK2E,QAEA,OAA3BvG,EAAKuG,KAAK2jD,eAAiClqD,EAAGuB,KAAKgF,KAAM9F,GACtDA,EAAS8U,iBAAmB9U,EAAS8U,gBAAgB60C,oBAAsB3pD,EAAS8U,gBAAgB60C,mBAAmB/kD,OAAS,GAClIkB,KAAKsxC,kBAAkB2I,iBACrB//C,EAAS8U,gBAAgB60C,mBACzB7jD,KAAK4I,OAAOzI,MAAMjG,EAAS8U,iBAEjC,CACA,aAAAu0C,CAAc1sC,GACZ,MAAMitC,EAA0BjtC,EAChC,GAA0C,UAAtCitC,EAAwB93C,KAAKrK,MACjCmiD,EAAwB3gD,SAAW2gD,EAAwB93C,KAAK7I,OAC9D,OAEF,IAD2B0T,EAAQna,OACV,OACzB,MAAMxC,EAAW8F,KAAKyjD,qBAAqB9pD,IAAIkd,EAAQna,QACvD,IAAKxC,EAAU,OACf,MAAM6pD,EAAmB/jD,KAAKgkD,0BAC5B9pD,EACA4pD,EAAwB93C,KAAKstB,OAE3ByqB,GACF/jD,KAAKojD,YACHW,EACAD,EAAwB93C,KAAKi4C,WAEnC,CACA,yBAAAD,CAA0B9pD,EAAUuO,GAClC,IAAIjP,EACJ,OAAQiP,EAAG9G,MACT,KAAKitC,GAAUsV,aAAc,CAC3BlkD,KAAKmkD,wBAAwB7iD,MAAMpH,GACnC8F,KAAKsjD,6BAA6BhiD,MAAMpH,GACxC8F,KAAKokD,gBAAgB37C,EAAGuD,KAAK+T,KAAM7lB,GACnC,MAAMuP,EAAShB,EAAGuD,KAAK+T,KAAK1f,GAG5B,OAFAL,KAAKqkD,2BAA2BjjD,IAAIlH,EAAUuP,GAC9CzJ,KAAKskD,kBAAkB77C,EAAGuD,KAAK+T,KAAMtW,GAC9B,CACL86C,UAAW97C,EAAG87C,UACd5iD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkB2V,SAC1B/T,KAAM,CACJ,CACER,SAAUlwC,KAAK4I,OAAOzI,MAAMjG,GAC5B62C,OAAQ,KACRhxB,KAAMtX,EAAGuD,KAAK+T,OAGlBizB,QAAS,GACTP,MAAO,GACPjoC,WAAY,GACZo5C,gBAAgB,GAGtB,CACA,KAAKhV,GAAU8V,KACf,KAAK9V,GAAU+V,KACf,KAAK/V,GAAUgW,iBACb,OAAO,EAET,KAAKhW,GAAUiW,OACb,OAAOp8C,EAET,KAAKmmC,GAAUkW,OAMb,OALA9kD,KAAK+kD,WACHt8C,EAAGuD,KAAKwmC,QACRt4C,EACA,CAAC,KAAM,WAAY,aAAc,WAE5BuO,EAET,KAAKmmC,GAAU4V,oBACb,OAAQ/7C,EAAGuD,KAAKtP,QACd,KAAKoyC,GAAkB2V,SAoBrB,OAnBAh8C,EAAGuD,KAAK0kC,KAAK7vC,QAASpF,IACpBuE,KAAK+kD,WAAWtpD,EAAIvB,EAAU,CAC5B,WACA,SACA,eAEF8F,KAAKokD,gBAAgB3oD,EAAGskB,KAAM7lB,GAC9B,MAAMuP,EAASzJ,KAAKqkD,2BAA2B1qD,IAAIO,GACnDuP,GAAUzJ,KAAKskD,kBAAkB7oD,EAAGskB,KAAMtW,KAE5ChB,EAAGuD,KAAKgnC,QAAQnyC,QAASpF,IACvBuE,KAAK+kD,WAAWtpD,EAAIvB,EAAU,CAAC,WAAY,SAE7CuO,EAAGuD,KAAKxB,WAAW3J,QAASpF,IAC1BuE,KAAK+kD,WAAWtpD,EAAIvB,EAAU,CAAC,SAEjCuO,EAAGuD,KAAKymC,MAAM5xC,QAASpF,IACrBuE,KAAK+kD,WAAWtpD,EAAIvB,EAAU,CAAC,SAE1BuO,EAET,KAAKqmC,GAAkByN,KACvB,KAAKzN,GAAkB4N,UACvB,KAAK5N,GAAkB2N,UAIrB,OAHAh0C,EAAGuD,KAAKiwC,UAAUp7C,QAASsb,IACzBnc,KAAK+kD,WAAW5oC,EAAGjiB,EAAU,CAAC,SAEzBuO,EAET,KAAKqmC,GAAkBkW,eACrB,OAAO,EAET,KAAKlW,GAAkBmW,iBACvB,KAAKnW,GAAkBoW,iBACvB,KAAKpW,GAAkBqW,OACvB,KAAKrW,GAAkBsW,eACvB,KAAKtW,GAAkBtQ,MAErB,OADAx+B,KAAK+kD,WAAWt8C,EAAGuD,KAAM9R,EAAU,CAAC,OAC7BuO,EAET,KAAKqmC,GAAkBuW,eACvB,KAAKvW,GAAkBwW,iBAGrB,OAFAtlD,KAAK+kD,WAAWt8C,EAAGuD,KAAM9R,EAAU,CAAC,OACpC8F,KAAKulD,gBAAgB98C,EAAGuD,KAAM9R,EAAU,CAAC,YAClCuO,EAET,KAAKqmC,GAAkB0W,KACrB,OAAO/8C,EAET,KAAKqmC,GAAkB2W,UAIrB,OAHAh9C,EAAGuD,KAAKs1C,OAAOzgD,QAASgsB,IACtB7sB,KAAK+kD,WAAWl4B,EAAO3yB,EAAU,CAAC,QAAS,UAEtCuO,EAET,KAAKqmC,GAAkB4W,kBAMrB,OALA1lD,KAAK+kD,WAAWt8C,EAAGuD,KAAM9R,EAAU,CAAC,OACpC8F,KAAKulD,gBAAgB98C,EAAGuD,KAAM9R,EAAU,CAAC,aACf,OAAzBV,EAAMiP,EAAGuD,KAAK25C,SAA2BnsD,EAAIqH,QAASyD,IACrDtE,KAAKulD,gBAAgBjhD,EAAOpK,EAAU,CAAC,cAElCuO,GAKf,OAAO,CACT,CACA,OAAAjK,CAAQonD,EAAcjuD,EAAKuC,EAAUuG,GACnC,IAAK,MAAM7I,KAAO6I,GACXvC,MAAMgf,QAAQvlB,EAAIC,KAA6B,iBAAbD,EAAIC,MACvCsG,MAAMgf,QAAQvlB,EAAIC,IACpBD,EAAIC,GAAOguD,EAAaplD,OACtBtG,EACAvC,EAAIC,IAGND,EAAIC,GAAOguD,EAAazlD,MAAMjG,EAAUvC,EAAIC,KAGhD,OAAOD,CACT,CACA,UAAAotD,CAAWptD,EAAKuC,EAAUuG,GACxB,OAAOT,KAAKxB,QAAQwB,KAAKmkD,wBAAyBxsD,EAAKuC,EAAUuG,EACnE,CACA,eAAA8kD,CAAgB5tD,EAAKuC,EAAUuG,GAC7B,OAAOT,KAAKxB,QAAQwB,KAAKsjD,6BAA8B3rD,EAAKuC,EAAUuG,EACxE,CACA,eAAA2jD,CAAgBnjD,EAAO/G,GACrB8F,KAAK+kD,WAAW9jD,EAAO/G,EAAU,CAAC,KAAM,WACpC,eAAgB+G,GAClBA,EAAMvF,WAAWmF,QAAS6Z,IACxB1a,KAAKokD,gBAAgB1pC,EAAOxgB,IAGlC,CACA,iBAAAoqD,CAAkBrjD,EAAOwI,GACnBxI,EAAMU,OAAS6tC,GAAS1lC,UAAa7I,EAAMwI,SAAQxI,EAAMwI,OAASA,GAClE,eAAgBxI,GAClBA,EAAMvF,WAAWmF,QAAS6Z,IACxB1a,KAAKskD,kBAAkB5pC,EAAOjR,IAGpC,EAEF,MAAMo8C,GACJ,WAAArpD,CAAYmM,GACVjR,EAAcsI,KAAM,aAA8B,IAAI8lD,SACtDpuD,EAAcsI,KAAM,cACpBtI,EAAcsI,KAAM,YACpBtI,EAAcsI,KAAM,iBACpBtI,EAAcsI,KAAM,UACpBtI,EAAcsI,KAAM,kBAAmB,IACvCA,KAAKmzC,WAAaxqC,EAAQwqC,WAC1BnzC,KAAKs4C,SAAW3vC,EAAQ2vC,SACxBt4C,KAAKqS,cAAgB1J,EAAQ0J,cAC7BrS,KAAK4I,OAASD,EAAQC,OACtB5I,KAAK4yB,MACP,CACA,IAAAA,GACE5yB,KAAKsB,QACLtB,KAAK+lD,kBAAkBrtD,QAASyB,SAClC,CACA,aAAAs3C,CAAcl0C,EAAa+I,GACzB,IAAKhJ,EAAkBC,GAAc,OACrC,GAAIyC,KAAKgmD,WAAWjlD,IAAIxD,GAAc,OACtCyC,KAAKgmD,WAAW9kD,IAAI3D,GACpB,MAAMy4C,EAAWH,GACf,IACK71C,KAAKqS,cACR/L,MACA6sC,WAAYnzC,KAAKmzC,WACjBvqC,OAAQ5I,KAAK4I,OACb4oC,iBAAkBxxC,MAEpBzC,GAEFyC,KAAKimD,gBAAgB9mD,KAAK,IAAM62C,EAASoM,cACzCpiD,KAAKimD,gBAAgB9mD,KACnBk5C,GAAmB,IACdr4C,KAAKqS,cACRimC,SAAUt4C,KAAKs4C,SAGfhyC,IAAK/I,EACLqL,OAAQ5I,KAAK4I,UAGjBiK,WAAW,KACLtV,EAAYsmD,oBAAsBtmD,EAAYsmD,mBAAmB/kD,OAAS,GAC5EkB,KAAKqS,cAAci/B,kBAAkB2I,iBACnC18C,EAAYsmD,mBACZ7jD,KAAK4I,OAAOzI,MAAMoe,GAAMtiB,KAAKsB,KAEjCyC,KAAKimD,gBAAgB9mD,KACnBu6C,GACE,CACE9wC,OAAQ5I,KAAK4I,OACb0oC,kBAAmBtxC,KAAKqS,cAAci/B,mBAExC/zC,KAGH,EACL,CAIA,mBAAAs0C,CAAoBqU,GACbA,EAAc1rD,eAAkB0rD,EAAcl3C,iBACnDhP,KAAK+lD,kBACHG,EAAc1rD,cAAc9B,QAC5BwtD,EAAcl3C,gBAElB,CAIA,iBAAA+2C,CAAkBvkD,EAAS8E,GACzB,MAAM6/C,EAAUnmD,KAChBA,KAAKimD,gBAAgB9mD,KACnB1C,GACE+E,EAAQtI,UACR,eACA,SAAS2D,GACP,OAAO,SAASupD,GACd,MAAMC,EAAQxpD,EAAS7B,KAAKgF,KAAMomD,GAC5Bj0C,EAAeoM,GAAMpiB,WAAW6D,MAGtC,OAFImS,GAAgBw8B,GAAM3uC,OACxBmmD,EAAQ1U,cAAct/B,EAAc7L,GAC/B+/C,CACT,CACF,GAGN,CACA,KAAA/kD,GACEtB,KAAKimD,gBAAgBplD,QAASu2C,IAC5B,IACEA,GACF,CAAE,MAAO3uC,GACT,IAEFzI,KAAKimD,gBAAkB,GACvBjmD,KAAKgmD,WAA6B,IAAIF,OACxC,EAIF,IAFA,IAAIQ,GAAQ,mEACRC,GAA+B,oBAAf3F,WAA6B,GAAK,IAAIA,WAAW,KAC5D4F,GAAM,EAAGA,GAAMF,GAAcE,KACpCD,GAAOD,GAAMj+B,WAAWm+B,KAAQA,GAiBlC,MAAMC,GAA+B,IAAIxmD,IAYzC,MAAMymD,GAAe,CAAC7uD,EAAO0C,EAAK+Q,KAChC,IAAKzT,IAAW8uD,GAAwB9uD,EAAO0C,IAAyB,iBAAV1C,EAC5D,OACF,MACM+uD,EAfR,SAA2Bt7C,EAAKu7C,GAC9B,IAAIC,EAAaL,GAAa9sD,IAAI2R,GAQlC,OAPKw7C,IACHA,EAA6B,IAAI7mD,IACjCwmD,GAAarlD,IAAIkK,EAAKw7C,IAEnBA,EAAW/lD,IAAI8lD,IAClBC,EAAW1lD,IAAIylD,EAAM,IAEhBC,EAAWntD,IAAIktD,EACxB,CAKgBE,CAAkBz7C,EADnBzT,EAAM2E,YAAYG,MAE/B,IAAIwb,EAASyuC,EAAMhjD,QAAQ/L,GAK3B,OAJe,IAAXsgB,IACFA,EAASyuC,EAAM9nD,OACf8nD,EAAMznD,KAAKtH,IAENsgB,GAET,SAAS6uC,GAAanvD,EAAO0C,EAAK+Q,GAChC,GAAIzT,aAAiBqG,MACnB,OAAOrG,EAAMqgB,IAAK+uC,GAAQD,GAAaC,EAAK1sD,EAAK+Q,IAC5C,GAAc,OAAVzT,EACT,OAAOA,EACF,GAAIA,aAAiBqvD,cAAgBrvD,aAAiBsvD,cAAgBtvD,aAAiBuvD,YAAcvvD,aAAiBiU,aAAejU,aAAiB+oD,YAAc/oD,aAAiBwvD,aAAexvD,aAAiByvD,YAAczvD,aAAiB0vD,WAAa1vD,aAAiB2vD,kBAAmB,CAE1S,MAAO,CACLC,QAFW5vD,EAAM2E,YAAYG,KAG7B8tB,KAAM,CAACjzB,OAAOk5B,OAAO74B,IAEzB,CAAO,GAILA,aAAiB6vD,YACjB,CAGA,MAAO,CACLD,QAHW5vD,EAAM2E,YAAYG,KAI7BgrD,OA5DO,SAASC,GACpB,IAAyChjD,EAArCijD,EAAQ,IAAIjH,WAAWgH,GAAkBn9C,EAAMo9C,EAAM/oD,OAAQ6oD,EAAS,GAC1E,IAAK/iD,EAAK,EAAGA,EAAK6F,EAAK7F,GAAM,EAC3B+iD,GAAUrB,GAAMuB,EAAMjjD,IAAO,GAC7B+iD,GAAUrB,IAAmB,EAAZuB,EAAMjjD,KAAY,EAAIijD,EAAMjjD,EAAK,IAAM,GACxD+iD,GAAUrB,IAAuB,GAAhBuB,EAAMjjD,EAAK,KAAY,EAAIijD,EAAMjjD,EAAK,IAAM,GAC7D+iD,GAAUrB,GAAsB,GAAhBuB,EAAMjjD,EAAK,IAO7B,OALI6F,EAAM,GAAM,EACdk9C,EAASA,EAAO3iD,UAAU,EAAG2iD,EAAO7oD,OAAS,GAAK,IACzC2L,EAAM,GAAM,IACrBk9C,EAASA,EAAO3iD,UAAU,EAAG2iD,EAAO7oD,OAAS,GAAK,MAE7C6oD,CACT,CA2CmBG,CAAOjwD,GAKxB,CAAO,GAAIA,aAAiBkwD,SAAU,CAEpC,MAAO,CACLN,QAFW5vD,EAAM2E,YAAYG,KAG7B8tB,KAAM,CACJu8B,GAAanvD,EAAMoU,OAAQ1R,EAAK+Q,GAChCzT,EAAMmwD,WACNnwD,EAAMowD,YAGZ,CAAO,GAAIpwD,aAAiBqwD,iBAAkB,CAC5C,MAAMvrD,EAAO9E,EAAM2E,YAAYG,MACzBoS,IAAEA,GAAQlX,EAChB,MAAO,CACL4vD,QAAS9qD,EACToS,MAEJ,CAAO,GAAIlX,aAAiBswD,kBAAmB,CAG7C,MAAO,CACLV,QAHW,mBAIX14C,IAHUlX,EAAMyU,YAKpB,CAAO,GAAIzU,aAAiBuwD,UAAW,CAErC,MAAO,CACLX,QAFW5vD,EAAM2E,YAAYG,KAG7B8tB,KAAM,CAACu8B,GAAanvD,EAAMmU,KAAMzR,EAAK+Q,GAAMzT,EAAM4T,MAAO5T,EAAM8T,QAElE,CAAO,GAAIg7C,GAAwB9uD,EAAO0C,IAAyB,iBAAV1C,EAAoB,CAG3E,MAAO,CACL4vD,QAHW5vD,EAAM2E,YAAYG,KAI7B4hB,MAHamoC,GAAa7uD,EAAO0C,EAAK+Q,GAK1C,CACA,OAAOzT,CACT,CACA,MAAMwwD,GAAgB,CAAC59B,EAAMlwB,EAAK+Q,IACzBmf,EAAKvS,IAAK+uC,GAAQD,GAAaC,EAAK1sD,EAAK+Q,IAE5Cq7C,GAA0B,CAAC9uD,EAAO0C,KACtC,MAcM+tD,EAdwB,CAC5B,kBACA,cACA,mBACA,eACA,oBACA,cACA,6BACA,eACA,uBACA,yBAEA,6BAE2D76B,OAC1D9wB,GAA8B,mBAAdpC,EAAIoC,IAEvB,OAAOtD,QACLivD,EAA+B19C,KAC5BjO,GAAS9E,aAAiB0C,EAAIoC,MA2DrC,SAAS4rD,GAA0BhuD,EAAKuO,EAAYC,EAAey/C,GACjE,MAAM3R,EAAW,GACjB,IACE,MAAMgK,EAAiBpkD,GACrBlC,EAAI4tD,kBAAkBjvD,UACtB,aACA,SAAS2D,GACP,OAAO,SAAS4rD,KAAgBh+B,GAC9B,IAAK4iB,GAAUrtC,KAAM8I,EAAYC,GAAe,GAAO,CACrD,MAAM2/C,EAZlB,SAAkCD,GAChC,MAAuB,uBAAhBA,EAAuC,QAAUA,CAC1D,CAU4BE,CAAyBF,GAEzC,GADM,cAAezoD,OAAOA,KAAKoL,UAAYs9C,GACzCF,GAAkC,CAAC,QAAS,UAAU3uD,SAAS6uD,GACjE,GAAIj+B,EAAK,IAAyB,iBAAZA,EAAK,GAAiB,CAC1C,MAAMm+B,EAAoBn+B,EAAK,GAC1Bm+B,EAAkBC,wBACrBD,EAAkBC,uBAAwB,EAE9C,MACEp+B,EAAKK,OAAO,EAAG,EAAG,CAChB+9B,uBAAuB,GAI/B,CACA,OAAOhsD,EAASqX,MAAMlU,KAAM,CAACyoD,KAAgBh+B,GAC/C,CACF,GAEFosB,EAAS13C,KAAK0hD,EAChB,CAAE,MACAtzC,QAAQ9O,MAAM,yDAChB,CACA,MAAO,KACLo4C,EAASh2C,QAASu3C,GAAMA,KAE5B,CACA,SAAS0Q,GAAiB5vD,EAAWyI,EAAM+oB,EAAI5hB,EAAYC,EAAexO,GACxE,MAAMs8C,EAAW,GACXtrB,EAAQ/zB,OAAOuxD,oBAAoB7vD,GACzC,IAAK,MAAM8hB,KAAQuQ,EACjB,IAEE,CACE,gBACA,SACA,qBACA,uBACA1xB,SAASmhB,GAIb,IACE,GAA+B,mBAApB9hB,EAAU8hB,GACnB,SAEF,MAAM6lC,EAAiBpkD,GACrBvD,EACA8hB,EACA,SAASne,GACP,OAAO,YAAY4tB,GACjB,MAAMtL,EAAUtiB,EAASqX,MAAMlU,KAAMyqB,GAErC,GADAi8B,GAAavnC,EAAS5kB,EAAKyF,MACvB,YAAaA,KAAKqL,SAAWgiC,GAAUrtC,KAAKqL,OAAQvC,EAAYC,GAAe,GAAO,CACxF,MAAMigD,EAAaX,GAAc59B,EAAMlwB,EAAKyF,MACtCg7C,EAAW,CACfr5C,OACAmQ,SAAUkJ,EACVyP,KAAMu+B,GAERt+B,EAAG1qB,KAAKqL,OAAQ2vC,EAClB,CACA,OAAO77B,CACT,CACF,GAEF03B,EAAS13C,KAAK0hD,EAChB,CAAE,MACA,MAAMoI,EAAc/c,GAAWhzC,EAAW8hB,EAAM,CAC9C,GAAA5Z,CAAIw8C,GACFlzB,EAAG1qB,KAAKqL,OAAQ,CACd1J,OACAmQ,SAAUkJ,EACVyP,KAAM,CAACmzB,GACPsL,QAAQ,GAEZ,IAEFrS,EAAS13C,KAAK8pD,EAChB,CAEF,OAAOpS,CACT,CA6BA,MAAMsS,GAAY,2jHAEZC,GAAyB,oBAAX1mD,QAA0BA,OAAO2mD,MAAQ,IAAIA,KAAK,EADhD1B,GAC8DwB,GADnDvI,WAAWziD,KAAKgkB,KAAKwlC,IAAUjgD,GAAOA,EAAG2gB,WAAW,MACY,CAAE1mB,KAAM,kCADpF,IAACgmD,GAEtB,SAAS2B,GAAc3gD,GACrB,IAAI4gD,EACJ,IAEE,GADAA,EAASH,KAAS1mD,OAAOD,KAAOC,OAAO8mD,WAAWC,gBAAgBL,KAC7DG,EAAQ,KAAM,GACnB,MAAMG,EAAS,IAAIC,OAAOJ,EAAQ,CAChC5sD,KAAiB,MAAXgM,OAAkB,EAASA,EAAQhM,OAK3C,OAHA+sD,EAAOp8C,iBAAiB,QAAS,MAC9B5K,OAAOD,KAAOC,OAAO8mD,WAAWI,gBAAgBL,KAE5CG,CACT,CAAE,MAAOjhD,GACP,OAAO,IAAIkhD,OACT,+BAAiCR,GACjC,CACExsD,KAAiB,MAAXgM,OAAkB,EAASA,EAAQhM,MAG/C,CAAC,QACC4sD,IAAW7mD,OAAOD,KAAOC,OAAO8mD,WAAWI,gBAAgBL,EAC7D,CACF,CACA,MAAMM,GACJ,WAAArtD,CAAYmM,GACVjR,EAAcsI,KAAM,yBAA0C,IAAIC,KAClEvI,EAAcsI,KAAM,YAAa,CAAE8pD,SAAU,EAAGC,SAAU,OAC1DryD,EAAcsI,KAAM,UACpBtI,EAAcsI,KAAM,cACpBtI,EAAcsI,KAAM,kBACpBtI,EAAcsI,KAAM,UAAU,GAC9BtI,EAAcsI,KAAM,UAAU,GAC9BtI,EAAcsI,KAAM,kBAAmB,CAACorC,EAAQ4P,OAC7Bh7C,KAAKgqD,UAAUD,UAAY/pD,KAAKgqD,UAAUF,WAAa9pD,KAAKgqD,UAAUD,WACtE/pD,KAAKgqD,UAAUD,WAC9B/pD,KAAKgqD,UAAUD,SAAW/pD,KAAKgqD,UAAUF,UACtC9pD,KAAKiqD,uBAAuBlpD,IAAIqqC,IACnCprC,KAAKiqD,uBAAuB7oD,IAAIgqC,EAAQ,IAE1CprC,KAAKiqD,uBAAuBtwD,IAAIyxC,GAAQjsC,KAAK67C,KAE/C,MAAMtE,SACJA,EAAW,MAAKn8C,IAChBA,EAAGuO,WACHA,EAAUC,cACVA,EAAaM,aACbA,EAAYF,eACZA,GACER,EACJ3I,KAAKmzC,WAAaxqC,EAAQwqC,WAC1BnzC,KAAK4I,OAASD,EAAQC,OAClBS,GAA6B,QAAbqtC,GAClB12C,KAAKkqD,2BAA2B3vD,EAAKuO,EAAYC,GAC/CM,GAAoC,iBAAbqtC,GACzB12C,KAAKmqD,sBAAsBzT,EAAUn8C,EAAKuO,EAAYC,EAAe,CACnEI,kBAEN,CACA,KAAA7H,GACEtB,KAAKiqD,uBAAuBG,QAC5BpqD,KAAKqqD,gBAAkBrqD,KAAKqqD,gBAC9B,CACA,MAAAj0C,GACEpW,KAAKwwC,QAAS,CAChB,CACA,QAAAwE,GACEh1C,KAAKwwC,QAAS,CAChB,CACA,IAAA0E,GACEl1C,KAAKywC,QAAS,CAChB,CACA,MAAA0E,GACEn1C,KAAKywC,QAAS,CAChB,CACA,qBAAA0Z,CAAsBG,EAAK/vD,EAAKuO,EAAYC,EAAeJ,GACzD,MAAM4hD,EAAqBhC,GACzBhuD,EACAuO,EACAC,GACA,GAEIyhD,EAAwC,IAAIvqD,IAC5CypD,EAAS,IAAIJ,GACnBI,EAAOe,UAAahiD,IAClB,MAAMpI,GAAEA,GAAOoI,EAAGuD,KAElB,GADAw+C,EAAsBppD,IAAIf,GAAI,KACxB,WAAYoI,EAAGuD,MAAO,OAC5B,MAAM27C,OAAEA,EAAMhmD,KAAEA,EAAI8J,MAAEA,EAAKE,OAAEA,GAAWlD,EAAGuD,KAC3ChM,KAAKmzC,WAAW,CACd9yC,KACAsB,KAAMytC,GAAc,MACpBsb,SAAU,CACR,CACE54C,SAAU,YAEV2Y,KAAM,CAAC,EAAG,EAAGhf,EAAOE,IAEtB,CACEmG,SAAU,YAEV2Y,KAAM,CACJ,CACEg9B,QAAS,cACTh9B,KAAM,CACJ,CACEg9B,QAAS,OACTz7C,KAAM,CAAC,CAAEy7C,QAAS,cAAeE,WACjChmD,UAIN,EACA,QAMV,MAAMgpD,EAAuB,IAAML,EACnC,IACIM,EADAC,EAAmB,EAEvB,MASMC,EAAuBvG,IACvBsG,GAAoBtG,EAAYsG,EAAmBF,IAIvDE,EAAmBtG,EAdH,MAChB,MAAMwG,EAAgB,GAMtB,OALAxwD,EAAIJ,SAASmC,iBAAiB,UAAUuE,QAASwK,IAC1CgiC,GAAUhiC,EAAQvC,EAAYC,GAAe,IAChDgiD,EAAc5rD,KAAKkM,KAGhB0/C,GAQPC,GAAYnqD,QAAQs3B,MAAO9sB,IACzB,IAAI7R,EACJ,MAAM6G,EAAKL,KAAK4I,OAAOzI,MAAMkL,GAC7B,GAAIm/C,EAAsB7wD,IAAI0G,GAAK,OACnC,GAAqB,IAAjBgL,EAAOI,OAAiC,IAAlBJ,EAAOM,OAAc,OAE/C,GADA6+C,EAAsBppD,IAAIf,GAAI,GAC1B,CAAC,QAAS,UAAUxG,SAASwR,EAAOD,WAAY,CAClD,MAAM4gC,EAAU3gC,EAAOE,WAAWF,EAAOD,YACgF,KAA/C,OAApE5R,EAAiB,MAAXwyC,OAAkB,EAASA,EAAQif,6BAAkC,EAASzxD,EAAIqvD,wBAC5F7c,EAAQoe,MAAMpe,EAAQkf,iBAE1B,CACA,MAAMC,QAAeC,kBAAkB//C,GACvCq+C,EAAO2B,YACL,CACEhrD,KACA8qD,SACA1/C,MAAOJ,EAAOI,MACdE,OAAQN,EAAOM,OACfxC,eAAgBR,EAAQQ,gBAE1B,CAACgiD,OAzBHP,EAAQU,sBAAsBR,IA8BlCF,EAAQU,sBAAsBR,GAC9B9qD,KAAKqqD,eAAiB,KACpBE,IACAgB,qBAAqBX,GAEzB,CACA,0BAAAV,CAA2B3vD,EAAKuO,EAAYC,GAC1C/I,KAAKwrD,uBACLxrD,KAAKyrD,oCACL,MAAMlB,EAAqBhC,GACzBhuD,EACAuO,EACAC,GACA,GAEI2iD,EAnWV,SAAsChhC,EAAInwB,EAAKuO,EAAYC,GACzD,MAAM8tC,EAAW,GACX8U,EAAUn0D,OAAOuxD,oBACrBxuD,EAAIqxD,yBAAyB1yD,WAE/B,IAAK,MAAM8hB,KAAQ2wC,EACjB,IACE,GAA4D,mBAAjDpxD,EAAIqxD,yBAAyB1yD,UAAU8hB,GAChD,SAEF,MAAM6lC,EAAiBpkD,GACrBlC,EAAIqxD,yBAAyB1yD,UAC7B8hB,EACA,SAASne,GACP,OAAO,YAAY4tB,GAWjB,OAVK4iB,GAAUrtC,KAAKqL,OAAQvC,EAAYC,GAAe,IACrD8J,WAAW,KACT,MAAMm2C,EAAaX,GAAc59B,EAAMlwB,EAAKyF,MAC5C0qB,EAAG1qB,KAAKqL,OAAQ,CACd1J,KAAMytC,GAAc,MACpBt9B,SAAUkJ,EACVyP,KAAMu+B,KAEP,GAEEnsD,EAASqX,MAAMlU,KAAMyqB,EAC9B,CACF,GAEFosB,EAAS13C,KAAK0hD,EAChB,CAAE,MACA,MAAMoI,EAAc/c,GAClB3xC,EAAIqxD,yBAAyB1yD,UAC7B8hB,EACA,CACE,GAAA5Z,CAAIw8C,GACFlzB,EAAG1qB,KAAKqL,OAAQ,CACd1J,KAAMytC,GAAc,MACpBt9B,SAAUkJ,EACVyP,KAAM,CAACmzB,GACPsL,QAAQ,GAEZ,IAGJrS,EAAS13C,KAAK8pD,EAChB,CAEF,MAAO,KACLpS,EAASh2C,QAASu3C,GAAMA,KAE5B,CAgT0ByT,CACpB7rD,KAAKswC,gBAAgBj1C,KAAK2E,MAC1BzF,EACAuO,EACAC,GAEI+iD,EAtNV,SAAyCphC,EAAInwB,EAAKuO,EAAYC,GAC5D,MAAM8tC,EAAW,GAuBjB,OAtBAA,EAAS13C,QACJ2pD,GACDvuD,EAAIwxD,sBAAsB7yD,UAC1Bk2C,GAAc4c,MACdthC,EACA5hB,EACAC,EACAxO,SAGsC,IAA/BA,EAAI0xD,wBACbpV,EAAS13C,QACJ2pD,GACDvuD,EAAI0xD,uBAAuB/yD,UAC3Bk2C,GAAc8c,OACdxhC,EACA5hB,EACAC,EACAxO,IAIC,KACLs8C,EAASh2C,QAASu3C,GAAMA,KAE5B,CA2LkC+T,CAC5BnsD,KAAKswC,gBAAgBj1C,KAAK2E,MAC1BzF,EACAuO,EACAC,GAEF/I,KAAKqqD,eAAiB,KACpBE,IACAmB,IACAI,IAEJ,CACA,iCAAAL,GACEH,sBAAsB,IAAMtrD,KAAKosD,8BACnC,CACA,oBAAAZ,GACE,MAAMa,EAAyB9H,IAC7BvkD,KAAKgqD,UAAUF,SAAWvF,EAC1B+G,sBAAsBe,IAExBf,sBAAsBe,EACxB,CACA,2BAAAD,GACEpsD,KAAKiqD,uBAAuBppD,QAC1B,CAACyrD,EAASjhD,KACR,MAAMhL,EAAKL,KAAK4I,OAAOzI,MAAMkL,GAC7BrL,KAAKusD,8BAA8BlhD,EAAQhL,KAG/CirD,sBAAsB,IAAMtrD,KAAKosD,8BACnC,CACA,6BAAAG,CAA8BlhD,EAAQhL,GACpC,GAAIL,KAAKwwC,QAAUxwC,KAAKywC,OACtB,OAEF,MAAM+b,EAAiBxsD,KAAKiqD,uBAAuBtwD,IAAI0R,GACvD,IAAKmhD,QAAkBnsD,EAAW,OAClC,MAAMqwB,EAAS87B,EAAet0C,IAAKrgB,IACjC,MAAQ8J,KAAM8qD,KAAUhX,GAAS59C,EACjC,OAAO49C,KAEH9zC,KAAEA,GAAS6qD,EAAe,GAChCxsD,KAAKmzC,WAAW,CAAE9yC,KAAIsB,OAAM+oD,SAAUh6B,IACtC1wB,KAAKiqD,uBAAuBrpD,OAAOyK,EACrC,EAEF,MAAMqhD,GACJ,WAAAlwD,CAAYmM,GACVjR,EAAcsI,KAAM,sBAAuC,IAAI8lD,SAC/DpuD,EAAcsI,KAAM,cACpBtI,EAAcsI,KAAM,uBACpBtI,EAAcsI,KAAM,cAAe,IAAI+tC,IACvC/tC,KAAKmzC,WAAaxqC,EAAQwqC,WAC1BnzC,KAAK2sD,oBAAsBhkD,EAAQgkD,mBACrC,CACA,iBAAA7a,CAAkB8a,EAAQjb,GACpB,aAAcA,EAAQnnC,YACxBxK,KAAKmzC,WAAW,CACdzC,KAAM,GACNsC,QAAS,GACTP,MAAO,GACPjoC,WAAY,CACV,CACEnK,GAAIsxC,EAAQtxC,GACZmK,WAAYmnC,EAAQnnC,eAI5BxK,KAAKuxC,iBAAiBqb,EACxB,CACA,gBAAArb,CAAiBqb,GACX5sD,KAAK6sD,oBAAoB9rD,IAAI6rD,KACjC5sD,KAAK6sD,oBAAoB3rD,IAAI0rD,GAC7B5sD,KAAK8sD,6BAA6BF,GACpC,CACA,gBAAA3S,CAAiBD,EAAQJ,GACvB,GAAsB,IAAlBI,EAAOl7C,OAAc,OACzB,MAAMiuD,EAAwB,CAC5B1sD,GAAIu5C,EACJoT,SAAU,IAENrH,EAAS,GACf,IAAK,MAAM56C,KAASivC,EAAQ,CAC1B,IAAIP,EACCz5C,KAAKw5C,YAAYz4C,IAAIgK,GASnB0uC,EAAUz5C,KAAKw5C,YAAYr5C,MAAM4K,IARtC0uC,EAAUz5C,KAAKw5C,YAAYt4C,IAAI6J,GAC/B46C,EAAOxmD,KAAK,CACVs6C,UACA97C,MAAOO,MAAMC,KAAK4M,EAAMpN,OAASsvD,QAAS,CAACC,EAAI/0C,KAAM,CACnDkE,KAAMhe,EAAc6uD,EAAIniD,EAAMjN,MAC9BygB,MAAOpG,QAIb40C,EAAsBC,SAAS7tD,KAAKs6C,EACtC,CACIkM,EAAO7mD,OAAS,IAAGiuD,EAAsBpH,OAASA,GACtD3lD,KAAK2sD,oBAAoBI,EAC3B,CACA,KAAAzrD,GACEtB,KAAKw5C,YAAYl4C,QACjBtB,KAAK6sD,oBAAsC,IAAI/G,OACjD,CAEA,4BAAAgH,CAA6BK,GAC7B,EAEF,MAAMC,GACJ,WAAA5wD,GACE9E,EAAcsI,KAAM,UAA2B,IAAIE,SACnDxI,EAAcsI,KAAM,UAAU,EAChC,CACA,aAAA60C,CAAc5zC,EAAOosD,GACnB,MAAMC,EAAUttD,KAAKutD,QAAQ5zD,IAAIsH,GACjC,OAAOqsD,GAAWpvD,MAAMC,KAAKmvD,GAASphD,KAAMD,GAAWA,IAAWohD,EACpE,CACA,GAAAnsD,CAAID,EAAOgL,GACJjM,KAAKwtD,SACRxtD,KAAKwtD,QAAS,EACdlC,sBAAsB,KACpBtrD,KAAKutD,QAA0B,IAAIrtD,QACnCF,KAAKwtD,QAAS,KAGlBxtD,KAAKutD,QAAQnsD,IAAIH,GAAQjB,KAAKutD,QAAQ5zD,IAAIsH,IAA0B,IAAImvC,KAAOlvC,IAAI+K,GACrF,CACA,OAAAwhD,GACA,EAEF,IAAIrK,GACAsK,GACA3Y,GACA4Y,IAAY,EAChB,IACE,GAA2C,IAAvCzvD,MAAMC,KAAK,CAAC,GAAKqN,GAAY,EAALA,GAAQ,GAAU,CAC5C,MAAMoiD,EAAazzD,SAASC,cAAc,UAC1CD,SAASE,KAAKC,YAAYszD,GAC1B1vD,MAAMC,MAA2C,OAAlC7G,EAAKs2D,EAAWpzD,oBAAyB,EAASlD,EAAG4G,MAAMC,OAASD,MAAMC,KACzFhE,SAASE,KAAKK,YAAYkzD,EAC5B,CACF,CAAE,MAAOhrD,GACP2K,QAAQsgD,MAAM,gCAAiCjrD,EACjD,CACA,MAAMgG,GA9pWG,IAAI7I,EA+pWb,SAAS+tD,GAAOnlD,EAAU,IACxB,MAAM4nC,KACJA,EAAIwd,iBACJA,EAAgBC,iBAChBA,EAAgBllD,WAChBA,EAAa,WAAUC,cACvBA,EAAgB,KAAIo0C,YACpBA,EAAc,YAAWC,eACzBA,EAAiB,KAAI/0C,cACrBA,EAAgB,UAASC,iBACzBA,EAAmB,KAAIW,iBACvBA,GAAmB,EAAIglD,cACvBA,EACAxsD,iBAAkBysD,EAClB98C,eAAgBd,EAAe1O,YAC/BA,EAAWsH,WACXA,EAAUkxC,MACVA,EAAK+T,OACLA,EAAMzX,SACNA,EAAW,CAAA,EAAEvtC,eACbA,EAAiB,CAAA,EAAEilD,cACnBA,EAAazS,UACbA,GAAY,EAAItyC,aAChBA,GAAe,EAAKg6C,yBACpBA,GAA2B,EAAKgL,YAChCA,GAAsC,qBAAxB1lD,EAAQ0lD,YAAqC1lD,EAAQ0lD,YAAc,QAAMhR,qBACvFA,GAAuB,EAAK+C,aAC5BA,GAAe,EAAKh3C,aACpBA,GAAe,EAAK8uB,QACpBA,EAAO5uB,gBACPA,EAAkB,KAAM,EAAKw2C,oBAC7BA,EAAsC,IAAI1P,IAAI,IAC9CmF,aAAc+Y,GACZ3lD,EAtjEJ4sC,GAujEqB+Y,EACrB,MAAMC,GAAkBlL,GAA2B3gD,OAAO8M,SAAW9M,OACrE,IAAI8rD,GAAoB,EACxB,IAAKD,EACH,IACM7rD,OAAO8M,OAAOrV,WAChBq0D,GAAoB,EAExB,CAAE,MAAO/lD,GACP+lD,GAAoB,CACtB,CAEF,GAAID,IAAoBhe,EACtB,MAAM,IAAI35B,MAAM,6BAElB,IAAK23C,IAAoBC,EACvB,MAAO,YAGa,IAAlBJ,QAAmD,IAAvB1X,EAASuE,YACvCvE,EAASuE,UAAYmT,GAEvBxlD,GAAOtH,QACP,MAAMG,GAAqC,IAAlBwsD,EAAyB,CAChDv2C,OAAO,EACP+2C,MAAM,EACN,kBAAkB,EAClBC,OAAO,EACPC,OAAO,EACPv2C,QAAQ,EACRyU,OAAO,EACP+hC,QAAQ,EACRC,KAAK,EACLhtD,MAAM,EACNitD,MAAM,EACNtsD,KAAK,EACLusD,MAAM,EACN3b,UAAU,EACV4b,QAAQ,EACRC,UAAU,QACc,IAAtBf,EAA+BA,EAAoB,CAAEe,UAAU,GAC7D79C,EAAiBf,GAAgBC,GAEvC,IAAI4+C,GA31FN,SAAoB30D,EAAMmI,QACpB,aAAcnI,IAAQA,EAAI40D,SAASj2D,UAAU2H,UAC/CtG,EAAI40D,SAASj2D,UAAU2H,QAAU3C,MAAMhF,UAAU2H,SAE/C,iBAAkBtG,IAAQA,EAAI60D,aAAal2D,UAAU2H,UACvDtG,EAAI60D,aAAal2D,UAAU2H,QAAU3C,MAAMhF,UAAU2H,QAEzD,CAm1FEwuD,GAEA,IAAIC,EAA2B,EAC/B,MAAMC,EAAkB9mD,IACtB,IAAK,MAAM05C,KAAWjqB,GAAW,GAC3BiqB,EAAQoN,iBACV9mD,EAAK05C,EAAQoN,eAAe9mD,IAOhC,OAJI0lD,IACHK,IACC/lD,EAAK0lD,EAAO1lD,IAEPA,GAET26C,GAAc,CAAC8J,EAAIjJ,KACjB,IAAIzqD,EACJ,MAAMiP,EAAKykD,EAKX,GAJAzkD,EAAG87C,UAAYlY,OACoB,OAA7B7yC,EAAMk8C,GAAgB,SAAc,EAASl8C,EAAIy7C,aAAexsC,EAAG9G,OAASitC,GAAUsV,cAAkBz7C,EAAG9G,OAASitC,GAAU4V,qBAAuB/7C,EAAGuD,KAAKtP,SAAWoyC,GAAkB2V,UAC9L/O,GAAgB70C,QAASyZ,GAAQA,EAAI06B,YAEnCuZ,EACM,MAARhe,GAAwBA,EAAKgf,EAAe9mD,GAAKw7C,QAC5C,GAAIuK,EAAmB,CAC5B,MAAM33C,EAAU,CACdlV,KAAM,QACN23B,MAAOi2B,EAAe9mD,GACtBtF,OAAQT,OAAOC,SAASQ,OACxB8gD,cAEFvhD,OAAO8M,OAAO67C,YAAYx0C,EAAS,IACrC,CACA,GAAIpO,EAAG9G,OAASitC,GAAUsV,aACxBgL,EAAwBzmD,EACxB6mD,EAA2B,OACtB,GAAI7mD,EAAG9G,OAASitC,GAAU4V,oBAAqB,CACpD,GAAI/7C,EAAGuD,KAAKtP,SAAWoyC,GAAkB2V,UAAYh8C,EAAGuD,KAAK43C,eAC3D,OAEF0L,IACA,MAAME,EAAcxB,GAAoBsB,GAA4BtB,EAC9DyB,EAAa1B,GAAoBtlD,EAAG87C,UAAY2K,EAAsB3K,UAAYwJ,GACpFyB,GAAeC,IACjB/B,IAAmB,EAEvB,GAEF,MAAMgC,EAAuBnc,IAC3B6P,GAAY,CACVzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkB2V,YACvBlR,MAIHoc,EAAqBxzC,GAAMinC,GAAY,CAC3CzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkBqW,UACvBhpC,KAGDyzC,EAA6BzzC,GAAMinC,GAAY,CACnDzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkBsW,kBACvBjpC,KAUDm1B,EAAoB,IAAIob,GAAkB,CAC9CvZ,WAAYuc,EACZ/C,oBAToC7lD,GAAOs8C,GAAY,CACvDzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkB4W,qBACvB5+C,OAODsqC,EAAgB,IAAI+R,GAAc,CACtCv6C,UACAuqC,WAAYuc,EACZpe,oBACA+R,2BACAD,iBAEF,IAAK,MAAMjB,KAAWjqB,GAAW,GAC3BiqB,EAAQ0N,WACV1N,EAAQ0N,UAAU,CAChBC,WAAYlnD,GACZu7C,wBAAyB/S,EAAc+S,wBACvCb,6BAA8BlS,EAAckS,+BAGlD,MAAM1O,EAAuB,IAAIwY,GACjCrY,GAAgB,IAAI8U,GAAc,CAChCxgD,eACA8pC,WAAYyc,EACZr1D,IAAKmI,OACLoG,aACAC,gBACAH,UACA8tC,SAAUA,EAASrrC,OACnBlC,mBAEF,MAAMqoC,EAAmB,IAAIqU,GAAiB,CAC5C1S,WAAYuc,EACZpX,SAAUqX,EACVt9C,cAAe,CACbvJ,aACAC,gBACAV,gBACAC,mBACAW,mBACAxH,mBACA0H,iBACAD,aACAtH,cACAyH,eACAD,eACAstC,WACAtlC,iBACAggC,gBACAE,oBACAyD,iBACAzrC,kBACAsrC,wBAEFhsC,YAEF8kD,GAAqB,CAACzJ,GAAa,KACjC,IAAKtI,EACH,OAEFyH,GACE,CACEzhD,KAAMitC,GAAU8V,KAChB14C,KAAM,CACJlO,KAAM4E,OAAOC,SAAS7E,KACtB2N,MAAOwhC,KACPthC,OAAQmhC,OAGZmX,GAEF3S,EAAkBhwC,QAClBkwC,EAAiB5e,OACjB8iB,GAAgB70C,QAASyZ,GAAQA,EAAI46B,QACrC,MAAMj0C,EA12UV,SAAkBxF,EAAIkN,GACpB,MACEC,OAAQC,EAAU,IAAI9I,EAAQ+I,WAC9BA,EAAa,WAAUC,cACvBA,EAAgB,KAAIV,cACpBA,EAAgB,UAASC,iBACzBA,EAAmB,KAAIW,iBACvBA,GAAmB,EAAIG,aACvBA,GAAe,EAAKC,aACpBA,GAAe,EAAK4kD,cACpBA,GAAgB,EAAK/kD,WACrBA,EAAUtH,YACVA,EAAWmuD,QACXA,GAAU,EAAK5mD,eACfA,EAAcuI,mBACdA,EAAkBL,YAClBA,EAAWC,aACXA,EAAYC,kBACZA,EAAiBC,iBACjBA,EAAgBC,sBAChBA,EAAqBnI,gBACrBA,EAAkB,KAAM,GACtBX,GAAW,CAAA,EAsBf,OAAOuI,GAAoBzV,EAAI,CAC7B6K,IAAK7K,EACLmN,OAAQC,EACRC,aACAC,gBACAV,gBACAC,mBACA6I,WAAW,EACXlI,mBACAxH,kBA9ByC,IAAlBwsD,EAAyB,CAChDv2C,OAAO,EACP+2C,MAAM,EACN,kBAAkB,EAClBC,OAAO,EACPC,OAAO,EACPv2C,QAAQ,EACRyU,OAAO,EACP+hC,QAAQ,EACRC,KAAK,EACLhtD,MAAM,EACNitD,MAAM,EACNtsD,KAAK,EACLusD,MAAM,EACN3b,UAAU,EACV4b,QAAQ,EACRC,UAAU,IACU,IAAlBhB,EAA0B,CAC5BgB,UAAU,GACRhB,EAYF/kD,aACAtH,cACAwP,eAbqBf,GAAgB0/C,GAcrC5mD,iBACAC,eACAC,eACAqI,qBACAL,cACAC,eACAC,oBACAC,mBACAC,wBACAnI,kBACAC,mBAAmB,GAEvB,CAqyUkBymD,CAAS71D,SAAU,CAC/ByO,UACAE,aACAC,gBACAV,gBACAC,mBACAW,mBACAglD,cAAexsD,EACfyH,aACAtH,cACAmuD,QAAS3+C,EACTjI,iBACAE,eACAD,eACAiI,YAAc5V,IACRiyC,GAAmBjyC,EAAImN,KACzBwoC,EAAcC,UAAU51C,GAEtBmyC,GAAuBnyC,EAAImN,KAC7B0oC,EAAkBC,iBAAiB91C,GAEjCoyC,GAAcpyC,IAChB+1C,EAAiBC,cAAclzB,GAAMpiB,WAAWV,GAAKtB,WAGzDmX,aAAc,CAACogC,EAAQC,KACrBP,EAAcQ,aAAaF,EAAQC,GACnCH,EAAiBK,oBAAoBH,IAEvClgC,iBAAkB,CAACo7C,EAAQjb,KACzBL,EAAkBQ,kBAAkB8a,EAAQjb,IAE9CroC,oBAEF,IAAKrI,EACH,OAAOsM,QAAQC,KAAK,mCAEtB41C,GACE,CACEzhD,KAAMitC,GAAUsV,aAChBl4C,KAAM,CACJ+T,KAAM9e,EACNgvD,cAAe3jB,GAAgB5pC,UAGnCuhD,GAEFvO,GAAgB70C,QAASyZ,GAAQA,EAAI66B,UACjCh7C,SAAS0pD,oBAAsB1pD,SAAS0pD,mBAAmB/kD,OAAS,GACtEwyC,EAAkB2I,iBAChB9/C,SAAS0pD,mBACTj7C,GAAOzI,MAAMhG,YAGnB,IACE,MAAM08C,EAAW,GACXX,EAAW5vC,IACf,IAAI9M,EACJ,OAAOg8C,GAAgB0E,GAAhB1E,CACL,CACErC,WAAYuc,EACZpV,YAAa,CAAC2B,EAAWv/C,IAAW0mD,GAAY,CAC9CzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,SACAu/C,eAGJxF,mBAAqBtiC,GAAMivC,GAAY,CACrCzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkBoW,oBACvB/wC,KAGPmkC,SAAUqX,EACVpV,iBAAmBpmC,GAAMivC,GAAY,CACnCzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkBkW,kBACvB7wC,KAGPqmC,QAAUoD,GAAOwF,GAAY,CAC3BzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkBtQ,SACvBof,KAGPnD,mBAAqBt+B,GAAMinC,GAAY,CACrCzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkBmW,oBACvB9oC,KAGPu+B,iBAAmBwS,GAAO9J,GAAY,CACpCzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkBuW,kBACvB6H,KAGPvS,mBAAqBuS,GAAO9J,GAAY,CACtCzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkBwW,oBACvB4H,KAGPtS,iBAAkBgV,EAClB/U,OAAS1+B,GAAMinC,GAAY,CACzBzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkB0W,QACvBrpC,KAGP2+B,YAAc3+B,IACZinC,GAAY,CACVzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkB2W,aACvBtpC,MAIT4+B,gBAAkBrzC,IAChB07C,GAAY,CACVzhD,KAAMitC,GAAU4V,oBAChBx4C,KAAM,CACJtP,OAAQoyC,GAAkBohB,iBACvBxoD,MAIToB,aACAq0C,cACAC,iBACA/0C,gBACAC,mBACA7G,mBACAwH,mBACAytC,WACAiF,YACAtyC,eACAD,eACAi0C,uBACA+C,eACA95C,MACA1E,cACAsH,aACAI,kBACAP,gBACAqI,iBACAjI,iBACAP,UACAwoC,gBACAE,oBACAE,mBACAoD,uBACAG,iBACA+K,sBACA5nB,SAAkF,OAAvE1+B,EAAiB,MAAX0+B,OAAkB,EAASA,EAAQzK,OAAQtR,GAAMA,EAAE65B,gBAAqB,EAASx8C,EAAI0e,IAAKiE,IAAC,CAC1G65B,SAAU75B,EAAE65B,SACZrtC,QAASwT,EAAExT,QACXwhB,SAAWqoB,GAAY4Q,GAAY,CACjCzhD,KAAMitC,GAAUiW,OAChB74C,KAAM,CACJoL,OAAQ+E,EAAExf,KACV61C,kBAGE,IAEV4H,IAGJhJ,EAAcsS,gBAAiBxpD,IAC7B,IACE28C,EAAS13C,KAAK+2C,EAAQh8C,EAAS8U,iBACjC,CAAE,MAAOvQ,GACP8O,QAAQC,KAAK/O,EACf,IAEF,MAAMm0B,EAAO,KACX86B,KACA7W,EAAS13C,KAAK+2C,EAAQ/7C,WACtBwzD,IAAY,GA4Bd,MA1BI,CAAC,cAAe,YAAY9zD,SAASM,SAASuY,YAChDkgB,KAEAikB,EAAS13C,KACP+rC,GAAG,mBAAoB,KACrBkY,GAAY,CACVzhD,KAAMitC,GAAUgW,iBAChB54C,KAAM,CAAA,IAEY,qBAAhBqiD,GAAoCz7B,OAG5CikB,EAAS13C,KACP+rC,GACE,OACA,KACEkY,GAAY,CACVzhD,KAAMitC,GAAU+V,KAChB34C,KAAM,CAAA,IAEY,SAAhBqiD,GAAwBz7B,KAE9BlwB,UAIC,KACLm0C,EAASh2C,QAASu2C,IAChB,IACEA,GACF,CAAE,MAAO34C,GACK1D,OAAO0D,GAAOsD,cACjBlI,SAAS,iBAChB0T,QAAQC,KAAK/O,EAEjB,IAEFm2C,EAAqB6Y,UACrBE,IAAY,EA19EhBpY,QAAe,EA69Ef,CAAE,MAAO92C,GACP8O,QAAQC,KAAK/O,EACf,CACF,CAuBA,IAAI0xD,GACMC,GAvBVtC,GAAOuC,eAAiB,CAACC,EAAK9d,KAC5B,IAAKmb,GACH,MAAM,IAAI/2C,MAAM,iDAElBwsC,GAAY,CACVzhD,KAAMitC,GAAUkW,OAChB94C,KAAM,CACJskD,MACA9d,cAINsb,GAAOyC,WAAa,KAClB7a,GAAgB70C,QAASyZ,GAAQA,EAAIlE,WAEvC03C,GAAO0C,iBAAoBvM,IACzB,IAAK0J,GACH,MAAM,IAAI/2C,MAAM,mDAElB82C,GAAmBzJ,IAErB6J,GAAOllD,OAASA,IAENwnD,GAERD,KAAQA,GAAM,CAAA,IADXC,GAAGK,WAAa,GAAK,aAAcL,GAAGA,GAAGM,QAAU,GAAK,UAAWN,GAAGA,GAAGO,QAAU,GAAK,UAG7F,MAAMC,GAAY,GAClB,IAAK,IAAIC,EAAI,EAAGA,EAAI,MAAOA,EACvBD,GAAUzxD,MAAM0xD,EAAI,KAAOj3D,SAAS,IAAIiK,MAAM,IAyBlD,IAAIitD,GACJ,MAAMC,GAAQ,IAAInQ,WAAW,IAW7B,MAAMoQ,GAAS,CAAA,EACf,SAASC,GAAGtoD,EAAS2R,EAAKiK,GACtB,IAAIsjC,EACJ,CACI,MAAMjc,EAAMC,KAAKD,MACXslB,EAfd,WACI,IAAKJ,GAAiB,CAClB,GAAsB,oBAAXK,SAA2BA,OAAOL,gBACzC,MAAM,IAAIl6C,MAAM,4GAEpBk6C,GAAkBK,OAAOL,gBAAgBz1D,KAAK81D,OAClD,CACA,OAAOL,GAAgBC,GAC3B,CAOqBK,IAMrB,SAAuBC,EAAOzlB,EAAKslB,GAC/BG,EAAMC,SAAWC,IACjBF,EAAMG,QAAU,EACZ5lB,IAAQylB,EAAMC,OACdD,EAAMG,QACFH,EAAMG,OAAS,MACfH,EAAMtxC,UAAO0xC,EACbJ,EAAMG,MAAQ,IAGb5lB,EAAMylB,EAAMC,MACjBD,EAAMG,MAAQ,EAET5lB,EAAMylB,EAAMC,QACjBD,EAAMtxC,UAAO0xC,GAEZJ,EAAMtxC,OACPsxC,EAAMtxC,KAAOmxC,EAAKrtD,MAAM,GAAI,IAC5BwtD,EAAMtxC,KAAK,IAAM,EACjBsxC,EAAMK,SAAwC,OAA3BR,EAAK,IAAM,EAAKA,EAAK,KAE5CG,EAAMC,MAAQ1lB,CAElB,CA5BQ+lB,CAAcX,GAAQplB,EAAKslB,GAC3BrJ,EA4BR,SAAiBqJ,EAAMI,EAAOE,EAAOE,EAAU3xC,EAAMzF,EAAKiK,EAAS,GAC/D,GAAI2sC,EAAKpyD,OAAS,GACd,MAAM,IAAI8X,MAAM,qCAEpB,GAAK0D,GAKD,GAAIiK,EAAS,GAAKA,EAAS,GAAKjK,EAAIxb,OAChC,MAAM,IAAI8yD,WAAW,mBAAmBrtC,KAAUA,EAAS,mCAL/DjK,EAAM,IAAIsmC,WAAW,IACrBr8B,EAAS,EAOb+sC,IAAUzlB,KAAKD,MACf4lB,IAAU,EACVE,IAA0C,OAA3BR,EAAK,IAAM,EAAKA,EAAK,IACpCnxC,IAASmxC,EAAKrtD,MAAM,GAAI,IAExB,MAAMguD,GAA4B,KAAb,WADrBP,GAAS,cACiCE,GAAS,WACnDl3C,EAAIiK,KAAastC,IAAO,GAAM,IAC9Bv3C,EAAIiK,KAAastC,IAAO,GAAM,IAC9Bv3C,EAAIiK,KAAastC,IAAO,EAAK,IAC7Bv3C,EAAIiK,KAAiB,IAALstC,EAChB,MAAMC,EAAQR,EAAQ,WAAe,IAAS,UAC9Ch3C,EAAIiK,KAAautC,IAAQ,EAAK,IAC9Bx3C,EAAIiK,KAAkB,IAANutC,EAChBx3C,EAAIiK,KAAcutC,IAAQ,GAAM,GAAO,GACvCx3C,EAAIiK,KAAautC,IAAQ,GAAM,IAC/Bx3C,EAAIiK,KAAamtC,IAAa,EAAK,IACnCp3C,EAAIiK,KAAuB,IAAXmtC,EAChB,IAAK,IAAIK,EAAI,EAAGA,EAAI,IAAKA,EACrBz3C,EAAIiK,KAAYxE,EAAKgyC,GAEzB,OAAOz3C,CACX,CA9DgB03C,CAAQd,EAAMF,GAAOM,MAAON,GAAOQ,MAAOR,GAAOU,SAAUV,GAAOjxC,KAAMzF,EAAKiK,EACzF,CACA,OAAOjK,GA5CX,SAAyB23C,EAAK1tC,EAAS,GACnC,OAAQqsC,GAAUqB,EAAI1tC,EAAS,IAC3BqsC,GAAUqB,EAAI1tC,EAAS,IACvBqsC,GAAUqB,EAAI1tC,EAAS,IACvBqsC,GAAUqB,EAAI1tC,EAAS,IACvB,IACAqsC,GAAUqB,EAAI1tC,EAAS,IACvBqsC,GAAUqB,EAAI1tC,EAAS,IACvB,IACAqsC,GAAUqB,EAAI1tC,EAAS,IACvBqsC,GAAUqB,EAAI1tC,EAAS,IACvB,IACAqsC,GAAUqB,EAAI1tC,EAAS,IACvBqsC,GAAUqB,EAAI1tC,EAAS,IACvB,IACAqsC,GAAUqB,EAAI1tC,EAAS,KACvBqsC,GAAUqB,EAAI1tC,EAAS,KACvBqsC,GAAUqB,EAAI1tC,EAAS,KACvBqsC,GAAUqB,EAAI1tC,EAAS,KACvBqsC,GAAUqB,EAAI1tC,EAAS,KACvBqsC,GAAUqB,EAAI1tC,EAAS,MAAMxiB,aACrC,CAuBkBmwD,CAAgBrK,EAClC,CA6DA,MAAMsK,GAAE,IAAI,SAAStB,GAAEuB,GAAG,MAAMC,EAAE,GAAG,IAAIF,EAAE,IAAIA,EAAEC,EAAEl2D,WAAY,CAAC,MAAM,OAAOm2D,CAAC,CAAC,IAAI,IAAID,EAAE,EAAEA,EAAED,EAAErzD,OAAOszD,IAAI,CAAC,MAAMvB,EAAEsB,EAAEC,GAAG,IAAIL,EAAE,KAAK,IAAIA,EAAElB,EAAE/yD,IAAK,CAAC,MAAM,QAAQ,CAAC,GAAGi0D,IAAIA,EAAEhrD,WAAW,WAAWgrD,EAAEhrD,WAAW,SAAS,IAAI8pD,EAAEjzD,QAAS,CAAC,MAAMy0D,EAAElzD,KAAK4yD,EAAG,CAAC,CAAC,OAAOM,CAAC,CAAC,MAAMN,GAAE,WAAAv1D,CAAY41D,EAAEC,GAAGryD,KAAKuwC,KAAK6hB,EAAEpyD,KAAKsyD,UAAUD,EAAEryD,KAAKuyD,SAAS,IAAIniB,IAAIpwC,KAAKwyD,UAAU,EAAExyD,KAAKyyD,YAAY,IAAK,CAAC,mBAAAC,CAAoBN,GAAG,IAAIpyD,KAAKqrC,QAAQwlB,GAAEuB,IAAIpyD,KAAKyyD,aAAa3/C,aAAa9S,KAAKyyD,aAAazyD,KAAKyyD,YAAY5/C,WAAW,KAAK7S,KAAKyyD,YAAY,KAAK,IAAIzyD,KAAKqrC,QAAQwlB,GAAEuB,GAAI,CAAC,MAAM,GAAG,IAAK,CAAC,MAAM,CAAC,CAAC,aAAM/mB,CAAQ+mB,GAAG,MAAMC,EAAEryD,KAAKsyD,YAAY,oBAAoBK,MAAMA,MAAMt3D,KAAKrC,iBAAY,GAAQ,GAAGq5D,EAAE,IAAI,MAAMxB,KAAKuB,EAAE,IAAIpyD,KAAKuyD,SAASxxD,IAAI8vD,GAAG,CAAC,GAAG7wD,KAAKwyD,WAAWL,GAAE,OAAOnyD,KAAKuyD,SAASrxD,IAAI2vD,GAAG,IAAI,MAAMuB,QAAQC,EAAExB,EAAE,CAAC+B,KAAK,OAAOC,YAAY,OAAO/+B,MAAM,gBAAgB,IAAIs+B,EAAEU,GAAG,SAAS,MAAMf,QAAQK,EAAEvwD,OAAO,IAAIkwD,GAAGA,EAAEjzD,OAAO,KAAK,SAAS,GAAGkB,KAAKwyD,UAAUT,EAAEjzD,OAAOqzD,GAAE,SAASnyD,KAAKwyD,WAAWT,EAAEjzD,OAAOkB,KAAKuwC,KAAK,CAACzyC,KAAK+yD,EAAEtyD,QAAQwzD,GAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAAgB,GAAU/yD,KAAKyyD,aAAa3/C,aAAa9S,KAAKyyD,aAAazyD,KAAKyyD,YAAY,IAAK,EAAE,MAAMO,GAAE,IAAIC,GAAE,oCAAoC,SAASC,GAAEd,GAAG,IAAI,MAAMC,EAAE,IAAI5vD,IAAI2vD,GAAG,GAAG,UAAUC,EAAEltC,UAAU,WAAWktC,EAAEltC,SAAS,OAAO,EAAG,MAAMgtC,EAAEE,EAAEc,SAAS30D,QAAQ,WAAW,IAAIuD,cAAc,MAAO,cAAcowD,GAAGA,EAAElb,SAAS,eAAe,cAAckb,GAAG,QAAQA,CAAC,CAAC,MAAM,OAAQ,CAAK,CAAC,CAAC,SAASiB,GAAEhB,EAAEC,GAAG,MAAMF,GAAGE,GAAG,IAAIxzD,MAAM,KAAK,GAAG2H,OAAOzE,cAAc,OAAOowD,EAAEprD,WAAW,WAAWorD,EAAEprD,WAAW,SAASorD,EAAE,0BAA0BA,GAAG,2BAA2BA,EAAEA,EAAEt4D,SAAS,SAAS,aAAa,YAAY,iBAAiB8J,KAAKyuD,GAAG,gBAAgB,iBAAiBzuD,KAAKyuD,GAAG,YAAY,qBAAqBzuD,KAAKyuD,GAAG,aAAa,iBAAiBzuD,KAAKyuD,GAAG,YAAY,kBAAkBzuD,KAAKyuD,GAAG,aAAa,kBAAkBzuD,KAAKyuD,GAAG,aAAa,mBAAmBzuD,KAAKyuD,GAAG,aAAa,kBAAkBzuD,KAAKyuD,GAAG,YAAY,iBAAiBzuD,KAAKyuD,GAAG,WAAW,iBAAiBzuD,KAAKyuD,GAAG,WAAWD,GAAG,0BAA0B,CAAC,SAASh+C,GAAEi+C,EAAEC,GAAG,SAAUD,EAAErrD,WAAW,WAAYqrD,EAAErrD,WAAW,UAAa,6BAA6BqrD,GAAI,8BAA8BzuD,KAAK0uD,GAAG,CAAC,SAASgB,GAAEjB,GAAG,IAAIC,EAAE,GAAG,IAAI,IAAIF,EAAE,EAAEA,EAAEC,EAAEtzD,OAAOqzD,GAAG,MAAME,GAAGt3D,OAAO+2B,gBAAgBsgC,EAAEkB,SAASnB,EAAEA,EAAE,QAAQ,OAAOxpC,KAAK0pC,EAAE,CAAC,SAASkB,GAAEnB,EAAEC,EAAEF,GAAG,IAAItB,EAAE,IAAIoC,GAAElhC,UAAU,EAAE8+B,EAAEoC,GAAE3rD,KAAK8qD,IAAI,CAAC,MAAMA,GAAGvB,EAAE,IAAI,IAAIrqD,QAAQ4rD,GAAGA,EAAErrD,WAAW,UAAUqrD,EAAErrD,WAAW,WAAW,8DAA8DpD,KAAKyuD,IAAIA,EAAEv4D,SAAS,yBAAyBu4D,EAAEv4D,SAAS,aAAas4D,EAAEC,EAAEC,EAAG,CAAC,CAAC,SAASja,GAAEga,EAAEC,GAAG,IAAIa,GAAEb,GAAG,MAAO,GAAG,MAAMF,EAAE,GAAGtB,EAAE,IAAIzgB,IAAI2hB,EAAE,CAACK,EAAEL,EAAEM,KAAK,IAAID,GAAGA,EAAErrD,WAAW,UAAUqrD,EAAErrD,WAAW,SAAS,OAAO,IAAIisD,EAAE,IAAIA,EAAE,IAAIvwD,IAAI2vD,EAAEL,GAAGj0D,IAAK,CAAC,MAAM,MAAM,CAAC,IAAIo1D,GAAEF,GAAG,OAAO,MAAMC,EAAE,SAASb,GAAG,IAAI,MAAMC,EAAE,IAAI5vD,IAAI2vD,GAAG,GAAGC,EAAEvvD,SAASjJ,SAAS,gBAAgB,CAAC,MAAMu4D,EAAEC,EAAEmB,aAAa75D,IAAI,OAAO,GAAGy4D,EAAE,MAAO,QAAQA,GAAG,CAAC,OAAOC,EAAEmB,aAAa5yD,OAAO,KAAKyxD,EAAEmB,aAAa5yD,OAAO,KAAKyxD,EAAEmB,aAAa5yD,OAAO,SAASyxD,EAAElvD,OAAOkvD,EAAEvvD,UAAUuvD,EAAEmB,aAAa55D,WAAW,IAAIy4D,EAAEmB,eAAe,GAAG,CAAC,MAAM,OAAOpB,CAAC,CAAC,CAAxT,CAA0TY,GAAGnC,EAAE9vD,IAAIkyD,KAAKpC,EAAE3vD,IAAI+xD,GAAGd,EAAEhzD,KAAK6zD,KAAM,IAAI,MAAMb,EAAEC,EAAE91D,iBAAiB,OAAO,IAAI,IAAI81D,EAAE,EAAEA,EAAED,EAAErzD,OAAOszD,IAAI,CAAC,MAAMC,EAAEF,EAAEC,GAAGL,EAAEM,EAAEzlD,YAAYylD,EAAExlD,aAAa,OAAQ,CAAC,MAAMgkD,EAAEuB,EAAE91D,iBAAiB,mFAAmF,IAAI,IAAI81D,EAAE,EAAEA,EAAEvB,EAAE/xD,OAAOszD,IAAI,CAAC,MAAMC,EAAExB,EAAEuB,GAAGL,EAAEM,EAAExlD,aAAa,WAAWklD,EAAEM,EAAExlD,aAAa,SAASwlD,EAAExlD,aAAa,cAAe,CAAC,MAAMmmD,EAAEZ,EAAEl2D,YAAY,IAAI,IAAIk2D,EAAE,EAAEA,EAAEY,EAAEl0D,OAAOszD,IAAI,CAAC,MAAMD,EAAEa,EAAEZ,GAAGvB,EAAEsB,EAAEr0D,MAAMu0D,EAAE,IAAIY,EAAE,IAAIA,EAAEd,EAAEv0D,QAAS,CAAC,MAAMu0D,EAAEr0D,MAAMi0D,EAAEI,EAAEr0D,KAAKu0D,GAAG,QAAQ,CAAC,IAAI,IAAID,EAAE,EAAEA,EAAEa,EAAEn0D,OAAOszD,IAAI,CAAC,MAAMC,EAAEY,EAAEb,GAAG7zD,SAAS,GAAG8zD,EAAEx4D,SAAS,SAAS05D,GAAElB,EAAExB,EAAEkB,EAAG,CAAC,CAAC,MAAMkB,EAAEb,EAAE91D,iBAAiB,SAAS,IAAI,IAAI81D,EAAE,EAAEA,EAAEa,EAAEn0D,OAAOszD,IAAI,CAAC,MAAMD,EAAEc,EAAEb,GAAGv2D,YAAYs2D,GAAGoB,GAAEpB,EAAEE,EAAEN,EAAG,CAAC,CAAC,MAAM,OAAOI,CAAC,CAAC,OAAOA,CAAC,CAAC,MAAMh2C,GAAE,WAAA3f,CAAY41D,EAAEC,EAAEF,EAAEkB,IAAGrzD,KAAKuwC,KAAK6hB,EAAEpyD,KAAKsyD,UAAUD,EAAEryD,KAAK8nD,OAAOqK,EAAEnyD,KAAKuyD,SAAS,IAAIniB,IAAIpwC,KAAKwyD,UAAU,EAAExyD,KAAKuhD,MAAM,EAAEvhD,KAAKyyD,YAAY,IAAK,CAAC,mBAAAC,CAAoBN,EAAEC,GAAG,IAAI,IAAIa,GAAEb,GAAG,OAAOryD,KAAKqrC,QAAQ+M,GAAEga,EAAEC,IAAIryD,KAAKyyD,aAAa3/C,aAAa9S,KAAKyyD,aAAazyD,KAAKyyD,YAAY5/C,WAAW,KAAK7S,KAAKyyD,YAAY,KAAK,IAAIzyD,KAAKqrC,QAAQ+M,GAAEga,EAAEC,GAAI,CAAC,MAAM,GAAG,IAAK,CAAC,MAAM,CAAC,CAAC,aAAMhnB,CAAQ+mB,GAAG,MAAMC,EAAEryD,KAAKsyD,YAAY,oBAAoBK,MAAMA,MAAMt3D,KAAKrC,iBAAY,GAAQ,GAAGq5D,EAAE,IAAI,MAAMF,KAAKC,EAAE,IAAIpyD,KAAKuyD,SAASxxD,IAAIoxD,GAAG,CAAC,GAAGnyD,KAAKuhD,OAAO,GAAG,OAAO,GAAGvhD,KAAKwyD,WAAWQ,GAAE,OAAOhzD,KAAKuyD,SAASrxD,IAAIixD,GAAG,IAAI,MAAMC,QAAQC,EAAEF,EAAE,CAACS,KAAK,OAAOC,YAAY,OAAO/+B,MAAM,gBAAgB,IAAIs+B,EAAEU,GAAG,SAAS,MAAMjC,EAAE,IAAIjQ,iBAAiBwR,EAAEqB,eAAe,IAAI5C,EAAE/xD,QAAQ+xD,EAAE/xD,OAAO,IAAI,SAAS,GAAGkB,KAAKwyD,UAAU3B,EAAE/xD,OAAOk0D,GAAE,SAAS,IAAIjB,EAAEqB,GAAEjB,EAAEC,EAAEsB,QAAQ/5D,IAAI,iBAAiB,IAAIwa,GAAE49C,EAAEI,GAAG,SAAS,6BAA6BJ,IAAIA,EAAEqB,GAAEjB,EAAE,OAAO,MAAMc,EAAEjzD,KAAK8nD,OAAO+I,GAAG7wD,KAAKwyD,WAAW3B,EAAE/xD,OAAOkB,KAAKuhD,QAAQvhD,KAAKuwC,KAAK,CAACzyC,KAAKq0D,EAAEwB,YAAY5B,EAAE6B,WAAWX,GAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAAF,GAAU/yD,KAAKyyD,aAAa3/C,aAAa9S,KAAKyyD,aAAazyD,KAAKyyD,YAAY,IAAK,EAAE,MAAYoB,GAAE,KAAKC,GAAE,IAAI1jB,IAAI,sDAAsDvxC,MAAM,MAAM6M,GAAE,IAAI0kC,IAAI,gFAAgFvxC,MAAM,MAAMk1D,GAAE,IAAI3jB,IAAI,qCAAqCvxC,MAAM,MAAMm1D,GAAE,YAAY96B,GAAE,CAAC,gBAAgB,eAAe,gBAAgB,SAAS+6B,GAAE7B,GAAG,MAAO,wBAAwBzuD,KAAKyuD,EAAEvlD,aAAa,UAAU,GAAG,CAAC,SAASqnD,GAAE9B,GAAG,MAAMC,GAAGD,EAAE1wD,SAAS,WAAWK,cAAcowD,EAAEC,EAAEvlD,aAAa,MAAM,GAAGslD,EAAE,MAAO,GAAGE,KAAK,SAASD,GAAG,OAAOA,EAAEvzD,MAAM,SAASqZ,IAAIk6C,GAAG,KAAKzuD,KAAKyuD,GAAG,IAAIA,GAAG9zD,KAAK,IAAI,CAAxE,CAA0E6zD,KAAK,MAAMtB,EAAEuB,EAAEvlD,aAAa,eAAe,GAAGgkD,EAAE,MAAO,GAAGwB,YAAYxB,KAAK,MAAMkB,EAAEK,EAAEvlD,aAAa,QAAQ,GAAGklD,EAAE,MAAO,GAAGM,UAAUN,KAAK,MAAMiB,EAAEZ,EAAEvlD,aAAa,eAAerG,OAAOysD,GAAGD,IAAIZ,EAAEv2D,aAAa,IAAIgI,MAAM,EAAE,KAAK9B,cAAcvD,QAAQ,OAAO,KAAKA,QAAQ,OAAO,KAAKgI,OAAO,GAAGysD,EAAE,MAAO,GAAGZ,UAAUY,EAAEpvD,MAAM,EAAE,OAAO,MAAMqvD,GAAGd,EAAEvlD,aAAa,UAAU,IAAIhO,MAAM,OAAO4uB,OAAO2kC,GAAGA,IAAI,KAAKzuD,KAAKyuD,IAAIvuD,MAAM,EAAE,GAAGvF,KAAK,KAAK,OAAO40D,EAAE,GAAGb,KAAKa,IAAIb,CAAC,CAAiiC,MAAMhzC,GAAE,WAAA7iB,CAAY41D,GAAGpyD,KAAKm0D,aAAa,GAAGn0D,KAAKo0D,cAAc,GAAGp0D,KAAKq0D,QAAQ,IAAIp0D,IAAID,KAAKs0D,YAAY,IAAIr0D,IAAID,KAAKu0D,cAAc,EAAEv0D,KAAKuwC,KAAK6hB,EAAE7hB,KAAKvwC,KAAK4rC,IAAIwmB,EAAExmB,KAAG,KAAOC,KAAKD,OAAO5rC,KAAKw0D,SAASpC,EAAEv/C,YAAU,EAAIu/C,EAAEC,IAAIx/C,WAAWu/C,EAAEC,IAAIryD,KAAKy0D,WAAWrC,EAAEt/C,eAAes/C,GAAGt/C,aAAas/C,IAAIpyD,KAAK00D,WAAWtC,EAAEsC,YAAU,KAAO,oBAAoBhyD,OAAOA,OAAOC,SAAS7E,KAAK,GAAI,CAAC,UAAA62D,CAAWvC,EAAEC,EAAEryD,KAAK4rC,OAAO,MAAMumB,EAAE,QAAQC,EAAEpyD,KAAKm0D,aAAan0D,KAAKo0D,cAAcjC,EAAEhzD,KAAKkzD,GAAGF,EAAErzD,OAAO,KAAKqzD,EAAErnC,OAAO,EAAEqnC,EAAErzD,OAAO,IAAK,CAAC,OAAA81D,CAAQxC,EAAEC,EAAEF,EAAEtB,EAAE7wD,KAAK4rC,OAAO,MAAMmmB,EAA/jD,SAAWK,EAAEC,GAAG,IAAID,GAAG,IAAIA,EAAEl1D,WAAWk1D,EAAE1wD,QAAQ,OAAO,KAAK,MAAMywD,EAAE,SAASC,GAAG,IAAIC,EAAED,EAAED,EAAE,EAAEtB,EAAE,KAAK,KAAKwB,GAAGF,EAAE,IAAI,CAAC,GAAG,IAAIE,EAAEn1D,UAAUm1D,EAAE3wD,QAAQ,CAACmvD,IAAIA,EAAEwB,GAAG,MAAMD,EAAEC,EAAE3wD,QAAQK,cAAcowD,GAAGE,EAAExlD,aAAa,SAAS,IAAI9K,cAAc,GAAG+xD,GAAE/yD,IAAIqxD,IAAI1mD,GAAE3K,IAAIoxD,IAAI,OAAOE,EAAExlD,aAAa,YAAY,MAAMwlD,EAAEwC,SAAS,OAAOxC,EAAExlD,aAAa,aAAaonD,GAAE5B,GAAG,MAAO,CAACtyC,KAAKsyC,EAAEyC,aAAY,EAAK,CAACzC,EAAEA,EAAEz2D,cAAcu2D,GAAI,CAAC,OAAOtB,EAAE,CAAC9wC,KAAK8wC,EAAEiE,aAAY,GAAO,IAAI,CAApX,CAAsX1C,GAAG,IAAID,IAAIA,EAAE2C,YAAY,OAAO,KAAK,MAAMjE,EAAEsB,EAAEpyC,KAAK,OAAO,SAASqyC,EAAEC,GAAG,GAAG,OAAOD,EAAE1wD,SAAS,IAAIK,cAAc,OAAQ,EAAM,GAAG,YAAYqwD,EAAEvlD,aAAa,WAAW,IAAI9K,cAAc,OAAQ,EAAK,GAAG,OAAOqwD,EAAEvlD,aAAa,YAAY,OAAQ,EAAK,MAAMslD,EAAEC,EAAEvlD,aAAa,SAAS,GAAG,GAAG,8CAA8ClJ,KAAKwuD,GAAG,OAAQ,EAAK,GAAG,gBAAgBxuD,KAAKwuD,GAAG,IAAI,OAAO,IAAI1vD,IAAI0vD,GAAGhvD,SAAS,IAAIV,IAAI4vD,GAAGlvD,MAAM,CAAC,MAAM,OAAQ,CAAK,CAAC,OAAQ,CAAK,CAAnZ,CAAqZ0tD,EAAEwB,IAAI,SAASD,GAAG,OAAOl5B,GAAEhtB,KAAKmmD,GAAG,UAAUD,EAAEvlD,aAAawlD,IAAI,IAAItwD,cAAc,CAA5E,CAA8E8uD,IAAIkD,GAAEhzD,KAAK8vD,EAAEnvD,SAAS,IAAIK,eAAe,KAAK,CAACge,KAAK8wC,EAAEj5D,IAAIs8D,GAAErD,GAAG,CAAkiBvrD,CAAE8sD,EAAEpyD,KAAK00D,cAAc,IAAI3C,EAAE,OAAO,MAAMhyC,KAAKizC,EAAEp7D,IAAIq7D,GAAGlB,EAAEmB,EAAElzD,KAAK+0D,SAAS9B,GAAGpC,EAAEqC,EAAE8B,YAAY,KAAK9B,EAAE8B,YAAYnE,EAAE7wD,KAAKi1D,UAAU/B,EAAEF,EAAEC,EAAEZ,EAAEF,EAAEtB,GAAG7wD,KAAKk1D,UAAUhC,EAAEF,EAAEC,EAAEZ,EAAEF,EAAEtB,GAAI,CAAC,KAAAvvD,GAAQ,IAAI,MAAM8wD,KAAKpyD,KAAKs0D,YAAY5jC,SAAS1wB,KAAKy0D,WAAWrC,EAAEx/C,OAAO5S,KAAKs0D,YAAYlK,QAAQ,IAAI,MAAMgI,KAAKpyD,KAAKq0D,QAAQ3jC,SAAS,OAAO0hC,EAAE+C,WAAWn1D,KAAKy0D,WAAWrC,EAAE+C,WAAWn1D,KAAKq0D,QAAQjK,QAAQpqD,KAAKm0D,aAAa,GAAGn0D,KAAKo0D,cAAc,EAAG,CAAC,QAAAW,CAAS3C,GAAG,IAAIC,EAAEryD,KAAKq0D,QAAQ16D,IAAIy4D,GAAG,IAAIC,EAAE,CAAC,GAAGryD,KAAKq0D,QAAQ7zC,MAAM,IAAI,CAAC,MAAM4xC,EAAEpyD,KAAKq0D,QAAQ5zD,OAAO6d,OAAO8zC,EAAEgD,MAAMp1D,KAAKq0D,QAAQzzD,OAAOwxD,EAAEv6D,MAAO,CAACw6D,EAAE,CAACgD,MAAM,GAAGF,UAAU,KAAKG,aAAa,EAAEC,YAAY,EAAEC,WAAW,EAAEC,YAAY,KAAKT,YAAYje,OAAO2e,kBAAkBC,kBAAkB,EAAEC,gBAAgB,EAAEC,gBAAgB9e,OAAO2e,kBAAkBI,eAAe,KAAKC,aAAY,GAAO/1D,KAAKq0D,QAAQjzD,IAAIgxD,EAAEC,EAAG,CAAC,OAAOA,CAAC,CAAC,SAAA4C,CAAU7C,EAAEC,EAAEF,EAAEtB,EAAEkB,EAAEiB,GAAG,GAAG,OAAOZ,EAAE+C,UAAU,CAAC,IAAI/C,EAAEiD,MAAMl2D,KAAK6zD,GAAGZ,EAAEiD,MAAMv2D,OAAO,GAAGk0D,EAAEZ,EAAEiD,MAAM,GAA59G,KAAk+GjD,EAAEiD,MAAM3iC,QAAQ0/B,EAAEiD,MAAMv2D,OAAO,IAAIszD,EAAEkD,aAAalD,EAAEiD,MAAM,GAAGjD,EAAEmD,YAAYvC,EAAEZ,EAAEoD,WAAWpD,EAAEiD,MAAMv2D,OAAOszD,EAAEqD,YAAY,CAAC11C,KAAKsyC,EAAEta,EAAE8Y,EAAEnlD,EAAEqmD,GAAGK,EAAE+C,UAAUn1D,KAAKg2D,oBAAoB7D,GAAI,MAAMa,EAAEZ,EAAEmD,aAA7pH,MAA8qHnD,EAAEoD,aAAapD,EAAEmD,YAAYvC,EAAEhzD,KAAKy0D,WAAWrC,EAAE+C,WAAW/C,EAAE+C,UAAUn1D,KAAKg2D,oBAAoB7D,GAAI,CAAC,mBAAA6D,CAAoB5D,GAAG,OAAOpyD,KAAKw0D,SAAS,IAAIx0D,KAAKi2D,WAAW7D,GAAG,KAAK,CAAC,UAAA6D,CAAW7D,GAAG,MAAMC,EAAEryD,KAAKq0D,QAAQ16D,IAAIy4D,GAAG,IAAIC,GAAG,OAAOA,EAAE8C,UAAU,OAAO9C,EAAE8C,UAAU,KAAK,MAAMhD,EAAEE,EAAEmD,YAAY,SAASpD,EAAEC,EAAEF,GAAG,MAAMtB,EAAEqF,GAAE9D,EAAEC,GAAG,OAAOxB,EAAEuB,EAAEtzD,QAAQszD,EAAEvB,IAAIsB,CAAC,CAAzD,CAA2DnyD,KAAKm0D,aAAa9B,EAAEiD,aAAajD,EAAEkD,YAAY1B,KAAI1B,GAAG,GAAGE,EAAEoD,aAAaz1D,KAAKuwC,KAAK,OAAO,CAACxwB,KAAKsyC,EAAEoD,YAAY11C,KAAKg4B,EAAEsa,EAAEoD,YAAY1d,EAAErsC,EAAE2mD,EAAEoD,YAAY/pD,EAAEyqD,KAAK9D,EAAEiD,aAAac,WAAWjE,EAAEkE,WAAWhE,EAAEkD,YAAYlD,EAAEiD,eAAejD,EAAEgD,MAAM,GAAGhD,EAAEmD,WAAW,EAAEnD,EAAEoD,YAAY,IAAK,CAAC,SAAAP,CAAU9C,EAAEC,EAAEF,EAAEtB,EAAEkB,EAAEiB,GAAG,GAAGZ,EAAE2D,YAAY,OAAO,GAAG/B,GAAErwD,KAAK0uD,EAAExlD,aAAa,eAAe,KAAKmnD,GAAErwD,MAAM0uD,EAAEx2D,aAAa,IAAIgI,MAAM,EAAE,KAAK,OAAO,MAAMovD,EAAEjzD,KAAKu0D,gBAAgBrB,EAAElzD,KAAKw0D,SAAS,IAAIx0D,KAAKs2D,WAAWrD,GAAGY,IAAG7zD,KAAKs0D,YAAYlzD,IAAI6xD,EAAE,CAAClzC,KAAKsyC,EAAEz6D,IAAIu6D,EAAEpa,EAAE8Y,EAAEnlD,EAAEqmD,EAAEoE,KAAKnD,EAAEpgD,MAAMsgD,GAAI,CAAC,UAAAoD,CAAWlE,GAAG,MAAMC,EAAEryD,KAAKs0D,YAAY36D,IAAIy4D,GAAG,IAAIC,EAAE,OAAOryD,KAAKs0D,YAAY1zD,OAAOwxD,GAAG,MAAMD,EAAEnyD,KAAKq0D,QAAQ16D,IAAI04D,EAAEz6D,KAAKu6D,IAAIA,EAAE4D,cAAcQ,GAAEv2D,KAAKm0D,aAAa9B,EAAE8D,KAAKtC,KAAI0C,GAAEv2D,KAAKo0D,cAAc/B,EAAE8D,KAAKtC,MAAKxB,EAAE8D,KAAKhE,EAAE0D,gBAAgB,KAAK1D,EAAEwD,oBAAoBxD,EAAE0D,gBAAgBxD,EAAE8D,KAAKhE,EAAEyD,kBAAkBzD,EAAE2D,iBAAiB3D,EAAE2D,eAAezD,GAAGF,EAAEwD,kBAAkB,IAAIxD,EAAE4D,aAAY,EAAK/1D,KAAKuwC,KAAK,OAAO,CAACxwB,KAAKsyC,EAAEtyC,KAAKg4B,EAAEoa,EAAE2D,eAAe/d,EAAErsC,EAAEymD,EAAE2D,eAAepqD,EAAEyqD,KAAKhE,EAAE2D,eAAeK,KAAKC,WAAWjE,EAAEyD,gBAAgBY,YAAYrE,EAAEwD,kBAAkBU,WAAW,MAAO,EAAE,SAASE,GAAEnE,EAAEC,EAAEF,GAAG,MAAMtB,EAAEqF,GAAE9D,EAAEC,GAAG,OAAOxB,EAAEuB,EAAEtzD,QAAQszD,EAAEvB,IAAIwB,EAAEF,CAAC,CAAC,SAAS+D,GAAE9D,EAAEC,GAAG,IAAIF,EAAE,EAAEtB,EAAEuB,EAAEtzD,OAAO,KAAKqzD,EAAEtB,GAAG,CAAC,MAAMkB,EAAEI,EAAEtB,GAAG,EAAEuB,EAAEL,IAAIM,EAAEF,EAAEJ,EAAE,EAAElB,EAAEkB,CAAE,CAAC,OAAOI,CAAC,CAAC,MAAMsE,GAAE,kBAAkB,SAASC,GAAEtE,GAAG,MAAMC,EAAED,EAAE5rD,OAAOzE,cAAc,IAAIswD,GAAG,gBAAgBA,EAAE,OAAO,KAAK,MAAMF,EAAEE,EAAEzuD,QAAQ,KAAKitD,EAAEwB,EAAEzuD,QAAQ,KAAK,QAAQuuD,IAAG,IAAKtB,EAAE,OAAO,KAAK,MAAMkB,EAAEM,EAAExuD,MAAMsuD,EAAE,EAAEtB,GAAGhyD,MAAM,WAAW4uB,OAAOp0B,SAAS,GAAG04D,EAAEjzD,OAAO,EAAE,OAAO,KAAK,MAAMk0D,EAAE2D,WAAW5E,EAAE,IAAIkB,EAAE0D,WAAW5E,EAAE,IAAImB,EAAEyD,WAAW5E,EAAE,IAAIqB,EAAErB,EAAEjzD,QAAQ,EAAE63D,WAAW5E,EAAE,IAAI,EAAE,MAAO,CAACiB,EAAEC,EAAEC,EAAEE,GAAGlnD,KAAKkmD,GAAGrb,OAAOC,MAAMob,IAAI,KAAK,CAACY,EAAEA,EAAEa,EAAEZ,EAAE/5B,EAAEg6B,EAAEA,EAAEE,EAAE,CAAC,SAASwD,GAAExE,GAAG,MAAMC,EAAED,EAAE,IAAI,OAAOC,GAAG,OAAOA,EAAE,MAAM9sD,KAAKsxD,KAAKxE,EAAE,MAAM,MAAM,IAAI,CAAC,SAASyE,GAAE1E,GAAG,MAAO,MAAMwE,GAAExE,EAAEY,GAAG,MAAM4D,GAAExE,EAAEyB,GAAG,MAAM+C,GAAExE,EAAEl5B,EAAE,CAAC,SAAS69B,GAAE3E,EAAEC,GAAG,MAAMF,EAAEC,EAAEc,EAAE,EAAE,SAASd,EAAEC,GAAG,MAAMF,EAAEC,EAAEc,EAAE,MAAO,CAACF,EAAEZ,EAAEY,EAAEb,EAAEE,EAAEW,GAAG,EAAEb,GAAG0B,EAAEzB,EAAEyB,EAAE1B,EAAEE,EAAEwB,GAAG,EAAE1B,GAAGj5B,EAAEk5B,EAAEl5B,EAAEi5B,EAAEE,EAAEn5B,GAAG,EAAEi5B,GAAGe,EAAE,EAAE,CAA5F,CAA8Fd,EAAEC,GAAGD,EAAEvB,EAAEiG,GAAE3E,GAAGJ,EAAE+E,GAAEzE,GAAG,OAAQ9sD,KAAKG,IAAImrD,EAAEkB,GAAG,MAAMxsD,KAAKwG,IAAI8kD,EAAEkB,GAAG,IAAI,CAAC,SAASiF,GAAE5E,GAAG,IAAIC,EAAE,GAAG,MAAMF,EAAEC,EAAE12D,WAAW,IAAI,IAAI02D,EAAE,EAAEA,EAAED,EAAErzD,OAAOszD,IAAI,CAAC,MAAMvB,EAAEsB,EAAEC,GAAG,IAAIvB,EAAE3zD,WAAWm1D,GAAGxB,EAAEh1D,aAAa,GAAI,CAAC,OAAOw2D,EAAE7rD,MAAM,CAAC,SAASywD,GAAE7E,EAAEC,GAAG,IAAIF,EAAEC,EAAEvB,EAAE,EAAE,KAAKsB,GAAGtB,EAAE,IAAI,CAAC,MAAMuB,EAAEC,EAAE6E,iBAAiB/E,GAAG,GAAGC,EAAE+E,iBAAiB,SAAS/E,EAAE+E,gBAAgB,OAAO,KAAK,MAAMpF,EAAE2E,GAAEtE,EAAEgF,iBAAiB,GAAGrF,GAAGA,EAAEmB,GAAG,GAAG,OAAOnB,EAAEI,EAAEA,EAAEv2D,cAAci1D,GAAI,CAAC,MAAO,CAACmC,EAAE,IAAIa,EAAE,IAAI36B,EAAE,IAAIg6B,EAAE,EAAE,CAAC,SAASmE,GAAEjF,EAAEC,GAAG,MAAMF,EAAEE,EAAE6E,iBAAiB9E,GAAG,MAAO,WAAWD,EAAEmF,YAAY,aAAanF,EAAEmF,YAAY,SAASnF,EAAEoF,SAAU,IAAIZ,WAAWxE,EAAEqF,SAAS,MAAMpF,EAAEqF,iBAAiB34D,OAAO,CAAE,CAAC,SAAS44D,GAAEtF,EAAEC,GAAG,GAAG,aAAaA,EAAEsF,aAAa,OAAO,KAAK,MAAMxF,EAAEE,EAAEuF,kBAAkB,mBAAmBvF,EAAEre,iBAAiBqe,EAAEre,iBAAiB,uBAAuBqe,EAAEre,iBAAiB,cAAc,IAAI,GAAGme,GAAG,SAASA,EAAE,OAAO,KAAK,GAAG,SAASC,EAAEC,GAAG,MAAMF,EAAEC,EAAE,GAAGD,EAAEhlB,YAAY,GAAGglB,EAAEhlB,aAAa,GAAGglB,EAAEnlB,aAAa,GAAGmlB,EAAEnlB,cAAc,EAAE,OAAQ,EAAK,MAAM6jB,EAAEwB,EAAEwF,MAAM,GAAG,GAAG,kEAAkEl0D,KAAKktD,GAAG,OAAQ,EAAK,MAAMkB,EAAEM,EAAEyF,WAAW,mBAAmBzF,EAAEre,iBAAiBqe,EAAEre,iBAAiB,aAAa,KAAK,GAAG,QAAS,oBAAoBrwC,KAAKouD,EAAE,CAAnW,CAAqWK,EAAEC,GAAG,OAAO,KAAK,MAAMxB,EAAEuB,EAAEL,EAAE,WAAWM,EAAE0F,WAAW,SAAS1F,EAAE0F,UAAU/E,EAAE,WAAWX,EAAE2F,WAAW,SAAS3F,EAAE2F,UAAU,OAAOjG,GAAGlB,EAAE1jB,YAAY,GAAG0jB,EAAEoH,YAAYpH,EAAE1jB,YAAY,EAAE,IAAI6lB,GAAGnC,EAAE7jB,aAAa,GAAG6jB,EAAEqH,aAAarH,EAAE7jB,aAAa,EAAE,IAAI,IAAI,CAAC,SAASmrB,GAAE/F,EAAEC,GAAG,MAAMF,EAAE,GAAGtB,EAAEuB,EAAE12D,WAAW,IAAI,IAAI02D,EAAE,EAAEA,EAAEvB,EAAE/xD,QAAQqzD,EAAErzD,OAAO,GAAGszD,IAAI,CAAC,MAAML,EAAElB,EAAEuB,GAAG,GAAG,IAAIL,EAAE70D,WAAW60D,EAAEl2D,aAAa,IAAI2K,OAAO,IAAI,MAAM4rD,EAAEC,EAAE+F,cAAchG,EAAEiG,mBAAmBtG,GAAG,MAAMlB,EAAEuB,EAAEqF,iBAAiB,IAAI,IAAIrF,EAAE,EAAEA,EAAEvB,EAAE/xD,QAAQqzD,EAAErzD,OAAO,GAAGszD,IAAI,CAAC,MAAMC,EAAExB,EAAEuB,GAAGC,EAAE5mD,MAAM,GAAG4mD,EAAE1mD,OAAO,GAAGwmD,EAAEhzD,KAAKkzD,EAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAOF,CAAC,CAAC,SAASpa,GAAEqa,EAAEC,GAAG,IAAI,IAAIF,EAAE,EAAEA,EAAEC,EAAEtzD,OAAOqzD,IAAI,IAAI,IAAItB,EAAE,EAAEA,EAAEwB,EAAEvzD,OAAO+xD,IAAI,CAAC,MAAMkB,EAAEK,EAAED,GAAGa,EAAEX,EAAExB,GAAGoC,EAAE1tD,KAAKwG,IAAIgmD,EAAEl3C,MAAMm4C,EAAEn4C,OAAOtV,KAAKG,IAAIqsD,EAAEn3C,KAAKo4C,EAAEp4C,MAAMs4C,EAAE3tD,KAAKwG,IAAIgmD,EAAEuG,OAAOtF,EAAEsF,QAAQ/yD,KAAKG,IAAIqsD,EAAEnlB,IAAIomB,EAAEpmB,KAAK,GAAGqmB,GAAG,GAAGC,GAAG,EAAE,SAAS,MAAME,EAAEH,EAAEC,EAAE/+C,EAAE5O,KAAKwG,IAAIgmD,EAAEtmD,MAAMsmD,EAAEpmD,OAAOqnD,EAAEvnD,MAAMunD,EAAErnD,QAAQ,GAAGwI,EAAE,GAAGi/C,EAAEj/C,GAAG,GAAG,OAAQ,CAAI,CAAC,OAAQ,CAAK,CAAC,SAASokD,GAAEnG,EAAEC,GAAG,IAAIF,EAAEC,EAAEvB,EAAE,EAAE,KAAKsB,GAAGtB,EAAE,IAAI,CAAC,MAAMuB,EAAEC,EAAE6E,iBAAiB/E,GAAG,GAAG,UAAUC,EAAEpgC,UAAU,WAAWogC,EAAEpgC,SAAS,OAAQ,EAAK,GAAG,aAAaogC,EAAEpgC,UAAU,aAAaogC,EAAEpgC,SAAS,CAAC,MAAMqgC,EAAEl5B,SAASi5B,EAAEoG,OAAO,IAAI,GAAGzhB,OAAO0hB,SAASpG,IAAIA,GAAG,EAAE,OAAQ,CAAI,CAAC,MAAMN,EAAEI,EAAEtlD,aAAaslD,EAAEtlD,aAAa,SAAS,GAAG,GAAG,GAAG,uDAAuDlJ,KAAKouD,GAAG,OAAQ,EAAK,GAAG,WAAWI,EAAEzwD,QAAQ,OAAQ,EAAKywD,EAAEA,EAAEv2D,cAAci1D,GAAI,CAAC,OAAQ,CAAK,CAAC,MAAM6H,GAAE,WAAAl8D,CAAY41D,EAAEC,EAAEF,EAAEtB,EAAEkB,EAAEiB,GAAGhzD,KAAKuwC,KAAK6hB,EAAEpyD,KAAKG,MAAMkyD,EAAEryD,KAAK24D,SAASxG,EAAEnyD,KAAK44D,YAAY/H,EAAE7wD,KAAK64D,aAAa9G,EAAE/xD,KAAK84D,gBAAgB9F,EAAEhzD,KAAK+4D,WAAW,IAAI3oB,IAAIpwC,KAAKg5D,WAAW,IAAI5oB,IAAIpwC,KAAKi5D,aAAa,IAAI7oB,IAAIpwC,KAAKk5D,cAAc,IAAI9oB,IAAIpwC,KAAKm5D,gBAAgB,IAAI/oB,IAAIpwC,KAAKo5D,UAAU,EAAEp5D,KAAKq5D,UAAU,EAAEr5D,KAAK4S,MAAM,IAAK,CAAC,KAAAmF,CAAMq6C,EAAEC,GAAG,IAAIryD,KAAKs5D,KAAKlH,EAAEC,GAAG,aAAaD,EAAE1/C,YAAY2/C,EAAE/kD,iBAAiB,OAAO,KAAK,IAAItN,KAAKs5D,KAAKlH,EAAEC,EAAG,CAAC,MAAM,GAAG,CAACkH,MAAK,IAAKv5D,KAAK4S,OAAO4mD,cAAcx5D,KAAK4S,OAAO5S,KAAK4S,MAAM6mD,YAAY,KAAK,IAAI,GAAGz5D,KAAKq5D,WAAW,IAAIr5D,KAAKo5D,WAAW,GAAG,YAAYp5D,KAAK+yD,UAAU/yD,KAAKs5D,KAAKlH,EAAEC,EAAG,CAAC,MAAM,GAAG,KAAM,CAAC,MAAM,CAAC,CAAC,IAAAiH,CAAKlH,EAAEC,GAAGryD,KAAKq5D,YAAY,MAAMlH,EAAEC,EAAE/3D,MAAM+3D,EAAEzlB,gBAAgB,IAAIwlB,EAAE,OAAO,MAAMtB,EAAEsB,EAAE71D,iBAAiB,KAAKy1D,EAAExsD,KAAKwG,IAAI8kD,EAAE/xD,OAAO,KAAKk0D,EAAE,GAAG,IAAI,IAAIb,EAAE,EAAEA,EAAEJ,KAAK/xD,KAAKo5D,WAAW,IAAIjH,IAAI,CAAC,MAAMJ,EAAElB,EAAEsB,GAAGc,EAAE+D,GAAEjF,GAAG,GAAGkB,EAAEn0D,OAAO,IAAI,gBAAgB6E,KAAKsvD,GAAG,SAAS,MAAMC,EAAElzD,KAAKG,MAAM4xD,GAAG,GAAGmB,EAAE,EAAE,SAAS,IAAImE,GAAEtF,EAAEM,GAAG,SAAS,MAAMe,EAAEf,EAAE6E,iBAAiBnF,GAAG,GAAG/xD,KAAK44D,aAAa5F,EAAEl0D,OAAO,IAAI,CAAC,MAAM+xD,EAAEsH,GAAEpG,EAAEK,GAAGvB,EAAE/xD,OAAO,GAAGk0D,EAAE7zD,KAAK,CAACkB,GAAG6yD,EAAEwG,MAAMvH,EAAEwH,SAASpB,GAAExG,EAAEM,GAAGv6C,MAAM+4C,EAAE9lC,OAAOkoC,EAAEpvD,MAAM,EAAE,MAAO,CAAC,GAAG7D,KAAK24D,WAAW34D,KAAKg5D,WAAWj4D,IAAImyD,GAAG,CAAC,MAAMd,EAAEsF,GAAE3F,EAAEqB,GAAGhB,IAAIpyD,KAAKg5D,WAAW93D,IAAIgyD,GAAGlzD,KAAKo5D,YAAYp5D,KAAK24D,SAAS,CAACt4D,GAAG6yD,EAAE0G,KAAKxH,EAAErnC,OAAOkoC,EAAEpvD,MAAM,EAAE,OAAQ,CAAC,GAAG7D,KAAK+4D,WAAWh4D,IAAImyD,GAAG,SAAS,MAAM/+C,EAAEuiD,GAAEtD,EAAE17C,OAAO,IAAIvD,EAAE,SAAS,MAAMk/C,EAAE4D,GAAElF,EAAEM,GAAG,IAAIgB,EAAE,SAAS,MAAME,EAAEwD,GAAE5iD,EAAEk/C,GAAGE,EAAE,OAAOvzD,KAAK+4D,WAAW73D,IAAIgyD,GAAGlzD,KAAKo5D,YAAYp5D,KAAKuwC,KAAK,CAAClwC,GAAG6yD,EAAE2G,GAAG,OAAOt0D,KAAKu0D,MAAM3lD,EAAE6+C,OAAOztD,KAAKu0D,MAAM3lD,EAAE0/C,OAAOtuD,KAAKu0D,MAAM3lD,EAAE+kB,MAAM6gC,GAAG,OAAOx0D,KAAKu0D,MAAMzG,EAAEL,OAAOztD,KAAKu0D,MAAMzG,EAAEQ,OAAOtuD,KAAKu0D,MAAMzG,EAAEn6B,MAAM8gC,MAAMzG,EAAExoC,OAAOkoC,EAAEpvD,MAAM,EAAE,OAAQ,CAAC7D,KAAK44D,aAAa54D,KAAKi6D,eAAejH,GAAGhzD,KAAK64D,cAAc74D,KAAKk6D,uBAAuB9H,EAAEC,GAAGryD,KAAK84D,iBAAiB94D,KAAKm6D,mBAAmB/H,EAAEC,EAAG,CAAC,kBAAA8H,CAAmB/H,EAAEC,GAAG,IAAIryD,KAAK84D,gBAAgB,OAAO,MAAM3G,EAAEC,EAAE91D,iBAAiB,OAAOu0D,EAAEtrD,KAAKwG,IAAIomD,EAAErzD,OAAO,KAAK,IAAI,IAAIszD,EAAE,EAAEA,EAAEvB,EAAEuB,IAAI,CAAC,GAAGpyD,KAAKo5D,WAAW,GAAG,OAAO,MAAMvI,EAAEsB,EAAEC,GAAGL,EAAElB,EAAEjkD,YAAYikD,EAAE9hD,KAAK8hD,EAAEhkD,aAAa,QAAQ,GAAG,IAAIklD,GAAG/xD,KAAKm5D,gBAAgBp4D,IAAIgxD,GAAG,SAAS,IAAIlB,EAAExjD,UAAU,IAAIwjD,EAAE3jD,aAAa,SAAS,IAAImqD,GAAExG,EAAEwB,GAAG,SAAS,MAAMW,EAAEnC,EAAEliD,wBAAwBskD,EAAE95B,SAAS03B,EAAEhkD,aAAa,UAAU,GAAG,IAAIqmD,EAAE/5B,SAAS03B,EAAEhkD,aAAa,WAAW,GAAG,IAAIumD,EAAE7tD,KAAKG,IAAIstD,EAAEvnD,MAAMsrC,OAAO0hB,SAASxF,GAAGA,EAAE,GAAG9+C,EAAE5O,KAAKG,IAAIstD,EAAErnD,OAAOorC,OAAO0hB,SAASvF,GAAGA,EAAE,GAAG,GAAGE,EAAE,IAAIj/C,EAAE,GAAG,SAAS,MAAMk/C,EAAErzD,KAAKG,MAAM0wD,GAAG7wD,KAAKm5D,gBAAgBj4D,IAAI6wD,GAAG/xD,KAAKo5D,YAAYp5D,KAAK84D,gBAAgB,CAACz4D,GAAGgzD,EAAE/C,IAAI,MAAM9tD,IAAIuvD,GAAI,CAAC,CAAC,sBAAAmI,CAAuB9H,EAAEC,GAAG,IAAIryD,KAAK64D,aAAa,OAAO,MAAM1G,EAAEC,EAAE91D,iBAAiB,SAASu0D,EAAEtrD,KAAKwG,IAAIomD,EAAErzD,OAAO,IAAI,IAAI,IAAIszD,EAAE,EAAEA,EAAEvB,EAAEuB,IAAI,CAAC,GAAGpyD,KAAKo5D,WAAW,GAAG,OAAO,MAAMvI,EAAEsB,EAAEC,GAAGL,EAAE/xD,KAAKG,MAAM0wD,GAAG,GAAGkB,EAAE,GAAG/xD,KAAKk5D,cAAcn4D,IAAIgxD,GAAG,SAAS,IAAIsF,GAAExG,EAAEwB,GAAG,SAAS,MAAMW,EAAEnC,EAAEv0D,iBAAiB,MAAM,GAAG02D,EAAEl0D,OAAO,EAAE,SAAS,MAAMm0D,EAAE,IAAIhzD,IAAI,IAAIizD,GAAE,EAAM,IAAI,IAAId,EAAE,EAAEA,EAAEY,EAAEl0D,SAASo0D,EAAEd,IAAI,CAAC,MAAMC,EAAEW,EAAEZ,GAAGpoC,SAAS,IAAI,IAAIooC,EAAE,EAAEA,EAAEC,EAAEvzD,OAAOszD,IAAI,CAAC,MAAMD,EAAEE,EAAED,GAAG,GAAG,OAAOD,EAAEzwD,SAAS,OAAOywD,EAAEzwD,QAAQ,SAAS,MAAMmvD,EAAE13B,SAASg5B,EAAEtlD,aAAa,YAAY,IAAI,IAAIklD,EAAE54B,SAASg5B,EAAEtlD,aAAa,YAAY,IAAI,IAAI,GAAG,IAAIgkD,GAAG,IAAIkB,EAAE,CAACmB,GAAE,EAAK,KAAK,CAAC,MAAMF,EAAEb,EAAExjD,wBAAwB,GAAGqkD,EAAEvnD,OAAO,GAAGunD,EAAErnD,QAAQ,EAAE,SAAS,MAAMynD,EAAEH,EAAEt5D,IAAIy4D,IAAI,GAAGgB,EAAEj0D,KAAK6zD,EAAEp4C,MAAMq4C,EAAE7xD,IAAIgxD,EAAEgB,EAAG,CAAC,CAAC,GAAGF,EAAE,SAAS,IAAIE,EAAE,EAAEj/C,GAAE,EAAG,IAAI,MAAMi+C,EAAEC,KAAKY,EAAE,CAAC,GAAGZ,EAAEvzD,OAAO,EAAE,SAAS,MAAMqzD,EAAE5sD,KAAKG,OAAO2sD,GAAG9sD,KAAKwG,OAAOsmD,GAAGF,EAAEiB,IAAIA,EAAEjB,EAAEh+C,EAAEi+C,EAAG,CAACgB,GAAG,IAAIj/C,GAAG,IAAInU,KAAKk5D,cAAch4D,IAAI6wD,GAAG/xD,KAAKo5D,YAAYp5D,KAAK64D,aAAa,CAACx4D,GAAG0xD,EAAEhnC,OAAO,UAAU5W,EAAE,yBAAyB5O,KAAKu0D,MAAM1G,SAAU,CAAC,CAAC,cAAA6G,CAAe7H,GAAG,GAAGpyD,KAAK44D,YAAY,IAAI,IAAIvG,EAAE,EAAEA,EAAED,EAAEtzD,OAAOuzD,IAAI,IAAI,IAAIF,EAAEE,EAAE,EAAEF,EAAEC,EAAEtzD,OAAOqzD,IAAI,CAAC,GAAGnyD,KAAKo5D,WAAW,GAAG,OAAO,MAAMvI,EAAEuB,EAAEC,GAAGN,EAAEK,EAAED,GAAG,GAAGtB,EAAE8I,UAAU5H,EAAE4H,SAAS,SAAS,IAAI5hB,GAAE8Y,EAAE/4C,MAAMi6C,EAAEj6C,OAAO,SAAS,MAAMk7C,EAAEnC,EAAExwD,GAAG0xD,EAAE1xD,GAAG,GAAGwwD,EAAExwD,MAAM0xD,EAAE1xD,KAAK,GAAG0xD,EAAE1xD,MAAMwwD,EAAExwD,KAAK,GAAGL,KAAKi5D,aAAal4D,IAAIiyD,GAAG,SAAShzD,KAAKi5D,aAAa/3D,IAAI8xD,GAAGhzD,KAAKo5D,YAAY,MAAMnG,EAAEpC,EAAE6I,OAAO3H,EAAE2H,MAAM7I,EAAEkB,EAAEmB,EAAED,IAAIpC,EAAEkB,EAAElB,EAAE7wD,KAAK44D,YAAY,CAACv4D,GAAG4yD,EAAE5yD,GAAG+5D,IAAIlH,EAAE7yD,GAAG0qB,OAAOkoC,EAAEloC,OAAOsvC,QAAQnH,EAAEnoC,QAAS,CAAC,CAAC,OAAAgoC,GAAU/yD,KAAK4S,OAAO4mD,cAAcx5D,KAAK4S,OAAO5S,KAAK4S,MAAM,IAAK,EAAE,IAAI0nD,GAAYlI,OAAwGkI,KAAIA,GAAE,CAAA,IAAzGlI,GAAEmI,KAAK,GAAG,OAAOnI,GAAEA,GAAEoI,MAAM,GAAG,QAAQpI,GAAEA,GAAEqI,KAAK,GAAG,OAAOrI,GAAEA,GAAEsI,KAAK,GAAG,OAAOtI,GAAEA,GAAEuI,MAAM,GAAG,QAAqB,MAAMC,GAAE,IAAI,MAAM,WAAAp+D,CAAY41D,GAAGpyD,KAAK66D,OAAO,CAACC,MAAMR,GAAEE,MAAMO,eAAc,EAAKC,eAAc,GAAOh7D,KAAKi7D,UAAU,oBAAoBv4D,OAAO0vD,IAAIpyD,KAAK66D,OAAO,IAAI76D,KAAK66D,UAAUzI,GAAI,CAAC,SAAA8I,CAAU9I,GAAGpyD,KAAK66D,OAAO,IAAI76D,KAAK66D,UAAUzI,EAAG,CAAC,SAAA+I,CAAU/I,GAAG,OAAOA,GAAGpyD,KAAK66D,OAAOC,KAAK,CAAC,aAAAM,CAAchJ,EAAEC,KAAKF,GAAG,MAAO,kBAAkBC,OAAM,IAAKvmB,MAAMwvB,kBAAkBhJ,GAAG,CAAC,KAAA5zD,CAAM2zD,KAAKC,GAAG,IAAIryD,KAAKm7D,UAAUb,GAAEE,OAAO,OAAO,MAAMrI,EAAEnyD,KAAKo7D,cAAc,QAAQhJ,GAAGpyD,KAAK66D,OAAOE,eAAextD,QAAQ9O,MAAM0zD,KAAKE,GAAGryD,KAAK66D,OAAOG,eAAeh7D,KAAKi7D,WAAWj7D,KAAKs7D,aAAanJ,EAAEE,EAAG,CAAC,IAAA7kD,CAAK4kD,KAAKC,GAAG,IAAIryD,KAAKm7D,UAAUb,GAAEG,MAAM,OAAO,MAAMtI,EAAEnyD,KAAKo7D,cAAc,OAAOhJ,GAAGpyD,KAAK66D,OAAOE,eAAextD,QAAQC,KAAK2kD,KAAKE,GAAGryD,KAAK66D,OAAOG,eAAeh7D,KAAKi7D,WAAWj7D,KAAKs7D,aAAanJ,EAAEE,EAAG,CAAC,IAAAkJ,CAAKnJ,KAAKC,GAAG,IAAIryD,KAAKm7D,UAAUb,GAAEI,MAAM,OAAO,MAAMvI,EAAEnyD,KAAKo7D,cAAc,OAAOhJ,GAAGpyD,KAAK66D,OAAOE,eAAextD,QAAQiuD,IAAIrJ,KAAKE,GAAGryD,KAAK66D,OAAOG,eAAeh7D,KAAKi7D,WAAWj7D,KAAKs7D,aAAanJ,EAAEE,EAAG,CAAC,KAAAxE,CAAMuE,KAAKC,GAAG,IAAIryD,KAAKm7D,UAAUb,GAAEK,OAAO,OAAO,MAAMxI,EAAEnyD,KAAKo7D,cAAc,QAAQhJ,GAAGpyD,KAAK66D,OAAOE,eAAextD,QAAQiuD,IAAIrJ,KAAKE,GAAGryD,KAAK66D,OAAOG,eAAeh7D,KAAKi7D,WAAWj7D,KAAKs7D,aAAanJ,EAAEE,EAAG,CAAC,YAAAiJ,CAAalJ,EAAEC,GAAG,IAAI,MAAMF,EAAEnzD,KAAKu1B,MAAMknC,aAAaC,QAAQ,wBAAwB,MAAM7K,EAAE,CAACh6C,QAAQu7C,EAAE3nC,KAAK4nC,EAAEvzD,OAAO,EAAEuzD,OAAE,EAAO9N,UAAU1Y,KAAKD,OAAOumB,EAAEhzD,KAAK0xD,GAAGsB,EAAErzD,OAAO,KAAKqzD,EAAErnC,OAAO,EAAEqnC,EAAErzD,OAAO,KAAK28D,aAAaE,QAAQ,sBAAsB38D,KAAKC,UAAUkzD,GAAI,CAAC,MAAMC,GAAG,CAAC,CAAC,OAAAwJ,GAAU,IAAI57D,KAAKi7D,UAAU,MAAO,GAAG,IAAI,OAAOj8D,KAAKu1B,MAAMknC,aAAaC,QAAQ,wBAAwB,KAAK,CAAC,MAAMtJ,GAAG,MAAO,EAAE,CAAC,CAAC,SAAAyJ,GAAY77D,KAAKi7D,WAAWQ,aAAaK,WAAW,sBAAuB,GAAG,IAAIC,IAAE,EAAM,MAAch3D,GAAE,CAACqtD,KAAKC,KAAK0J,IAAE,EAAK,IAAInB,GAAEn8D,MAAM2zD,KAAKC,EAAG,CAAC,QAAQ0J,IAAE,CAAM,GAAGC,GAAE,CAAC5J,KAAKC,KAAK0J,IAAE,EAAK,IAAInB,GAAEptD,KAAK4kD,KAAKC,EAAG,CAAC,QAAQ0J,IAAE,CAAM,GAAGE,GAAE,CAAC7J,KAAKC,KAAK0J,IAAE,EAAK,IAAInB,GAAEW,KAAKnJ,KAAKC,EAAG,CAAC,QAAQ0J,IAAE,CAAM,GAAGG,GAAE,CAAC9J,KAAKC,KAAK0J,IAAE,EAAK,IAAInB,GAAE/M,MAAMuE,KAAKC,EAAG,CAAC,QAAQ0J,IAAE,CAAM,GAAG,MAAMI,GAAE,WAAA3/D,CAAY41D,GAAGpyD,KAAKo8D,YAAW,EAAMp8D,KAAKq8D,gBAAgB,IAAIr8D,KAAKs8D,OAAO,GAAGt8D,KAAKs8D,OAAO,GAAGt8D,KAAKu8D,cAAa,EAAKv8D,KAAKw8D,aAAapK,EAAE,oBAAoB1vD,QAAQ,WAAWA,OAAO+5D,YAAYz8D,KAAKu8D,aAAa75D,OAAO+5D,UAAUC,OAAOh6D,OAAO4K,iBAAiB,SAAS,KAAKtN,KAAKu8D,cAAa,EAAKv8D,KAAK28D,WAAYj6D,OAAO4K,iBAAiB,UAAU,KAAKtN,KAAKu8D,cAAa,IAAU,CAAC,UAAIz9D,GAAS,OAAOkB,KAAKs8D,OAAOx9D,MAAM,CAAC,sBAAM89D,CAAiBxK,GAAG,MAAMC,EAAED,EAAEyK,uBAAuB,EAAE,GAAGxK,EAAE,EAAE,CAAC,MAAMF,EAAE,IAAI1vD,IAAI2vD,EAAE5vD,KAAK2vD,EAAEqB,aAAapyD,IAAI,cAAcixD,EAAEz4D,YAAYw4D,EAAE5vD,IAAI2vD,EAAEv4D,UAAW,CAAC,UAAUoG,KAAKw8D,aAAapK,EAAG,CAAC,MAAMD,GAAG,GAAGnyD,KAAK88D,aAAa3K,EAAEE,IAAIA,EAAE,GAAG,YAAYryD,KAAK+8D,SAAS3K,GAAGA,EAAEjoC,UAAUioC,EAAEjoC,SAAS,CAAC6yC,WAAW7K,EAAE8K,QAAQ,EAAEp7D,KAAKswD,EAAEt7C,SAAS,kBAAmB,CAAC,CAAC,YAAAimD,CAAa1K,EAAEC,GAAG,OAAOD,EAAE6K,QAAQ,KAAK7K,EAAE6K,OAAO,IAAI,MAAM7K,EAAE6K,QAAQ,MAAM7K,EAAE6K,OAAO7K,EAAE6K,QAAQ,MAAM7K,EAAE6K,MAAM,CAAC,QAAAF,CAAS3K,GAAG,MAAMC,EAAED,EAAEyK,uBAAuB,EAAEzK,EAAEyK,sBAAsBxK,EAAE,EAAE,MAAMF,EAAE,SAASC,GAAG,MAAMC,EAAE,IAAI,GAAGD,EAAED,EAAEE,EAAE,EAAExB,EAAEtrD,KAAKwG,IAAI,KAAKsmD,GAAGN,GAAGxsD,KAAKkb,SAAS,KAAKowC,EAAEsB,GAAG,OAAO5sD,KAAK23D,KAAKrM,EAAEkB,EAAE,CAAtG,CAAwGM,GAAGxB,EAAEhlB,KAAKD,MAAMumB,EAAEnyD,KAAKs8D,OAAOn9D,KAAK,CAACg+D,QAAQtM,EAAEuM,eAAehL,IAAI,IAAIL,EAAE,wCAAwCxsD,KAAKu0D,MAAM3H,EAAE,QAAQ,oBAAoBsK,WAAWA,UAAUC,SAAS3K,GAAG,yBAAyBiK,GAAEjK,GAAG/xD,KAAKo8D,aAAap8D,KAAKo8D,YAAW,EAAKp8D,KAAKq9D,QAAS,CAAC,KAAAA,GAAQr9D,KAAKs9D,SAASxqD,aAAa9S,KAAKs9D,SAASt9D,KAAKs9D,QAAQzqD,WAAW,KAAK7S,KAAKu8D,cAAcv8D,KAAKs8D,OAAOx9D,OAAO,GAAGkB,KAAK28D,SAAS38D,KAAKq9D,SAAUr9D,KAAKq8D,gBAAiB,CAAC,MAAAM,GAAS,MAAMvK,EAAEvmB,KAAKD,MAAMymB,EAAE,GAAGF,EAAEnyD,KAAKs8D,OAAO7uC,OAAO0kC,GAAGA,EAAEgL,QAAQ/K,IAAIC,EAAElzD,KAAKgzD,IAAG,IAAQ,GAAGnyD,KAAKs8D,OAAOjK,EAAEF,EAAErzD,OAAO,EAAE,IAAI,MAAMs+D,eAAehL,KAAKD,EAAEnyD,KAAK48D,iBAAiBxK,GAAG35B,MAAM25B,IAAIrtD,GAAE,2BAA2BqtD,IAAM,CAAC,MAAAmL,GAASv9D,KAAKs9D,UAAUxqD,aAAa9S,KAAKs9D,SAASt9D,KAAKs9D,aAAQ,GAAQ,IAAI,MAAMF,eAAehL,KAAKpyD,KAAKs8D,OAAO,IAAIt8D,KAAKw9D,mBAAmBpL,EAAG,CAAC,MAAMA,GAAGrtD,GAAE,mDAAmDqtD,EAAG,CAACpyD,KAAKs8D,OAAO,EAAG,CAAC,kBAAAkB,CAAmBpL,GAAG,GAAG,oBAAoBqK,WAAWA,UAAUgB,WAAW,IAAI,MAAMpL,EAAE,IAAI5vD,IAAI2vD,EAAE5vD,KAAK6vD,EAAEmB,aAAapyD,IAAI,SAAS,KAAK,IAAI+wD,EAAE,KAAKC,EAAE/3D,OAAO,iBAAiB+3D,EAAE/3D,KAAK83D,EAAE,IAAI9I,KAAK,CAAC+I,EAAE/3D,MAAM,CAACsH,KAAK,eAAeywD,EAAE/3D,gBAAgBgvD,OAAO8I,EAAEC,EAAE/3D,OAAOoiE,UAAUgB,WAAWpL,EAAEz4D,WAAWu4D,IAAI6J,GAAE,+CAAgD,CAAC,MAAM5J,GAAGrtD,GAAE,gCAAgCqtD,EAAG,CAAC,EAAE,MAAMsL,GAAE,WAAAlhE,CAAY41D,EAAEC,EAAE,KAAKryD,KAAK29D,WAAW,uBAAuB39D,KAAK49D,aAAavL,CAAE,CAAC,QAAAwL,GAAW,GAAG,oBAAoBn7D,SAASA,OAAO+4D,aAAa,MAAO,GAAG,IAAI,MAAMrJ,EAAE1vD,OAAO+4D,aAAaC,QAAQ17D,KAAK29D,YAAY,IAAIvL,EAAE,MAAO,GAAG,MAAMC,EAAErzD,KAAKu1B,MAAM69B,GAAG,OAAOl0D,MAAMgf,QAAQm1C,GAAGA,EAAE,EAAE,CAAC,MAAMD,GAAG,OAAO4J,GAAE,kCAAkC5J,GAAG,EAAE,CAAC,CAAC,QAAA0L,CAAS1L,GAAG,GAAG,oBAAoB1vD,QAAQA,OAAO+4D,aAAa,IAAI,MAAMpJ,EAAED,EAAEvuD,OAAO7D,KAAK49D,cAAcl7D,OAAO+4D,aAAaE,QAAQ37D,KAAK29D,WAAW3+D,KAAKC,UAAUozD,IAAI6J,GAAE,aAAa7J,EAAEvzD,2BAA4B,CAAC,MAAMuzD,GAAG,GAAG,uBAAuBA,EAAE11D,MAAM,KAAK01D,EAAE95C,KAAK,CAACyjD,GAAE,+CAA+C,IAAI,MAAM3J,EAAED,EAAEvuD,OAAO0B,KAAKC,MAAMxF,KAAK49D,aAAa,IAAIl7D,OAAO+4D,aAAaE,QAAQ37D,KAAK29D,WAAW3+D,KAAKC,UAAUozD,GAAI,CAAC,MAAMD,GAAG4J,GAAE,kDAAkDh8D,KAAK+9D,YAAa,CAAC,MAAM/B,GAAE,2BAA2B3J,EAAG,CAAC,CAAC,UAAA2L,CAAW5L,GAAG,MAAMC,EAAEryD,KAAK69D,WAAWxL,EAAElzD,KAAKizD,GAAGC,EAAEvzD,OAAOkB,KAAK49D,eAAevL,EAAE3/B,QAAQwpC,GAAE,gDAAgDl8D,KAAK89D,SAASzL,EAAG,CAAC,eAAA4L,CAAgB7L,GAAG,MAAMC,EAAEryD,KAAK69D,WAAWxL,EAAEvnC,OAAO,EAAEsnC,GAAGpyD,KAAK89D,SAASzL,EAAG,CAAC,UAAA0L,GAAa,GAAG,oBAAoBr7D,QAAQA,OAAO+4D,aAAa,IAAI/4D,OAAO+4D,aAAaK,WAAW97D,KAAK29D,WAAY,CAAC,MAAMvL,GAAG4J,GAAE,mCAAmC5J,EAAG,CAAC,CAAC,cAAA8L,GAAiB,OAAOl+D,KAAK69D,WAAW/+D,MAAM,EAAE,MAAMq/D,GAAE,SAASC,GAAE,QAAQC,GAAE,QAAQC,GAAE,aAAa,SAASC,GAAGnM,EAAEC,GAAG,MAAO,mBAAmBM,OAAOA,MAAMP,EAAE,CAACp4D,OAAO,OAAOK,KAAKg4D,EAAEmM,WAAU,EAAK3L,YAAY,SAASp6B,MAAM,SAAQ,GAAM,oBAAoBgkC,WAAW,mBAAmBA,UAAUgB,YAAYhB,UAAUgB,WAAWrL,EAAEC,EAAE,CAAC,IAAIoM,GAAG,KAAK,SAASC,GAAGtM,GAAG,OAAOqM,KAAKA,GAAG,IAAIE,aAAaF,GAAG3W,OAAO8W,GAAGxM,IAAItzD,MAAM,CAAC,SAAS8/D,GAAGxM,GAAG,OAAOpzD,KAAKC,UAAUmzD,EAAE,CAACA,EAAEC,IAAI,iBAAiBA,EAAEA,EAAEz4D,WAAWy4D,EAAE,CAAC,SAASwM,GAAGzM,EAAEC,GAAG,IAAID,GAAG,iBAAiBA,EAAE,MAAO,GAAG,GAAGsM,GAAG,CAACI,UAAUzM,EAAEl7B,OAAO,CAACi7B,MAAMgM,GAAE,MAAO,CAAChM,GAAG,MAAMD,EAAE,IAAIC,GAAGvB,EAAE,CAAC,aAAa,OAAO,MAAM,WAAW,YAAY,aAAgD,OAAnCA,EAAEhwD,QAAQuxD,IAAID,EAAEC,WAAWD,EAAEC,KAASsM,GAAG,CAACI,UAAUzM,EAAEl7B,OAAO,CAACg7B,MAAMiM,GAAS,CAACjM,GAAU,CAAC,CAACxwD,KAAKywD,EAAEzwD,KAAK4iD,UAAU6N,EAAE7N,UAAU/hD,IAAI4vD,EAAE5vD,IAAIM,SAASsvD,EAAEtvD,YAAYtL,OAAOunE,YAAYvnE,OAAO67B,QAAQ++B,GAAG3kC,OAAO,EAAE2kC,EAAEC,MAAMxB,EAAEh3D,SAASu4D,IAAI,iBAAiBC,GAAG,iBAAiBA,GAAG,iBAAiBA,GAAGA,EAAEvzD,OAAO,OAAO,CAAC,MAAMkgE,GAAG,WAAAxiE,EAAayiE,OAAO7M,EAAE8M,aAAa7M,IAAIryD,KAAKm/D,qBAAoB,EAAMn/D,KAAKo/D,eAAe,EAAEp/D,KAAK8+D,UAAU,GAAG9+D,KAAKq/D,UAAU,KAAKr/D,KAAKs/D,YAAW,EAAMt/D,KAAKu/D,yBAAyB,EAAEv/D,KAAKw/D,eAAe,IAAIx/D,KAAKy/D,iBAAiB,IAAIz/D,KAAK0/D,sBAAqB,EAAM1/D,KAAKi/D,OAAO7M,EAAEpyD,KAAK2/D,QAAQtN,EAAEryD,KAAK4/D,YAAY,IAAIlC,GAAEtL,GAAGpyD,KAAK6/D,WAAW,IAAI1D,GAAE/J,GAAGpyD,KAAK8/D,qBAAqB1N,IAAIpyD,KAAK+/D,uBAAuB,oBAAoBr9D,QAAQ,mBAAmBA,OAAO4K,kBAAkB5K,OAAO4K,iBAAiB,SAAS,KAAKtN,KAAK+/D,wBAA0B,CAAC,kBAAAC,CAAmB5N,EAAEC,GAAGryD,KAAK8+D,UAAU1M,EAAEpyD,KAAKq/D,UAAUhN,CAAE,CAAC,0BAAM0N,GAAuB,GAAG//D,KAAK0/D,qBAAqB,OAAO,IAAI1/D,KAAKigE,oBAAoB,OAAO,MAAM7N,EAAEpyD,KAAK4/D,YAAY/B,WAAW,GAAG,IAAIzL,EAAEtzD,OAAO,CAACkB,KAAK0/D,sBAAqB,EAAK,IAAIxD,GAAE,YAAY9J,EAAEtzD,iDAAiD,IAAI,MAAMuzD,KAAKD,EAAE,CAAC,UAAUpyD,KAAKkgE,oBAAoB7N,GAAG,MAAMryD,KAAK4/D,YAAY3B,gBAAgB,EAAG,CAAC,CAAC,QAAQj+D,KAAK0/D,sBAAqB,CAAM,CAAC,CAAC,CAAC,yBAAMQ,CAAoB9N,GAAG,GAAGpyD,KAAKmgE,cAAc,OAAQ,EAAM,IAAI,MAAM9N,GAAGD,EAAEj7B,QAAQ,IAAI1J,OAAO2kC,GAAGA,GAAG,iBAAiBA,GAAG,GAAG,IAAIC,EAAEvzD,OAAO,OAAO,EAAG,MAAMqzD,QAAQnyD,KAAKogE,aAAa,GAAGpgE,KAAK2/D,+BAA+B,CAAC3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAKukE,GAAG,CAACE,UAAU1M,EAAE0M,UAAU3nC,OAAOk7B,EAAEgN,UAAUjN,EAAEiN,WAAW,KAAKiB,SAASlO,EAAEkO,SAASC,oBAAoBnO,EAAEmO,oBAAoBC,WAAWrC,OAAM,IAAIhM,EAAEW,GAAG,OAAO,MAAMX,EAAE8K,cAAcj9D,KAAKygE,UAAUtO,IAAG,EAAG,IAAI,MAAMC,QAAQD,EAAE9sC,OAAO+sC,IAAG,IAAKA,EAAE+M,sBAAsBn/D,KAAKm/D,qBAAoB,EAAI,CAAC,MAAM,CAAC,OAAO,CAAE,CAAC,MAAM,OAAQ,CAAK,CAAC,CAAC,0BAAMW,CAAqB1N,GAAG,MAAMC,EAAE,oBAAoBqO,gBAAgB,IAAIA,gBAAgB,KAAK,IAAIvO,EAAE,KAAKE,IAAIF,EAAEt/C,WAAW,KAAKw/C,EAAEsO,SAAU3gE,KAAKw/D,iBAAiB,IAAI,MAAM3O,EAAEuB,EAAEwO,eAAe,EAAE7O,EAAE,SAASK,EAAEp4D,QAAQ62D,EAAEwN,GAAErL,QAAQL,MAAMP,EAAE5vD,IAAI,CAACxI,OAAOo4D,EAAEp4D,QAAQ,MAAM05D,QAAQtB,EAAEsB,SAAS,CAAA,EAAGr5D,KAAK+3D,EAAE/3D,KAAKwmE,OAAOxO,GAAGwO,OAAOrC,UAAUzM,IAAII,GAAGr/C,aAAaq/C,GAAG,MAAMc,QAAQD,EAAEnxD,OAAO,IAAIqxD,EAAE,KAAK,IAAIA,EAAEl0D,KAAKu1B,MAAM0+B,EAAG,CAAC,MAAM,CAAC,GAAGb,EAAEjoC,UAAUioC,EAAEjoC,SAAS,CAAC6yC,WAAWhK,EAAEiK,OAAOp7D,KAAKoxD,EAAE5tC,KAAK6tC,KAAKF,EAAEF,GAAG,KAAM,CAACmK,OAAOjK,EAAEiK,OAAOpmD,QAAQo8C,EAAE,CAAC,MAAMb,GAAG,GAAGD,GAAGr/C,aAAaq/C,GAAG,eAAeC,EAAEz1D,KAAK,KAAM,CAACsgE,OAAO,EAAEpmD,QAAQ,mBAAmB,MAAMu7C,CAAC,CAAC,CAAC,MAAAmL,GAASv9D,KAAK6/D,WAAWtC,QAAS,CAAC,iBAAA0C,GAAoB,OAAQjgE,KAAKm/D,mBAAmB,CAAC,WAAAgB,GAAc,OAAOt0B,KAAKD,MAAM5rC,KAAKo/D,cAAc,CAAC,eAAMqB,CAAUrO,GAAG,IAAIC,EAAE,KAAK,IAAIA,QAAQD,EAAE/0C,QAAQgI,MAAO,CAAC,MAAM,CAAC,GAAGgtC,IAAG,IAAOA,EAAE8M,oBAAoB,YAAYn/D,KAAKm/D,qBAAoB,GAAM,MAAMhN,EAAEC,EAAEsB,SAAS/5D,MAAM,eAAek3D,EAAE9Z,OAAOob,GAAGE,GAAGyO,mBAAmB/O,EAAEhb,OAAO0hB,SAAS5H,IAAIA,EAAE,EAAEtrD,KAAKwG,IAAI8kD,EAAE,KAAK,GAAG7wD,KAAKo/D,eAAevzB,KAAKD,MAAM,IAAImmB,EAAEkK,GAAE,yCAAyClK,KAAM,CAAC,UAAMn/B,CAAKw/B,EAAEC,GAAG,IAAIryD,KAAKigE,oBAAoB,MAAO,CAACnB,UAAU1M,EAAEiN,UAAUhN,GAAG,IAAIF,EAAE,KAAKtB,EAAE,KAAK,oBAAoBnuD,SAASyvD,EAAEzvD,OAAOC,SAAS7E,KAAK+yD,EAAE12D,SAAS4mE,UAAU9E,GAAE,wBAAwB,CAAC6C,UAAU1M,EAAE4O,OAAO3O,EAAE4O,SAAS9O,EAAE4O,SAASlQ,EAAE8O,QAAQ3/D,KAAK2/D,UAAU,IAAI,MAAM5N,QAAQ/xD,KAAKogE,aAAa,GAAGpgE,KAAK2/D,6BAA6B,CAAC3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,SAASiC,QAAQrQ,GAAG,IAAIx2D,KAAKukE,GAAG,CAACE,UAAU1M,EAAEiN,UAAUhN,EAAE4O,SAAS9O,EAAE4O,SAASlQ,EAAE2P,WAAWrC,OAAM,GAAGlC,GAAE,4BAA4BlK,EAAEkL,SAASlL,EAAEe,GAAG,CAAC,GAAG,MAAMf,EAAEkL,OAAO,aAAaj9D,KAAKygE,UAAU1O,GAAG,CAAC+M,UAAU1M,EAAEiN,UAAUhN,GAAG,MAAMF,QAAQJ,EAAElwD,OAAO,MAAMkD,GAAE,mBAAmBgtD,EAAEkL,OAAO9K,GAAG,IAAIv7C,MAAM,mCAAmCm7C,EAAEoP,gBAAgBhP,IAAI,CAAC,MAAMa,QAAQjB,EAAE1sC,OAAO,OAAO,IAAK2tC,EAAEmM,sBAAsBn/D,KAAKm/D,qBAAoB,EAAGlD,GAAE,wDAAwDA,GAAE,oBAAoBjJ,GAAG,CAAC8L,UAAU9L,EAAE8L,UAAUO,UAAUrM,EAAEqM,UAAU,CAAC,MAAMjN,GAAG,MAAMrtD,GAAE,kBAAkBqtD,GAAGA,CAAC,CAAC,CAAC,gBAAMgP,CAAWhP,EAAEC,EAAEF,GAAG,MAAMtB,EAAEuB,EAAE3kC,OAAO2kC,GAAGA,GAAG,iBAAiBA,GAAGL,QAAQ/xD,KAAKogE,aAAa,GAAGpgE,KAAK2/D,+BAA+B,CAAC3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAKukE,GAAG,CAACE,UAAUzM,EAAEl7B,OAAO05B,EAAEwO,UAAUlN,EAAEqO,WAAWrC,OAAM,IAAIpM,EAAEe,GAAG,CAAC,GAAG,MAAMf,EAAEkL,OAAO,YAAYj9D,KAAKygE,UAAU1O,GAAG,IAAIn7C,MAAM,qBAAqB,MAAM,IAAIA,MAAM,0BAA0Bm7C,EAAEoP,aAAa,EAAE,WAAcpP,EAAE1sC,QAAQ85C,sBAAsBn/D,KAAKm/D,qBAAoB,EAAKlD,GAAE,uDAAwD,CAAC,uBAAMoF,CAAkBjP,EAAEC,EAAEF,EAAEtB,EAAEkB,GAAG,IAAI/xD,KAAKigE,oBAAoB,MAAO,GAAG,IAAI,MAAMjN,EAAE,GAAG,IAAIC,EAAE,GAAG,MAAMC,EAAE,SAASd,GAAG,MAAMC,EAAEqM,GAAG,CAACI,UAAU1M,EAAEj7B,OAAO,KAAK,IAAIg7B,EAAEE,EAAExB,EAAE,EAAEkB,EAAE,KAAKiB,EAAE,EAAE,SAASC,EAAEb,GAAG,OAAOA,IAAIL,IAAIA,EAAEK,EAAEY,EAAE0L,GAAGtM,IAAIY,CAAC,CAAC,MAAO,CAAC,WAAAsO,CAAYlP,GAAG,MAAMC,EAAExB,EAAE,EAAE,EAAE,EAAE,OAAOsB,EAAEc,EAAEb,GAAGC,EAAE+L,EAAC,EAAE,GAAAl9D,CAAIkxD,GAAGD,GAAGc,EAAEb,IAAIvB,EAAE,EAAE,EAAE,GAAGA,GAAI,EAAE,KAAAvvD,CAAM8wD,EAAE,IAAID,EAAEE,EAAExB,EAAE,EAAE,IAAI,MAAMwB,KAAKD,EAAEpyD,KAAKkB,IAAImxD,EAAG,EAAE,CAA/P,CAAiQA,GAAG,IAAI,MAAMe,KAAKhB,EAAE,GAAGgB,GAAG,iBAAiBA,EAAE,GAAGF,EAAEoO,YAAYlO,GAAG,CAAC,GAAGH,EAAEn0D,OAAO,EAAE,CAACo9D,GAAE,4BAA4BjJ,EAAEn0D,iBAAiB,MAAMszD,QAAQpyD,KAAKogE,aAAa,GAAGpgE,KAAK2/D,+BAA+B,CAAC3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAKukE,GAAG,CAACE,UAAUzM,EAAEl7B,OAAO87B,EAAEoM,UAAUlN,EAAEmO,SAASzP,EAAE0P,oBAAoBxO,EAAEyO,WAAWrC,OAAM,IAAI/L,EAAEU,GAAG,CAAC,GAAG,MAAMV,EAAE6K,OAAO,YAAYj9D,KAAKygE,UAAUrO,GAAG,IAAIx7C,MAAM,qBAAqB,MAAM,IAAIA,MAAM,0BAA0Bw7C,EAAE+O,aAAa,CAAC,MAAMjO,QAAQd,EAAE/sC,QAAO,IAAK6tC,EAAEiM,sBAAsBn/D,KAAKm/D,qBAAoB,EAAGlD,GAAE,gEAAgEjJ,EAAE7zD,KAAK+zD,GAAGD,EAAE,EAAG,CAAC,MAAMb,EAAEyM,GAAGzL,EAAEf,GAAGY,EAAEb,EAAEc,EAAE5xD,MAAM8wD,EAAG,MAAMa,EAAE9zD,KAAKi0D,GAAGF,EAAEhyD,IAAIkyD,GAAG,GAAGH,EAAEn0D,OAAO,EAAE,CAAC,MAAMszD,QAAQpyD,KAAKuhE,oBAAoBtO,EAAEZ,EAAEF,EAAEtB,EAAEkB,GAAGkB,EAAE,IAAIsN,qBAAqBnO,GAAGY,EAAE7zD,KAAKizD,EAAG,CAAC,OAAOY,EAAEwO,MAAM,CAAC,MAAMxO,GAAG,MAAMjuD,GAAE,wBAAwBiuD,GAAGhzD,KAAKyhE,eAAerP,EAAEC,EAAEF,EAAEtB,EAAEkB,GAAGiB,CAAC,CAAC,CAAC,yBAAMuO,CAAoBnP,EAAEC,EAAEF,EAAEtB,EAAEkB,GAAG,IAAIiB,EAAEztD,KAAKwG,IAAI/L,KAAKy/D,iBAAiBrN,EAAEtzD,QAAQm0D,EAAE,EAAE,KAAKA,EAAEb,EAAEtzD,QAAQ,CAAC,MAAMo0D,EAAE0L,GAAG,CAACE,UAAUzM,EAAEl7B,OAAOi7B,EAAEvuD,MAAMovD,EAAEA,EAAED,GAAGqM,UAAUlN,EAAEmO,SAASzP,EAAE0P,oBAAoBxO,EAAEyO,WAAWrC,KAAI/K,GAAE,IAAKuL,aAAa7W,OAAOoL,GAAGp0D,OAAO,IAAI,MAAMqV,QAAQnU,KAAKogE,aAAa,GAAGpgE,KAAK2/D,+BAA+B,CAAC3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAK64D,GAAGE,GAAG,IAAIj/C,EAAE2+C,GAAG,CAAC,GAAG,MAAM3+C,EAAE8oD,OAAO,aAAaj9D,KAAKygE,UAAUtsD,GAAGnU,KAAKyhE,eAAerP,EAAEvuD,MAAMovD,GAAGZ,EAAEF,EAAEtB,EAAEkB,GAAG,KAAK,GAAG,MAAM59C,EAAE8oD,OAAO,CAACjB,GAAE,uCAAuChJ,QAAQztD,KAAKG,IAAI,EAAEH,KAAKC,MAAMwtD,EAAE,OAAOhzD,KAAKy/D,iBAAiBl6D,KAAKG,IAAI,EAAEH,KAAKC,MAAMwtD,EAAE,IAAIA,EAAEhzD,KAAKy/D,iBAAiB,QAAQ,CAAC,aAAaz/D,KAAK6/D,WAAWjD,iBAAiB,CAACp6D,IAAI,GAAGxC,KAAK2/D,+BAA+B3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAK64D,EAAE0N,cAAcxN,EAAEjpC,SAASioC,IAAI,MAAMA,EAAE4K,YAAY5K,EAAE/sC,OAAM,IAAK+sC,EAAE/sC,KAAK85C,sBAAsBn/D,KAAKm/D,qBAAoB,MAAQn/D,KAAKyhE,eAAerP,EAAEvuD,MAAMovD,GAAGZ,EAAEF,EAAEtB,EAAEkB,GAAG,IAAI,CAAC,MAAMsB,QAAQl/C,EAAEkR,OAAO,IAAG,IAAKguC,EAAE8L,sBAAsBn/D,KAAKm/D,qBAAoB,EAAGlD,GAAE,gEAAgEhJ,GAAGD,EAAEC,GAAGb,EAAEtzD,OAAO,OAAOu0D,CAAC,CAAC,MAAML,GAAG,OAAOgJ,GAAE,sDAAsDhJ,SAAShzD,KAAK6/D,WAAWjD,iBAAiB,CAACp6D,IAAI,GAAGxC,KAAK2/D,+BAA+B3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAK64D,EAAE0N,cAAcxN,EAAEjpC,SAASioC,IAAI,MAAMA,EAAE4K,YAAY5K,EAAE/sC,OAAM,IAAO+sC,EAAE/sC,KAAK85C,sBAAsBn/D,KAAKm/D,qBAAoB,MAAUn/D,KAAKyhE,eAAerP,EAAEvuD,MAAMovD,GAAGZ,EAAEF,EAAEtB,EAAEkB,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,cAAA0P,CAAerP,EAAEC,EAAEF,EAAEtB,EAAEkB,GAAG,IAAIK,EAAEtzD,QAAQkB,KAAK4/D,YAAY5B,WAAW,CAACc,UAAUzM,EAAEl7B,OAAOi7B,EAAEiN,UAAUlN,EAAEmO,SAASzP,EAAE0P,oBAAoBxO,EAAExN,UAAU1Y,KAAKD,OAAQ,CAAC,kBAAM81B,CAAatP,EAAEC,EAAEF,EAAEtB,GAAG,IAAI,MAAMkB,EAAE,CAACiP,OAAO5O,EAAEuP,eAAetP,EAAEyM,UAAU3M,EAAEyP,YAAYvP,EAAE3D,OAAO2D,EAAE11D,MAAM,MAAMk0D,IAAIkB,EAAE8P,cAAchR,GAAGqL,GAAE,+BAA+B,IAAInK,EAAE8P,cAAchR,EAAE,kBAAa,IAAS,MAAMmC,QAAQhzD,KAAKogE,aAAa,GAAGpgE,KAAK2/D,6BAA6B,CAAC3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAKukE,GAAG7M,KAAK,IAAIiB,EAAEF,GAAG,CAAC,MAAMV,QAAQY,EAAEnxD,OAAOm1B,KAAKo7B,IAAI,IAAI,OAAOpzD,KAAKu1B,MAAM69B,IAAI3zD,OAAO2zD,CAAC,CAAC,MAAM,OAAOA,CAAC,GAAG,IAAI,IAAI,MAAM,IAAIx7C,MAAM,6BAA6Bo8C,EAAEiK,UAAUjK,EAAEmO,aAAa/O,EAAE,MAAMA,IAAI,KAAK,CAAC,MAAMa,QAAQD,EAAE3tC,OAAO,OAAO62C,GAAE,mBAAmBjJ,GAAGA,CAAC,CAAC,MAAMb,GAAG,MAAMrtD,GAAE,2BAA2BqtD,GAAGA,CAAC,CAAC,CAAC,oBAAA0P,CAAqB1P,EAAEC,GAAG,IAAI,MAAMF,EAAE,CAAC2M,UAAU1M,EAAEiN,UAAUhN,GAAG,KAAK4M,OAAOj/D,KAAKi/D,QAAQpO,EAAE,IAAIxH,KAAK,CAACuV,GAAGzM,IAAI,CAACxwD,KAAK28D,KAAI,OAAOC,GAAG,GAAGv+D,KAAK2/D,oCAAoC9O,EAAE,CAAC,MAAM,OAAQ,CAAK,CAAC,CAAC,mBAAAkR,CAAoB3P,EAAEC,GAAG,IAAI,MAAMF,EAAE,CAAC2M,UAAU1M,EAAEiN,UAAUhN,GAAG,KAAK4M,OAAOj/D,KAAKi/D,QAAQpO,EAAE,IAAIxH,KAAK,CAACuV,GAAGzM,IAAI,CAACxwD,KAAK28D,KAAI,OAAOC,GAAG,GAAGv+D,KAAK2/D,kCAAkC9O,EAAE,CAAC,MAAM,OAAQ,CAAK,CAAC,CAAC,gBAAAmR,CAAiB5P,EAAEC,EAAEF,EAAEtB,EAAEkB,EAAEiB,GAAG,MAAMC,EAAE,CAAC6L,UAAUzM,EAAEl7B,OAAOi7B,EAAEiN,UAAUlN,GAAG,KAAKmO,SAASzP,EAAE0P,oBAAoBxO,EAAEyO,WAAWrC,GAAEc,OAAOj/D,KAAKi/D,QAAQ/L,EAAE,IAAI7J,KAAK,CAACuV,GAAG3L,IAAI,CAACtxD,KAAK28D,KAAI,OAAO7B,UAAUgB,WAAW,GAAGz9D,KAAK2/D,+BAA+BzM,EAAE,CAAC,qBAAM+O,CAAgB7P,EAAEC,EAAEF,EAAEtB,EAAEkB,GAAGkK,GAAE,6BAA6B,CAAC6C,UAAU1M,EAAEjb,UAAUkb,EAAE6P,gBAAgB/P,EAAEkN,UAAUxO,IAAI,IAAI,MAAMmC,QAAQhzD,KAAKogE,aAAa,GAAGpgE,KAAK2/D,oCAAoC,CAAC3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAKukE,GAAG,CAACE,UAAU1M,EAAEjb,UAAUkb,EAAE6P,gBAAgB/P,GAAG,CAAA,EAAGkN,UAAUxO,GAAG,QAAQkB,EAAE,CAACoQ,QAAQpQ,GAAG,CAAA,MAAO,GAAGkK,GAAE,8BAA8B,CAACgB,OAAOjK,EAAEiK,OAAOkE,WAAWnO,EAAEmO,cAAcnO,EAAEF,GAAG,CAAC,MAAMV,QAAQY,EAAEnxD,OAAO,MAAMkD,GAAE,oCAAoC,CAACk4D,OAAOjK,EAAEiK,OAAOkE,WAAWnO,EAAEmO,WAAWiB,UAAUhQ,IAAI,IAAIx7C,MAAM,gCAAgCo8C,EAAEiK,UAAUjK,EAAEmO,gBAAgB/O,IAAI,CAAC,MAAMa,QAAQD,EAAE3tC,OAAO,OAAO62C,GAAE,6BAA6BjJ,GAAGA,CAAC,CAAC,MAAMpC,GAAG,MAAM9rD,GAAE,mCAAmC8rD,EAAE,CAACiO,UAAU1M,EAAEjb,UAAUkb,EAAE6P,gBAAgB/P,IAAItB,CAAC,CAAC,CAAC,0BAAMwR,CAAqBjQ,EAAEC,EAAEF,GAAG,MAAMtB,EAAE+N,GAAG,CAACE,UAAU1M,EAAEj7B,OAAOk7B,EAAEgN,UAAUlN,GAAG,OAAO,IAAI,MAAMC,QAAQpyD,KAAKogE,aAAa,GAAGpgE,KAAK2/D,0CAA0C,CAAC3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAKw2D,IAAI,IAAIuB,EAAEU,GAAG,MAAM,IAAIl8C,MAAM,sCAAsCw7C,EAAE+O,cAAc,aAAa/O,EAAE/sC,MAAM,CAAC,MAAM+sC,GAAG,MAAMrtD,GAAE,oCAAoCqtD,GAAGA,CAAC,CAAC,CAAC,0BAAAkQ,CAA2BlQ,EAAEC,EAAEF,GAAG,GAAG,oBAAoBsK,WAAW,mBAAmBA,UAAUgB,WAAW,OAAQ,EAAM,IAAI,MAAM5M,EAAE,CAACiO,UAAU1M,EAAEj7B,OAAOk7B,EAAEgN,UAAUlN,GAAG,KAAK8M,OAAOj/D,KAAKi/D,QAAQlN,EAAE,IAAI1I,KAAK,CAACuV,GAAG/N,IAAI,CAAClvD,KAAK28D,KAAI,OAAO7B,UAAUgB,WAAW,GAAGz9D,KAAK2/D,0CAA0C5N,EAAE,CAAC,MAAM,OAAQ,CAAK,CAAC,CAAC,aAAMwQ,CAAQnQ,GAAG,IAAI,GAAG8J,GAAE,+BAA+B,CAACpB,MAAM1I,EAAE0I,MAAMjkD,QAAQu7C,EAAEv7C,QAAQ7R,UAAU,EAAE,IAAI85D,UAAU1M,EAAE0M,aAAa9+D,KAAK2/D,QAAQ,OAAO,IAAIvN,EAAE0M,UAAU,OAAO,MAAMzM,EAAEuM,GAAGxM,SAASpyD,KAAK6/D,WAAWjD,iBAAiB,CAACp6D,IAAI,GAAGxC,KAAK2/D,6BAA6B3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAKg4D,EAAEuO,cAAc,iBAAiBvO,EAAEA,EAAEvzD,OAAO,GAAI,CAAC,MAAMszD,GAAG4J,GAAE,sCAAsC5J,EAAG,CAAC,CAAC,sBAAMoQ,CAAiBpQ,GAAG,IAAI,GAAG8J,GAAE,yCAAyC,CAACuG,UAAUrQ,EAAEqQ,UAAUjgE,IAAI4vD,EAAE5vD,IAAIwC,UAAU,EAAE,IAAI85D,UAAU1M,EAAE0M,aAAa9+D,KAAK2/D,QAAQ,OAAO,IAAIvN,EAAE0M,UAAU,OAAO,MAAMzM,QAAQM,MAAM,GAAG3yD,KAAK2/D,gCAAgC,CAAC3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAKukE,GAAGxM,KAAKC,EAAES,GAAGoJ,GAAE,yCAAyCF,GAAE,gDAAgD3J,EAAE4K,OAAO5K,EAAE8O,WAAY,CAAC,MAAM/O,GAAG4J,GAAE,gDAAgD5J,EAAG,CAAC,CAAC,eAAMsQ,CAAUtQ,EAAEC,GAAG,IAAI,IAAIryD,KAAK2/D,UAAUtN,EAAEyM,YAAY1M,GAAG,IAAIA,EAAEtzD,OAAO,OAAO,MAAMqzD,EAAEyM,GAAG,CAACE,UAAUzM,EAAEyM,UAAUO,UAAUhN,EAAEgN,UAAUkB,oBAAoBlO,EAAEkO,oBAAoBoC,MAAMvQ,UAAUpyD,KAAK6/D,WAAWjD,iBAAiB,CAACp6D,IAAI,GAAGxC,KAAK2/D,oCAAoC3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAK83D,EAAEyO,cAAc,iBAAiBzO,EAAEA,EAAErzD,OAAO,GAAI,CAAC,MAAMszD,GAAG4J,GAAE,8BAA8B5J,EAAG,CAAC,CAAC,eAAAwQ,CAAgBxQ,EAAEC,GAAG,GAAG,oBAAoBoK,WAAW,mBAAmBA,UAAUgB,WAAW,OAAQ,EAAM,IAAIz9D,KAAK2/D,UAAUtN,EAAEyM,YAAY1M,GAAG,IAAIA,EAAEtzD,OAAO,OAAQ,EAAM,IAAI,MAAMqzD,EAAE,IAAI9I,KAAK,CAACuV,GAAG,CAACE,UAAUzM,EAAEyM,UAAUO,UAAUhN,EAAEgN,UAAUkB,oBAAoBlO,EAAEkO,oBAAoBoC,MAAMvQ,EAAE6M,OAAOj/D,KAAKi/D,UAAU,CAACt9D,KAAK28D,KAAI,OAAO7B,UAAUgB,WAAW,GAAGz9D,KAAK2/D,oCAAoCxN,EAAE,CAAC,MAAM,OAAQ,CAAK,CAAC,CAAC,eAAM0Q,CAAUzQ,GAAG,IAAI,GAAG8J,GAAE,iCAAiC,CAAC4G,cAAc1Q,EAAE0Q,cAAcC,UAAU3Q,EAAE2Q,UAAUjE,UAAU1M,EAAE0M,aAAa9+D,KAAK2/D,UAAUvN,EAAE0M,UAAU,OAAO,MAAMzM,EAAEuM,GAAGxM,SAASpyD,KAAK6/D,WAAWjD,iBAAiB,CAACp6D,IAAI,GAAGxC,KAAK2/D,+BAA+B3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAKg4D,EAAEuO,cAAc,iBAAiBvO,EAAEA,EAAEvzD,OAAO,GAAI,CAAC,MAAMszD,GAAG4J,GAAE,wCAAwC5J,EAAG,CAAC,CAAC,gBAAM4Q,CAAW5Q,EAAEC,GAAG,IAAI,IAAIryD,KAAK2/D,UAAUvN,IAAIC,EAAE,OAAO,MAAMF,QAAQQ,MAAM,GAAG3yD,KAAK2/D,gCAAgC,CAAC3lE,OAAO,OAAO05D,QAAQ,CAAC,eAAe,mBAAmB2M,cAAc,UAAUrgE,KAAKi/D,UAAU5kE,KAAKukE,GAAG,CAACE,UAAU1M,EAAEiN,UAAUhN,EAAE4Q,kBAAkB,oBAAoB9Q,EAAEW,IAAIkJ,GAAE,gCAAgC7J,EAAE8K,OAAO9K,EAAEgP,WAAY,CAAC,MAAM/O,GAAG4J,GAAE,gCAAgC5J,EAAG,CAAC,CAAC,kBAAMgO,CAAahO,EAAED,EAAEtB,GAAG,MAAMkB,EAAElmB,KAAKD,MAAMonB,EAAE/B,KAAKgC,EAAEjzD,KAAKkjE,0BAA0B9Q,GAAG,GAAGpyD,KAAKs/D,YAAY,SAASnN,EAAEn4D,QAAQ,oBAAoByiE,WAAW,mBAAmBA,UAAUgB,WAAW,OAAOz9D,KAAKmjE,+BAA+B/Q,EAAED,EAAEc,GAAG,IAAI,MAAMZ,EAAE,oBAAoBqO,gBAAgB,IAAIA,gBAAgB,KAAK,IAAIxN,EAAE,KAAKb,IAAIa,EAAErgD,WAAW,KAAKw/C,EAAEsO,SAAU3gE,KAAKw/D,iBAAiB,MAAMpM,EAAE,SAASjB,EAAEn4D,aAAQ,IAAS62D,GAAGA,EAAEwN,GAAElqD,QAAQw+C,MAAMP,EAAE,IAAID,EAAE0O,OAAOxO,GAAGwO,OAAOrC,UAAUpL,IAAIF,GAAGpgD,aAAaogD,GAAG,MAAMG,EAAExnB,KAAKD,MAAMmmB,EAAE,OAAO/xD,KAAKu/D,yBAAyB,EAAEprD,EAAE2+C,IAAIG,SAASjzD,KAAKwiE,iBAAiB,CAACY,UAAUpQ,EAAExwD,IAAI4vD,EAAEp4D,OAAOm4D,EAAEn4D,QAAQ,MAAMijE,OAAO9oD,EAAE8oD,OAAOkE,WAAWhtD,EAAEgtD,WAAWkC,SAAShQ,EAAEiQ,YAAYz3B,KAAKD,MAAMkzB,UAAU9+D,KAAK8+D,UAAUO,UAAUr/D,KAAKq/D,UAAUoD,UAAUziE,KAAKujE,kBAAkBpvD,EAAE8oD,QAAQuG,aAAarvD,EAAEgtD,WAAWsC,YAAY1R,EAAE2R,SAAS,GAAGvR,EAAEn4D,QAAQ,SAASo4D,IAAIuR,WAAW,QAAQn5D,WAAW,CAAC,mBAAmB2J,EAAE8oD,OAAO,mBAAmB9oD,EAAEgtD,cAAc1oC,MAAM,QAAQtkB,CAAC,CAAC,MAAMk+C,GAAG,MAAMxB,EAAEhlB,KAAKD,MAAMmmB,EAAE,GAAG,eAAeM,EAAE11D,KAAK,CAAC,MAAMy1D,EAAE,IAAIx7C,MAAM,mBAAmBw7C,EAAEz1D,KAAK,eAAe01D,EAAED,CAAE,CAAC,GAAGpyD,KAAK4jE,eAAevR,IAAI,SAASF,EAAEn4D,QAAQ,oBAAoByiE,WAAW,mBAAmBA,UAAUgB,WAAW,OAAOz9D,KAAKu/D,0BAA0B,EAAEv/D,KAAKu/D,0BAA0B,IAAIv/D,KAAKs/D,YAAW,EAAKtD,GAAE,+FAA+Fh8D,KAAKmjE,+BAA+B/Q,EAAED,EAAEc,GAAG,MAAMA,SAASjzD,KAAKwiE,iBAAiB,CAACY,UAAUpQ,EAAExwD,IAAI4vD,EAAEp4D,OAAOm4D,EAAEn4D,QAAQ,MAAMijE,OAAO,KAAKkE,WAAW,KAAKkC,SAASxS,EAAEyS,YAAYz3B,KAAKD,MAAMkzB,UAAU9+D,KAAK8+D,UAAUO,UAAUr/D,KAAKq/D,UAAUoD,UAAUziE,KAAK6jE,qBAAqBxR,GAAGmR,aAAanR,EAAEx7C,QAAQitD,UAAUzR,EAAE11D,KAAK8mE,YAAY1R,EAAE2R,SAAS,GAAGvR,EAAEn4D,QAAQ,SAASo4D,IAAIuR,WAAW,QAAQn5D,WAAW,CAAC,aAAa6nD,EAAE11D,KAAK,gBAAgB01D,EAAEx7C,WAAW4hB,MAAM,QAAQ45B,CAAC,CAAC,CAAC,oCAAM8Q,CAA+B/Q,EAAEC,EAAEF,GAAG,IAAI,IAAIA,EAAE,KAAKtB,EAAE,GAAG,GAAGwB,EAAEh4D,KAAK,GAAG,iBAAiBg4D,EAAEh4D,KAAK,IAAI83D,EAAEnzD,KAAKu1B,MAAM89B,EAAEh4D,MAAMw2D,EAAEwB,EAAEh4D,IAAK,CAAC,MAAMw2D,EAAEwB,EAAEh4D,IAAK,KAAM,CAAC,GAAGg4D,EAAEh4D,gBAAgBgvD,KAAkK,OAA5J2S,GAAE,8EAA8E5J,EAAE,GAAGA,IAAIA,EAAEv4D,SAAS,KAAK,IAAI,aAAagvB,mBAAmB7oB,KAAKi/D,UAAiBxC,UAAUgB,WAAWrL,EAAEC,EAAEh4D,MAAM,IAAI0pE,SAAS,uCAAuC,CAAC9G,OAAO,IAAIkE,WAAW,KAAKzN,QAAQ,IAAIsQ,QAAQ,CAAC,eAAe,uBAAuB,IAAID,SAAS,eAAe,CAAC9G,OAAO,IAAIkE,WAAW,oBAAoBzN,QAAQ,IAAIsQ,QAAQ,CAAC,eAAe,uBAAuBnT,EAAE+N,GAAGvM,EAAEh4D,MAAM83D,EAAEE,EAAEh4D,IAAK,CAAC,GAAG+3D,EAAEv4D,SAAS,mBAAmB,GAAGs4D,GAAG,iBAAiBA,EAAEA,EAAE8M,OAAOj/D,KAAKi/D,OAAOpO,EAAE+N,GAAGzM,QAAQ,GAAGtB,EAAE,IAAI,MAAMuB,EAAEpzD,KAAKu1B,MAAMs8B,GAAGuB,EAAE6M,OAAOj/D,KAAKi/D,OAAOpO,EAAE+N,GAAGxM,EAAG,CAAC,MAAMA,EAAE,GAAGA,IAAIA,EAAEv4D,SAAS,KAAK,IAAI,aAAagvB,mBAAmB7oB,KAAKi/D,SAAU,MAAM7M,EAAE,GAAGA,IAAIA,EAAEv4D,SAAS,KAAK,IAAI,aAAagvB,mBAAmB7oB,KAAKi/D,eAAe7M,EAAE,GAAGA,IAAIA,EAAEv4D,SAAS,KAAK,IAAI,aAAagvB,mBAAmB7oB,KAAKi/D,UAAU,MAAMlN,EAAElB,EAAE,IAAIxH,KAAK,CAACwH,GAAG,CAAClvD,KAAK28D,KAAI,KAAKtL,EAAEyJ,UAAUgB,WAAWrL,EAAEL,GAAGkB,EAAE,uCAAuC,OAAOD,GAAGkJ,GAAE,iEAAiE,IAAI6H,SAAS9Q,EAAE,CAACgK,OAAO,IAAIkE,WAAW,KAAKzN,QAAQ,IAAIsQ,QAAQ,CAAC,eAAe,yBAAyBhI,GAAE,+DAA+D,IAAI+H,SAAS9Q,EAAE,CAACgK,OAAO,IAAIkE,WAAW,8BAA8BzN,QAAQ,IAAIsQ,QAAQ,CAAC,eAAe,uBAAuB,CAAC,MAAM5R,GAAG,OAAOrtD,GAAE,oCAAoCqtD,GAAG,IAAI2R,SAAS,KAAK,CAAC9G,OAAO,IAAIkE,WAAW,gCAAgCzN,QAAQ,IAAIsQ,SAAS,CAAC,CAAC,cAAAJ,CAAexR,GAAG,MAAMC,GAAGD,GAAGv7C,SAAS,IAAI9U,cAAc,MAAO,eAAeqwD,GAAGz1D,MAAM,IAAIoF,eAAeswD,EAAEx4D,SAAS,oBAAoBw4D,EAAEx4D,SAAS,4BAA4Bw4D,EAAEx4D,SAAS,QAAQw4D,EAAEx4D,SAAS,aAAaw4D,EAAEx4D,SAAS,uBAAuBw4D,EAAEx4D,SAAS,WAAW,CAAC,yBAAAqpE,CAA0B9Q,GAAG,IAAIA,IAAIpyD,KAAK2/D,QAAQ,OAAQ,EAAM,IAAI,MAAMtN,EAAE,IAAI5vD,IAAI2vD,GAAGD,EAAE,IAAI1vD,IAAIzC,KAAK2/D,SAAS,QAAStN,EAAElvD,SAASgvD,EAAEhvD,SAASkvD,EAAEvvD,SAASiE,WAAW,uBAAuBqrD,EAAEv4D,SAASmG,KAAK2/D,QAAQ,CAAC,MAAMtN,GAAG,OAAOD,EAAEv4D,SAASmG,KAAK2/D,QAAQ,CAAC,CAAC,iBAAA4D,CAAkBnR,GAAG,OAAOA,GAAG,KAAKA,EAAE,IAAI,eAAeA,GAAG,IAAI,eAAe,eAAe,CAAC,oBAAAyR,CAAqBzR,GAAG,MAAMC,EAAED,EAAEv7C,SAAS,GAAGs7C,EAAEC,EAAEz1D,MAAM,GAAG,OAAOqD,KAAK4jE,eAAexR,GAAG,gBAAgBC,EAAEx4D,SAAS,0BAA0Bw4D,EAAEx4D,SAAS,4BAA4Bw4D,EAAEx4D,SAAS,kBAAkBw4D,EAAEx4D,SAAS,+BAA+Bw4D,EAAEx4D,SAAS,iCAAiC,cAAcs4D,GAAGE,EAAEx4D,SAAS,qBAAqBw4D,EAAEx4D,SAAS,YAAYw4D,EAAEx4D,SAAS,gBAAgB,oBAAoBw4D,EAAEx4D,SAAS,SAASw4D,EAAEx4D,SAAS,kBAAkB,aAAaw4D,EAAEx4D,SAAS,YAAY,iBAAiBs4D,EAAE,gBAAgBE,EAAEx4D,SAAS,oBAAoBw4D,EAAEx4D,SAAS,gBAAgB,gBAAgB,eAAe,EAAE,MAAMoqE,GAAG,oBAAoBvhE,OAAOwhE,GAAG,IAAI9zB,IAAI,CAAC,eAAe,WAAW,gBAAgB,QAAQ,OAAO,OAAO,gBAAgB,UAAU,MAAM,MAAM,SAAS,WAAW,SAAS,MAAM,MAAM,YAAY,MAAM,QAAQ,WAAW+zB,GAAG,CAAC,QAAQ,SAAS,WAAW,SAAS,YAAY,SAAS,UAAU,QAAQ,SAASC,GAAGhS,GAAG,MAAMC,EAAED,EAAErwD,cAAc,QAASmiE,GAAGnjE,IAAIsxD,IAAI8R,GAAGj4D,KAAKkmD,GAAGC,EAAEx4D,SAASu4D,GAAG,CAAC,SAASiS,GAAGjS,GAAG,IAAIC,GAAE,EAAM,IAAI,MAAMF,KAAKj0D,MAAMC,KAAKi0D,EAAE3xD,QAAQ2jE,GAAGjS,KAAKC,EAAEhxD,IAAI+wD,EAAE,YAAYE,GAAE,GAAM,OAAOA,CAAC,CAAC,SAASiS,GAAGlS,GAAG,IAAIA,EAAE,OAAOA,GAAG,GAAG,IAAI,MAAMC,EAAE4R,GAAGvhE,OAAOC,SAAS7E,KAAK,oBAAoBq0D,EAAE,IAAI1vD,IAAI2vD,EAAEC,GAAG,IAAIxB,EAAEwT,GAAGlS,EAAEqB,cAAc,MAAMzB,EAAEI,EAAEoS,KAAKx9D,WAAW,KAAKorD,EAAEoS,KAAK1gE,MAAM,GAAGsuD,EAAEoS,KAAK,GAAGxS,GAAG,OAAOpuD,KAAKouD,GAAG,CAAC,MAAMK,EAAE,IAAIoS,gBAAgBzS,GAAGsS,GAAGjS,KAAKD,EAAEoS,KAAK,IAAInS,EAAEx4D,aAAai3D,GAAE,EAAI,CAAC,OAAOA,EAAE,6BAA6BltD,KAAKyuD,GAAGD,EAAEv4D,WAAW,GAAGu4D,EAAErvD,WAAWqvD,EAAEvD,SAASuD,EAAEoS,OAAOnS,CAAC,CAAC,MAAM,OAAOA,CAAC,CAAC,CAAC,MAAMqS,GAAG,WAAAjoE,CAAY41D,GAAG,GAAGpyD,KAAK0kE,aAAa,aAAa1kE,KAAK2kE,iBAAiB,IAAIv0B,IAAIpwC,KAAK4kE,eAAe,IAAIx0B,IAAIpwC,KAAK6kE,cAAc,gBAAgB7kE,KAAK8kE,iBAAiB,CAAC,0BAA0B,6BAA6B1S,GAAGsS,eAAe1kE,KAAK0kE,aAAatS,EAAEsS,cAActS,GAAG0S,mBAAmB9kE,KAAK8kE,iBAAiB,IAAI9kE,KAAK8kE,oBAAoB1S,EAAE0S,mBAAmB1S,GAAG2S,kBAAkB,GAAG/kE,KAAK6kE,cAAczS,EAAE2S,kBAAkBnS,KAAK,kBAAkB5yD,KAAK6kE,cAAczS,EAAE2S,kBAAkBC,gBAAgBhlE,KAAKilE,oBAAoB7S,EAAE2S,kBAAkBC,oBAAqB,CAAC,MAAM3S,EAAE,CAAC,yBAAyB,2BAA2BF,EAAEC,EAAE2S,kBAAkBG,cAAc9S,EAAE2S,kBAAkBG,aAAapmE,OAAO,EAAEszD,EAAE2S,kBAAkBG,aAAa7S,EAAEryD,KAAKmlE,kBAAkBhT,EAAG,CAACC,GAAGgT,oBAAoBplE,KAAKilE,oBAAoB7S,EAAEgT,oBAAoBhT,GAAGiT,YAAYrlE,KAAKilE,oBAAoB7S,EAAEiT,WAAY,CAAC,iBAAAF,CAAkB/S,GAAGpyD,KAAK4kE,eAAexa,QAAQ,CAAC,yBAAyB,2BAA2B,oBAAoB,yBAAyBgI,GAAGvxD,QAAQuxD,IAAIpyD,KAAK4kE,eAAe1jE,IAAIkxD,KAAMpyD,KAAK4kE,eAAepkD,KAAK,EAAE07C,GAAE,yBAAyBl8D,KAAK4kE,eAAepkD,iBAAiBtiB,MAAMC,KAAK6B,KAAK4kE,iBAAiB1I,GAAE,kCAAkCl8D,KAAKslE,uBAAwB,CAAC,mBAAAL,CAAoB7S,GAAGpyD,KAAK2kE,iBAAiBva,QAAQ,MAAMiI,EAAED,EAAE3kC,OAAO2kC,IAAIpyD,KAAKulE,mBAAmBnT,KAAK4J,GAAE,mCAAmC5J,6CAA4C,IAAQC,EAAExxD,QAAQuxD,GAAGpyD,KAAK2kE,iBAAiBzjE,IAAIkxD,IAAIC,EAAEvzD,OAAO,EAAEo9D,GAAE,2BAA2B7J,EAAEvzD,mBAAmBuzD,GAAG6J,GAAE,4CAA4Cl8D,KAAKwlE,yBAA0B,CAAC,YAAAN,CAAa9S,GAAGA,EAAEvxD,QAAQuxD,IAAIpyD,KAAK2kE,iBAAiB/jE,OAAOwxD,KAAMpyD,KAAK2kE,iBAAiBnkD,KAAK,EAAE07C,GAAE,wBAAwB9J,EAAEtzD,oBAAoBkB,KAAK2kE,iBAAiBnkD,kBAAkBtiB,MAAMC,KAAK6B,KAAK2kE,mBAAmBzI,GAAE,oCAAoCl8D,KAAKwlE,yBAA0B,CAAC,qBAAAC,GAAwBzlE,KAAK2kE,iBAAiBva,QAAQ8R,GAAE,wDAAwDl8D,KAAK0lE,0BAA2B,CAAC,mBAAAC,GAAsB,OAAO3lE,KAAK2kE,iBAAiBnkD,KAAK,CAAC,CAAC,gBAAAolD,GAAmB,OAAO5lE,KAAK6kE,aAAa,CAAC,mBAAAgB,GAAsB,OAAO3nE,MAAMC,KAAK6B,KAAK2kE,iBAAiB,CAAC,mBAAAmB,GAAsB,MAAO,kBAAkB9lE,KAAK6kE,cAAc,IAAI7kE,KAAK2kE,iBAAiBnkD,KAAK,KAAKtiB,MAAMC,KAAK6B,KAAK2kE,kBAAkBrmE,KAAK,KAAK,IAAI0B,KAAK4kE,eAAepkD,KAAK,KAAKtiB,MAAMC,KAAK6B,KAAK4kE,gBAAgBtmE,KAAK,IAAI,CAAC,qBAAAgnE,GAAwB,IAAItlE,KAAK4kE,eAAepkD,OAAO,oBAAoBrmB,UAAU,YAAYA,SAASuY,WAAW1S,KAAK4kE,eAAe/jE,QAAQuxD,IAAI,IAAI,MAAMC,EAAEl4D,SAASmC,iBAAiB81D,GAAGC,EAAExxD,QAAQuxD,IAAIA,GAAGA,EAAElqD,WAAWkqD,EAAElqD,UAAUhH,IAAI,aAAcg7D,GAAE,0BAA0B7J,EAAEvzD,mCAAmCszD,IAAK,CAAC,MAAMC,GAAG2J,GAAE,qBAAqB5J,IAAK,IAAI8J,GAAE,wDAAyD,CAAC,uBAAAsJ,GAA0B,IAAIxlE,KAAK2kE,iBAAiBnkD,OAAO,oBAAoBrmB,UAAU,YAAYA,SAASuY,WAAW1S,KAAK2kE,iBAAiB9jE,QAAQuxD,IAAI,IAAI,MAAMC,EAAEl4D,SAASmC,iBAAiB81D,GAAGC,EAAExxD,QAAQuxD,IAAIA,GAAGA,EAAElqD,WAAWkqD,EAAElqD,UAAU6W,OAAO,aAAcm9C,GAAE,8BAA8B7J,EAAEvzD,mCAAmCszD,IAAK,CAAC,MAAMC,GAAG2J,GAAE,qBAAqB5J,IAAK,IAAI8J,GAAE,0DAA2D,CAAC,wBAAAwJ,GAA2BxJ,GAAE,8BAA+B,CAAC,kBAAAqJ,CAAmBnT,GAAG,MAAO,CAAC,yBAAyB,2BAA2B,oBAAoB,uBAAuBlmD,KAAKmmD,GAAGD,EAAErwD,cAAclI,SAASw4D,EAAEtwD,cAAcvD,QAAQ,UAAU,KAAK,CAAC,gBAAAunE,CAAiB3T,GAAG,GAAGA,aAAarU,kBAAkBqU,aAAalU,oBAAoB,OAAOkU,EAAEv6D,KAAK,CAAC,mBAAAmuE,CAAoB5T,GAAG,OAAOpyD,KAAKimE,sBAAsB7T,EAAE,CAAC,qBAAA6T,CAAsB7T,GAAG,IAAI,GAAG,kBAAkBpyD,KAAK6kE,cAAc,CAAC,GAAG,IAAI7kE,KAAK2kE,iBAAiBnkD,KAAK,OAAO,EAAG,IAAI,MAAM6xC,KAAKryD,KAAK2kE,iBAAiB,IAAI,GAAGvS,EAAE5pD,QAAQ6pD,GAAG,OAAO,CAAE,CAAC,MAAMD,GAAG4J,GAAE,qBAAqB3J,IAAK,CAAC,OAAO,CAAE,CAAC,GAAG,IAAIryD,KAAK4kE,eAAepkD,KAAK,OAAO,EAAG,IAAI,MAAM6xC,KAAKryD,KAAK4kE,eAAe,IAAI,GAAGxS,EAAE5pD,QAAQ6pD,GAAG,OAAO,CAAE,CAAC,MAAMD,GAAG,OAAO4J,GAAE,qBAAqB3J,MAAK,CAAE,CAAC,OAAO,CAAE,CAAC,MAAM,OAAQ,CAAK,CAAC,EAAE,IAAIoS,GAAG,MAAMyB,GAAG,oBAAoBxjE,OAAO,SAASyjE,KAAK,IAAID,GAAG,MAAO,UAAU,MAAM9T,EAAEqK,UAAU2J,UAAUrkE,cAAcswD,EAAE3vD,OAAO2jE,OAAO56D,MAAM0mD,EAAEzvD,OAAO2jE,OAAO16D,OAAO,MAAO,4DAA4DhI,KAAKyuD,GAAG,QAAQzuD,KAAKyuD,IAAIC,GAAG,KAAKF,GAAG,KAAK,SAAS,SAAS,2BAA2BxuD,KAAKyuD,GAAG,UAAU,SAAS,CAAC,SAASkU,GAAGlU,GAAG,IAAI,OAAO,IAAI3vD,IAAI2vD,GAAGe,QAAQ,CAAC,MAAM,MAAO,EAAE,CAAC,CAAC,SAASoT,KAAK,IAAIL,GAAG,MAAO,CAACM,YAAY,UAAUC,QAAQ,UAAUC,gBAAgB,UAAUC,GAAG,UAAUC,WAAW,UAAUC,kBAAkB,UAAUC,cAAc,UAAUC,YAAY,EAAEC,SAAS,UAAUC,SAAS,UAAUC,UAAU,IAAI,MAAMT,QAAQrU,EAAEsU,gBAAgBrU,GAAG,WAAW,IAAI6T,GAAG,MAAO,CAACO,QAAQ,UAAUC,gBAAgB,WAAW,MAAMtU,EAAEqK,UAAU2J,UAAU,GAAG,UAAUziE,KAAKyuD,KAAK,QAAQzuD,KAAKyuD,GAAG,CAAC,MAAMC,EAAED,EAAEvvD,MAAM,kBAAkB,MAAO,CAAC4jE,QAAQ,SAASC,gBAAgBrU,EAAEA,EAAE,GAAG,UAAU,CAAC,GAAG,WAAW1uD,KAAKyuD,GAAG,CAAC,MAAMC,EAAED,EAAEvvD,MAAM,mBAAmB,MAAO,CAAC4jE,QAAQ,UAAUC,gBAAgBrU,EAAEA,EAAE,GAAG,UAAU,CAAC,GAAG,UAAU1uD,KAAKyuD,KAAK,UAAUzuD,KAAKyuD,GAAG,CAAC,MAAMC,EAAED,EAAEvvD,MAAM,mBAAmB,MAAO,CAAC4jE,QAAQ,SAASC,gBAAgBrU,EAAEA,EAAE,GAAG,UAAU,CAAC,GAAG,QAAQ1uD,KAAKyuD,GAAG,CAAC,MAAMC,EAAED,EAAEvvD,MAAM,gBAAgB,MAAO,CAAC4jE,QAAQ,OAAOC,gBAAgBrU,EAAEA,EAAE,GAAG,UAAU,CAAC,GAAG,gBAAgB1uD,KAAKyuD,GAAG,CAAC,MAAMC,EAAED,EAAEvvD,MAAM,gBAAgBuvD,EAAEvvD,MAAM,aAAa,MAAO,CAAC4jE,QAAQ,KAAKC,gBAAgBrU,EAAEA,EAAE,GAAG,UAAU,CAAC,MAAO,CAACoU,QAAQ,UAAUC,gBAAgB,UAAU,CAA/wB,IAAoxBC,GAAGxU,EAAEyU,WAAW/V,GAAG,WAAW,IAAIqV,GAAG,MAAO,CAACS,GAAG,UAAUC,WAAW,WAAW,MAAMxU,EAAEqK,UAAU2J,UAAU,GAAG,WAAWziE,KAAKyuD,GAAG,CAAC,MAAMC,EAAED,EAAEvvD,MAAM,0BAA0B,IAAIsvD,EAAE,UAAU,GAAGE,EAAE,CAAC,MAAMD,EAAEuE,WAAWtE,EAAE,IAAIF,EAAE,KAAKC,EAAE,KAAK,MAAMA,EAAE,MAAM,MAAMA,EAAE,IAAI,MAAMA,EAAE,IAAIC,EAAE,EAAG,CAAC,MAAO,CAACsU,GAAG,UAAUC,WAAWzU,EAAE,CAAC,GAAG,oBAAoBxuD,KAAKyuD,GAAG,CAAC,MAAMC,EAAED,EAAEvvD,MAAM,oBAAoB,MAAO,CAAC8jE,GAAG,MAAMC,WAAWvU,EAAEA,EAAE,GAAG7zD,QAAQ,IAAI,KAAK,UAAU,CAAC,GAAG,sBAAsBmF,KAAKyuD,GAAG,CAAC,MAAMC,EAAED,EAAEvvD,MAAM,0BAA0B,MAAO,CAAC8jE,GAAG,QAAQC,WAAWvU,EAAEA,EAAE,GAAG7zD,QAAQ,IAAI,KAAK,UAAU,CAAC,GAAG,WAAWmF,KAAKyuD,GAAG,CAAC,MAAMC,EAAED,EAAEvvD,MAAM,uBAAuB,MAAO,CAAC8jE,GAAG,UAAUC,WAAWvU,EAAEA,EAAE,GAAG,UAAU,CAAC,MAAO,SAAS1uD,KAAKyuD,GAAG,CAACuU,GAAG,QAAQC,WAAW,WAAW,CAACD,GAAG,UAAUC,WAAW,UAAU,CAAnwB,GAAuwB,MAAO,CAACJ,YAAYL,KAAKM,QAAQrU,EAAEsU,gBAAgBrU,EAAEsU,GAAGxU,EAAEyU,WAAW/V,EAAEgW,kBAAkB,GAAGnkE,OAAO2jE,OAAO56D,SAAS/I,OAAO2jE,OAAO16D,SAASm7D,cAAc,GAAGpkE,OAAOwqC,cAAcxqC,OAAOqqC,cAAcg6B,YAAYrkE,OAAO2jE,OAAOc,WAAWH,SAASI,KAAKC,iBAAiBC,kBAAkBC,SAASN,SAASxK,UAAUwK,SAASC,UAAU,IAAIzK,UAAUyK,WAAW,CAACzK,UAAUwK,WAAWO,eAAe/K,UAAU2J,UAAU,CAAC,SAASqB,KAAK,IAAIvB,GAAG,MAAO,CAACwB,YAAY,GAAG5kE,SAAS,GAAG8rD,OAAO,GAAG2V,KAAK,GAAGoD,MAAM,GAAG5G,SAAS,GAAG6G,gBAAgB,GAAGC,iBAAiB,GAAGC,wBAAwB,IAAI,MAAM1V,EAAE1vD,OAAOC,SAAS7E,KAAKu0D,EAAEl4D,SAAS4mE,SAAS5O,EAAE,SAASC,GAAG,MAAMC,EAAE,IAAI5vD,IAAI2vD,GAAGD,EAAE,CAAA,EAAG,MAAO,CAAC,aAAa,aAAa,eAAe,WAAW,eAAetxD,QAAQuxD,IAAI,MAAMvB,EAAEwB,EAAEmB,aAAa75D,IAAIy4D,GAAGvB,IAAIsB,EAAEC,GAAGvB,KAAMsB,CAAC,CAAzK,CAA2KC,GAAG,MAAO,CAACsV,YAAYtV,EAAEtvD,SAASJ,OAAOC,SAASG,SAAS8rD,OAAOlsD,OAAOC,SAASisD,OAAO2V,KAAK7hE,OAAOC,SAAS4hE,KAAKoD,MAAMxtE,SAASwtE,MAAM5G,SAAS1O,EAAEuV,gBAAgBtB,GAAGjU,GAAGwV,iBAAiBxV,EAAEyV,wBAAwBxB,GAAGjU,GAAG0V,aAAarlE,OAAOC,SAASwwD,YAAYhB,EAAE,CAAC,SAAS6V,KAAK,MAAO,IAAIzB,QAAQkB,KAAK,CAAoW,SAASQ,KAAK,IAAI/B,GAAG,MAAO,CAAA,EAAG,MAAM9T,EAAEqV,KAAK,MAAO,CAACC,YAAYtV,EAAEsV,YAAY5kE,SAASsvD,EAAEtvD,SAAS8rD,OAAOwD,EAAExD,OAAO2V,KAAKnS,EAAEmS,KAAKoD,MAAMvV,EAAEuV,MAAM5G,SAAS3O,EAAE2O,SAAS6G,gBAAgBxV,EAAEwV,gBAAgBM,WAAW9V,EAAE8V,WAAWC,WAAW/V,EAAE+V,WAAWC,aAAahW,EAAEgW,aAAaC,SAASjW,EAAEiW,SAASC,YAAYlW,EAAEkW,YAAY,CAAC,MAAMC,GAAG,WAAA/rE,CAAY41D,EAAE,CAAA,GAAIpyD,KAAKwoE,kBAAkB,CAAA,EAAGxoE,KAAKyoE,eAAe,CAAA,EAAGzoE,KAAK0oE,kBAAkB,CAAA,EAAG1oE,KAAK2oE,eAAc,EAAM3oE,KAAK66D,OAAO,CAAC+N,2BAA0B,EAAKC,yBAAwB,EAAKC,sBAAqB,EAAKC,iBAAiB,MAAM3W,GAAGpyD,KAAKugE,oBAAoByH,KAAKhoE,KAAKgpE,YAAa,CAAC,UAAAA,GAAahpE,KAAK2oE,gBAAgB3oE,KAAK0oE,kBAAp/B,WAAc,IAAIxC,GAAG,MAAO,CAAA,EAAG,MAAM9T,EAAEqV,KAAK,MAAO,CAACI,iBAAiBzV,EAAEyV,iBAAiBC,wBAAwB1V,EAAE0V,wBAAwBmB,YAAY7W,EAAEsV,YAAYwB,iBAAiB9W,EAAEtvD,SAASqmE,mBAAmB/W,EAAE8V,WAAWkB,mBAAmBhX,EAAE+V,WAAWkB,qBAAqBjX,EAAEgW,aAAakB,iBAAiBlX,EAAEiW,SAASkB,oBAAoBnX,EAAEkW,YAAY,CAAoqBkB,GAAKxpE,KAAKypE,wBAAwBzpE,KAAK2oE,eAAc,EAAM,CAAC,kBAAAe,CAAmBtX,EAAE,CAAA,GAAI,MAAMC,EAAE,CAAA,EAAG,OAAOryD,KAAK66D,OAAO+N,4BAA4BpxE,OAAOya,OAAOogD,EAAEryD,KAAK2pE,0BAA0B3pE,KAAK66D,OAAOgO,yBAAyBrxE,OAAOya,OAAOogD,EAAEryD,KAAKwoE,mBAAmBxoE,KAAK66D,OAAOiO,sBAAsBtxE,OAAOya,OAAOogD,EAAEryD,KAAKyoE,gBAAgBzoE,KAAKwoE,kBAAkBoB,+BAA+BpyE,OAAOya,OAAOogD,EAAEryD,KAAK0oE,mBAAmB1oE,KAAK6pE,mBAAmB,gCAA+B,KAAQryE,OAAOya,OAAOogD,EAAED,GAAGpyD,KAAK8pE,cAAczX,GAAGA,CAAC,CAAC,sBAAAsX,GAAyB,MAAO,IAAI3pE,KAAKugE,uBAAuB0H,KAAK,CAAC,+BAAA8B,CAAgC3X,EAAE,CAAA,GAAI,MAAO,IAAIpyD,KAAKugE,uBAAuB0H,QAAQ7V,EAAE,CAAC,kBAAAyX,CAAmBzX,EAAEC,GAAGryD,KAAKwoE,kBAAkBpW,GAAGC,EAAEryD,KAAKgqE,uBAAwB,CAAC,oBAAAC,CAAqB7X,GAAG56D,OAAOya,OAAOjS,KAAKwoE,kBAAkBpW,GAAGpyD,KAAKgqE,uBAAwB,CAAC,kBAAAE,CAAmB9X,GAAG,OAAOpyD,KAAKwoE,kBAAkBpW,EAAE,CAAC,qBAAA+X,CAAsB/X,UAAUpyD,KAAKwoE,kBAAkBpW,GAAGpyD,KAAKgqE,uBAAwB,CAAC,eAAAI,CAAgBhY,EAAEC,GAAGryD,KAAKyoE,eAAerW,GAAGC,CAAE,CAAC,iBAAAgY,CAAkBjY,GAAG56D,OAAOya,OAAOjS,KAAKyoE,eAAerW,EAAG,CAAC,eAAAkY,CAAgBlY,GAAG,OAAOpyD,KAAKyoE,eAAerW,EAAE,CAAC,iBAAAmY,GAAoB,MAAO,IAAIvqE,KAAKyoE,eAAe,CAAC,oBAAA+B,GAAuB,MAAO,IAAIxqE,KAAKwoE,kBAAkB,CAAC,kBAAAiC,CAAmBrY,UAAUpyD,KAAKyoE,eAAerW,EAAG,CAAC,OAAAsY,CAAQtY,EAAEC,EAAEF,EAAE,QAAQ,YAAYA,EAAEC,KAAKpyD,KAAKwoE,mBAAmBxoE,KAAK6pE,mBAAmBzX,EAAEC,GAAGD,KAAKpyD,KAAKyoE,gBAAgBzoE,KAAKoqE,gBAAgBhY,EAAEC,EAAG,CAAC,sBAAAsY,GAAyB3qE,KAAKwoE,kBAAkB,CAAA,EAAGxoE,KAAKgqE,uBAAwB,CAAC,mBAAAY,GAAsB5qE,KAAKyoE,eAAe,CAAA,CAAG,CAAC,KAAAnnE,GAAQtB,KAAK2qE,yBAAyB3qE,KAAK4qE,sBAAsB5qE,KAAK0oE,kBAAkB,CAAA,EAAG1oE,KAAK2oE,eAAc,EAAM3oE,KAAKgpE,YAAa,CAAC,qBAAAS,GAAwB,GAAG,oBAAoBoB,eAAe,IAAI,MAAMzY,EAAEyY,eAAenP,QAAQ,yBAAyBtJ,IAAIpyD,KAAKwoE,kBAAkBxpE,KAAKu1B,MAAM69B,GAAI,CAAC,MAAMA,GAAG7kD,QAAQC,KAAK,qCAAqC4kD,EAAG,CAAC,CAAC,qBAAA4X,GAAwB,GAAG,oBAAoBa,eAAe,IAAIA,eAAelP,QAAQ,wBAAwB38D,KAAKC,UAAUe,KAAKwoE,mBAAoB,CAAC,MAAMpW,GAAG7kD,QAAQC,KAAK,qCAAqC4kD,EAAG,CAAC,CAAC,aAAA0X,CAAc1X,GAAGpyD,KAAK66D,OAAOkO,kBAAkB,IAAI/oE,KAAK66D,OAAOkO,iBAAiBjqE,QAAQkB,KAAK66D,OAAOkO,iBAAiBloE,QAAQwxD,WAAWD,EAAEC,IAAM,CAAC,yBAAAyY,GAA4B9qE,KAAKugE,oBAAoByH,IAAK,CAAC,gBAAA+C,GAAmB,MAAO,CAACC,UAAUhrE,KAAK2pE,yBAAyBsB,QAAQ,IAAIjrE,KAAKwoE,mBAAmB0C,KAAK,IAAIlrE,KAAKyoE,gBAAgB0C,QAAQ,IAAInrE,KAAK0oE,mBAAmB,EAAE,MAAM0C,GAAG,WAAA5uE,CAAY41D,EAAE,IAAIpyD,KAAKqrE,MAAM,GAAGrrE,KAAK0F,IAAI0sD,EAAE,EAAEA,EAAE,EAAG,CAAC,GAAAlxD,CAAIkxD,GAAGpyD,KAAKqrE,MAAMlsE,KAAKizD,GAAGpyD,KAAKqrE,MAAMvsE,OAAOkB,KAAK0F,KAAK1F,KAAKqrE,MAAMvgD,OAAO,EAAE9qB,KAAKqrE,MAAMvsE,OAAOkB,KAAK0F,IAAK,CAAC,QAAAsqD,GAAW,OAAOhwD,KAAKqrE,MAAMnzD,IAAIk6C,IAAC,IAAOA,IAAI,CAAC,KAAAhI,GAAQpqD,KAAKqrE,MAAM,EAAG,CAAC,QAAI7qD,GAAO,OAAOxgB,KAAKqrE,MAAMvsE,MAAM,EAAE,MAAMwsE,GAAG,YAAAC,CAAanZ,GAAG,YAAQ,IAASpyD,KAAKwrE,aAAapZ,IAAIpyD,KAAKwrE,eAAexrE,KAAKwrE,YAAYpZ,GAAE,EAAK,EAAE,MAAMqZ,GAAG,CAAC,oBAAoB,gDAAgD,kEAAkE,wCAAwC,6BAA6B,yDAAyD,oDAAoD,4CAA4C,gDAAgD,6DAA6D,uDAAuD,uBAAuB,yBAAyB,mBAAmB,mBAAmB,SAASC,GAAGtZ,EAAEC,EAAE,IAAI,OAAOA,EAAEnmD,KAAKmmD,GAAG,SAASD,EAAEC,GAAG,MAAO,iBAAiBD,IAAIC,aAAavsD,OAAOusD,EAAE1uD,KAAKyuD,GAAGA,EAAEv4D,SAASw4D,GAAG,CAAtF,CAAwFD,EAAEC,GAAG,CAAC,SAASsZ,GAAGvZ,EAAEC,EAAE,CAAA,GAAI,MAAMF,EAAE,IAAIE,EAAEjhC,cAAc,MAAMihC,EAAEuZ,qBAAqB,GAAGH,IAAI,IAAI,MAAMpZ,KAAK,SAASD,EAAEC,GAAG,MAAMF,EAAE,GAAG,OAAOE,GAAGF,EAAEhzD,KAAKkzD,GAAGD,GAAGC,GAAGF,EAAEhzD,KAAK,GAAGizD,MAAMC,KAAKF,CAAC,CAAzE,CAA2EC,EAAE0Q,cAAc1Q,EAAEv6D,OAAO,GAAG6zE,GAAGrZ,EAAEF,GAAG,MAAO,CAACh7C,OAAO,eAAe00D,QAAQxZ,GAAG,MAAMxB,EAAE,SAASuB,GAAG,IAAI,IAAIC,EAAED,EAAEtzD,OAAO,EAAEuzD,GAAG,EAAEA,GAAG,EAAE,CAAC,MAAMF,EAAEC,EAAEC,IAAIr7C,KAAK,GAAGm7C,GAAG,gBAAgBA,GAAG,kBAAkBA,EAAE,OAAOA,CAAC,CAAC,OAAO,IAAI,CAAhI,CAAkIC,EAAE0Z,aAAa,OAAOzZ,EAAE0Z,UAAUjtE,QAAQ+xD,GAAG6a,GAAG7a,EAAEwB,EAAE0Z,UAAU,CAAC50D,OAAO,WAAW00D,QAAQhb,GAAGwB,EAAE2Z,WAAWltE,QAAQ+xD,IAAI6a,GAAG7a,EAAEwB,EAAE2Z,WAAW,CAAC70D,OAAO,YAAY00D,QAAQhb,GAAG,IAAI,CAAC,MAAMob,GAAG,6CAA6CC,GAAG,iCAAiCC,GAAG,uCAAuC,SAASC,GAAGha,GAAG,IAAIC,EAAE4Z,GAAG3kE,KAAK8qD,GAAG,OAAOC,EAAE,CAACga,SAASha,EAAE,GAAGr7C,KAAKq7C,EAAE,GAAGv7C,KAAKigC,OAAOsb,EAAE,IAAIt7C,OAAOggC,OAAOsb,EAAE,MAAMA,EAAE6Z,GAAG5kE,KAAK8qD,GAAGC,EAAE,CAACga,SAAS,KAAKr1D,KAAKq7C,EAAE,GAAGv7C,KAAKigC,OAAOsb,EAAE,IAAIt7C,OAAOggC,OAAOsb,EAAE,KAAK,KAAK,CAAC,SAASia,GAAGla,GAAG,MAAMC,EAAE8Z,GAAG7kE,KAAK8qD,GAAG,OAAOC,EAAE,CAACga,SAASha,EAAE,GAAGA,EAAE,GAAG,KAAKr7C,KAAKq7C,EAAE,GAAGv7C,KAAKigC,OAAOsb,EAAE,IAAIt7C,OAAOs7C,EAAE,GAAGtb,OAAOsb,EAAE,IAAI,MAAM,IAAI,CAAC,SAASka,GAAGna,GAAG,IAAIA,GAAG,iBAAiBA,EAAE,MAAO,GAAG,MAAMC,EAAE,GAAG,IAAI,MAAMF,KAAKC,EAAEvzD,MAAM,MAAM,CAAC,IAAIszD,EAAE3rD,OAAO,SAAS,MAAM4rD,EAAEga,GAAGja,IAAIma,GAAGna,GAAGC,GAAGC,EAAElzD,KAAKizD,EAAG,CAAC,OAAOC,CAAC,CAAC,SAASma,GAAGpa,GAAG,OAAOA,aAAax7C,OAAO,iBAAiBw7C,GAAG,OAAOA,GAAG,iBAAiBA,EAAEv7C,SAAS,iBAAiBu7C,EAAEz1D,IAAI,CAAC,SAAS8vE,GAAGra,EAAEC,GAAG,MAAO,CAACyQ,cAAc1Q,EAAEz1D,MAAM,QAAQ9E,MAAMu6D,EAAEv7C,SAAS,GAAGi1D,YAAYS,GAAG,iBAAiBna,EAAEruD,MAAMquD,EAAEruD,MAAM,MAAMrH,OAAO21D,EAAE,CAAC,IAAIqa,GAAG,SAASC,GAAGva,EAAEC,GAAG,IAAI,MAAMF,KAAK36D,OAAOiJ,KAAK2xD,GAAG,CAAC,MAAMvB,EAAE0b,GAAGpa,GAAG,IAAI,IAAIJ,EAAElB,EAAE/xD,OAAO,EAAEizD,GAAG,EAAEA,GAAG,EAAE,CAAC,MAAMiB,EAAEnC,EAAEkB,IAAI/6C,KAAK,GAAGg8C,EAAE,CAACX,EAAEW,GAAGZ,EAAED,GAAG,KAAK,CAAC,CAAC,CAAC,CAAsa,SAASya,KAAK,GAAG,oBAAoBzb,QAAQ,mBAAmBA,OAAOL,gBAAgB,CAAC,MAAMsB,EAAE,IAAIxR,WAAW,IAAI,OAAOuQ,OAAOL,gBAAgBsB,GAAGl0D,MAAMC,KAAKi0D,EAAEA,GAAGA,EAAEx4D,SAAS,IAAIizE,SAAS,EAAE,MAAMvuE,KAAK,GAAG,CAAC,IAAI8zD,EAAE,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAE,GAAGA,GAAG,EAAED,GAAG7sD,KAAKC,MAAM,GAAGD,KAAKkb,UAAU7mB,SAAS,IAAI,OAAOw4D,CAAC,CAAC,SAAS0a,GAAG1a,GAAG,GAAGA,aAAax7C,MAAM,MAAO,CAACjV,KAAKywD,EAAEz1D,MAAM,QAAQ9E,MAAMu6D,EAAEv7C,SAAS,GAAG9S,MAAMquD,EAAEruD,OAAO,MAAM,GAAG,iBAAiBquD,EAAE,MAAO,CAACzwD,KAAK,QAAQ9J,MAAMu6D,EAAEruD,MAAM,MAAM,GAAG,MAAMquD,EAAE,MAAO,CAACzwD,KAAK,QAAQ9J,MAAMkD,OAAOq3D,GAAGruD,MAAM,MAAM,GAAG,iBAAiBquD,EAAE,CAAC,MAAMC,EAAED,EAAED,EAAE,iBAAiBE,EAAE11D,MAAM01D,EAAE11D,KAAK01D,EAAE11D,KAAK,QAAQ,IAAIk0D,EAAE,GAAG,iBAAiBwB,EAAEx7C,QAAQg6C,EAAEwB,EAAEx7C,aAAa,IAAIg6C,EAAE7xD,KAAKC,UAAUmzD,EAAG,CAAC,MAAMvB,EAAE91D,OAAOq3D,EAAG,CAAC,MAAO,CAACzwD,KAAKwwD,EAAEt6D,MAAMg5D,EAAE9sD,MAAM,iBAAiBsuD,EAAEtuD,MAAMsuD,EAAEtuD,MAAM,KAAK,CAAC,MAAO,CAACpC,KAAK,QAAQ9J,MAAMkD,OAAOq3D,GAAGruD,MAAM,KAAK,CAAC,SAASgpE,GAAG3a,GAAG,MAAMC,EAAEya,GAAG1a,EAAE3zD,OAAO0zD,EAAEoa,GAAGla,EAAEtuD,OAAO8sD,EAAE,SAASuB,EAAEC,EAAE,GAAG,MAAMF,EAAE,GAAG,IAAIqa,GAAGpa,GAAG,OAAOD,EAAE,MAAMtB,EAAE,IAAIzgB,IAAI,CAACgiB,IAAIL,EAAEK,IAAI,GAAGD,EAAErzD,QAAQuzD,EAAE,OAAO,MAAMW,EAAEZ,EAAE4a,MAAMR,GAAGxZ,KAAKnC,EAAE9vD,IAAIiyD,KAAKnC,EAAE3vD,IAAI8xD,GAAGb,EAAEhzD,KAAKstE,GAAGzZ,EAAE,UAAUjB,EAAEiB,IAAI,MAAMC,EAAEb,EAAE6a,OAAO,GAAG/uE,MAAMgf,QAAQ+1C,GAAG,IAAI,IAAIb,EAAE,EAAEA,EAAEa,EAAEn0D,QAAQqzD,EAAErzD,OAAOuzD,EAAED,GAAG,EAAE,CAAC,MAAMC,EAAEY,EAAEb,GAAGoa,GAAGna,KAAKxB,EAAE9vD,IAAIsxD,KAAKxB,EAAE3vD,IAAImxD,GAAGF,EAAEhzD,KAAKstE,GAAGpa,EAAE,UAAUD,OAAOL,EAAEM,GAAI,GAAG,OAAON,EAAEK,GAAGD,CAAC,CAAjV,CAAmVC,EAAE3zD,OAAOszD,EAAE,GAAG,IAAI,MAAMK,KAAKvB,EAAEkB,EAAE5yD,QAAQizD,EAAE0Z,aAAa,MAAM9Y,EAAzpD,SAAYZ,GAAG,MAAMC,EAAE,WAAW,MAAMD,EAAEp5D,WAAWq5D,EAAED,EAAE8a,UAAU/a,EAAEC,EAAE+a,gBAAgB,IAAI9a,IAAIF,EAAE,MAAO,CAAA,EAAG,MAAMtB,EAAEwB,EAAE76D,OAAOiJ,KAAK4xD,GAAGvzD,OAAO,EAAEizD,EAAEI,EAAE36D,OAAOiJ,KAAK0xD,GAAGrzD,OAAO,EAAE,GAAG4tE,IAAIA,GAAGU,kBAAkBvc,GAAG6b,GAAGW,wBAAwBtb,EAAE,OAAO2a,GAAGx0D,IAAI,MAAM86C,EAAE,CAAA,EAAG,OAAOb,GAAGwa,GAAGxa,EAAEa,GAAGX,GAAGsa,GAAGta,EAAEW,GAAG0Z,GAAG,CAACx0D,IAAI86C,EAAEoa,gBAAgBvc,EAAEwc,sBAAsBtb,GAAGiB,CAAC,CAA1T,GAA8T,IAAIb,EAAE,IAAI,MAAMtB,KAAKuB,EAAE,CAAC,MAAMA,EAAEvB,EAAE75C,KAAKo7C,GAAGC,EAAED,KAAKD,IAAIA,EAAE,CAAA,GAAIA,EAAEC,GAAGC,EAAED,GAAI,CAAC,OAAOD,CAAC,CAAuvCmb,CAAGvb,EAAEjzD,OAAOqzD,EAAEp+B,OAAOg+B,GAAGI,GAAG,MAAO,CAACgQ,QAAQyK,KAAK9J,cAAczQ,EAAE1wD,KAAK9J,MAAMw6D,EAAEx6D,MAAMi0E,YAAY3Z,EAAE4Q,UAAU3Q,EAAE2Q,UAAUwK,QAAQnb,EAAEmb,QAAQC,QAAQpb,EAAEob,SAAS,KAAKC,YAAYrb,EAAEqb,aAAa,KAAKC,UAAUtb,EAAEsb,WAAW,KAAKC,KAAKvb,EAAEub,MAAM,KAAKC,eAAexb,EAAEwb,eAAeC,aAAazb,EAAEyb,aAAaC,eAAe1b,EAAE0b,eAAeC,wBAAwB3b,EAAE2b,wBAAwBC,YAAY5b,EAAE4b,YAAYlP,UAAU1M,EAAE0M,UAAUO,UAAUjN,EAAEiN,UAAU78D,IAAI4vD,EAAE5vD,IAAI8gE,YAAYlR,EAAEkR,aAAaz3B,KAAKD,MAAM20B,oBAAoBnO,EAAEmO,oBAAoBkI,eAAerW,EAAEqW,eAAeD,kBAAkBpW,EAAEoW,kBAAkByF,aAAapd,EAAE/xD,OAAO+xD,OAAE,EAAOqd,WAAWlb,EAAE,CAAC,SAASmb,KAAK,GAAG,oBAAoB1R,UAAU,OAAO,MAAMrK,EAAEqK,UAAU2R,WAAW,MAAO,CAACC,OAAO,kBAAkB5R,UAAUC,QAAQD,UAAUC,OAAO4R,cAAclc,GAAG,iBAAiBA,EAAEkc,cAAclc,EAAEkc,cAAc,KAAK,CAAC,MAAMC,GAAG,WAAA/xE,CAAY41D,GAAGpyD,KAAKwuE,WAAU,EAAMxuE,KAAKie,KAAKm0C,EAAEpyD,KAAKyuE,QAAQ,IAAInD,EAAG,CAAC,OAAAoD,GAAU1uE,KAAKwuE,WAAW,oBAAoB9rE,SAAS1C,KAAKwuE,WAAU,EAAKxuE,KAAK2uE,QAAQvc,IAAI,MAAMC,EAAED,GAAG,MAAMA,EAAE3zD,MAAM2zD,EAAE3zD,MAAM2zD,GAAGA,EAAEv7C,SAAS,gBAAgB7W,KAAKqrC,QAAQgnB,EAAE,WAAU,IAAS3vD,OAAO4K,iBAAiB,QAAQtN,KAAK2uE,SAAS3uE,KAAK4uE,YAAYxc,IAAI,MAAMC,EAAED,GAAG,WAAWA,EAAEA,EAAEj7C,OAAOi7C,EAAEpyD,KAAKqrC,QAAQgnB,EAAE,wBAAuB,IAAS3vD,OAAO4K,iBAAiB,qBAAqBtN,KAAK4uE,aAAa5uE,KAAK6uE,gBAAgBzc,IAAI,MAAMC,EAAED,EAAEhnB,OAAO,IAAIinB,GAAGA,IAAI3vD,SAAS2vD,EAAE3wD,QAAQ,OAAO,MAAMywD,EAAEE,EAAE3wD,QAAQK,cAAc8uD,EAAEwB,EAAEtjD,KAAKsjD,EAAEv0D,MAAM,GAAG+yD,IAAI7wD,KAAKie,KAAK6wD,iCAAiC,SAAS1c,GAAG,IAAI,MAAO,oBAAoBzvD,UAAU,IAAIF,IAAI2vD,EAAEzvD,SAAS7E,MAAMqF,SAASR,SAASQ,MAAM,CAAC,MAAM,OAAQ,CAAI,CAAC,CAA1H,CAA4H0tD,KAAK7wD,KAAKqrC,QAAQ,CAAC1uC,KAAK,oBAAoBka,QAAQ,kBAAkBs7C,MAAMtB,KAAK,YAAW,IAASnuD,OAAO4K,iBAAiB,QAAQtN,KAAK6uE,iBAAgB,GAAM7uE,KAAK+uE,MAAM3c,IAAI,MAAMC,EAAED,EAAE4c,YAAY,GAAG,GAAG3c,EAAEtrD,WAAW,sBAAsBsrD,EAAEtrD,WAAW,mBAAmBsrD,EAAEtrD,WAAW,sBAAsBsrD,EAAEtrD,WAAW,yBAAyB,OAAO,MAAMorD,EAAEC,EAAE6c,oBAAoB7c,EAAE8c,mBAAmB,UAAUre,EAAEuB,EAAE+c,YAAY,SAASnvE,KAAKqrC,QAAQ,CAAC1uC,KAAK,0BAA0Bka,QAAQ,WAAWg6C,MAAMsB,MAAM,OAAM,IAASzvD,OAAO4K,iBAAiB,0BAA0BtN,KAAK+uE,OAAQ,CAAC,SAAAK,GAAYpvE,KAAKwuE,WAAW,oBAAoB9rE,SAAS1C,KAAK2uE,SAASjsE,OAAOuK,oBAAoB,QAAQjN,KAAK2uE,SAAS3uE,KAAK4uE,aAAalsE,OAAOuK,oBAAoB,qBAAqBjN,KAAK4uE,aAAa5uE,KAAK6uE,iBAAiBnsE,OAAOuK,oBAAoB,QAAQjN,KAAK6uE,iBAAgB,GAAM7uE,KAAK+uE,OAAOrsE,OAAOuK,oBAAoB,0BAA0BjN,KAAK+uE,OAAO/uE,KAAKwuE,WAAU,EAAO,CAAC,OAAAnjC,CAAQ+mB,EAAEC,EAAEF,EAAEtB,GAAG,IAAI,MAAMkB,EAAE+a,GAAG1a,GAAG,GAAGuZ,GAAG,CAAC7I,cAAc/Q,EAAEpwD,KAAK9J,MAAMk6D,EAAEl6D,MAAMi0E,YAAY,IAAI9rE,KAAKie,KAAKoxD,SAAS,OAAO,MAAMrc,EAAEhzD,KAAKie,KAAK1S,aAAa0nD,EAAE8Z,GAAG,CAACtuE,MAAM2zD,EAAE2Q,UAAU1Q,EAAEkb,QAAQpb,EAAE2M,UAAU9L,EAAE8L,UAAUO,UAAUrM,EAAEqM,UAAU78D,IAAIwwD,EAAExwD,IAAIgrE,QAAQxa,EAAEwa,SAAS,KAAKC,YAAYza,EAAEya,aAAa,KAAKC,UAAU1a,EAAE0a,WAAW,KAAKC,KAAK3a,EAAE2a,MAAM,KAAKC,eAAe/c,GAAG+c,eAAeC,aAAaM,KAAKL,eAAe9a,EAAE8a,eAAeC,wBAAwB/a,EAAE+a,wBAAwBC,YAAYhuE,KAAKie,KAAK+vD,YAAYhe,WAAWuQ,oBAAoBvN,EAAEuN,oBAAoBkI,eAAezV,EAAEyV,eAAeD,kBAAkBxV,EAAEwV,oBAAoB,GAAGmD,GAAG1Y,EAAEjzD,KAAKie,KAAKoxD,SAAS,OAAO,IAAIrvE,KAAKyuE,QAAQlD,aAAa,SAASnZ,GAAG,MAAMC,EAAED,EAAE0Z,YAAYhtE,OAAOszD,EAAE0Z,YAAY5zD,IAAIk6C,GAAG,GAAGA,EAAEia,UAAU,OAAOja,EAAEp7C,MAAM,OAAOo7C,EAAEt7C,MAAM,OAAOs7C,EAAEr7C,QAAQ,OAAOzY,KAAK,KAAK,WAAW,MAAO,GAAG8zD,EAAE0Q,iBAAiB1Q,EAAEv6D,SAASw6D,GAAG,CAAnM,CAAqMY,IAAI,OAAOjzD,KAAKie,KAAKqxD,KAAKrc,EAAG,CAAC,MAAM,CAAC,EAAE,MAAMsc,GAAG,aAAaC,GAAG,CAAC,WAAW,SAAS,SAAS,QAAQ,SAAS,UAAU,gBAAgB,OAAO,SAAS,UAAU,aAAa,cAAc,aAAa,cAAc,MAAM,MAAM,OAAO,SAASC,GAAGrd,GAAG,MAAMC,EAAED,EAAErwD,cAAc,OAAOytE,GAAGtjE,KAAKkmD,GAAGC,EAAEx4D,SAASu4D,GAAG,CAAC,SAASsd,GAAGtd,GAAG,GAAGl0D,MAAMgf,QAAQk1C,GAAG,OAAOA,EAAEl6C,IAAIw3D,IAAI,GAAGtd,GAAG,iBAAiBA,EAAE,CAAC,MAAMC,EAAE,GAAG,IAAI,MAAMF,EAAEtB,KAAKr5D,OAAO67B,QAAQ++B,GAAGC,EAAEF,GAAGsd,GAAGtd,GAAGod,GAAGG,GAAG7e,GAAG,OAAOwB,CAAC,CAAC,OAAOD,CAAC,CAAC,SAASud,GAAGvd,EAAEC,GAAG,OAAOD,EAAEtzD,QAAQuzD,EAAED,EAAE,GAAGA,EAAEvuD,MAAM,EAAEwuD,mBAAmBD,EAAEtzD,OAAOuzD,UAAU,CAAC,SAASud,GAAGxd,EAAEC,EAAE,MAAM,IAAID,EAAE,OAAOA,EAAE,IAAI,MAAMD,EAAEnzD,KAAKu1B,MAAM69B,GAAG,OAAOud,GAAG3wE,KAAKC,UAAUywE,GAAGvd,IAAIE,EAAE,CAAC,MAAM,OAAOsd,GAAGvd,EAAEC,EAAE,CAAC,CAAC,MAAMwd,GAAG,CAAC,2BAA2B,mDAAmD,qCAAqC,8CAA8C,yBAAyB,iCAAiCC,GAAG,CAAC,MAAM,MAAM,MAAM,MAAM,OAAaC,GAAG,oBAAoBrtE,OAAO,SAASstE,GAAG5d,GAAG,MAAMC,EAAE,EAAED,EAAE,IAAI,MAAMC,EAAE,IAAIzR,WAAWwR,IAAIp5D,WAAWm4D,QAAQn4D,WAAWi3E,UAAUnf,gBAAgBuB,GAAG,IAAIF,EAAE,GAAG,IAAI,IAAItB,EAAE,EAAEA,EAAEuB,EAAEvB,IAAIsB,GAAGE,EAAExB,GAAGj3D,SAAS,IAAIizE,SAAS,EAAE,KAAK,OAAO1a,CAAC,CAAC,MAAM,IAAIC,EAAE,GAAG,IAAI,IAAID,EAAE,EAAEA,EAAEE,EAAEF,IAAIC,GAAG,mBAAmB,GAAG7sD,KAAKkb,SAAS,GAAG,OAAO2xC,CAAC,CAAC,CAAC,MAAM8d,GAAG,IAAIF,GAAG,IAAIG,GAAG,IAAIH,GAAG,GAAG,SAASI,GAAGhe,GAAG,OAAOA,GAAG,IAAK,QAAQ,IAAK,iBAAiB,MAAO,cAAc,IAAK,SAAS,MAAO,kBAAkB,IAAK,MAAM,IAAK,OAAO,MAAO,eAAe,IAAK,MAAM,IAAK,QAAQ,MAAO,eAAe,IAAK,OAAO,MAAO,gBAAgB,QAAQ,OAAOA,EAAE,YAAYA,IAAI,iBAAiB,CAAC,SAASie,GAAGje,GAAG,IAAI,MAAMC,EAAE,IAAI5vD,IAAI2vD,EAAE2d,GAAGrtE,OAAOC,SAAS7E,UAAK,GAAQ,OAAOu0D,EAAEvvD,SAASjE,MAAM,KAAK4uB,OAAOp0B,SAAS4K,OAAOouD,EAAEvvD,UAAUuvD,EAAEc,QAAQ,CAAC,MAAM,OAAOf,EAAEvuD,MAAM,EAAE,IAAI,CAAC,CAAC,MAAMysE,GAAG,WAAA9zE,CAAY41D,GAAGpyD,KAAKuwE,QAAQL,KAAKlwE,KAAKwwE,WAAWL,KAAKnwE,KAAKiM,OAAO,GAAGjM,KAAKywE,WAAW,KAAKzwE,KAAK0wE,iBAAiB,KAAK1wE,KAAK2wE,SAAQ,EAAM3wE,KAAK4wE,cAAc,KAAK5wE,KAAK6wE,IAAIze,CAAE,CAAC,KAAAr6C,GAAQ,GAAGg4D,KAAK/vE,KAAK2wE,QAAQ,CAAC3wE,KAAK2wE,SAAQ,EAAK,IAAI3wE,KAAK8wE,0BAA0B9wE,KAAK+wE,mBAAmB,aAAa52E,SAASuY,WAAW1S,KAAKgxE,kBAAkBtuE,OAAO4K,iBAAiB,OAAO,IAAItN,KAAKgxE,kBAAkB,CAACzX,MAAK,GAAK,CAAC,MAAMnH,GAAG4J,GAAE,8BAA8B5J,EAAG,CAAC,CAAC,CAAC,aAAA6e,GAAgBjxE,KAAKuwE,QAAQL,KAAKlwE,KAAKwwE,WAAWL,IAAK,CAAC,eAAAe,GAAkB,MAAM9e,EAAE+d,KAAK,MAAO,CAACgB,YAAY,MAAMnxE,KAAKuwE,WAAWne,OAAO,eAAe,GAAGpyD,KAAKuwE,WAAWne,MAAM,CAAC,SAAAgf,CAAUhf,EAAEC,GAAG,MAAMF,EAAEnyD,KAAKqxE,kBAAkBjf,GAAG,IAAI,MAAMA,EAAEC,IAAI,OAAOD,aAAah6B,QAAQg6B,EAAEp7B,KAAKo7B,IAAID,EAAEn6C,MAAMo6C,IAAI35B,MAAM25B,IAAI,MAAMD,EAAEmf,UAAU,SAASnf,EAAEn6C,MAAMo6C,KAAKD,EAAEn6C,MAAMo6C,EAAE,CAAC,MAAMA,GAAG,MAAMD,EAAEmf,UAAU,SAASnf,EAAEn6C,MAAMo6C,CAAC,CAAC,CAAC,iBAAAif,CAAkBjf,GAAG,MAAMC,EAAExmB,KAAKD,MAAMumB,EAAEge,KAAKtf,EAAE7wD,KAAKuwE,QAAQxe,EAAE/xD,KAAKwwE,WAAWxd,EAAE,IAAIZ,EAAE5nD,YAAY,IAAI,IAAIyoD,EAAE,KAAKC,GAAE,EAAM,MAAME,EAAEpzD,KAAK8tD,OAAOzyD,KAAK2E,MAAM,MAAO,CAAC,YAAAgH,CAAaorD,EAAEC,GAAGW,EAAEZ,GAAGC,CAAE,EAAE,SAAAif,CAAUlf,GAAGa,EAAEb,CAAE,EAAE,GAAAp6C,GAAMk7C,IAAIA,GAAE,EAAKE,EAAE,CAACmd,QAAQ1f,EAAE0gB,OAAOpf,EAAEqf,aAAazf,EAAEp1D,KAAKy1D,EAAEz1D,KAAK80E,GAAGrf,EAAEqf,IAAI,SAAShO,YAAYpR,EAAEgE,WAAW9wD,KAAKG,IAAImmC,KAAKD,MAAMymB,EAAE,GAAG4K,OAAOhK,EAAEzoD,WAAWwoD,IAAK,EAAE,CAAC,KAAA0e,CAAMtf,GAAE,GAAO,GAAG,IAAIpyD,KAAKiM,OAAOnN,OAAO,OAAO,MAAMuzD,EAAEryD,KAAKiM,OAAOjM,KAAKiM,OAAO,GAAGjM,KAAKywE,aAAa39D,aAAa9S,KAAKywE,YAAYzwE,KAAKywE,WAAW,MAAM,IAAIzwE,KAAK6wE,IAAInO,UAAUrQ,EAAEryD,KAAK6wE,IAAIc,aAAavf,EAAG,CAAC,MAAMA,GAAG4J,GAAE,8BAA8B5J,EAAG,CAAC,CAAC,IAAAwf,GAAO,IAAI5xE,KAAK0wE,kBAAkBtuB,YAAa,CAAC,MAAM,CAACpiD,KAAK4wE,eAAe,oBAAoBluE,SAASA,OAAOiwD,MAAM3yD,KAAK4wE,eAAe5wE,KAAK0xE,OAAM,EAAO,CAAC,MAAA5jB,CAAOsE,GAAG,IAAI,MAAMC,EAAEryD,KAAK6wE,IAAIc,aAAaxf,EAAE,IAAIC,EAAE5nD,YAAY,CAAA,GAAI6nD,EAAEmb,SAAS,MAAMrb,EAAEqb,UAAUrb,EAAEqb,QAAQnb,EAAEmb,SAASnb,EAAEob,aAAa,MAAMtb,EAAEsb,cAActb,EAAEsb,YAAYpb,EAAEob,aAAarb,EAAE,IAAIA,EAAE5nD,WAAW2nD,EAAG,CAAC,MAAM,CAACnyD,KAAKiM,OAAO9M,KAAKizD,GAAGpyD,KAAKiM,OAAOnN,QAAQ,IAAIkB,KAAK0xE,OAAM,GAAO1xE,KAAKywE,aAAazwE,KAAKywE,WAAW59D,WAAW,IAAI7S,KAAK0xE,OAAM,GAAO,KAAM,CAAC,eAAAV,GAAkB,GAAG,oBAAoBa,YAAY,IAAI,MAAMzf,EAAEyf,YAAYC,iBAAiB,cAAc,GAAG,IAAI1f,EAAE,OAAO,MAAMC,EAAEwf,YAAYE,WAAW5f,EAAEE,EAAED,EAAE4f,WAAWnhB,EAAEuB,EAAE6f,cAAc7f,EAAE8f,aAAa9f,EAAE+f,YAAYpgB,EAAExsD,KAAKG,IAAImrD,EAAEuB,EAAE4f,WAAW,GAAGhf,EAAE+c,GAAGrtE,OAAOC,SAASG,SAAS,IAAI9C,KAAK8tD,OAAO,CAACyiB,QAAQvwE,KAAKuwE,QAAQgB,OAAOvxE,KAAKwwE,WAAWgB,aAAa,GAAG70E,KAAK,YAAYq2D,IAAIye,GAAG,WAAWhO,YAAYtR,EAAEkE,WAAWtE,EAAEkL,OAAO,KAAKzyD,WAAW,CAAC,WAAWulE,GAAGzL,GAAG5hE,OAAOC,SAAS7E,MAAM,GAAG,aAAak1D,EAAE,8BAA8BZ,EAAEggB,aAAa,kBAAkBhgB,EAAEzwD,QAAQ,MAAMsxD,EAAE,CAACb,EAAED,EAAEtB,EAAEkB,EAAEiB,KAAK,MAAMC,EAAElB,EAAElB,EAAEoC,EAAE,GAAGpC,GAAG,GAAG7wD,KAAK8tD,OAAO,CAACyiB,QAAQvwE,KAAKuwE,QAAQgB,OAAOpB,KAAKqB,aAAaxxE,KAAKwwE,WAAW7zE,KAAKy1D,EAAEqf,GAAGtf,EAAEsR,YAAYpR,EAAExB,EAAEwF,WAAWpD,EAAEgK,OAAO,KAAKzyD,WAAWwoD,KAAMC,EAAE,aAAa,cAAcb,EAAEigB,kBAAkBjgB,EAAEkgB,iBAAiBrf,EAAE,cAAc,kBAAkBb,EAAEmgB,aAAangB,EAAEogB,YAAYvf,EAAE,UAAU,eAAeb,EAAEqgB,aAAargB,EAAEsgB,cAAc,CAAC,cAAc,QAAQzf,EAAE,WAAW,gBAAgBb,EAAEsgB,cAActgB,EAAE+f,aAAalf,EAAE,iBAAiB,cAAcb,EAAEugB,gBAAgBvgB,EAAE+f,YAAY/f,EAAEwgB,0BAA0BxgB,EAAE8f,aAAajf,EAAE,gBAAgB,eAAeb,EAAEwgB,yBAAyBxgB,EAAE6f,cAAc,MAAM/e,EAAE2e,YAAYC,iBAAiB,YAAY,IAAI,MAAM1f,KAAKc,EAAElzD,KAAK6yE,eAAezgB,EAAEC,GAAG,MAAMe,EAAEpzD,KAAK6wE,IAAIiC,sBAAsB,KAAKjgE,WAAW,IAAI7S,KAAK0xE,OAAM,GAAIte,EAAG,CAAC,MAAMhB,GAAG4J,GAAE,gCAAgC5J,EAAG,CAAC,CAAC,gBAAA2e,GAAmB,GAAG,oBAAoBgC,oBAAoB,IAAI,MAAM3gB,EAAEyf,YAAYE,WAAW/xE,KAAK0wE,iBAAiB,IAAIqC,oBAAoB1gB,IAAI,IAAI,MAAMF,KAAKE,EAAE2gB,aAAahzE,KAAK6yE,eAAe1gB,EAAEC,KAAMpyD,KAAK0wE,iBAAiBx6B,QAAQ,CAACv0C,KAAK,WAAWsxE,UAAS,GAAK,CAAC,MAAM7gB,GAAG8J,GAAE,uCAAuC9J,EAAG,CAAC,CAAC,cAAAygB,CAAezgB,EAAEC,GAAG,MAAMF,EAAEC,EAAEz1D,KAAK,IAAIw1D,EAAE,OAAO,GAAGnyD,KAAK6wE,IAAIqC,eAAelzE,KAAK6wE,IAAIqC,cAAc/gB,GAAG,OAAO,MAAMtB,EAAEtrD,KAAKG,IAAI0sD,EAAE+f,YAAY/f,EAAE+gB,UAAU,GAAGtiB,GAAG,GAAG7wD,KAAK8tD,OAAO,CAACyiB,QAAQvwE,KAAKuwE,QAAQgB,OAAOpB,KAAKqB,aAAaxxE,KAAKwwE,WAAW7zE,KAAK0zE,GAAGle,GAAGsf,GAAGrB,GAAGhe,EAAEghB,eAAe3P,YAAYpR,EAAED,EAAE+gB,UAAU9c,WAAWxF,EAAEoM,OAAO,KAAKzyD,WAAW,CAAC,eAAe2nD,EAAEtuD,MAAM,EAAE,KAAK,qBAAqBuuD,EAAEghB,cAAc,yBAAyBhhB,EAAEggB,aAAa,wBAAwBhgB,EAAEihB,gBAAgB,wBAAwBjhB,EAAEkhB,kBAAmB,CAAC,uBAAAxC,GAA0B,GAAG,oBAAoBpuE,QAAQ,mBAAmBA,OAAOiwD,MAAM,OAAO3yD,KAAK4wE,cAAcluE,OAAOiwD,MAAMt3D,KAAKqH,QAAQ,MAAM0vD,EAAEpyD,KAAK0C,OAAOiwD,MAAM,SAASN,EAAEF,GAAG,IAAI,MAAMtB,EAAE,iBAAiBwB,EAAEA,EAAEA,aAAa5vD,IAAI4vD,EAAEz4D,WAAWy4D,EAAE7vD,IAAIuvD,EAAE,MAAM,IAAI,OAAO,IAAItvD,IAAIouD,EAAEnuD,OAAOC,SAAS7E,MAAMqF,SAAST,OAAOC,SAASQ,MAAM,CAAC,MAAM,OAAO,CAAE,CAAE,EAAlG,GAAsG6vD,IAAIZ,EAAEye,IAAIqC,eAAe9gB,EAAEye,IAAIqC,cAAcriB,GAAG,GAAGkB,IAAIiB,EAAE,CAAC,MAAMnC,EAAE,IAAImT,QAAQ7R,GAAGuB,UAAU,iBAAiBrB,GAAGA,aAAa5vD,SAAI,EAAO4vD,EAAEqB,UAAU3B,EAAEK,EAAE8e,kBAAkBrgB,EAAE9vD,IAAI,gBAAgB8vD,EAAEzvD,IAAI,cAAc2wD,EAAEof,aAAatgB,EAAE9vD,IAAI,iBAAiB8vD,EAAEzvD,IAAI,eAAe2wD,EAAE,iBAAiB,MAAMiB,EAAE,IAAIb,GAAG,CAAA,EAAGuB,QAAQ7C,GAAG,OAAOuB,EAAEwe,cAAcve,EAAEW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAOZ,EAAEwe,cAAcve,EAAEF,EAAE,CAAE,EAAE,MAAMohB,GAAG,oBAAoB7wE,OAAO,MAAM8wE,GAAG,oBAAIC,GAAmB,OAAOzzE,KAAK0zE,SAAS,CAAC,oBAAAC,GAAuB,GAAGJ,GAAG,GAAG,aAAap5E,SAASuY,YAAY,gBAAgBvY,SAASuY,WAAW1S,KAAK4zE,kBAAkB,GAAGz5E,SAASmT,iBAAiB,CAACnT,SAASmT,iBAAiB,mBAAmB,IAAItN,KAAK4zE,aAAa,CAACvoC,SAAQ,IAAQ,MAAM+mB,EAAEqH,YAAY,KAAK,gBAAgBt/D,SAASuY,YAAY,aAAavY,SAASuY,aAAa8mD,cAAcpH,GAAGpyD,KAAK4zE,eAAgB,IAAI/gE,WAAW,IAAI2mD,cAAcpH,GAAG,IAAK,MAAMpyD,KAAK4zE,kBAAkB5zE,KAAK4zE,YAAa,CAAC,UAAAA,GAAa5zE,KAAK6zE,aAAa7zE,KAAK6zE,YAAW,EAAK3X,GAAE,+CAA+Cl8D,KAAK8zE,aAAajzE,QAAQuxD,IAAIpyD,KAAK+zE,eAAe3hB,KAAMpyD,KAAK8zE,aAAa,GAAG9zE,KAAKg0E,iBAAiBnzE,QAAQuxD,GAAGA,KAAKpyD,KAAKg0E,iBAAiB,GAAI,CAAC,YAAAC,CAAa7hB,GAAGpyD,KAAK6zE,WAAW7zE,KAAK+zE,eAAe3hB,GAAGpyD,KAAK8zE,aAAa30E,KAAKizD,EAAG,CAAC,oBAAM2hB,CAAe3hB,GAAG,OAAO8J,GAAE,6BAA6B9J,GAAGA,EAAEzwD,MAAM,IAAK,iBAAiB3B,KAAKk0E,SAAS9hB,EAAE94B,OAAO,MAAM,IAAK,qBAAqBt5B,KAAKm0E,aAAa/hB,EAAEqW,eAAe,CAAC5G,cAAczP,EAAEyP,gBAAgB,MAAM,IAAK,gBAAgB7hE,KAAKo0E,gBAAgB,MAAM,QAAQpY,GAAE,wBAAwB5J,EAAEzwD,MAAO,CAAC,uBAAA0yE,CAAwBjiB,GAAGpyD,KAAK6zE,WAAWzhB,IAAIpyD,KAAKg0E,iBAAiB70E,KAAKizD,EAAG,CAAC,WAAOx/B,CAAKw/B,EAAEC,GAAG,GAAGkhB,KAAI,IAAQlhB,GAAGiiB,sBAAsB,CAAC,MAAMliB,EAAE7kD,QAAQ9O,MAAM8O,QAAQ9O,MAAM,IAAI4zD,KAAK,MAAMF,EAAEE,EAAE/zD,KAAK,KAAK6zD,EAAEt4D,SAAS,iDAAiDs4D,EAAEt4D,SAAS,yCAAyCs4D,EAAEt4D,SAAS,2BAA2Bs4D,EAAEt4D,SAAS,wBAAwBs4D,EAAEt4D,SAAS,iCAAiCs4D,EAAEt4D,SAAS,+BAA+Bu4D,EAAEl+C,MAAM3G,QAAQ8kD,IAAK,MAAMA,EAAE9kD,QAAQC,KAAKD,QAAQC,KAAK,IAAI4kD,KAAK,MAAMD,EAAEC,EAAE9zD,KAAK,KAAK6zD,EAAEt4D,SAAS,2BAA2Bs4D,EAAEt4D,SAAS,+BAA+Bs4D,EAAEt4D,SAAS,kCAAkCw4D,EAAEn+C,MAAM3G,QAAQ6kD,IAAK1vD,OAAO4K,iBAAiB,QAAQ8kD,IAAI,MAAMC,EAAED,EAAEv7C,SAAS,GAAG,GAAGw7C,EAAEx4D,SAAS,kBAAkBw4D,EAAEx4D,SAAS,qBAAqBw4D,EAAEx4D,SAAS,aAAa,OAAOu4D,EAAEmiB,kBAAiB,GAAQ,CAAC,GAAGhB,IAAI7wE,OAAO8xE,6BAA6B,OAAOtY,GAAE,4DAA4Dx5D,OAAO8xE,6BAA6BniB,GAAGoiB,UAAUjB,GAAGkB,iBAAiB,CAAC5Z,MAAMzI,EAAEoiB,WAAW,MAAMtiB,EAAE,IAAIqhB,GAAGphB,EAAEC,GAAG6M,aAAa,CAAC0J,0BAA0BvW,GAAGuW,0BAA0BG,iBAAiB1W,GAAG0W,iBAAiBhE,kBAAkB1S,GAAG0S,kBAAkBG,aAAa7S,GAAG6S,aAAatH,aAAavL,GAAGuL,aAAa+W,sBAAsBtiB,GAAGsiB,sBAAsBC,sBAAsBviB,GAAGuiB,sBAAsBC,oBAAoBxiB,GAAGwiB,oBAAoBzjD,aAAaihC,GAAGjhC,aAAa26C,SAAS1Z,GAAG0Z,SAASC,UAAU3Z,GAAG2Z,UAAU8C,gCAAgCzc,GAAGyc,gCAAgCtB,QAAQnb,GAAGmb,QAAQC,YAAYpb,GAAGob,YAAYC,UAAUrb,GAAGqb,UAAUC,KAAKtb,GAAGsb,KAAKmH,qBAAqBziB,GAAGyiB,qBAAqBC,gBAAgB1iB,GAAG0iB,gBAAgBC,cAAc3iB,GAAG2iB,cAAcC,4BAA4B5iB,GAAG4iB,8BAA8B,OAAO9iB,EAAE9oD,aAAagpD,GAAGhpD,eAAc,EAAMgpD,GAAG6S,cAAc/S,EAAE+iB,oBAAoB7iB,EAAE6S,eAAc,IAAQ7S,GAAG8iB,yBAAyBhjB,EAAEijB,uBAAuB/iB,GAAGgjB,0BAA0BljB,EAAEp6C,QAAQo6C,CAAC,CAAC,WAAA31D,CAAY41D,EAAED,EAAEtB,GAAG,GAAG7wD,KAAKs1E,WAAW,GAAGt1E,KAAKu1E,oBAAoB,GAAGv1E,KAAKw1E,YAAY,GAAGx1E,KAAKy1E,qBAAqB,GAAGz1E,KAAK01E,iBAAiB,GAAG11E,KAAK21E,sBAAsB,KAAK31E,KAAK41E,sBAAsB,IAAI51E,KAAK61E,uBAAuB,GAAG71E,KAAK81E,0BAA0B,KAAK91E,KAAK+1E,uBAAuB,KAAK/1E,KAAKyoE,eAAe,CAAA,EAAGzoE,KAAKg2E,cAAa,EAAMh2E,KAAKi2E,cAAc,KAAKj2E,KAAKk2E,uBAAuB,IAAIl2E,KAAKm2E,uBAAuB,IAAIn2E,KAAKo2E,oBAAoB,IAAIp2E,KAAKq2E,UAAU,OAAOr2E,KAAKs2E,kBAAkB,EAAEt2E,KAAKu2E,kBAAkB,KAAKv2E,KAAKw2E,sBAAsB,IAAIx2E,KAAKy2E,wBAAwB,IAAIz2E,KAAK02E,sBAAsB,MAAM12E,KAAK22E,sBAAsB,KAAK32E,KAAK42E,oBAAoB,IAAI52E,KAAK62E,sBAAsB,KAAK72E,KAAKq/D,UAAU,KAAKr/D,KAAK82E,aAAY,EAAM92E,KAAK+2E,sBAAsB,KAAK/2E,KAAKm/D,qBAAoB,EAAMn/D,KAAK6zE,YAAW,EAAM7zE,KAAK8zE,aAAa,GAAG9zE,KAAKg0E,iBAAiB,GAAGh0E,KAAKg3E,gBAAgB,KAAKh3E,KAAKi3E,wBAAuB,EAAMj3E,KAAK4wE,cAAc,KAAK5wE,KAAKk3E,wBAAuB,EAAMl3E,KAAKm3E,0BAAyB,EAAMn3E,KAAKo3E,qBAAqB,EAAEp3E,KAAKq3E,wBAAwB,IAAIr3E,KAAKs3E,2BAA0B,EAAKt3E,KAAKu3E,2BAA0B,EAAKv3E,KAAKw3E,yBAAwB,EAAKx3E,KAAKy3E,qBAAoB,EAAKz3E,KAAK03E,mBAAkB,EAAK13E,KAAK23E,QAAQ,KAAK33E,KAAK43E,aAAa,KAAK53E,KAAK63E,mBAAmB,CAAA,EAAG73E,KAAK83E,qCAAoC,EAAM93E,KAAKguE,YAAY,IAAI5C,GAAGprE,KAAKwtE,QAAQ,KAAKxtE,KAAKytE,YAAY,KAAKztE,KAAK0tE,UAAU,KAAK1tE,KAAK2tE,KAAK,KAAK3tE,KAAK+3E,2BAA0B,EAAM/3E,KAAK00D,WAAW,GAAG10D,KAAKg4E,YAAY,GAAGh4E,KAAKi4E,kBAAkB,KAAKj4E,KAAKk4E,qBAAqB,KAAKl4E,KAAKm4E,oBAAoB,GAAGn4E,KAAKo4E,gBAAgB,EAAEp4E,KAAKq4E,qBAAqB,IAAIr4E,KAAKs4E,oBAAmB,EAAMt4E,KAAKu4E,eAAe,KAAKv4E,KAAKw4E,iBAAiB3sC,KAAKD,MAAM5rC,KAAKy4E,YAAY,KAAKz4E,KAAK04E,oBAAoB,KAAK14E,KAAK24E,mBAAmB,KAAK34E,KAAK44E,0BAA0B,KAAK54E,KAAK64E,gBAAgB,KAAK74E,KAAK84E,mBAAmB,KAAK94E,KAAK+4E,gBAAgB,IAAI3oC,IAAIpwC,KAAKqJ,cAAa,EAAMrJ,KAAK0zE,WAAU,EAAM1zE,KAAKi1E,4BAA4B,IAAIj1E,KAAKg5E,QAAQ,UAAUh5E,KAAKi5E,uBAAuBptC,KAAKD,MAAM5rC,KAAKk5E,kBAAkB,IAAIl5E,KAAKm5E,eAAe,KAAKn5E,KAAKo5E,yBAAyB,MAAMhnB,EAAE,MAAM,IAAIx7C,MAAM,sCAAsC,MAAMm7C,EAAEI,GAAG,kCAAkC,GAAGnyD,KAAKq5E,IAAI,IAAIra,GAAG,CAACC,OAAO7M,EAAE8M,aAAanN,IAAI/xD,KAAKi/D,OAAO7M,EAAEpyD,KAAKk/D,aAAanN,EAAE/xD,KAAKs5E,eAAezoB,GAAG+M,cAAc,IAAI59D,KAAKs3E,2BAA0B,IAAQzmB,GAAG8jB,sBAAsB30E,KAAKu3E,2BAA0B,IAAQ1mB,GAAG+jB,sBAAsB50E,KAAKw3E,yBAAwB,IAAQ3mB,GAAGgkB,oBAAoB70E,KAAK63E,mBAAmB,CAACzmD,aAAay/B,GAAGz/B,aAAa26C,SAASlb,GAAGkb,SAASC,UAAUnb,GAAGmb,WAAWhsE,KAAK83E,qCAAoC,IAAOjnB,GAAGie,gCAAgC9uE,KAAKy3E,qBAAoB,IAAQ5mB,GAAGkkB,gBAAgB/0E,KAAK03E,mBAAkB,IAAQ7mB,GAAGmkB,cAAch1E,KAAKwtE,QAAQ3c,GAAG2c,SAAS,KAAKxtE,KAAKytE,YAAY5c,GAAG4c,aAAa,KAAKztE,KAAK0tE,UAAU7c,GAAG6c,WAAW,KAAK1tE,KAAK2tE,KAAK9c,GAAG8c,MAAM,KAAK3tE,KAAKm3E,0BAAyB,IAAOtmB,GAAGikB,qBAAqB,iBAAiBjkB,GAAGokB,6BAA6BpkB,EAAEokB,6BAA6B,IAAIj1E,KAAKi1E,4BAA4BpkB,EAAEokB,6BAA6Bj1E,KAAKu5E,iBAAiB,IAAI9U,GAAG,CAACM,kBAAkBlU,GAAGkU,kBAAkBK,mBAAmBvU,GAAGqU,eAAellE,KAAKw5E,gBAAgB,IAAIjR,GAAG,CAACK,2BAA0B,IAAQ/X,GAAG+X,0BAA0BG,iBAAiBlY,GAAGkY,kBAAkB,KAAK/oE,KAAKwtE,SAASxtE,KAAKw5E,gBAAgB3P,mBAAmB,UAAU7pE,KAAKwtE,SAASxtE,KAAKytE,aAAaztE,KAAKw5E,gBAAgB3P,mBAAmB,cAAc7pE,KAAKytE,aAAa8F,GAAG,CAAC,MAAMnhB,EAAE,6BAA6BD,EAAEnyD,KAAKy5E,UAAUrnB,GAAGpyD,KAAKq/D,UAAUlN,GAAGlB,KAAKkB,EAAE+J,GAAE,+BAA+Bl8D,KAAKq/D,cAAcr/D,KAAK05E,UAAUtnB,EAAEpyD,KAAKq/D,UAAU,KAAKnD,GAAE,4BAA4Bl8D,KAAKq/D,aAAc,MAAMr/D,KAAKq/D,UAAUpO,KAAK,GAAGsiB,GAAG,CAAC,MAAMnhB,EAAEpyD,KAAKi/D,QAAQ,UAAUj/D,KAAK25E,uBAAuB,kBAAkBvnB,cAAcpyD,KAAK45E,mCAAmC,kBAAkBxnB,0BAA0BpyD,KAAK8+D,UAAU9+D,KAAK65E,uBAAuB75E,KAAKsgE,SAAStgE,KAAK85E,sBAAsB95E,KAAK00D,WAAW4P,GAAG5hE,OAAOC,SAAS7E,MAAM4E,OAAO8xE,6BAA6Bx0E,KAAKA,KAAK+5E,2BAA4B,MAAM/5E,KAAK25E,uBAAuB,GAAG35E,KAAK45E,mCAAmC,GAAG55E,KAAK8+D,UAAU7N,KAAKjxD,KAAKsgE,SAASrP,KAAKjxD,KAAKq5E,IAAIrZ,mBAAmBhgE,KAAK8+D,UAAU9+D,KAAKq/D,WAAWr/D,KAAK+2E,sBAAsB/2E,KAAK4yB,OAAO6F,MAAM25B,IAAIrtD,GAAE,yBAAyBqtD,IAAM,CAAC,UAAMx/B,GAAO,IAAI5yB,KAAK82E,aAAY,EAAGvD,IAAIvzE,KAAKg6E,yBAAyBh6E,KAAKi6E,2BAA2Bhe,GAAE,yFAAyFA,GAAE,oDAAoDj8D,KAAK8+D,yBAAyB9+D,KAAKq/D,YAAa,CAAC,MAAMjN,GAAGrtD,GAAE,6CAA6CqtD,GAAGpyD,KAAK82E,aAAY,CAAK,CAAC,CAAC,uBAAMoD,GAAoBl6E,KAAK+2E,6BAA6B/2E,KAAK+2E,qBAAsB,CAAC,uBAAAkD,GAA0B,IAAI1G,IAAIvzE,KAAK+3E,0BAA0B,OAAO/3E,KAAK+3E,2BAA0B,EAAK7b,GAAE,kCAAkCl8D,KAAKi4E,kBAAkBkC,QAAQC,UAAUp6E,KAAKk4E,qBAAqBiC,QAAQE,aAAaF,QAAQC,UAAU,IAAIhoB,KAAKpyD,KAAKg4E,YAAYh4E,KAAK00D,WAAW10D,KAAKi4E,kBAAkB/jE,MAAMimE,QAAQ/nB,GAAGpyD,KAAK00D,WAAW4P,GAAG5hE,OAAOC,SAAS7E,MAAMkC,KAAKo4E,gBAAgBvsC,KAAKD,MAAM5rC,KAAKs6E,qBAAqB,YAAYt6E,KAAKg4E,YAAYh4E,KAAK00D,YAAY10D,KAAKwwD,oBAAqB2pB,QAAQE,aAAa,IAAIjoB,KAAKpyD,KAAKg4E,YAAYh4E,KAAK00D,WAAW10D,KAAKk4E,qBAAqBhkE,MAAMimE,QAAQ/nB,GAAGpyD,KAAK00D,WAAW4P,GAAG5hE,OAAOC,SAAS7E,MAAMkC,KAAKo4E,gBAAgBvsC,KAAKD,MAAM5rC,KAAKs6E,qBAAqB,eAAet6E,KAAKg4E,YAAYh4E,KAAK00D,YAAY10D,KAAKwwD,oBAAqB,MAAM4B,EAAE,KAAKpyD,KAAKg4E,YAAYh4E,KAAK00D,WAAW10D,KAAK00D,WAAW4P,GAAG5hE,OAAOC,SAAS7E,MAAMkC,KAAKs6E,qBAAqB,WAAWt6E,KAAKg4E,YAAYh4E,KAAK00D,YAAY10D,KAAKwwD,oBAAqB9tD,OAAO4K,iBAAiB,WAAW8kD,GAAGpyD,KAAKm4E,oBAAoBh5E,KAAK,KAAKuD,OAAOuK,oBAAoB,WAAWmlD,KAAM,MAAMC,EAAE,KAAK,GAAGxmB,KAAKD,MAAM5rC,KAAKo4E,gBAAgBp4E,KAAKq4E,qBAAqB,OAAOr4E,KAAKg4E,YAAYh4E,KAAK00D,gBAAgB10D,KAAK00D,WAAW4P,GAAG5hE,OAAOC,SAAS7E,OAAOkC,KAAKg4E,YAAYh4E,KAAK00D,WAAW10D,KAAK00D,WAAW4P,GAAG5hE,OAAOC,SAAS7E,MAAMkC,KAAKs6E,qBAAqB,aAAat6E,KAAKg4E,YAAYh4E,KAAK00D,aAAchyD,OAAO4K,iBAAiB,aAAa+kD,GAAGryD,KAAKm4E,oBAAoBh5E,KAAK,KAAKuD,OAAOuK,oBAAoB,aAAaolD,KAAMryD,KAAKs6E,qBAAqB,WAAW,GAAGt6E,KAAK00D,WAAY,CAAC,0BAAM4lB,CAAqBloB,EAAEC,EAAEF,GAAG,GAAGnyD,KAAK82E,YAAY,GAAG,aAAa1kB,GAAGC,IAAIF,EAAE,IAAI,GAAG,aAAaC,GAAG,cAAcA,GAAG,iBAAiBA,GAAG,aAAaA,GAAG,eAAeA,EAAE,CAAC,MAAMD,EAAE,CAAC3vD,IAAI8hE,GAAG5hE,OAAOC,SAAS7E,MAAMmnB,QAAQotC,EAAEkoB,iBAAiBnoB,EAAEooB,eAAepoB,EAAEtvD,SAASJ,OAAOC,SAASG,SAAS8rD,OAAOlsD,OAAOC,SAASisD,OAAO2V,KAAK7hE,OAAOC,SAAS4hE,KAAKxD,SAAS5mE,SAAS4mE,SAASxc,UAAU1Y,KAAKD,aAAa5rC,KAAKy6E,YAAY,YAAYtoB,EAAG,CAAC+J,GAAE,uBAAuB9J,UAAUC,QAAQF,IAAK,CAAC,MAAMC,GAAGrtD,GAAE,oCAAoCqtD,EAAG,MAAM8J,GAAE,sBAAsB9J,eAAeD,KAAM,CAAC,mBAAMiiB,CAAchiB,GAAG,GAAGpyD,KAAK82E,YAAY,CAAC92E,KAAKw5E,gBAAgB1O,4BAA4B,IAAI,MAAMzY,EAAE,CAAC7vD,IAAI8hE,GAAGlS,GAAG1vD,OAAOC,SAAS7E,MAAMgF,SAASJ,OAAOC,SAASG,SAAS8rD,OAAOlsD,OAAOC,SAASisD,OAAO2V,KAAK7hE,OAAOC,SAAS4hE,KAAKxD,SAAS5mE,SAAS4mE,SAASxc,WAAU,IAAK1Y,MAAMwvB,eAAelJ,EAAEnyD,KAAKw5E,gBAAgB9P,mBAAmBrX,SAASryD,KAAKk0E,SAAS,CAACvyE,KAAK,EAAEqK,KAAK,CAACwmC,QAAQ,CAACkoC,UAAU,cAAcvoB,IAAI5N,UAAU1Y,KAAKD,QAAQswB,GAAE,qBAAqB7J,EAAE7vD,MAAO,CAAC,MAAM4vD,GAAGrtD,GAAE,kCAAkCqtD,EAAG,CAAC,CAAC,CAAC,iBAAMqoB,CAAYroB,EAAED,GAAG,GAAG,MAAMC,GAAG,iBAAiBA,GAAG,KAAKA,EAAE5rD,OAAO,YAAYw1D,GAAE,6DAA6D,GAAGh8D,KAAKq/D,YAAYrD,GAAE,0DAA0D5J,KAAKpyD,KAAKq/D,UAAUpO,MAAMsiB,IAAIvzE,KAAK26E,yBAAyB,WAAWvoB,EAAE,CAAC,MAAMA,EAAED,GAAGtwD,MAAMswD,GAAGyoB,aAAazoB,GAAG7B,KAAK,UAAUtwD,KAAK66E,cAAc,QAAQ9/E,OAAOq3D,GAAG,CAAC9B,IAAI6B,GAAG7B,IAAIjwD,GAAG8xD,GAAG9xD,GAAGy6E,KAAK3oB,GAAG2oB,MAAO,KAAM,cAAc1oB,GAAGpyD,KAAK66E,cAAc,aAAa9/E,OAAOo3D,GAAG3vD,KAAK,IAAI,CAACyiB,QAAQktC,GAAGltC,UAAU,MAAM4rC,EAAE7wD,KAAKw5E,gBAAgB9P,mBAAmBvX,GAAG,GAAGnyD,KAAK+6E,iCAAiC,OAAO7e,GAAE,iBAAiB9J,wDAAwDpyD,KAAKu1E,oBAAoBp2E,KAAK,CAACg4C,UAAUib,EAAE4oB,WAAWnqB,EAAEtM,UAAU1Y,KAAKD,MAAMu2B,QAAQlR,aAAajxD,KAAKi7E,2BAA2Bj7E,KAAKk7E,iBAAiB9oB,EAAEvB,GAAGqL,GAAE,wBAAwB9J,IAAIvB,EAAG,CAAC,gBAAAqqB,CAAiB9oB,EAAED,EAAEtB,GAAG7wD,KAAK01E,iBAAiBv2E,KAAK,CAACg4C,UAAUib,EAAE8P,gBAAgB/P,EAAEgQ,QAAQtR,GAAGI,OAAOsiB,IAAI,WAAWp5E,SAASghF,gBAAgBn7E,KAAKo7E,8BAA8Bp7E,KAAK01E,iBAAiB52E,QAAQkB,KAAK61E,uBAAuB71E,KAAKq7E,wBAAwB,MAAMr7E,KAAK21E,wBAAwB31E,KAAK21E,sBAAsB9iE,WAAW,KAAK7S,KAAK21E,sBAAsB,KAAK31E,KAAKq7E,yBAA0Br7E,KAAK41E,uBAAwB,CAAC,2BAAAwF,GAA8B,GAAG,MAAMp7E,KAAK21E,wBAAwB7iE,aAAa9S,KAAK21E,uBAAuB31E,KAAK21E,sBAAsB,MAAM,IAAI31E,KAAK01E,iBAAiB52E,OAAO,OAAO,MAAMszD,EAAEpyD,KAAK01E,iBAAiB11E,KAAK01E,iBAAiB,GAAG,MAAMrjB,EAAEryD,KAAKq5E,KAAK/W,2BAA2BtiE,KAAK8+D,UAAU1M,EAAEpyD,KAAKq/D,WAAWhN,GAAGryD,KAAKq5E,KAAKhX,qBAAqBriE,KAAK8+D,UAAU1M,EAAEpyD,KAAKq/D,WAAW5mC,MAAM,OAAQ,CAAC,mCAAA6iD,GAAsC,GAAG,IAAIt7E,KAAKu1E,oBAAoBz2E,OAAO,OAAO,MAAMszD,EAAEpyD,KAAKu1E,oBAAoBv1E,KAAKu1E,oBAAoB,GAAG,IAAI,MAAMljB,KAAKD,EAAEpyD,KAAK01E,iBAAiBv2E,KAAK,CAACg4C,UAAUkb,EAAElb,UAAU+qB,gBAAgB7P,EAAE2oB,WAAW7Y,QAAQ9P,EAAE8P,SAAU,CAAC,2BAAMkZ,GAAwB,GAAG,MAAMr7E,KAAK21E,wBAAwB7iE,aAAa9S,KAAK21E,uBAAuB31E,KAAK21E,sBAAsB,MAAM,IAAI31E,KAAK01E,iBAAiB52E,OAAO,OAAO,MAAMszD,EAAEpyD,KAAK01E,iBAAiB11E,KAAK01E,iBAAiB,GAAG,IAAI,aAAa11E,KAAKq5E,IAAIhX,qBAAqBriE,KAAK8+D,UAAU1M,EAAEpyD,KAAKq/D,gBAAgBnD,GAAE,+BAA+B9J,EAAEtzD,kBAAkB,CAAC,MAAMszD,GAAGrtD,GAAE,8DAA8DqtD,EAAG,CAAC,IAAI,MAAMC,KAAKD,EAAE,UAAUpyD,KAAKq5E,IAAIpX,gBAAgBjiE,KAAK8+D,UAAUzM,EAAElb,UAAUkb,EAAE6P,gBAAgBliE,KAAKq/D,UAAUhN,EAAE8P,QAAS,CAAC,MAAM/P,GAAGrtD,GAAE,kCAAkCqtD,GAAG,UAAUpyD,KAAKk0E,SAAS,CAACvyE,KAAK,EAAEqK,KAAK,CAACwmC,QAAQ,CAACkoC,UAAU,SAASvjC,UAAUkb,EAAElb,UAAU6jC,WAAW3oB,EAAE6P,iBAAiB,GAAG3d,WAAU,IAAK1Y,MAAMwvB,cAAc74D,IAAI+wE,GAAGjP,GAAG5hE,OAAOC,SAAS7E,MAAM,GAAGgF,SAASywE,GAAG7wE,OAAOC,SAASG,SAAS,KAAKyhD,UAAU1Y,KAAKD,OAAQ,CAAC,MAAMwmB,GAAGrtD,GAAE,0DAA0DqtD,EAAG,CAAC,CAAC,CAAC,sBAAAgjB,CAAuBhjB,GAAG,IAAImhB,GAAG,OAAO,MAAMlhB,EAAE,CAACkpB,cAAa,IAAQnpB,GAAGmpB,aAAaC,YAAW,EAAMC,YAAW,IAAQrpB,GAAGqpB,WAAWC,aAAY,IAAQtpB,GAAGspB,YAAYC,eAAevpB,GAAGupB,iBAAgB,GAAOzf,GAAE,6CAA6C7J,GAAGryD,KAAK47E,iBAAiBvpB,GAAGA,EAAEopB,YAAYz7E,KAAK67E,2BAA2BxpB,GAAGryD,KAAK87E,6BAA8B,CAAC,gBAAAF,CAAiBxpB,GAAGj4D,SAASmT,iBAAiB,QAAQ6qB,UAAU,MAAMg6B,EAAEE,EAAEjnB,OAAO,IAAI+mB,GAAG,IAAIA,EAAEj1D,UAAU,mBAAmBi1D,EAAE5pD,QAAQ,OAAO,MAAMsoD,EAAEsB,EAAE5pD,QAAQ,+GAA+G4pD,EAAEJ,GAAGlB,EAAEnvD,SAAS,IAAIK,cAAcixD,EAAE,CAAC1C,IAAIyB,EAAEha,EAAEsa,EAAExa,QAAQnsC,EAAE2mD,EAAEva,QAAQgjC,KAAKp4E,OAAOC,SAASG,SAASR,KAAKtC,KAAK+7E,aAAalrB,GAAGtM,UAAU1Y,KAAKD,OAAOilB,EAAExwD,KAAK2yD,EAAE3yD,GAAGwwD,EAAExwD,GAAG2yD,EAAEgpB,UAAUnrB,EAAExwD,IAAI,MAAM4yD,EAAEpC,EAAEhkD,cAAcgkD,EAAEhkD,aAAa,QAAQomD,IAAID,EAAEipB,KAAKhpB,GAAG,MAAMC,EAAErC,EAAElvD,MAAMuxD,GAAG,UAAUnB,GAAG,WAAWA,IAAIiB,EAAErxD,KAAKuxD,GAAG,MAAME,EAAEvC,EAAE/yD,KAAK,GAAGs1D,IAAIJ,EAAEl1D,KAAKwmE,GAAGlR,KAAI,IAAQhB,EAAEspB,YAAY,CAAC,MAAMtpB,GAAGvB,EAAEh1D,aAAa,IAAI2C,QAAQ,OAAO,KAAKgI,OAAO4rD,IAAIY,EAAEnxD,KAAKuwD,EAAEptD,UAAU,EAAE,KAAKguD,EAAE4nB,YAAYxoB,EAAEptD,UAAU,EAAE,KAAM,CAAC,MAAMmP,EAAE08C,EAAE1oD,UAAUiqD,EAAEupB,gBAAgB,iBAAiBxnE,GAAGA,IAAI6+C,EAAEpkD,MAAMuF,EAAE6+C,EAAEkpB,aAAa/nE,SAASnU,KAAKy6E,YAAY,SAASznB,IAAM,CAAC,YAAA+oB,CAAa3pB,GAAG,MAAMC,EAAE,GAAG,IAAIF,EAAEC,EAAEvB,EAAE,EAAE,KAAKsB,GAAG,IAAIA,EAAEj1D,UAAU2zD,EAAE,GAAG,CAAC,MAAMuB,GAAGD,EAAEzwD,SAAS,IAAIK,cAAc,IAAIqwD,EAAE,MAAM,IAAIL,EAAEK,EAAE,GAAGD,EAAE9xD,GAAG0xD,GAAG,IAAII,EAAE9xD,QAAQ,GAAG,iBAAiB8xD,EAAEhqD,WAAWgqD,EAAEhqD,UAAU,CAAC,MAAMiqD,EAAED,EAAEhqD,UAAU3B,OAAO3H,MAAM,OAAO,GAAGuzD,IAAIL,GAAG,IAAIK,EAAG,CAAC,GAAGC,EAAElnC,QAAQ4mC,GAAG,SAASK,GAAG,SAASA,EAAE,MAAMD,EAAEA,EAAEv2D,cAAci1D,GAAI,CAAC,OAAOwB,EAAE/zD,KAAK,MAAM,CAAC,2BAAAw9E,GAA8B,IAAIvI,GAAG,OAAO,GAAGvzE,KAAKm5E,eAAe,OAAO,MAAM/mB,EAAE,IAAI/yC,GAAE,CAACkxB,KAAK,CAAC6hB,EAAEC,KAAKryD,KAAKm8E,kBAAkB/pB,EAAEC,MAAOryD,KAAKm5E,eAAe/mB,EAAEj4D,SAASmT,iBAAiB,QAAQ+kD,IAAI,MAAMF,EAAEE,EAAEjnB,OAAO+mB,GAAG,IAAIA,EAAEj1D,UAAUk1D,EAAEwC,QAAQzC,EAAEE,EAAExa,QAAQwa,EAAEva,WAAY93C,KAAKo5E,yBAAyB,IAAIzgF,iBAAiB,KAAKy5D,EAAEuC,WAAW,SAAU30D,KAAKo5E,yBAAyBljC,QAAQ/7C,SAAS,CAACqQ,YAAW,EAAK4rC,eAAc,EAAKE,WAAU,EAAKC,SAAQ,IAAO7zC,OAAO4K,iBAAiB,SAAS,IAAI8kD,EAAEuC,WAAW,QAAQ,CAACtpB,SAAQ,EAAKC,SAAQ,IAAOnxC,SAASmT,iBAAiB,QAAQ,IAAI8kD,EAAEuC,WAAW,QAAQ,CAACtpB,SAAQ,IAAO,MAAMgnB,EAAEryD,KAAKs6E,qBAAqBj/E,KAAK2E,MAAMA,KAAKs6E,qBAAqBniD,MAAMg6B,EAAEtB,EAAEkB,KAAKK,EAAEuC,WAAW,OAAOtC,EAAEF,EAAEtB,EAAEkB,IAAIrvD,OAAO4K,iBAAiB,WAAW,IAAI8kD,EAAEuC,WAAW,QAAQjyD,OAAO4K,iBAAiB,aAAa,IAAI8kD,EAAEuC,WAAW,QAAQjyD,OAAO4K,iBAAiB,eAAe,IAAI8kD,EAAE9wD,QAAS,CAAC,uBAAM66E,CAAkB/pB,EAAEC,GAAG,MAAMF,EAAEE,EAAEtyC,KAAK8wC,EAAE,CAAC9Y,EAAEsa,EAAEta,EAAErsC,EAAE2mD,EAAE3mD,EAAEovE,KAAKp4E,OAAOC,SAASG,SAAStB,SAAS2wD,EAAEzwD,SAAS,IAAIK,cAAcq0D,WAAW/D,EAAE+D,WAAW7R,UAAU8N,EAAE8D,WAAM,IAAS9D,EAAEmE,cAAc3F,EAAE2F,YAAYnE,EAAEmE,aAAanE,EAAEgE,WAAW,IAAIxF,EAAEwF,WAAWhE,EAAEgE,YAAYlE,EAAE9xD,KAAKwwD,EAAEmrB,UAAU7pB,EAAE9xD,IAAI,MAAM0xD,EAAEI,EAAEhqD,UAAU,iBAAiB4pD,GAAGA,IAAIlB,EAAEqrB,aAAanqB,GAAGI,EAAEt2D,cAAcg1D,EAAE+pB,YAAYzoB,EAAEt2D,YAAY2K,OAAOxB,UAAU,EAAE,MAAMxN,OAAOiJ,KAAKowD,GAAGhwD,QAAQuxD,IAAI,OAAOvB,EAAEuB,SAAI,IAASvB,EAAEuB,WAAWvB,EAAEuB,WAAYpyD,KAAKy6E,YAAY,SAASroB,EAAE,aAAa,aAAavB,EAAG,CAAC,0BAAAurB,CAA2BhqB,GAAG,CAAC,0BAAAypB,CAA2BzpB,GAAGj4D,SAASmT,iBAAiB,SAAS6qB,UAAU,MAAMg6B,EAAEE,EAAEjnB,OAAOylB,EAAE,IAAIwrB,SAASlqB,GAAGJ,EAAE,CAACuqB,OAAOnqB,EAAE9xD,IAAI,KAAKk8E,WAAWpqB,EAAEqqB,QAAQ,KAAKC,WAAWtqB,EAAEn4D,QAAQ,MAAM0iF,OAAOx+E,MAAMC,KAAK0yD,EAAEpwD,QAAQq6E,KAAKp4E,OAAOC,SAASG,SAASyhD,UAAU1Y,KAAKD,OAAOwmB,EAAEupB,iBAAiB5pB,EAAE4qB,UAAUxqB,EAAEhqD,WAAW,MAAM3Q,OAAOiJ,KAAKsxD,GAAGlxD,QAAQuxD,IAAI,OAAOL,EAAEK,WAAWL,EAAEK,WAAYpyD,KAAKy6E,YAAY,kBAAkB1oB,IAAM,CAAC,yBAAA6qB,GAA4B58E,KAAK+3E,4BAA4B/3E,KAAKi4E,oBAAoBkC,QAAQC,UAAUp6E,KAAKi4E,mBAAmBj4E,KAAKk4E,uBAAuBiC,QAAQE,aAAar6E,KAAKk4E,sBAAsBl4E,KAAKm4E,oBAAoBt3E,QAAQuxD,GAAGA,KAAKpyD,KAAKm4E,oBAAoB,GAAGn4E,KAAK+3E,2BAA0B,EAAM7b,GAAE,kCAAmC,CAAC,mBAAOZ,CAAalJ,GAAG6J,GAAE7J,EAAG,CAAC,uBAAOsiB,CAAiBtiB,GAAGwI,GAAEM,UAAU,CAACJ,MAAM,CAAC+hB,KAAK,EAAEp+E,MAAM,EAAE+O,KAAK,EAAE+tD,KAAK,EAAE1N,MAAM,GAAGuE,EAAE0I,OAAO,SAASC,eAAc,IAAQ3I,EAAE2I,cAAcC,cAAc5I,EAAE4I,gBAAe,GAAQ,CAAC,qBAAA2Z,GAAwBpB,KAAKvzE,KAAKi3E,yBAAyBj3E,KAAKg3E,gBAAgB,CAACxb,IAAIjuD,QAAQiuD,IAAIhuD,KAAKD,QAAQC,KAAK/O,MAAM8O,QAAQ9O,OAAO8O,QAAQiuD,IAAI,IAAIpJ,KAAKpyD,KAAK88E,kBAAkB,MAAM1qB,GAAGpyD,KAAKg3E,gBAAgBxb,OAAOpJ,IAAK7kD,QAAQC,KAAK,IAAI4kD,KAAKpyD,KAAK88E,kBAAkB,OAAO1qB,GAAGpyD,KAAKg3E,gBAAgBxpE,QAAQ4kD,IAAK7kD,QAAQ9O,MAAM,IAAI2zD,KAAKpyD,KAAK88E,kBAAkB,QAAQ1qB,GAAGpyD,KAAKg3E,gBAAgBv4E,SAAS2zD,IAAKpyD,KAAKi3E,wBAAuB,EAAK/a,GAAE,4BAA6B,CAAC,qBAAA0Y,GAAwB,GAAGrB,KAAKvzE,KAAKk3E,wBAAwB,oBAAoBvkB,MAAM,CAAC,GAAG3yD,KAAK4wE,cAAcluE,OAAOiwD,MAAMt3D,KAAKqH,QAAQA,OAAOiwD,MAAMx6B,MAAMi6B,EAAED,KAAK,MAAMtB,EAAEhlB,KAAKD,MAAMmmB,EAAEd,KAAK+B,EAAE,iBAAiBZ,EAAEA,EAAEA,aAAa3vD,IAAI2vD,EAAEx4D,WAAWw4D,EAAE5vD,IAAIywD,GAAGd,GAAGn4D,SAAS,iBAAiBo4D,GAAG,WAAWA,EAAEA,EAAEp4D,YAAO,IAAS,OAAOuhB,cAAc23C,EAAElzD,KAAKkjE,0BAA0BlQ,GAAS,IAAI7+C,EAAE,KAAKk/C,GAAE,EAAMH,IAAI/+C,EAAEtB,WAAW,KAAK,MAAMu/C,EAAEvmB,KAAKD,MAAMilB,EAAE,IAAIwC,EAAE,CAACA,GAAE,EAAK,MAAMhB,EAAE,CAAC+Q,UAAUrR,EAAEvvD,IAAIwwD,EAAEh5D,OAAOi5D,EAAEgK,OAAO,KAAKkE,WAAW,KAAKkC,SAASjR,EAAEkR,YAAYz3B,KAAKD,MAAMkzB,UAAU9+D,KAAK8+D,UAAUO,UAAUr/D,KAAKq/D,UAAUoD,UAAU,eAAee,aAAa,qCAAqCpR,eAAeqR,YAAY5S,EAAE6S,SAAS,GAAGzQ,KAAKD,IAAI2Q,WAAW,OAAOn5D,WAAW,CAAC,cAAcyoD,EAAE,WAAWD,EAAE,sBAAsBZ,EAAE,oCAApb,KAA2dmO,oBAAoBvgE,KAAKw5E,gBAAgB7P,0BAA0B,OAAO3pE,KAAK+6E,kCAAkC7e,GAAE,gFAAgFl8D,KAAKy1E,qBAAqBt2E,KAAK,CAAC49E,UAAU1qB,EAAE9N,UAAU1Y,KAAKD,UAAU5rC,KAAKg9E,iCAAiCh9E,KAAKq5E,IAAI7W,iBAAiBnQ,GAAG55B,MAAM,QAAQ,GAApzB,MAA2zB,IAAI,MAAM45B,QAAQryD,KAAK4wE,cAAcxe,EAAED,GAAGiB,EAAEvnB,KAAKD,MAAMilB,EAAE,GAAG18C,GAAGrB,aAAaqB,GAAGk+C,EAAES,IAAII,EAAEb,EAAES,KAAKI,IAAIlzD,KAAKi9E,mBAAmBj9E,KAAKk9E,oBAAoB,CAAC16E,IAAIwwD,EAAEh5D,OAAOi5D,EAAEgK,OAAO5K,EAAE4K,OAAO5G,WAAWjD,IAAIpzD,KAAKo3E,qBAAqBvrC,KAAKD,WAAY,CAAC,MAAMwmB,EAAE,CAACgR,UAAUrR,EAAEvvD,IAAIwwD,EAAEh5D,OAAOi5D,EAAEgK,OAAO5K,EAAE4K,OAAOkE,WAAW9O,EAAE8O,WAAWkC,SAASjQ,EAAEkQ,YAAYz3B,KAAKD,MAAMkzB,UAAU9+D,KAAK8+D,UAAUO,UAAUr/D,KAAKq/D,UAAUoD,UAAUziE,KAAKujE,kBAAkBlR,EAAE4K,QAAQuG,aAAanR,EAAE8O,WAAWsC,YAAY5S,EAAE6S,SAAS,GAAGzQ,KAAKD,IAAI2Q,WAAW,QAAQn5D,WAAW,CAAC,mBAAmB6nD,EAAE4K,OAAO,mBAAmB5K,EAAE8O,YAAYZ,oBAAoBvgE,KAAKw5E,gBAAgB7P,0BAA0B,GAAG3pE,KAAK+6E,iCAAiC,OAAO7e,GAAE,6EAA6El8D,KAAKy1E,qBAAqBt2E,KAAK,CAAC49E,UAAU3qB,EAAE7N,UAAU1Y,KAAKD,QAAQymB,EAAE,IAAIa,EAAE,GAAGlzD,KAAK66E,cAAc,UAAU,GAAGzoB,EAAEp4D,UAAUo4D,EAAE5vD,MAAM,CAACy6D,OAAO7K,EAAE6K,OAAOwF,UAAUrQ,EAAEqQ,YAAYziE,KAAKm3E,yBAAyB,IAAIjkB,QAAQb,EAAEh1C,QAAQxb,MAAO,CAAC,MAAM,CAAC7B,KAAKi9E,mBAAmBj9E,KAAKk9E,oBAAoB,CAAC16E,IAAIwwD,EAAEh5D,OAAOi5D,EAAEgK,OAAO5K,EAAE4K,OAAOwF,UAAUrQ,EAAEqQ,UAAUpM,WAAWjD,EAAE+pB,YAAYhrB,GAAG93D,KAAK+iF,eAAep9E,KAAKq9E,gBAAgBlrB,GAAGuB,SAAS4pB,aAAapqB,IAAIlzD,KAAKo3E,qBAAqBvrC,KAAKD,MAAM5rC,KAAKg9E,4BAA4Bh9E,KAAKq5E,IAAI7W,iBAAiBpQ,GAAG35B,MAAM,OAAQ,CAAC,OAAO45B,CAAC,CAAC,MAAMD,GAAG,MAAMC,EAAExmB,KAAKD,MAAMilB,EAAE,GAAG18C,GAAGrB,aAAaqB,IAAI++C,EAAE,CAAC,MAAMA,EAAE,CAACkQ,UAAUrR,EAAEvvD,IAAIwwD,EAAEh5D,OAAOi5D,EAAEgK,OAAO,KAAKkE,WAAW,KAAKkC,SAAShR,EAAEiR,YAAYz3B,KAAKD,MAAMkzB,UAAU9+D,KAAK8+D,UAAUO,UAAUr/D,KAAKq/D,UAAUoD,UAAUziE,KAAK6jE,qBAAqBzR,GAAGoR,aAAapR,EAAEv7C,QAAQitD,UAAU1R,EAAEz1D,KAAK8mE,YAAY5S,EAAE6S,SAAS,GAAGzQ,KAAKD,IAAI2Q,WAAW,QAAQn5D,WAAW,CAAC,aAAa4nD,EAAEz1D,KAAK,gBAAgBy1D,EAAEv7C,SAAS0pD,oBAAoBvgE,KAAKw5E,gBAAgB7P,0BAA0B,GAAG3pE,KAAK+6E,iCAAiC,MAAM7e,GAAE,8DAA8Dl8D,KAAKy1E,qBAAqBt2E,KAAK,CAAC49E,UAAU7pB,EAAE3O,UAAU1Y,KAAKD,QAAQwmB,EAAEpyD,KAAK66E,cAAc,UAAU,GAAG3nB,EAAEl5D,UAAUk5D,EAAE1wD,MAAM,CAACy6D,OAAO/J,EAAE+J,OAAOwF,UAAUvP,EAAEuP,YAAYziE,KAAKi9E,mBAAmBj9E,KAAKk9E,oBAAoB,CAAC16E,IAAIwwD,EAAEh5D,OAAOi5D,EAAEgK,OAAO,KAAKwF,UAAUvP,EAAEuP,UAAUpM,WAAWhE,EAAE8qB,YAAYhrB,GAAG93D,KAAK+iF,eAAep9E,KAAKq9E,gBAAgBlrB,GAAGuB,WAAW1zD,KAAKo3E,qBAAqBvrC,KAAKD,MAAM5rC,KAAKg9E,4BAA4Bh9E,KAAKq5E,IAAI7W,iBAAiBtP,GAAGz6B,MAAM,OAAQ,CAAC,MAAM25B,CAAC,GAAG,oBAAoBmrB,eAAe,CAAC,MAAMnrB,EAAEpyD,KAAKqyD,EAAEkrB,eAAerkF,UAAUi5D,EAAEE,EAAEnnD,KAAK2lD,EAAEwB,EAAEid,KAAKvd,EAAEM,EAAEmrB,iBAAiBnrB,EAAEnnD,KAAK,SAASknD,EAAEC,KAAKxB,GAAG,OAAO7wD,KAAKy9E,KAAK,CAACzjF,OAAOe,OAAOq3D,GAAG,OAAO72C,cAAc/Y,IAAI,iBAAiB6vD,EAAEA,EAAEA,EAAEz4D,WAAW85D,QAAQ,CAAA,EAAGyf,UAAU,GAAGhhB,EAAEj+C,MAAMlU,KAAK,CAACoyD,EAAEC,KAAKxB,GAAG,EAAEwB,EAAEmrB,iBAAiB,SAASprB,EAAEC,GAAG,MAAMF,EAAEnyD,KAAKy9E,KAAK,GAAGtrB,EAAE,IAAIA,EAAEuB,QAAQtB,GAAGC,CAAE,CAAC,MAAM,CAAC,OAAON,EAAE79C,MAAMlU,KAAK,CAACoyD,EAAEC,GAAG,EAAEA,EAAEid,KAAK,SAASjd,GAAG,MAAMF,EAAEnyD,KAAKy9E,KAAK,OAAOtrB,IAAIC,EAAE8Q,0BAA0B/Q,EAAE3vD,OAAO2vD,EAAEghB,UAAUtnC,KAAKD,MAAMumB,EAAE93D,KAAKg4D,EAAEryD,KAAKsN,iBAAiB,UAAU,WAAW,IAAI8kD,EAAEsrB,kBAAkB19E,KAAKmyD,EAAG,CAAC,MAAM,CAAC,IAAItB,EAAE38C,MAAMlU,KAAK,CAACqyD,GAAG,CAAE,CAACryD,KAAKk3E,wBAAuB,EAAKhb,GAAE,2BAA4B,CAAC,CAAC,uBAAAyhB,GAA0B,IAAIpK,GAAG,OAAO,MAAMnhB,EAAEnB,KAAK74B,QAAQzU,UAAUqT,KAAK,WAAW,OAAO4mD,EAAE,GAAG5mD,KAAK,EAAE6mD,MAAMxrB,EAAEyrB,MAAM3rB,EAAE4rB,MAAMltB,EAAEmtB,MAAMjsB,EAAEksB,OAAOjrB,MAAM,MAAMC,EAAEZ,IAAIryD,KAAKy6E,YAAY,cAAc,CAACyD,mBAAmB7rB,EAAE11D,KAAKwhF,kBAAkB9rB,EAAEx6D,MAAM,CAAC,eAAew6D,EAAE11D,cAAc01D,EAAEx6D,MAAMumF,mBAAmB/rB,EAAEgsB,OAAOC,eAAejsB,EAAEhyD,GAAGk+E,4BAA4BlsB,EAAEmoB,eAAegE,wBAAwBpsB,KAAMC,EAAEY,GAAGd,EAAEc,GAAGpC,EAAEoC,GAAGlB,EAAEkB,GAAGD,EAAEC,GAAGiJ,GAAE,iCAAkCzjC,MAAM25B,IAAI4J,GAAE,2DAA2D5J,IAAM,CAAC,aAAA4iB,GAAgBzB,KAAKvzE,KAAK23E,UAAU33E,KAAK23E,QAAQ,IAAIrH,GAAG,CAACqB,WAAW,KAAA,CAAM7S,UAAU9+D,KAAK8+D,UAAUO,UAAUr/D,KAAKq/D,UAAUkB,oBAAoBvgE,KAAKw5E,gBAAgB7P,yBAAyB6D,QAAQxtE,KAAKwtE,QAAQC,YAAYztE,KAAKytE,cAAc/K,UAAU,CAACtQ,EAAEC,EAAEF,KAAQA,GAAGnyD,KAAKq5E,IAAIzW,gBAAgBxQ,EAAEC,IAAkCryD,KAAKq5E,IAAI3W,UAAUtQ,EAAEC,IAAK6gB,cAAc9gB,GAAGpyD,KAAKkjE,0BAA0B9Q,KAAKpyD,KAAK23E,QAAQ5/D,QAAQmkD,GAAE,+BAAgC,CAAC,SAAAkV,CAAUhf,EAAEC,GAAG,OAAOryD,KAAK23E,QAAQ33E,KAAK23E,QAAQvG,UAAUhf,EAAEC,GAAGA,GAAG,CAAC,iBAAAgf,CAAkBjf,GAAG,OAAOpyD,KAAK23E,QAAQ33E,KAAK23E,QAAQtG,kBAAkBjf,GAAG,CAAC,YAAAprD,GAAe,EAAE,SAAAsqE,GAAY,EAAE,GAAAt5D,GAAM,EAAE,CAAC,iBAAA0lE,CAAkBtrB,EAAED,GAAG,MAAMtB,EAAEuB,EAAE6K,OAAO,GAAGpM,GAAG,KAAKA,EAAE,IAAI,OAAO7wD,KAAKi9E,mBAAmBj9E,KAAKk9E,oBAAoB,CAAC16E,IAAI2vD,EAAE3vD,IAAIxI,OAAOm4D,EAAEn4D,OAAOijE,OAAOpM,EAAEwF,WAAWxqB,KAAKD,MAAMumB,EAAEghB,iBAAiBnzE,KAAKo3E,qBAAqBvrC,KAAKD,OAAO,MAAMmmB,EAAElmB,KAAKD,MAAMumB,EAAEghB,UAAUngB,EAAE,IAAInC,EAAEoC,EAAED,EAAE,gBAAgBhzD,KAAKujE,kBAAkB1S,GAAG,IAAIqC,EAAE,IAAI,iBAAiBd,EAAEqsB,eAAevrB,EAAEd,EAAEqsB,aAAc,CAAC,MAAM,CAAC,MAAMrrB,EAAE,CAACgQ,UAAUnS,KAAKzuD,IAAI2vD,EAAE3vD,IAAIxI,OAAOm4D,EAAEn4D,OAAOijE,OAAOjK,EAAE,KAAKnC,EAAEsQ,WAAW/O,EAAE+O,YAAY,KAAKkC,SAAStR,EAAEuR,YAAYz3B,KAAKD,MAAMkzB,UAAU9+D,KAAK8+D,UAAUO,UAAUr/D,KAAKq/D,UAAUoD,UAAUxP,EAAEuQ,aAAapR,EAAE+O,aAAanO,EAAE,yBAAyB,QAAQnC,KAAK4S,YAAYtR,EAAEghB,UAAUzP,SAAS,GAAGvR,EAAEn4D,UAAUm4D,EAAE3vD,MAAMmhE,WAAW,QAAQn5D,WAAW,CAAC,cAAc2nD,EAAEn4D,OAAO,WAAWm4D,EAAE3vD,IAAI,mBAAmBquD,GAAG0P,oBAAoBvgE,KAAKw5E,gBAAgB7P,0BAA0B3pE,KAAK+6E,iCAAiC/6E,KAAKy1E,qBAAqBt2E,KAAK,CAAC49E,UAAU3pB,EAAE7O,UAAU1Y,KAAKD,SAAS5rC,KAAK66E,cAAc,UAAU,GAAG1oB,EAAEn4D,UAAUm4D,EAAE3vD,MAAM,CAACy6D,OAAO7J,EAAE6J,OAAOwF,UAAUxP,IAAIjzD,KAAKi9E,mBAAmBj9E,KAAKk9E,oBAAoB,CAAC16E,IAAI2vD,EAAE3vD,IAAIxI,OAAOm4D,EAAEn4D,OAAOijE,OAAO7J,EAAE6J,OAAOwF,UAAUxP,EAAEoD,WAAWtE,EAAEorB,YAAYhrB,EAAE93D,KAAK+iF,eAAejrB,EAAEuB,QAAQ4pB,aAAapqB,IAAIlzD,KAAKo3E,qBAAqBvrC,KAAKD,MAAM5rC,KAAKg9E,4BAA4Bh9E,KAAKq5E,IAAI7W,iBAAiBpP,GAAG36B,MAAM,QAAS,CAAC,mBAAAykD,CAAoB9qB,GAAG,MAAMC,EAAE,CAAC7vD,IAAI4vD,EAAE5vD,IAAIxI,OAAOo4D,EAAEp4D,OAAOijE,OAAO7K,EAAE6K,OAAOwF,UAAUrQ,EAAEqQ,UAAUpM,WAAWjE,EAAEiE,YAAY,OAAOr2D,KAAKm3E,2BAA2B/kB,EAAEgrB,gBAAgB5lF,OAAOiJ,KAAK2xD,EAAEgrB,gBAAgBt+E,OAAO,IAAIuzD,EAAE+qB,eAAe,SAAShrB,GAAG,MAAMC,EAAE,CAAA,EAAG,IAAI,MAAMF,EAAEtB,KAAKr5D,OAAO67B,QAAQ++B,GAAGC,EAAEF,GAAGsd,GAAGtd,GAAGod,GAAG1e,EAAE,OAAOwB,CAAC,CAAlF,CAAoFD,EAAEgrB,iBAAiB,iBAAiBhrB,EAAE+qB,aAAa/qB,EAAE+qB,cAAc9qB,EAAE8qB,YAAYvN,GAAGxd,EAAE+qB,cAAc,iBAAiB/qB,EAAEkrB,cAAclrB,EAAEkrB,eAAejrB,EAAEirB,aAAa1N,GAAGxd,EAAEkrB,gBAAgBjrB,CAAC,CAAC,eAAAgrB,CAAgBjrB,GAAG,IAAIA,EAAE,OAAO,MAAMC,EAAE,CAAA,EAAG,IAAI,GAAG,oBAAoB2R,SAAS5R,aAAa4R,QAAQ5R,EAAEvxD,QAAQ,CAACuxD,EAAED,KAAKE,EAAEF,GAAGC,SAAU,GAAGl0D,MAAMgf,QAAQk1C,GAAG,IAAI,MAAMD,EAAEtB,KAAKuB,EAAEC,EAAEF,GAAGtB,OAAO,IAAI,MAAMsB,EAAEtB,KAAKr5D,OAAO67B,QAAQ++B,GAAGC,EAAEF,GAAGp3D,OAAO81D,EAAG,CAAC,MAAM,MAAM,CAAC,OAAOwB,CAAC,CAAC,iBAAAqsB,GAAoBnL,KAAKvzE,KAAK43E,eAAe53E,KAAK43E,aAAa,IAAIrJ,GAAG,CAACe,KAAKld,IAAIpyD,KAAKq5E,IAAIxW,UAAUzQ,GAAG35B,MAAM,SAAUltB,WAAW,KAAA,CAAMuzD,UAAU9+D,KAAK8+D,UAAUO,UAAUr/D,KAAKq/D,UAAU78D,IAAI+wE,GAAGjP,GAAG5hE,OAAOC,SAAS7E,MAAM,GAAG0vE,QAAQxtE,KAAKwtE,QAAQC,YAAYztE,KAAKytE,YAAYC,UAAU1tE,KAAK0tE,UAAUC,KAAK3tE,KAAK2tE,KAAKI,wBAAwB/tE,KAAK+1E,6BAAwB,EAAOjI,eAAejiC,KAAKD,MAAM5rC,KAAKo3E,sBAAsBp3E,KAAKq3E,wBAAwBr3E,KAAKi9E,wBAAmB,EAAO1c,oBAAoBvgE,KAAKw5E,gBAAgB7P,yBAAyBlB,eAAezoE,KAAKw5E,gBAAgBjP,oBAAoB/B,kBAAkBxoE,KAAKw5E,gBAAgBhP,yBAAyBwD,YAAYhuE,KAAKguE,YAAYqB,QAAQrvE,KAAK63E,mBAAmB/I,gCAAgC9uE,KAAK83E,sCAAsC93E,KAAK43E,aAAalJ,UAAUxS,GAAE,yBAA0B,CAAC,aAAA2e,CAAczoB,EAAEC,EAAEF,GAAG,IAAInyD,KAAKguE,YAAY9sE,IAAI,CAACS,KAAKywD,EAAEv7C,QAAQw7C,EAAEiR,YAAYz3B,KAAKD,MAAM5/B,KAAKmmD,GAAI,CAAC,MAAM,CAAC,CAAC,gBAAAwsB,CAAiBvsB,EAAEC,GAAG,IAAIryD,KAAK43E,cAAcvsC,QAAQ+mB,EAAEC,GAAG0Q,WAAW,oBAAmB,EAAG,CAAC6K,eAAevb,GAAGub,gBAAiB,CAAC,MAAM,CAAC,CAAC,8BAAMqN,GAA2B,GAAG,IAAIj7E,KAAKu1E,oBAAoBz2E,OAAO,OAAO,MAAMszD,EAAE,IAAIpyD,KAAKu1E,qBAAqBv1E,KAAKu1E,oBAAoB,GAAGrZ,GAAE,YAAY9J,EAAEtzD,gCAAgC,IAAI,MAAMq4C,UAAUkb,EAAE2oB,WAAW7oB,EAAEgQ,QAAQtR,KAAKuB,EAAEpyD,KAAKk7E,iBAAiB7oB,EAAEF,EAAEtB,EAAG,CAAC,sBAAM+tB,GAAmB,GAAG,IAAI5+E,KAAKw1E,YAAY12E,OAAO,OAAO,MAAMszD,EAAE,IAAIpyD,KAAKw1E,aAAax1E,KAAKw1E,YAAY,GAAGtZ,GAAE,YAAY9J,EAAEtzD,uBAAuB,IAAI,MAAM+/E,QAAQxsB,KAAKD,EAAE,UAAUpyD,KAAKq5E,IAAI9W,QAAQlQ,EAAG,CAAC,MAAMD,GAAGrtD,GAAE,+BAA+BqtD,EAAG,CAAC,CAAC,+BAAM4qB,GAA4B,GAAG,IAAIh9E,KAAKy1E,qBAAqB32E,OAAO,OAAO,MAAMszD,EAAE,IAAIpyD,KAAKy1E,sBAAsBz1E,KAAKy1E,qBAAqB,GAAGvZ,GAAE,YAAY9J,EAAEtzD,iCAAiC,IAAI,MAAMi+E,UAAU1qB,KAAKD,EAAE,UAAUpyD,KAAKq5E,IAAI7W,iBAAiBnQ,EAAG,CAAC,MAAMD,GAAGrtD,GAAE,yCAAyCqtD,EAAG,CAAC,CAAC,sBAAA0sB,GAAyBvL,IAAI,oBAAoB7wE,SAAS,aAAavI,SAASuY,WAAW1S,KAAK++E,gBAAgBr8E,OAAO4K,iBAAiB,OAAO,KAAKtN,KAAK++E,kBAAmB7iB,GAAE,8BAA+B,CAAC,aAAA6iB,GAAgB,GAAGxL,IAAI,oBAAoB1B,YAAY,IAAI,MAAMzf,EAAEyf,YAAYC,iBAAiB,cAAc,GAAG,IAAI1f,EAAE,OAAO,MAAMD,EAAEC,EAAE6f,aAAa7f,EAAE4f,WAAW,GAAG7f,EAAE,IAAI,CAAC,MAAMtB,EAAEI,KAAKc,EAAEK,EAAEwgB,yBAAyBxgB,EAAE4f,WAAWhf,EAAEZ,EAAE8f,YAAY9f,EAAE4f,WAAW/e,EAAE,CAACmQ,UAAUvS,EAAEruD,IAAI8hE,GAAG5hE,OAAOC,SAAS7E,MAAM9D,OAAO,MAAMijE,OAAO,IAAIkE,WAAW,KAAKkC,SAASlR,EAAEmR,YAAYlR,EAAE6f,aAAaJ,YAAYE,WAAWjT,UAAU9+D,KAAK8+D,UAAUO,UAAUr/D,KAAKq/D,UAAUoD,UAAU,iBAAiBe,aAAa,kBAAkBrR,MAAMsR,YAAYrR,EAAE4f,WAAWH,YAAYE,WAAWrO,SAAS,YAAYC,WAAW,OAAOn5D,WAAW,CAAC,WAAW9H,OAAOC,SAAS7E,KAAK,iBAAiBq0D,EAAE,0BAA0BJ,EAAE,oBAAoBiB,IAAI,GAAGhzD,KAAK+6E,iCAAiC,OAAO7e,GAAE,kFAAkFl8D,KAAKy1E,qBAAqBt2E,KAAK,CAAC49E,UAAU9pB,EAAE1O,UAAU1Y,KAAKD,QAAQ5rC,KAAKg9E,4BAA4Bh9E,KAAKq5E,IAAI7W,iBAAiBvP,GAAGx6B,MAAM,OAAQ,CAAC,CAAC,MAAM25B,GAAG4J,GAAE,6BAA6B5J,EAAG,CAAC,CAAC,yBAAA8Q,CAA0B9Q,GAAG,IAAIA,IAAIpyD,KAAKk/D,aAAa,OAAQ,EAAM,IAAI,MAAM7M,EAAE,IAAI5vD,IAAI2vD,GAAGD,EAAE,IAAI1vD,IAAIzC,KAAKk/D,cAAc,QAAS7M,EAAElvD,SAASgvD,EAAEhvD,SAASkvD,EAAEvvD,SAASiE,WAAW,uBAAuBqrD,EAAEv4D,SAASmG,KAAKk/D,aAAa,CAAC,MAAM7M,GAAG,OAAOD,EAAEv4D,SAASmG,KAAKk/D,aAAa,CAAC,CAAC,iBAAAqE,CAAkBnR,GAAG,OAAOA,GAAG,KAAKA,EAAE,IAAI,eAAeA,GAAG,IAAI,eAAe,eAAe,CAAC,oBAAAyR,CAAqBzR,GAAG,MAAMC,EAAED,EAAEv7C,SAAS,GAAGs7C,EAAEC,EAAEz1D,MAAM,GAAG,OAAO01D,EAAEx4D,SAAS,YAAYw4D,EAAEx4D,SAAS,0BAA0Bw4D,EAAEx4D,SAAS,+BAA+B,cAAcs4D,GAAGE,EAAEx4D,SAAS,mBAAmB,oBAAoBw4D,EAAEx4D,SAAS,SAASw4D,EAAEx4D,SAAS,iBAAiBw4D,EAAEx4D,SAAS,gCAAgC,cAAcs4D,GAAGE,EAAEx4D,SAAS,QAAQ,aAAaw4D,EAAEx4D,SAAS,YAAYw4D,EAAEx4D,SAAS,YAAYw4D,EAAEx4D,SAAS,iBAAiB,iBAAiBs4D,EAAE,gBAAgBE,EAAEx4D,SAAS,UAAU,eAAes4D,EAAE,UAAU,eAAe,CAAC,sBAAA6sB,GAAyBzL,IAAIvzE,KAAKi3E,yBAAyBj3E,KAAKg3E,kBAAkBzpE,QAAQiuD,IAAIx7D,KAAKg3E,gBAAgBxb,IAAIjuD,QAAQC,KAAKxN,KAAKg3E,gBAAgBxpE,KAAKD,QAAQ9O,MAAMuB,KAAKg3E,gBAAgBv4E,OAAOuB,KAAKi3E,wBAAuB,EAAM/a,GAAE,6BAA8B,CAAC,iBAAA4gB,CAAkB1qB,EAAED,GAAG,GAAGnyD,KAAK82E,YAAY,GAAG,QAAQ1kB,EAAE,IAAI,GAAny8E2J,GAA0y8E,YAAY/7D,KAAKg3E,iBAAiBh3E,KAAKg3E,gBAAgB5kB,MAAMD,IAAI,MAAMtB,GAAE,IAAKj6C,OAAO7S,OAAO,GAAG,GAAG/D,KAAKi/E,gBAAgBpuB,GAAG,YAAY7wD,KAAKg3E,iBAAiBh3E,KAAKg3E,gBAAgB5kB,MAAMD,IAAI,MAAMJ,EAAE,CAACoQ,QAAQlR,KAAK6J,MAAM1I,EAAEv7C,QAAQs7C,EAAEj6C,IAAIk6C,GAAG,iBAAiBA,EAAEpzD,KAAKC,UAAUmzD,GAAGr3D,OAAOq3D,IAAI9zD,KAAK,KAAKglE,YAAYz3B,KAAKD,MAAMppC,IAAI+wE,GAAGjP,GAAG5hE,OAAOC,SAAS7E,MAAM,GAAGsoE,UAAUmN,GAAG9W,UAAU2J,UAAU,GAAGriE,MAAM8sD,EAAE4c,YAAYztE,KAAKytE,YAAY3O,UAAU9+D,KAAK8+D,UAAUO,UAAUr/D,KAAKq/D,UAAUkB,oBAAoBvgE,KAAKw5E,gBAAgB7P,0BAA0B,GAAG3pE,KAAK+6E,iCAAiC,OAAO7e,GAAE,WAAW9J,uDAAuDpyD,KAAKw1E,YAAYr2E,KAAK,CAAC0/E,QAAQ9sB,EAAExN,UAAU1Y,KAAKD,QAAQ5rC,KAAK4+E,mBAAmB5+E,KAAK66E,cAAc,UAAU,GAAG9oB,EAAE+I,UAAU/I,EAAEl7C,UAAU7R,UAAU,EAAE,KAAK,CAAC81D,MAAM/I,EAAE+I,QAAQ,UAAU/I,EAAE+I,OAAO,SAAS1I,GAAG,IAAIA,GAAG,iBAAiBA,EAAE,OAAO,EAAG,MAAMC,EAAED,EAAErwD,cAAc,QAAS8tE,GAAG3jE,KAAKkmD,GAAGC,EAAEx4D,SAASu4D,KAAK0d,GAAG5jE,KAAKkmD,GAAGC,EAAEx4D,SAAS,yBAAyBu4D,MAAMC,EAAEx4D,SAAS,WAAWu4D,KAAK,CAA5L,CAA8LL,EAAEl7C,UAAU7W,KAAK2+E,iBAAiB,IAAI/nE,MAAMm7C,EAAEl7C,SAAS,CAACksD,UAAU,UAAU/iE,KAAKq5E,IAAI9W,QAAQxQ,GAAGt5B,MAAM25B,IAAIpyD,KAAKk0E,SAAS,CAACvyE,KAAK,EAAEqK,KAAK,CAACwmC,QAAQ,CAACkoC,UAAU,aAAa3oB,IAAIxN,UAAU1Y,KAAKD,QAAQnT,MAAM,SAAW,CAAC,MAAM25B,GAAGrtD,GAAE,8BAA8BqtD,EAAG,MAAMpyD,KAAKg3E,iBAAiBh3E,KAAKg3E,gBAAgBxb,OAAOrJ,EAAG,CAAC,eAAA8sB,CAAgB7sB,GAAG,IAAIA,EAAE,OAAQ,EAAM,MAAMC,EAAE,CAAC,mBAAmB,sBAAsB,yBAAyB,aAAa,SAAS,YAAY,eAAe,gBAAgB,mBAAmB,YAAY,YAAYF,EAAEC,EAAEvzD,MAAM,MAAMuzD,EAAErwD,cAAc,IAAI8uD,GAAE,EAAM,IAAI,IAAIuB,EAAE,EAAEA,EAAED,EAAErzD,OAAOszD,IAAI,CAAC,MAAML,EAAEI,EAAEC,GAAG5rD,OAAOzE,cAAc,GAAIgwD,GAAG,UAAUA,IAAGA,EAAEhrD,WAAW,YAAuBsrD,EAAEnmD,KAAKkmD,GAAGL,EAAEl4D,SAASu4D,EAAErwD,gBAAgB,CAAC8uD,GAAE,EAAK,KAAK,CAAC,CAAC,OAAQA,CAAC,CAAC,sBAAAmpB,GAAyB,IAAIzG,GAAG,OAAO,MAAMnhB,EAAE,gCAAgC,GAAG1vD,OAAO0vD,GAAG,OAAO8J,GAAE,6EAA6Ex5D,OAAOw8E,6BAA6Bl/E,MAAM0C,OAAO0vD,IAAG,EAAK1vD,OAAOw8E,6BAA6Bl/E,KAAKk8D,GAAE,kCAAkCx5D,OAAO4K,iBAAiB,mBAAmB,KAAK,MAAM8kD,EAAE,WAAWj4D,SAASghF,gBAAgB,SAAS,UAAUn7E,KAAKm/E,qBAAqB/sB,GAAG,WAAWj4D,SAASghF,iBAAiBjf,GAAE,wCAAwCl8D,KAAKs7E,sCAAsCt7E,KAAKo7E,8BAA8Bp7E,KAAKo/E,eAAe,YAAYjlF,SAASghF,kBAAkBjf,GAAE,+DAA+Dl8D,KAAKwwD,sBAAuBxwD,KAAKq/E,2BAA2B,MAAMhtB,EAAE,eAAe3vD,OAAO,WAAW,eAAeA,OAAO4K,iBAAiB+kD,EAAE,KAAK6J,GAAE,wDAAwD,IAAI9J,GAAE,EAAM,MAAMC,EAAE,KAAK,IAAID,EAAE,CAACA,GAAE,EAAK,IAAIpyD,KAAKq5E,KAAKvX,qBAAqB9hE,KAAK8+D,UAAU9+D,KAAKq/D,UAAW,CAAC,MAAM,CAAC,GAAG,IAAIr/D,KAAKs7E,sCAAsCt7E,KAAKo7E,6BAA8B,CAAC,MAAM,CAAC,IAAIp7E,KAAK23E,SAASjG,OAAM,EAAI,CAAC,MAAM,CAAC,MAAMvf,EAAEnyD,KAAKi1E,4BAA4BpkB,EAAE7wD,KAAKs/E,qBAAqB,GAAG,OAAOzuB,GAAGA,GAAG,GAAGA,EAAEsB,EAAE,OAAO+J,GAAE,qBAAqBrL,uBAAuBsB,oCAAoCE,IAAI,MAAMN,EAAE,IAAI/xD,KAAKs1E,YAAY,GAAG/B,IAAI7wE,OAAO68E,uBAAuB,CAAC,MAAMntB,EAAE1vD,OAAO68E,uBAAuBrhF,MAAMgf,QAAQk1C,IAAIA,EAAEtzD,OAAO,IAAIo9D,GAAE,qEAAqEnK,EAAE5mC,WAAWinC,UAAU1vD,OAAO68E,uBAAwB,CAAC,GAAGxtB,EAAEjzD,OAAO,GAAGkB,KAAKq5E,IAAI,IAAI,MAAMjnB,EAAEpyD,KAAKw5E,gBAAgB7P,yBAAyB3pE,KAAKq5E,IAAIrX,iBAAiBjQ,EAAE/xD,KAAK8+D,UAAU9+D,KAAKq/D,gBAAW,EAAOr/D,KAAKsgE,SAASlO,GAAGpyD,KAAKs1E,WAAW,EAAG,CAAC,MAAMljB,GAAG4J,GAAE,kDAAkD5J,EAAG,CAACpyD,KAAKq5E,KAAKr5E,KAAKq5E,IAAI9b,SAASlL,MAAO,MAAMF,EAAE,KAAKsJ,aAAaE,QAAQ,+BAA+B9vB,KAAKD,MAAMhyC,aAAc8I,OAAO4K,iBAAiB,QAAQ6kD,GAAGzvD,OAAO4K,iBAAiB,UAAU6kD,GAAGzvD,OAAO4K,iBAAiB,SAAS6kD,GAAGzvD,OAAO4K,iBAAiB,YAAY6kD,EAAG,CAAC,QAAAqtB,GAAW,IAAI,MAAMptB,EAAEwI,GAAEgB,UAAUK,GAAE,sBAAsB7J,GAAGwI,GAAEiB,WAAY,CAAC,MAAMzJ,GAAGrtD,GAAE,uBAAuBqtD,EAAG,CAAC,CAAC,kBAAM+hB,CAAa/hB,EAAEC,GAAG,MAAMF,EAAEC,GAAGqW,gBAAgB,iBAAiBrW,EAAEqW,eAAe5X,EAAEsB,EAAEC,EAAEqW,eAAerW,GAAG,GAAGL,EAAEM,GAAGwP,gBAAgB1P,EAAEC,EAAEyP,mBAAc,GAAQ7O,EAAEhzD,KAAKq/D,UAAUr/D,KAAKyoE,eAAe,IAAIzoE,KAAKyoE,kBAAkB5X,GAAG,IAAI7wD,KAAKw5E,iBAAiBnP,kBAAkBxZ,EAAG,CAAC,MAAM,CAACqL,GAAE,oBAAoB,CAACuM,eAAe5X,EAAE4uB,kBAAkBzsB,EAAE8L,UAAU9+D,KAAK8+D,aAAayU,IAAIvzE,KAAKw5E,gBAAgB7P,yBAAyB,MAAM1W,QAAQjzD,KAAKq5E,IAAI3X,aAAa1O,GAAG,GAAGnC,EAAE7wD,KAAK8+D,UAAU/M,GAAG,GAAGkB,EAAEysB,cAAczsB,EAAE0sB,gBAAgB,CAAC,MAAMvtB,EAAEa,EAAEysB,cAAc1sB,EAAE,GAAGZ,GAAGA,IAAIY,EAAE,CAAC,MAAMX,EAAE,6BAA6B,GAAGryD,KAAK05E,UAAUrnB,EAAED,EAAE,KAAKmhB,GAAG,IAAI9X,aAAaE,QAAQtJ,EAAED,EAAG,CAAC,MAAMA,GAAG8J,GAAE,qDAAqD9J,EAAG,CAAC8J,GAAE,wEAAwE9J,6BAA6BY,KAAM,CAAC,CAAC,OAAOA,GAAG,EAAE,CAAC,iBAAA4sB,GAAoB,MAAO,IAAI,MAAM,IAAI,OAAO5/E,KAAKw5E,iBAAiBzO,mBAAmBG,MAAM,CAAA,CAAE,CAAC,MAAM,MAAO,CAAA,CAAE,CAAE,EAApF,MAA2FlrE,KAAKyoE,eAAe,CAAC,WAAM1wD,GAAQ,IAAIw7D,GAAG,OAAO,GAAGvzE,KAAK0zE,UAAU,YAAYxX,GAAE,gEAAgEl8D,KAAK0zE,WAAU,EAAK1zE,KAAKi5E,uBAAuB,OAAOj5E,KAAK81E,0BAA0B91E,KAAK81E,0BAA0BjqC,KAAKD,MAAM5rC,KAAKg5E,QAAQ,UAAUh5E,KAAK6/E,gBAAgB7/E,KAAKu2E,kBAAkB7zE,OAAO+2D,YAAY,KAAK,IAAI,GAAG,oBAAoBt/D,UAAU,YAAYA,SAASghF,gBAAgB,OAAO,IAAIn7E,KAAK8+D,YAAY9+D,KAAKq5E,IAAI,OAAOr5E,KAAKq5E,IAAItX,oBAAoB/hE,KAAK8+D,UAAU9+D,KAAKq/D,UAAW,CAAC,MAAM,GAAGr/D,KAAKw2E,uBAAuBx2E,KAAKs3E,2BAA2Bt3E,KAAK20E,wBAAwB30E,KAAKu3E,2BAA2Bv3E,KAAK40E,wBAAwB50E,KAAKy3E,qBAAqBz3E,KAAK29E,0BAA0B39E,KAAK03E,mBAAmB13E,KAAKg1E,gBAAgBh1E,KAAKw3E,yBAAyBx3E,KAAK0+E,oBAAoB1+E,KAAK8+E,yBAAyB9+E,KAAKq5E,IAAIrW,WAAWhjE,KAAK8+D,UAAU9+D,KAAKq/D,WAAW,MAAMhN,EAAE,KAAK,GAAGryD,KAAKu4E,eAAe,YAAYrc,GAAE,0DAA0DA,GAAE,4CAA4Cl8D,KAAKy4E,YAAY3qB,GAAO,MAAMuE,EAAEvE,GAAO,CAACvd,KAAK6hB,IAAIpyD,KAAK8/E,kBAAkB1tB,GAAG,IAAIA,EAAEzwD,MAAMu6D,GAAE,iCAAgC,IAAKrwB,MAAMwvB,kBAAmB/yD,iBAAiBtI,KAAKu5E,iBAAiBzT,4BAAuB,EAAO58D,gBAAW,EAAO+kD,cAAc,kBAAkBjuD,KAAKu5E,iBAAiB3T,mBAAmBnkE,iBAAiB,CAACwtD,UAAS,EAAKptD,MAAK,EAAKuxC,UAAS,EAAKsb,OAAM,EAAKt2C,QAAO,EAAKy2C,KAAI,EAAKrsD,KAAI,EAAKosD,QAAO,EAAKH,MAAK,EAAKK,MAAK,EAAKH,OAAM,EAAKI,MAAK,GAAMntD,YAAY,CAACwwD,EAAEC,KAAK,MAAMF,EAAE,IAAInwD,OAAOowD,EAAEtzD,QAAQ,GAAG,IAAI,MAAM+xD,EAAE7wD,KAAKu5E,iBAAiB3T,mBAAmB,OAAOvT,aAAa0tB,YAAY,kBAAkBlvB,EAAEsB,EAAEnyD,KAAKu5E,iBAAiBtT,sBAAsB5T,GAAGD,EAAED,EAAEA,CAAC,CAAC,MAAM,OAAOA,CAAC,GAAG/gD,eAAe,GAAGgvC,cAAa,EAAMn3C,kBAAiB,EAAKo6C,0BAAyB,EAAMh6C,aAAarJ,KAAKqJ,aAAaqtC,SAAS12C,KAAKqJ,aAAa,CAACgC,OAAO,QAAG,EAAOlC,eAAenJ,KAAKqJ,aAAa,CAAC1H,KAAK,aAAa4K,QAAQ,SAAI,EAAO6tC,MAAM,CAAC38B,MAAM20C,IAAI,IAAI,GAAG,kBAAkBpyD,KAAKu5E,iBAAiB3T,mBAAmB,OAAO,MAAMvT,EAAE,oBAAoBl4D,SAASA,SAASiC,cAAc,mBAAmBg2D,EAAE/xD,QAAQ,KAAQgyD,GAAGA,aAAa0tB,cAAa//E,KAAKu5E,iBAAiBtT,sBAAsB5T,UAAK,IAASD,EAAEvwD,OAAOuwD,EAAEvwD,KAAK,IAAIG,OAAOowD,EAAEvwD,MAAM/C,QAAQ,SAAI,IAASszD,EAAEv6D,QAAQu6D,EAAEv6D,MAAM,IAAImK,OAAOowD,EAAEv6D,OAAOiH,QAAQ,KAAM,CAAC,MAAM,MAAMkB,KAAKu4E,eAAelmB,GAAG,KAAK,IAAIryD,KAAK24E,oBAAoB5lB,UAAU/yD,KAAK24E,mBAAmB,IAAI5mB,GAAEK,IAAI,IAAIpyD,KAAKy4E,aAAa,mBAAmBz4E,KAAKy4E,YAAYpoB,gBAAgBrwD,KAAKy4E,YAAYpoB,eAAe,kBAAkB+B,EAAG,CAAC,MAAM,IAAIpyD,KAAK24E,mBAAmBjmB,oBAAoBv4D,SAAU,CAAC,MAAM,CAAC,IAAI6F,KAAK44E,2BAA2B7lB,UAAU/yD,KAAK44E,0BAA0B,IAAIz8D,GAAEi2C,IAAI,IAAIpyD,KAAKs1E,WAAWn2E,KAAK,CAACwC,KAAK,EAAEqK,KAAK,CAACskD,IAAI,iBAAiB9d,QAAQ4f,GAAG7N,UAAU1Y,KAAKD,QAAQ5rC,KAAKo/E,aAAc,CAAC,MAAM,IAAI,oBAAoBz8E,UAAU3C,KAAK44E,0BAA0BlmB,oBAAoBv4D,SAASwI,SAAS7E,KAAM,CAAC,MAAM,CAAC,IAAIkC,KAAK64E,iBAAiB9lB,UAAU/yD,KAAK64E,gBAAgB,IAAIngB,GAAEtG,IAAI,IAAIpyD,KAAKy4E,aAAa,mBAAmBz4E,KAAKy4E,YAAYpoB,gBAAgBrwD,KAAKy4E,YAAYpoB,eAAe,cAAc+B,EAAG,CAAC,MAAM,GAAGA,IAAI,IAAI,OAAOpyD,KAAKy4E,aAAa7vE,QAAQzI,MAAMiyD,KAAK,CAAC,CAAC,MAAM,OAAQ,CAAC,GAAGA,IAAI,IAAIpyD,KAAKy4E,aAAa,mBAAmBz4E,KAAKy4E,YAAYpoB,gBAAgBrwD,KAAKy4E,YAAYpoB,eAAe,UAAU+B,EAAG,CAAC,MAAM,GAAGA,IAAI,IAAIpyD,KAAKy4E,aAAa,mBAAmBz4E,KAAKy4E,YAAYpoB,gBAAgBrwD,KAAKy4E,YAAYpoB,eAAe,aAAa+B,EAAG,CAAC,MAAM,GAAGA,IAAI,IAAIpyD,KAAKy4E,aAAa,mBAAmBz4E,KAAKy4E,YAAYpoB,gBAAgBrwD,KAAKy4E,YAAYpoB,eAAe,cAAc+B,EAAG,CAAC,MAAM,GAAGA,IAAI,IAAIpyD,KAAKy4E,aAAa,mBAAmBz4E,KAAKy4E,YAAYpoB,gBAAgBrwD,KAAKy4E,YAAYpoB,eAAeoG,GAAErE,EAAG,CAAC,MAAM,IAAImhB,IAAIvzE,KAAK64E,gBAAgB9gE,MAAM5d,SAASuI,OAAQ,CAAC,MAAM,CAAC,IAAI,GAAG6wE,GAAG,CAACvzE,KAAK84E,oBAAoBp2E,OAAOuK,oBAAoB,QAAQjN,KAAK84E,oBAAmB,GAAI94E,KAAK+4E,gBAAgB3uB,QAAQ,MAAMgI,EAAE,IAAIhiB,IAAI,CAAC,MAAM,SAAS,OAAO,SAAS,QAAQ,QAAQ,WAAWpwC,KAAK84E,mBAAmBzmB,IAAI,IAAI,MAAMF,EAAEE,EAAEjnB,OAAO,IAAI+mB,IAAIA,EAAEzwD,UAAU0wD,EAAErxD,IAAIoxD,EAAEzwD,SAAS,OAAO,MAAMmvD,EAAEsB,EAAEpjD,KAAKojD,EAAEr0D,MAAM,GAAG,IAAI+yD,GAAG7wD,KAAK+4E,gBAAgBh4E,IAAI8vD,GAAG,OAAO,GAAG7wD,KAAK+4E,gBAAgBv4D,MAAM,IAAI,OAAOxgB,KAAK+4E,gBAAgB73E,IAAI2vD,GAAG,IAAIkB,GAAG,EAAE,IAAIA,EAAE/xD,KAAKy4E,aAAa7vE,QAAQzI,MAAMgyD,KAAK,CAAE,CAAC,MAAMJ,GAAG,CAAE,CAAC/xD,KAAKy4E,aAAa,mBAAmBz4E,KAAKy4E,YAAYpoB,gBAAgBrwD,KAAKy4E,YAAYpoB,eAAeoG,GAAE,CAACp2D,GAAG0xD,EAAEzB,IAAI6B,EAAEzwD,QAAQK,cAAcS,IAAIquD,GAAI,CAAC,MAAM,GAAGnuD,OAAO4K,iBAAiB,QAAQtN,KAAK84E,oBAAmB,EAAI,CAAC,CAAC,MAAM,GAAG,GAAG5c,GAAE,uBAAuB/hE,SAASuY,cAAc,aAAavY,SAASuY,YAAY,gBAAgBvY,SAASuY,WAAWwpD,GAAE,iBAAiB/hE,SAASuY,+CAA+C2/C,QAAS,CAAC6J,GAAE,wDAAwD,MAAM9J,EAAE,KAAK,gBAAgBj4D,SAASuY,YAAY,aAAavY,SAASuY,cAAcwpD,GAAE,iBAAiB/hE,SAASuY,mCAAmC2/C,KAAI,GAAM,GAAGD,IAAI,OAAOj4D,SAASmT,iBAAiB,mBAAmB,KAAK4uD,GAAE,iDAAiD7J,KAAM,CAACkH,MAAK,IAAO,MAAMpH,EAAEsH,YAAY,KAAKrH,KAAKoH,cAAcrH,IAAK,IAAIt/C,WAAW,IAAI2mD,cAAcrH,GAAG,IAAK,CAAC,CAAC,oBAAAgtB,CAAqB/sB,GAAG,IAAI,MAAMC,EAAE,CAAC1wD,KAAK,EAAEqK,KAAK,CAACskD,IAAI,cAAc9d,QAAQ,CAAC6e,MAAMe,IAAI7N,UAAU1Y,KAAKD,OAAO5rC,KAAKs1E,WAAWn2E,KAAKkzD,EAAG,CAAC,MAAM,CAAC,CAAC,eAAA2tB,CAAgB5tB,GAAG,IAAI,MAAMC,EAAE,CAAC1wD,KAAK,EAAEqK,KAAK,CAACskD,IAAI,SAAS9d,QAAQ,CAAC6e,MAAMe,IAAI7N,UAAU1Y,KAAKD,OAAO5rC,KAAKs1E,WAAWn2E,KAAKkzD,EAAG,CAAC,MAAM,CAAC,CAAC,wBAAAgtB,GAA2B,GAAG9L,GAAG,CAAC,IAAI,mBAAmBp5E,SAAS8lF,UAAU9lF,SAAS8lF,aAAajgF,KAAKggF,gBAAgB,WAAWhgF,KAAK62E,sBAAsB,UAAW,CAAC,MAAM,CAACn0E,OAAO4K,iBAAiB,OAAO,IAAItN,KAAKkgF,gBAAe,GAAOx9E,OAAO4K,iBAAiB,QAAQ,IAAItN,KAAKmgF,iBAAgB,EAAO,CAAC,CAAC,YAAAD,GAAe3M,KAAK,OAAOvzE,KAAK22E,uBAAuB7jE,aAAa9S,KAAK22E,uBAAuB32E,KAAK22E,sBAAsBj0E,OAAOmQ,WAAW,KAAK7S,KAAK22E,sBAAsB,KAAK,IAAI,GAAG,mBAAmBx8E,SAAS8lF,UAAU9lF,SAAS8lF,WAAW,OAAO,GAAG,YAAYjgF,KAAK62E,sBAAsB,OAAO72E,KAAKggF,gBAAgB,WAAWhgF,KAAK62E,sBAAsB,SAAU,CAAC,MAAM,GAAG72E,KAAK42E,qBAAsB,CAAC,aAAAuJ,GAAgB,GAAG5M,KAAK,OAAOvzE,KAAK22E,wBAAwB7jE,aAAa9S,KAAK22E,uBAAuB32E,KAAK22E,sBAAsB,MAAM,YAAY32E,KAAK62E,uBAAuB,IAAI72E,KAAKggF,gBAAgB,WAAWhgF,KAAK62E,sBAAsB,SAAU,CAAC,MAAM,CAAC,CAAC,gBAAArmB,GAAmBxwD,KAAK04E,qBAAqB5lE,aAAa9S,KAAK04E,qBAAqB14E,KAAK04E,oBAAoBh2E,OAAOmQ,WAAW,KAAKy4C,sBAAsB,KAAKA,sBAAsB,KAAK,IAAItrD,KAAKy4E,aAAa,mBAAmBz4E,KAAKy4E,YAAYjoB,kBAAkBxwD,KAAKy4E,YAAYjoB,mBAAmB0L,GAAE,iDAAiDl8D,KAAK24E,oBAAoBjmB,oBAAoBv4D,UAAU,oBAAoBwI,UAAU3C,KAAK44E,2BAA2BlmB,oBAAoBv4D,SAASwI,SAAS7E,OAAOk+D,GAAE,uDAAwD,CAAC,MAAM5J,GAAGrtD,GAAE,iCAAiCqtD,EAAG,OAAS,IAAK,CAAC,UAAMwf,SAAa5xE,KAAKk6E,oBAAoB3G,KAAKvzE,KAAKi2E,gBAAgBzc,cAAcx5D,KAAKi2E,eAAej2E,KAAKi2E,cAAc,MAAMj2E,KAAKu2E,oBAAoB/c,cAAcx5D,KAAKu2E,mBAAmBv2E,KAAKu2E,kBAAkB,MAAMv2E,KAAKu4E,iBAAiBv4E,KAAKu4E,iBAAiBv4E,KAAKu4E,eAAe,MAAMv4E,KAAK04E,sBAAsB5lE,aAAa9S,KAAK04E,qBAAqB14E,KAAK04E,oBAAoB,MAAM14E,KAAK24E,qBAAqB34E,KAAK24E,mBAAmB5lB,UAAU/yD,KAAK24E,mBAAmB,MAAM34E,KAAK44E,4BAA4B54E,KAAK44E,0BAA0B7lB,UAAU/yD,KAAK44E,0BAA0B,MAAM54E,KAAK64E,kBAAkB74E,KAAK64E,gBAAgB9lB,UAAU/yD,KAAK64E,gBAAgB,MAAM74E,KAAK84E,oBAAoB,oBAAoBp2E,SAASA,OAAOuK,oBAAoB,QAAQjN,KAAK84E,oBAAmB,GAAM94E,KAAK84E,mBAAmB,MAAM,OAAO94E,KAAK22E,wBAAwB7jE,aAAa9S,KAAK22E,uBAAuB32E,KAAK22E,sBAAsB,MAAM32E,KAAKy4E,YAAY,KAAKz4E,KAAKg/E,yBAAyBh/E,KAAK48E,4BAA4B58E,KAAKo5E,2BAA2Bp5E,KAAKo5E,yBAAyBh3B,aAAapiD,KAAKo5E,yBAAyB,MAAMp5E,KAAKm5E,gBAAgB73E,QAAS,CAAC,cAAM4yE,CAAS9hB,GAAG,GAAGmhB,IAAIvzE,KAAK26E,yBAAyBvoB,GAAG,iBAAiBA,EAAE,CAAC,GAAG,IAAIA,EAAEzwD,KAAK,CAAC,MAAM0wD,IAAID,EAAEpmD,KAAKmmD,KAAKC,EAAEpmD,OAAOomD,EAAEpmD,KAAK+T,MAAMm8C,GAAE7J,GAAGF,EAAE,iCAAiCE,cAAcF,eAAeC,EAAEpmD,MAAM+T,MAAMpe,OAAO,2CAA2C0wD,cAAcF,yBAA0B,CAACnyD,KAAKs1E,WAAWx2E,QAAQkB,KAAKs5E,iBAAiBt5E,KAAKs1E,WAAW5iD,QAAQwpC,GAAE,gDAAgDl8D,KAAKs1E,WAAWn2E,KAAKizD,GAAG,IAAIA,EAAEzwD,MAAMu6D,GAAE,kDAAkDl8D,KAAKo/E,eAAep/E,KAAKs1E,WAAWx2E,QAAQ,GAAGkB,KAAKs5E,iBAAiBpd,GAAE,YAAYl8D,KAAKs1E,WAAWx2E,UAAUkB,KAAKs5E,8CAA8Ct5E,KAAKo/E,cAAe,MAAMljB,GAAE,6BAA6B9J,EAAG,CAAC,kBAAAktB,GAAqB,MAAMltB,EAAEpyD,KAAK+1E,wBAAwB/1E,KAAKw4E,iBAAiB,IAAIpmB,EAAE,OAAO,KAAK,MAAMC,EAAEryD,KAAKs1E,WAAW7nD,OAAO2kC,GAAGA,GAAGA,EAAE7N,WAAW,GAAG,IAAI8N,EAAEvzD,OAAO,OAAO,KAAK,MAAMqzD,EAAEE,EAAE59B,OAAO,CAAC29B,EAAEC,KAAKD,GAAGC,EAAE9N,WAAW8N,EAAE9N,UAAU6N,EAAE7N,UAAU8N,EAAED,EAAE,MAAM,IAAID,IAAIA,EAAE5N,UAAU,OAAO,KAAK,MAAMsM,EAAEsB,EAAE5N,UAAU6N,EAAE,OAAOvB,GAAG,EAAEA,EAAE,IAAI,CAAC,8BAAAkqB,GAAiC,MAAM3oB,EAAEpyD,KAAKi1E,4BAA4B5iB,EAAEryD,KAAKs/E,qBAAqB,SAAU,OAAOjtB,GAAGA,GAAG,GAAGA,EAAED,KAAK8J,GAAE,qBAAqB7J,uBAAuBD,wBAAuB,EAAK,CAAC,aAAAytB,GAAgB,IAAItM,GAAG,OAAOvzE,KAAKi2E,gBAAgBzc,cAAcx5D,KAAKi2E,eAAej2E,KAAKi2E,cAAc,MAAM,MAAM7jB,EAAE,SAASpyD,KAAKq2E,UAAUr2E,KAAKm2E,uBAAuBn2E,KAAKk2E,uBAAuBl2E,KAAKi2E,cAAcvzE,OAAO+2D,YAAY,KAAKz5D,KAAKo/E,cAAcp/E,KAAKq5E,IAAItZ,wBAAyB3N,EAAG,CAAC,oBAAAguB,CAAqBhuB,GAAG,MAAMC,EAAExmB,KAAKD,MAAMwmB,IAAIpyD,KAAKs2E,kBAAkBjkB,EAAEryD,KAAKo2E,qBAAqB,MAAMjkB,EAAEE,EAAEryD,KAAKs2E,kBAAkB,OAAO,OAAOnkB,IAAInyD,KAAKq2E,YAAYr2E,KAAKq2E,UAAUlkB,EAAEnyD,KAAK6/E,gBAAiB,CAAC,iBAAMT,GAAc,GAAGp/E,KAAKg2E,aAAa,OAAO,GAAGh2E,KAAKm/D,oBAAoB,OAAO,IAAG,IAAOn/D,KAAKg5E,SAAS,IAAIh5E,KAAKs1E,WAAWx2E,OAAO,OAAO,MAAMszD,EAAEpyD,KAAKs1E,WAAWppE,KAAKkmD,GAAGA,GAAG,IAAIA,EAAEzwD,MAAM0wD,EAAEryD,KAAKi1E,4BAA4B9iB,EAAEnyD,KAAKs/E,qBAAqB,GAAG,OAAOntB,GAAGA,GAAG,GAAGA,EAAEE,IAAID,EAAE,OAAO8J,GAAE,qBAAqB/J,uBAAuBE,wBAAwBx/C,WAAW,KAAK7S,KAAKo/E,eAAgB,KAAKp/E,KAAKg2E,cAAa,EAAK,IAAI,MAAM5jB,EAAEpyD,KAAKs1E,WAAWjjB,EAAED,EAAE3kC,OAAO2kC,GAAGA,GAAG,IAAIA,EAAEzwD,MAAM,GAAG3B,KAAKs1E,WAAW,GAAGjjB,EAAEvzD,OAAO,GAAGy0E,KAAK7wE,OAAO68E,uBAAuBltB,EAAEx/C,WAAW,YAAYnQ,OAAO68E,wBAAyB,MAAMntB,EAAEtzD,OAAO,EAAE,CAACo9D,GAAE,mBAAmB9J,GAAG,MAAMC,EAAED,EAAE3kC,OAAO2kC,GAAG,IAAIA,EAAEzwD,MAAM0wD,EAAEvzD,OAAO,GAAGo9D,GAAE,mBAAmB7J,EAAEvzD,0CAA0C,IAAI,MAAMuzD,EAAEryD,KAAKw5E,gBAAgB7P,yBAAyBxX,QAAQnyD,KAAKq5E,IAAIhY,kBAAkBjP,EAAEpyD,KAAK8+D,UAAU9+D,KAAKq/D,UAAUr/D,KAAKsgE,SAASjO,GAAGxB,EAAE3yD,MAAMgf,QAAQi1C,IAAIA,EAAEjmD,KAAKkmD,GAAGA,IAAG,IAAKA,EAAEiuB,kBAAkBrgF,KAAKogF,qBAAqBvvB,EAAG,CAAC,MAAMuB,GAAG,MAAMC,EAAEt3D,OAAOq3D,GAAGv7C,SAASu7C,GAAG,IAAI,GAAGC,EAAEx4D,SAAS,oCAAoCmiE,GAAE,yFAAyF,GAAG3J,EAAEx4D,SAAS,QAAQw4D,EAAEx4D,SAAS,qBAAqBmiE,GAAE,qDAAsD,CAAC,KAAK3J,EAAEx4D,SAAS,0BAA0Bw4D,EAAEx4D,SAAS,oBAAoBw4D,EAAEx4D,SAAS,iBAAiBw4D,EAAEx4D,SAAS,0BAA0Bw4D,EAAEx4D,SAAS,oBAAoB,iBAAiBu4D,GAAGz1D,MAAM,eAAey1D,GAAGz1D,MAAM,MAAMy1D,EAAE4J,GAAE,yFAA0F,CAAC,CAAC,OAAOh8D,KAAKi7E,iCAAiCj7E,KAAK4+E,yBAAyB5+E,KAAKg9E,2BAA4B,CAAC,QAAQh9E,KAAKg2E,cAAa,CAAM,CAAC,CAAC,kBAAAsK,CAAmBluB,GAAG,GAAG,IAAIA,EAAEzwD,KAAK,OAAQ,EAAM,MAAM0wD,EAAED,EAAEpmD,MAAMtP,OAAO,MAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI7C,SAASw4D,EAAE,CAAC,eAAAkuB,CAAgBnuB,GAAG,MAAMC,EAAEryD,KAAKsgF,mBAAmBluB,GAAGD,EAAEC,EAAE7N,WAAW1Y,KAAKD,MAAM,GAAGymB,EAAE,CAAC,MAAMD,GAAE,IAAOpyD,KAAKg5E,QAAQh5E,KAAKi5E,uBAAuB9mB,EAAE,OAAOnyD,KAAK81E,4BAA4B91E,KAAK81E,0BAA0B3jB,GAAGC,GAAG8J,GAAE,gDAAgDl8D,KAAKg5E,SAAQ,EAAMh5E,KAAKy4E,aAAa,mBAAmBz4E,KAAKy4E,YAAYjoB,mBAAmBxwD,KAAKy4E,YAAYjoB,mBAAmB0L,GAAE,oDAAoD,YAAYl8D,KAAKg5E,UAAUh5E,KAAKg5E,SAAQ,EAAO,MAAM,IAAG,IAAOh5E,KAAKg5E,QAAQ,CAAC,MAAM5mB,EAAED,EAAEnyD,KAAKi5E,uBAAuB7mB,EAAEpyD,KAAKk5E,oBAAoBhd,GAAE,6BAA6B32D,KAAKu0D,MAAM1H,EAAE,oEAAoE8J,GAAE,gCAAgC32D,KAAKu0D,MAAM95D,KAAKy2E,wBAAwB,+BAA+BlxE,KAAKu0D,OAAO95D,KAAKy2E,wBAAwBrkB,GAAG,oBAAoBpyD,KAAKg5E,SAAQ,EAAKh5E,KAAKo/E,cAAe,CAAC,CAAC,uBAAMU,CAAkB1tB,GAAG,GAAGmhB,IAAIvzE,KAAK26E,yBAAyBvoB,GAAG,iBAAiBA,GAAG,GAAGpyD,KAAKugF,gBAAgBnuB,IAAG,IAAOpyD,KAAKg5E,SAAS,IAAI5mB,EAAEzwD,MAAM3B,KAAKsgF,mBAAmBluB,GAAG,CAAC,GAAG,IAAIA,EAAEzwD,KAAK,CAAC,MAAM0wD,IAAID,EAAEpmD,KAAKmmD,KAAKC,EAAEpmD,OAAOomD,EAAEpmD,KAAK+T,MAAMm8C,GAAE7J,GAAGF,EAAE,iCAAiCE,cAAcF,eAAeC,EAAEpmD,MAAM+T,MAAMpe,OAAO,2CAA2C0wD,cAAcF,yBAA0B,CAACnyD,KAAKs1E,WAAWx2E,QAAQkB,KAAKs5E,iBAAiBt5E,KAAKs1E,WAAW5iD,QAAQwpC,GAAE,gDAAgDl8D,KAAKs1E,WAAWn2E,KAAKizD,GAAG,IAAIA,EAAEzwD,MAAMu6D,GAAE,kDAAkDl8D,KAAKo/E,gBAAe,IAAOp/E,KAAKg5E,SAASh5E,KAAKs1E,WAAWx2E,QAAQ,GAAGkB,KAAKs5E,iBAAiBpd,GAAE,YAAYl8D,KAAKs1E,WAAWx2E,UAAUkB,KAAKs5E,8CAA8Ct5E,KAAKo/E,cAAe,OAAOljB,GAAE,uCAAuC9J,EAAG,CAAC,qBAAAouB,GAAwB,IAAIjN,GAAG,OAAQ,EAAM,IAAI,MAAMnhB,EAAE,0BAA0B,OAAOyY,eAAelP,QAAQvJ,EAAEA,GAAGyY,eAAe/O,WAAW1J,IAAG,CAAE,CAAC,MAAM,OAAQ,CAAK,CAAC,CAAC,mBAAAquB,GAAsB,IAAIlN,GAAG,OAAQ,EAAM,IAAI,MAAMnhB,EAAE,wBAAwB,OAAOqJ,aAAaE,QAAQvJ,EAAEA,GAAGqJ,aAAaK,WAAW1J,IAAG,CAAE,CAAC,MAAM,OAAQ,CAAK,CAAC,CAAC,uBAAAsuB,GAA0B,IAAI1gF,KAAKwgF,wBAAwB,OAAO,KAAK,IAAI,OAAO3V,eAAenP,QAAQ17D,KAAK25E,uBAAuB,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC,qBAAAgH,CAAsBvuB,GAAG,GAAGpyD,KAAKwgF,wBAAwB,IAAI3V,eAAelP,QAAQ37D,KAAK25E,uBAAuBvnB,GAAG8J,GAAE,sCAAsC9J,IAAK,CAAC,MAAMA,GAAG4J,GAAE,8CAA8C5J,EAAG,CAAC,CAAC,0BAAAwuB,GAA6B,GAAG5gF,KAAKwgF,wBAAwB,IAAI3V,eAAe/O,WAAW97D,KAAK25E,uBAAwB,CAAC,MAAMvnB,GAAG4J,GAAE,iDAAiD5J,EAAG,CAAC,CAAC,uBAAAyuB,GAA0B,IAAI7gF,KAAKwgF,wBAAwB,OAAQ,EAAM,IAAI,MAAO,SAAS3V,eAAenP,QAAQ17D,KAAK45E,mCAAmC,CAAC,MAAM,OAAQ,CAAK,CAAC,CAAC,uBAAAkH,CAAwB1uB,GAAG,GAAGpyD,KAAKwgF,wBAAwB,IAAIpuB,EAAEyY,eAAelP,QAAQ37D,KAAK45E,mCAAmC,QAAQ/O,eAAe/O,WAAW97D,KAAK45E,mCAAoC,CAAC,MAAMxnB,GAAG4J,GAAE,4CAA4C5J,EAAG,CAAC,CAAC,mBAAA0nB,GAAsB,IAAIvG,GAAG,OAAOtiB,KAAK,MAAMmB,EAAEpyD,KAAK0gF,0BAA0BvuB,EAAEnyD,KAAK6gF,0BAA0B,GAAGzuB,IAAID,EAAE,OAAO+J,GAAE,6CAA6C9J,KAAKpyD,KAAK2gF,sBAAsBvuB,GAAGpyD,KAAK8gF,yBAAwB,GAAM1uB,EAAE,CAAC,MAAMA,EAAEnB,KAAK,OAAOiL,GAAE,0BAA0B9J,+BAA+BpyD,KAAK2gF,sBAAsBvuB,GAAGpyD,KAAK8gF,yBAAwB,GAAM1uB,CAAC,CAAC,CAAC,yBAAA2nB,GAA4BxG,IAAI7wE,OAAO4K,iBAAiB,eAAe,KAAKtN,KAAKwgF,0BAA0BxgF,KAAK8gF,yBAAwB,GAAO5kB,GAAE,wDAAyD,CAAC7wB,SAAQ,GAAQ,CAAC,SAAAquC,CAAUtnB,EAAEC,EAAEF,GAAG,GAAGohB,GAAG,IAAI,MAAM1iB,EAAE,IAAIhlB,KAAKglB,EAAEkwB,QAAQlwB,EAAE/iB,UAAU,GAAGqkB,EAAE,GAAG,GAAG,KAAK,MAAMJ,EAAE,WAAWlB,EAAEmwB,gBAAgB7mF,SAAS8mF,OAAO,GAAG7uB,KAAKC,KAAKN,wBAAwB0J,aAAaE,QAAQvJ,EAAEC,GAAG6J,GAAE,gCAAgC9J,IAAK,CAAC,MAAMD,GAAG,IAAIsJ,aAAaE,QAAQvJ,EAAEC,GAAG6J,GAAE,uCAAuC9J,IAAK,CAAC,MAAMA,GAAGrtD,GAAE,2DAA2DqtD,EAAG,CAAC,CAAC,CAAC,SAAAqnB,CAAUrnB,GAAG,IAAImhB,GAAG,OAAO,KAAK,IAAI,MAAMlhB,EAAED,EAAE,IAAID,EAAEh4D,SAAS8mF,OAAOpiF,MAAM,KAAK,IAAI,IAAIgyD,EAAE,EAAEA,EAAEsB,EAAErzD,OAAO+xD,IAAI,CAAC,IAAIkB,EAAEI,EAAEtB,GAAG,KAAK,MAAMkB,EAAEpqD,OAAO,IAAIoqD,EAAEA,EAAE/sD,UAAU,EAAE+sD,EAAEjzD,QAAQ,GAAG,IAAIizD,EAAEnuD,QAAQyuD,GAAG,CAAC,MAAMF,EAAEJ,EAAE/sD,UAAUqtD,EAAEvzD,OAAOizD,EAAEjzD,QAAQ,OAAOo9D,GAAE,iBAAiB9J,KAAKD,CAAC,CAAC,CAAC,MAAMtB,EAAE4K,aAAaC,QAAQtJ,GAAG,OAAOvB,GAAGqL,GAAE,yCAAyC9J,KAAKvB,GAAG,IAAI,CAAC,MAAMwB,GAAG,IAAI,MAAMA,EAAEoJ,aAAaC,QAAQtJ,GAAG,GAAGC,EAAE,OAAO6J,GAAE,6CAA6C9J,KAAKC,CAAC,CAAC,MAAMD,GAAGrtD,GAAE,iDAAiDqtD,EAAG,CAAC,OAAO,IAAI,CAAC,CAAC,YAAA8uB,CAAa9uB,GAAG,GAAGmhB,GAAG,CAAC,IAAIp5E,SAAS8mF,OAAO,GAAG7uB,kEAAkE8J,GAAE,mBAAmB9J,IAAK,CAAC,MAAMC,GAAGttD,GAAE,4BAA4BqtD,IAAIC,EAAG,CAAC,IAAIoJ,aAAaK,WAAW1J,GAAG8J,GAAE,8BAA8B9J,IAAK,CAAC,MAAMC,GAAGttD,GAAE,uCAAuCqtD,IAAIC,EAAG,CAAC,CAAC,CAAC,MAAA8uB,GAAS,GAAG5N,GAAG,IAAI,MAAMnhB,EAAE,6BAA6BpyD,KAAKkhF,aAAa9uB,GAAG,MAAMD,EAAE,yBAAyBnyD,KAAKohF,oBAAoBjvB,GAAGnyD,KAAKq/D,UAAU,KAAKr/D,KAAKyoE,eAAe,GAAGzoE,KAAKq/D,UAAUpO,KAAKjxD,KAAK05E,UAAU,6BAA6B15E,KAAKq/D,UAAU,KAAKr/D,KAAK8+D,UAAU9+D,KAAKqhF,iBAAiBlvB,GAAGnyD,KAAKsgE,SAASrP,KAAKjxD,KAAK2gF,sBAAsB3gF,KAAKsgE,UAAUtgE,KAAKq5E,IAAIrZ,mBAAmBhgE,KAAK8+D,UAAU9+D,KAAKq/D,WAAWr/D,KAAKwwD,mBAAmByL,GAAE,oEAAqE,CAAC,MAAM7J,GAAGrtD,GAAE,uBAAuBqtD,EAAG,CAAC,CAAC,YAAMkvB,CAAOlvB,SAASpyD,KAAKk6E,oBAAoB3G,GAAGvzE,KAAKu5E,iBAAiB,IAAI9U,GAAGrS,GAAG4J,GAAE,sDAAuD,CAAC,iBAAAulB,CAAkBnvB,GAAGpyD,KAAKu5E,iBAAiBpU,kBAAkB/S,GAAGpyD,KAAKu4E,gBAAgBv4E,KAAKwhF,yBAA0B,CAAC,mBAAAtM,CAAoB9iB,GAAGpyD,KAAKu5E,iBAAiBtU,oBAAoB7S,GAAGpyD,KAAKu4E,gBAAgBv4E,KAAKwhF,yBAA0B,CAAC,uBAAAA,GAA0BxhF,KAAKu4E,iBAAiBv4E,KAAKu4E,iBAAiBv4E,KAAK+X,QAAS,CAAC,mBAAA4tD,GAAsB,OAAO3lE,KAAKu5E,iBAAiB5T,qBAAqB,CAAC,mBAAAE,GAAsB,OAAO7lE,KAAKu5E,iBAAiB1T,qBAAqB,CAAC,YAAAX,CAAa9S,GAAGpyD,KAAKu5E,iBAAiBrU,aAAa9S,GAAGpyD,KAAKu4E,gBAAgBv4E,KAAKwhF,yBAA0B,CAAC,qBAAA/b,GAAwBzlE,KAAKu5E,iBAAiB9T,wBAAwBzlE,KAAKu4E,gBAAgBv4E,KAAKwhF,yBAA0B,CAAC,sBAAA7G,GAAyB,IAAIpH,GAAG,OAAO,MAAMnhB,EAAE,yBAAyBD,EAAEtmB,KAAKD,MAAMilB,EAAE7wD,KAAKyhF,iBAAiBrvB,GAAG,IAAIvB,IAAIA,EAAEiO,UAAU,OAAO9+D,KAAKqhF,iBAAiBjvB,GAAGpyD,KAAKsgE,SAASrP,KAAKjxD,KAAK2gF,sBAAsB3gF,KAAKsgE,UAAUtgE,KAAKq5E,IAAIrZ,mBAAmBhgE,KAAK8+D,UAAU9+D,KAAKq/D,WAAWr/D,KAAKwwD,wBAAwB0L,GAAE,4CAA4Cl8D,KAAK8+D,aAAa9+D,KAAK0hF,sBAAsBtvB,EAAED,EAAEtB,EAAEiO,UAAUjO,EAAE8wB,sBAAuB,CAAC,oBAAA9H,GAAuB,IAAItG,GAAG,OAAOtiB,KAAK,MAAMmB,EAAE,yBAAyBD,EAAEtmB,KAAKD,MAAMilB,EAAE7wD,KAAKyhF,iBAAiBrvB,GAAG,IAAIvB,IAAIA,EAAEiO,UAAU,CAAC,MAAMzM,EAAEryD,KAAKqhF,iBAAiBjvB,GAAG,OAAOpyD,KAAKq5E,IAAIrZ,mBAAmB3N,EAAEryD,KAAKq/D,WAAWhN,CAAC,CAAC,MAAMN,EAAEI,EAAEtB,EAAE+wB,sBAAsB5uB,EAAEb,EAAEtB,EAAE8wB,sBAAsB,GAAG5vB,EAAE/xD,KAAKy2E,yBAAyBzjB,EAAEhzD,KAAK02E,sBAAsB,CAACxa,GAAE,yBAAyBnK,YAAYiB,OAAO,MAAMX,EAAEryD,KAAKqhF,iBAAiBjvB,GAAG,OAAOpyD,KAAKq5E,IAAIrZ,mBAAmB3N,EAAEryD,KAAKq/D,WAAWhN,CAAC,CAAC,OAAOryD,KAAK0hF,sBAAsBtvB,EAAED,EAAEtB,EAAEiO,UAAUjO,EAAE8wB,uBAAuB9wB,EAAEiO,SAAS,CAAC,gBAAA2iB,CAAiBrvB,GAAG,MAAMD,EAAEtmB,KAAKD,MAAMilB,EAAE7wD,KAAKy2E,wBAAwB1kB,EAAE/xD,KAAK02E,sBAAsB,GAAG12E,KAAK8+D,WAAW,OAAO9+D,KAAK81E,2BAA2B,OAAO91E,KAAK+1E,uBAAuB,CAAC,MAAM/iB,EAAEb,EAAEnyD,KAAK81E,0BAA0B7iB,EAAEd,EAAEnyD,KAAK+1E,uBAAuB,KAAK/iB,EAAEnC,GAAGoC,EAAElB,GAAG,MAAO,CAAC+M,UAAU9+D,KAAK8+D,UAAU8iB,sBAAsB5hF,KAAK81E,0BAA0B6L,sBAAsB3hF,KAAK+1E,wBAAwB,CAAC7Z,GAAE,4EAA4E,MAAM/J,EAAEnyD,KAAK8+D,UAAU,GAAG9+D,KAAK6hF,sBAAsBzvB,KAAKpyD,KAAKsgE,SAASrP,KAAKjxD,KAAK2gF,sBAAsB3gF,KAAKsgE,WAAWtgE,KAAKq5E,IAAIrZ,mBAAmBhgE,KAAK8+D,UAAU9+D,KAAKq/D,WAAWr/D,KAAKwwD,mBAAmByL,GAAE,oDAAoDj8D,KAAK8+D,wBAAwB3M,MAAM,OAAOnyD,KAAK81E,2BAA2B,OAAO91E,KAAK+1E,uBAAuB,MAAO,CAACjX,UAAU9+D,KAAK8+D,UAAU8iB,sBAAsB5hF,KAAK81E,0BAA0B6L,sBAAsB3hF,KAAK+1E,uBAAuB,CAAC,CAAC,IAAI,MAAM/iB,EAAEhzD,KAAK8hF,sBAAsB1vB,GAAG,IAAIY,EAAE,OAAO,KAAK,MAAMC,EAAEj0D,KAAKu1B,MAAMy+B,GAAGE,EAAEf,EAAEc,EAAE2uB,sBAAsBxuB,EAAEjB,EAAEc,EAAE0uB,sBAAsB,GAAGzuB,EAAErC,GAAGuC,EAAErB,EAAE,CAACmK,GAAE,gCAAgC32D,KAAKu0D,MAAM5G,EAAE,IAAI,eAAe3tD,KAAKu0D,MAAM1G,EAAE,IAAI,GAAG,UAAU,MAAMjB,EAAEc,EAAE6L,UAAU,GAAG9+D,KAAKqhF,iBAAiBjvB,GAAGpyD,KAAKsgE,SAASrP,KAAKjxD,KAAK2gF,sBAAsB3gF,KAAKsgE,UAAUtgE,KAAKq5E,IAAIrZ,mBAAmBhgE,KAAK8+D,UAAU9+D,KAAKq/D,WAAWr/D,KAAKwwD,mBAAmByL,GAAE,qDAAqDj8D,KAAK8+D,wBAAwB3M,MAAM,OAAOnyD,KAAK81E,2BAA2B,OAAO91E,KAAK+1E,uBAAuB,MAAO,CAACjX,UAAU9+D,KAAK8+D,UAAU8iB,sBAAsB5hF,KAAK81E,0BAA0B6L,sBAAsB3hF,KAAK+1E,uBAAuB,CAAC,OAAO9iB,EAAE6L,YAAY9+D,KAAK8+D,UAAU7L,EAAE6L,UAAU9+D,KAAK81E,0BAA0B7iB,EAAE2uB,sBAAsB5hF,KAAK+1E,uBAAuB9iB,EAAE0uB,uBAAuB1uB,CAAC,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC,gBAAAouB,CAAiBjvB,GAAG,MAAMD,EAAElB,KAAKJ,EAAEhlB,KAAKD,MAAM5rC,KAAK8+D,UAAU3M,EAAEnyD,KAAK81E,0BAA0BjlB,EAAE7wD,KAAK+1E,uBAAuBllB,EAAE7wD,KAAKi5E,uBAAuBpoB,EAAE,MAAMkB,EAAE,CAAC+M,UAAU3M,EAAEyvB,sBAAsB/wB,EAAE8wB,sBAAsB9wB,GAAG,OAAO7wD,KAAK+hF,oBAAoB3vB,EAAEL,GAAGmK,GAAE,wBAAwB/J,KAAKA,CAAC,CAAC,qBAAAuvB,CAAsBtvB,EAAEC,EAAEF,EAAEtB,GAAG7wD,KAAK8+D,UAAU3M,EAAEnyD,KAAK81E,0BAA0BzjB,EAAEryD,KAAK+1E,uBAAuBllB,EAAE,MAAMkB,EAAE,CAAC+M,UAAU3M,EAAEyvB,sBAAsBvvB,EAAEsvB,sBAAsB9wB,GAAG7wD,KAAK+hF,oBAAoB3vB,EAAEL,EAAG,CAAC,qBAAA8vB,CAAsBzvB,GAAG,MAAMC,EAAExmB,KAAKD,MAAM,IAAI,MAAMumB,EAAEnyD,KAAK8hF,sBAAsB1vB,GAAG,GAAGD,EAAE,CAAC,MAAMC,EAAEpzD,KAAKu1B,MAAM49B,GAAG,GAAG,SAASC,EAAEC,EAAEF,EAAEtB,EAAEkB,GAAG,OAAO14D,QAAQ+4D,GAAGA,EAAE0M,WAAW1M,EAAE0M,YAAYzM,GAAG,iBAAiBD,EAAEwvB,uBAAuB,iBAAiBxvB,EAAEuvB,uBAAuBxvB,EAAEC,EAAEwvB,uBAAuB/wB,GAAGsB,EAAEC,EAAEuvB,uBAAuB5vB,EAAE,CAAnN,CAAqNK,EAAEpyD,KAAK8+D,UAAUzM,EAAEryD,KAAKy2E,wBAAwBz2E,KAAK02E,uBAAuB,OAAO12E,KAAK8+D,UAAU1M,EAAE0M,UAAU9+D,KAAK81E,0BAA0B1jB,EAAEwvB,sBAAsB5hF,KAAK+1E,uBAAuB3jB,EAAEuvB,sBAAsBzlB,GAAE,4CAA4C9J,EAAE0M,cAAa,CAAE,CAAC,CAAC,MAAM,CAAC,OAAO9+D,KAAKqhF,iBAAiBjvB,IAAG,CAAK,CAAC,mBAAA2vB,CAAoB3vB,EAAEC,GAAG,MAAMF,EAAEnzD,KAAKC,UAAUozD,GAAG,IAAI,GAAGryD,KAAKygF,sBAAsB,YAAYhlB,aAAaE,QAAQvJ,EAAED,EAAE,CAAC,MAAMC,GAAG4J,GAAE,2CAA2C5J,IAAK,CAAC,IAAIpyD,KAAKwgF,yBAAyB3V,eAAelP,QAAQvJ,EAAED,EAAG,CAAC,MAAMC,GAAG4J,GAAE,6CAA6C5J,IAAK,CAAC,CAAC,qBAAA0vB,CAAsB1vB,GAAG,IAAI,GAAGpyD,KAAKygF,sBAAsB,CAAC,MAAMpuB,EAAEoJ,aAAaC,QAAQtJ,GAAG,GAAGC,EAAE,OAAOA,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAGryD,KAAKwgF,wBAAwB,CAAC,MAAMnuB,EAAEwY,eAAenP,QAAQtJ,GAAG,GAAGC,EAAE,OAAOA,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,mBAAA+uB,CAAoBhvB,GAAG,IAAIpyD,KAAKwgF,yBAAyB3V,eAAe/O,WAAW1J,EAAG,CAAC,MAAM,CAAC,IAAIqJ,aAAaK,WAAW1J,EAAG,CAAC,MAAM,CAAC,CAAC,YAAA4vB,GAAe,OAAOhiF,KAAK8+D,SAAS,CAAC,aAAAmjB,GAAgB,OAAO1O,IAAI,oBAAoB7wE,QAAQA,OAAOC,SAASD,OAAOC,SAAS7E,KAAKkC,KAAK00D,UAAU,CAAC,wBAAAwtB,GAA2B,MAAO,CAACC,gBAAgBt2C,KAAKD,MAAM5rC,KAAKw4E,iBAAiB4J,gBAAgB,IAAIC,iBAAiB,IAAIC,MAAM,aAAa,CAAC,oBAAMC,GAAiB,IAAI,aAAaviF,KAAKq5E,IAAIzmD,KAAK5yB,KAAK8+D,UAAU9+D,KAAKq/D,WAAW,CAACmjB,SAAQ,EAAG,CAAC,MAAMpwB,GAAG,MAAO,CAACowB,SAAQ,EAAM/jF,MAAM2zD,EAAEv7C,SAAS,gBAAgB,CAAC,CAAC,mBAAA4rE,GAAsB,MAAMrwB,EAAE,GAAG,IAAIC,GAAE,EAAM,OAAOryD,KAAKs1E,WAAWx2E,OAAO,IAAIuzD,GAAE,EAAKD,EAAEjzD,KAAK,gDAAgDa,KAAKs4E,qBAAqBjmB,GAAE,EAAKD,EAAEjzD,KAAK,8DAA8D,oBAAoBuD,QAAQ0vD,EAAEjzD,KAAK,2CAAsC,IAASs9D,UAAUgB,YAAYrL,EAAEjzD,KAAK,kDAAkD,CAACujF,QAAQrwB,EAAEswB,gBAAgBvwB,EAAE,CAAC,iBAAAwwB,GAAoB,IAAIrP,GAAG,OAAQ,EAAM,MAAMnhB,EAAEpyD,KAAKy5E,UAAU,8BAA8B,OAAO,OAAOrnB,GAAGA,IAAIpyD,KAAKq/D,SAAS,CAAC,WAAAwjB,GAAc,MAAO,CAACxjB,UAAUr/D,KAAKq/D,UAAUP,UAAU9+D,KAAK8+D,UAAU8jB,kBAAkB5iF,KAAK4iF,oBAAoB9L,YAAY92E,KAAK82E,YAAY,CAAC,kBAAAjN,CAAmBzX,EAAEC,GAAGryD,KAAKw5E,gBAAgB3P,mBAAmBzX,EAAEC,EAAG,CAAC,oBAAA4X,CAAqB7X,GAAGpyD,KAAKw5E,gBAAgBvP,qBAAqB7X,EAAG,CAAC,kBAAA8X,CAAmB9X,GAAG,OAAOpyD,KAAKw5E,gBAAgBtP,mBAAmB9X,EAAE,CAAC,qBAAA+X,CAAsB/X,GAAGpyD,KAAKw5E,gBAAgBrP,sBAAsB/X,EAAG,CAAC,eAAAgY,CAAgBhY,EAAEC,GAAGryD,KAAKw5E,gBAAgBpP,gBAAgBhY,EAAEC,EAAG,CAAC,iBAAAgY,CAAkBjY,GAAGpyD,KAAKw5E,gBAAgBnP,kBAAkBjY,EAAG,CAAC,eAAAkY,CAAgBlY,GAAG,OAAOpyD,KAAKw5E,gBAAgBlP,gBAAgBlY,EAAE,CAAC,kBAAAqY,CAAmBrY,GAAGpyD,KAAKw5E,gBAAgB/O,mBAAmBrY,EAAG,CAAC,OAAAsY,CAAQtY,EAAEC,EAAEF,EAAE,QAAQnyD,KAAKw5E,gBAAgB9O,QAAQtY,EAAEC,EAAEF,EAAG,CAAC,sBAAAwY,GAAyB3qE,KAAKw5E,gBAAgB7O,wBAAyB,CAAC,mBAAAC,GAAsB5qE,KAAKw5E,gBAAgB5O,qBAAsB,CAAC,gBAAAG,GAAmB,OAAO/qE,KAAKw5E,gBAAgBzO,kBAAkB,EAA4jBwI,KAAK7wE,OAAOogF,qBAAqBtP,IAAI,IAAIuP,GAAGC,IAAG,EAAGC,GAAG,SAAS7wB,GAAG9kD,iBAAiB,WAAW,SAAS+kD,GAAGA,EAAE6wB,YAAYF,GAAG3wB,EAAE8wB,UAAU/wB,EAAEC,GAAI,GAAE,EAAM,EAAE+wB,GAAG,WAAW,IAAIhxB,EAAEp3B,KAAK62C,aAAaA,YAAYC,kBAAkBD,YAAYC,iBAAiB,cAAc,GAAG,GAAG1f,GAAGA,EAAEsgB,cAAc,GAAGtgB,EAAEsgB,cAAcb,YAAYjmC,MAAM,OAAOwmB,CAAC,EAAEixB,GAAG,WAAW,IAAIjxB,EAAEgxB,KAAK,OAAOhxB,GAAGA,EAAEkxB,iBAAiB,CAAC,EAAEC,GAAG,SAASnxB,EAAEC,GAAG,IAAIF,EAAEixB,KAAKvyB,EAAE,WAAW,OAAOmyB,IAAI,EAAEnyB,EAAE,qBAAqBsB,IAAIh4D,SAASqpF,cAAcH,KAAK,EAAExyB,EAAE,YAAY12D,SAASspF,aAAa5yB,EAAE,UAAUsB,EAAExwD,OAAOkvD,EAAEsB,EAAExwD,KAAKnD,QAAQ,KAAK,OAAO,CAAC7B,KAAKy1D,EAAEv6D,WAAM,IAASw6D,GAAE,EAAGA,EAAEgsB,OAAO,OAAOqF,MAAM,EAAErwD,QAAQ,GAAGhzB,GAAG,MAAM0zB,OAAO8X,KAAKD,MAAM,KAAK7X,OAAOxuB,KAAKC,MAAM,cAAcD,KAAKkb,UAAU,MAAM+5D,eAAe3pB,EAAE,EAAE8yB,GAAG,SAASvxB,EAAEC,EAAEF,GAAG,IAAI,GAAG4gB,oBAAoB6Q,oBAAoB/pF,SAASu4D,GAAG,CAAC,IAAIvB,EAAE,IAAIkiB,oBAAoB,SAAS3gB,GAAGh6B,QAAQzU,UAAUqT,KAAK,WAAWq7B,EAAED,EAAE4gB,aAAc,EAAG,GAAG,OAAOniB,EAAE3a,QAAQ1+C,OAAOya,OAAO,CAACtQ,KAAKywD,EAAE6gB,UAAS,GAAI9gB,GAAG,CAAA,IAAKtB,CAAC,CAAC,CAAC,MAAMuB,GAAG,CAAC,EAAEyxB,GAAG,SAASzxB,EAAEC,EAAEF,EAAEtB,GAAG,IAAIkB,EAAEiB,EAAE,OAAO,SAASC,GAAGZ,EAAEx6D,OAAO,IAAIo7D,GAAGpC,MAAMmC,EAAEX,EAAEx6D,OAAOk6D,GAAG,UAAK,IAASA,KAAKA,EAAEM,EAAEx6D,MAAMw6D,EAAEqxB,MAAM1wB,EAAEX,EAAEgsB,OAAO,SAASjsB,EAAEC,GAAG,OAAOD,EAAEC,EAAE,GAAG,OAAOD,EAAEC,EAAE,GAAG,oBAAoB,MAAM,CAApE,CAAsEA,EAAEx6D,MAAMs6D,GAAGC,EAAEC,GAAI,CAAC,EAAEyxB,GAAG,SAAS1xB,GAAG9G,sBAAsB,WAAW,OAAOA,sBAAsB,WAAW,OAAO8G,GAAG,EAAE,EAAG,EAAE2xB,GAAG,SAAS3xB,GAAGj4D,SAASmT,iBAAiB,mBAAmB,WAAW,WAAWnT,SAASghF,iBAAiB/oB,GAAI,EAAG,EAAE4xB,GAAG,SAAS5xB,GAAG,IAAIC,GAAE,EAAM,OAAO,WAAWA,IAAID,IAAIC,GAAE,EAAM,CAAC,EAAE4xB,IAAG,EAAGC,GAAG,WAAW,MAAO,WAAW/pF,SAASghF,iBAAiBhhF,SAASqpF,aAAa,IAAI,CAAC,EAAEW,GAAG,SAAS/xB,GAAG,WAAWj4D,SAASghF,iBAAiB8I,IAAG,IAAKA,GAAG,qBAAqB7xB,EAAEzwD,KAAKywD,EAAE+wB,UAAU,EAAEiB,KAAM,EAAEC,GAAG,WAAW/2E,iBAAiB,mBAAmB62E,IAAG,GAAM72E,iBAAiB,qBAAqB62E,IAAG,EAAM,EAAEC,GAAG,WAAWn3E,oBAAoB,mBAAmBk3E,IAAG,GAAMl3E,oBAAoB,qBAAqBk3E,IAAG,EAAM,EAAEG,GAAG,WAAW,OAAOL,GAAG,IAAIA,GAAGC,KAAKG,KAAKpB,GAAG,WAAWpwE,WAAW,WAAWoxE,GAAGC,KAAKG,IAAK,EAAE,EAAG,IAAI,CAAC,mBAAIE,GAAkB,OAAON,EAAE,EAAE,EAAEO,GAAG,SAASpyB,GAAGj4D,SAASqpF,aAAal2E,iBAAiB,qBAAqB,WAAW,OAAO8kD,GAAG,GAAE,GAAMA,GAAI,EAAEqyB,GAAG,CAAC,KAAK,KAAKC,GAAG,SAAStyB,EAAEC,GAAGA,EAAEA,GAAG,CAAA,EAAGmyB,GAAG,WAAW,IAAIryB,EAAEtB,EAAEyzB,KAAKvyB,EAAEwxB,GAAG,OAAOvwB,EAAE2wB,GAAG,QAAQ,SAASvxB,GAAGA,EAAEvxD,QAAQ,SAASuxD,GAAG,2BAA2BA,EAAEz1D,OAAOq2D,EAAE5Q,aAAagQ,EAAE+gB,UAAUtiB,EAAE0zB,kBAAkBxyB,EAAEl6D,MAAM0N,KAAKG,IAAI0sD,EAAE+gB,UAAUkQ,KAAK,GAAGtxB,EAAE1+B,QAAQl0B,KAAKizD,GAAGD,GAAE,IAAQ,EAAG,GAAGa,IAAIb,EAAE0xB,GAAGzxB,EAAEL,EAAE0yB,GAAGpyB,EAAEsyB,kBAAkB1B,GAAG,SAASpyB,GAAGkB,EAAEwxB,GAAG,OAAOpxB,EAAE0xB,GAAGzxB,EAAEL,EAAE0yB,GAAGpyB,EAAEsyB,kBAAkBb,GAAG,WAAW/xB,EAAEl6D,MAAMg6E,YAAYjmC,MAAMilB,EAAEsyB,UAAUhxB,GAAE,EAAM,EAAG,GAAI,EAAG,EAAEyyB,GAAG,CAAC,GAAG,KAAKC,GAAG,EAAEC,GAAG,IAAIC,GAAG,EAAEC,GAAG,SAAS5yB,GAAGA,EAAEvxD,QAAQ,SAASuxD,GAAGA,EAAE6yB,gBAAgBH,GAAGv/E,KAAKwG,IAAI+4E,GAAG1yB,EAAE6yB,eAAeF,GAAGx/E,KAAKG,IAAIq/E,GAAG3yB,EAAE6yB,eAAeJ,GAAGE,IAAIA,GAAGD,IAAI,EAAE,EAAE,EAAG,EAAG,EAAEI,GAAG,WAAW,OAAOnC,GAAG8B,GAAGhT,YAAYsT,kBAAkB,CAAC,EAA6HC,GAAG,GAAGC,GAAG,IAAIplF,IAAIqlF,GAAG,EAAEC,GAAG,GAAGC,GAAG,SAASpzB,GAAG,GAAGmzB,GAAG1kF,QAAQ,SAASwxD,GAAG,OAAOA,EAAED,EAAE,GAAGA,EAAE6yB,eAAe,gBAAgB7yB,EAAEqzB,UAAU,CAAC,IAAIpzB,EAAE+yB,GAAGA,GAAGtmF,OAAO,GAAGqzD,EAAEkzB,GAAG1rF,IAAIy4D,EAAE6yB,eAAe,GAAG9yB,GAAGizB,GAAGtmF,OAAO,IAAIszD,EAAEiR,SAAShR,EAAEqzB,QAAQ,CAAC,GAAGvzB,EAAEC,EAAEiR,SAASlR,EAAEuzB,SAASvzB,EAAE9+B,QAAQ,CAAC++B,GAAGD,EAAEuzB,QAAQtzB,EAAEiR,UAAUjR,EAAEiR,WAAWlR,EAAEuzB,SAAStzB,EAAE+gB,YAAYhhB,EAAE9+B,QAAQ,GAAG8/C,WAAWhhB,EAAE9+B,QAAQl0B,KAAKizD,OAAQ,CAAC,IAAIvB,EAAE,CAACxwD,GAAG+xD,EAAE6yB,cAAcS,QAAQtzB,EAAEiR,SAAShwC,QAAQ,CAAC++B,IAAIizB,GAAGjkF,IAAIyvD,EAAExwD,GAAGwwD,GAAGu0B,GAAGjmF,KAAK0xD,EAAG,CAACu0B,GAAGO,KAAK,SAASvzB,EAAEC,GAAG,OAAOA,EAAEqzB,QAAQtzB,EAAEszB,OAAO,GAAGN,GAAGtmF,OAAO,IAAIsmF,GAAGt6D,OAAO,IAAIjqB,QAAQ,SAASuxD,GAAG,OAAOizB,GAAGzkF,OAAOwxD,EAAE/xD,GAAG,EAAG,CAAC,CAAC,EAAEulF,GAAG,SAASxzB,GAAG,IAAIC,EAAEr3B,KAAK6qD,qBAAqB7qD,KAAKnoB,WAAWs/C,GAAE,EAAG,OAAOC,EAAE4xB,GAAG5xB,GAAG,WAAWj4D,SAASghF,gBAAgB/oB,KAAKD,EAAEE,EAAED,GAAG2xB,GAAG3xB,IAAID,CAAC,EAAE2zB,GAAG,CAAC,IAAI,KAAKC,GAAG,CAAC,KAAK,KAAKC,GAAG,CAAA,EAAGC,GAAG,CAAC,IAAI,MAAMC,GAAG,SAAS9zB,EAAEC,GAAGl4D,SAASqpF,aAAagB,GAAG,WAAW,OAAOpyB,EAAEC,EAAE,GAAG,aAAal4D,SAASuY,WAAWpF,iBAAiB,OAAO,WAAW,OAAO8kD,EAAEC,EAAE,GAAE,GAAMx/C,WAAWw/C,EAAE,EAAG,EAAEurB,GAAGpmF,OAAO4e,OAAO,CAACC,UAAU,KAAK8vE,cAAcvB,GAAGwB,cAAc3B,GAAG4B,cAAcP,GAAGQ,cAAcP,GAAGQ,eAAeN,GAAGlI,MAAM,SAAS3rB,EAAEC,GAAGA,EAAEA,GAAG,CAAA,EAAGqyB,GAAGV,GAAG,WAAW,IAAI7xB,EAAEtB,EAAE0yB,GAAG,MAAM,GAAGxxB,EAAE,EAAEiB,EAAE,GAAGC,EAAE,SAASb,GAAGA,EAAEvxD,QAAQ,SAASuxD,GAAG,IAAIA,EAAEo0B,eAAe,CAAC,IAAIn0B,EAAEW,EAAE,GAAGb,EAAEa,EAAEA,EAAEl0D,OAAO,GAAGizD,GAAGK,EAAE+gB,UAAUhhB,EAAEghB,UAAU,KAAK/gB,EAAE+gB,UAAU9gB,EAAE8gB,UAAU,KAAKphB,GAAGK,EAAEv6D,MAAMm7D,EAAE7zD,KAAKizD,KAAKL,EAAEK,EAAEv6D,MAAMm7D,EAAE,CAACZ,GAAI,CAAC,GAAGL,EAAElB,EAAEh5D,QAAQg5D,EAAEh5D,MAAMk6D,EAAElB,EAAEx9B,QAAQ2/B,EAAEb,IAAK,EAAEe,EAAEywB,GAAG,eAAe1wB,GAAGC,IAAIf,EAAE0xB,GAAGzxB,EAAEvB,EAAE+zB,GAAGvyB,EAAEsyB,kBAAkBZ,GAAG,WAAW9wB,EAAEC,EAAEuzB,eAAet0B,GAAE,EAAM,GAAG8wB,GAAG,WAAWlxB,EAAE,EAAElB,EAAE0yB,GAAG,MAAM,GAAGpxB,EAAE0xB,GAAGzxB,EAAEvB,EAAE+zB,GAAGvyB,EAAEsyB,kBAAkBb,GAAG,WAAW,OAAO3xB,GAAG,EAAG,GAAGt/C,WAAWs/C,EAAE,GAAI,GAAI,EAAE0rB,MAAM6G,GAAG1G,MAAM,SAAS5rB,EAAEC,GAAG,2BAA2Br3B,MAAM,kBAAkB0rD,uBAAuBxtF,YAAYm5D,EAAEA,GAAG,CAAA,EAAGmyB,GAAG,WAAW,IAAIryB,EAA3yD,qBAAqB0f,aAAakR,KAAKA,GAAGY,GAAG,QAAQqB,GAAG,CAACrjF,KAAK,QAAQsxE,UAAS,EAAK0T,kBAAkB,KAA4sD,IAAI91B,EAAEkB,EAAEwxB,GAAG,OAAOvwB,EAAE,SAASZ,GAAGwzB,GAAG,WAAWxzB,EAAEvxD,QAAQ2kF,IAAI,IAAInzB,EAAE,WAAW,IAAID,EAAE7sD,KAAKwG,IAAIq5E,GAAGtmF,OAAO,EAAEyG,KAAKC,OAAO0/E,KAAKI,IAAI,KAAK,OAAOF,GAAGhzB,EAAE,CAA5E,GAAgFC,GAAGA,EAAEqzB,UAAU3zB,EAAEl6D,QAAQk6D,EAAEl6D,MAAMw6D,EAAEqzB,QAAQ3zB,EAAE1+B,QAAQg/B,EAAEh/B,QAAQw9B,IAAK,EAAG,EAAEoC,EAAE0wB,GAAG,QAAQ3wB,EAAE,CAAC2zB,kBAAkB,QAAQx0B,EAAEE,EAAEs0B,yBAAoB,IAASx0B,EAAEA,EAAE,KAAKtB,EAAEgzB,GAAGzxB,EAAEL,EAAE+zB,GAAGzzB,EAAEsyB,kBAAkB1xB,IAAIA,EAAE/c,QAAQ,CAACv0C,KAAK,cAAcsxE,UAAS,IAAO8Q,GAAG,WAAW/wB,EAAEC,EAAEwzB,eAAe51B,GAAE,EAAM,GAAGoyB,GAAG,WAAWqC,GAAGJ,KAAKE,GAAGtmF,OAAO,EAAEumF,GAAGj7B,QAAQ2H,EAAEwxB,GAAG,OAAO1yB,EAAEgzB,GAAGzxB,EAAEL,EAAE+zB,GAAGzzB,EAAEsyB,iBAAkB,GAAI,GAAI,EAAE7G,MAAM,SAAS1rB,EAAEC,GAAGA,EAAEA,GAAG,GAAGmyB,GAAG,WAAW,IAAIryB,EAAEtB,EAAEyzB,KAAKvyB,EAAEwxB,GAAG,OAAOvwB,EAAE,SAASZ,GAAGC,EAAEsyB,mBAAmBvyB,EAAEA,EAAEvuD,OAAM,IAAKuuD,EAAEvxD,QAAQ,SAASuxD,GAAGA,EAAE+gB,UAAUtiB,EAAE0zB,kBAAkBxyB,EAAEl6D,MAAM0N,KAAKG,IAAI0sD,EAAE+gB,UAAUkQ,KAAK,GAAGtxB,EAAE1+B,QAAQ,CAAC++B,GAAGD,IAAK,EAAG,EAAEc,EAAE0wB,GAAG,2BAA2B3wB,GAAG,GAAGC,EAAE,CAACd,EAAE0xB,GAAGzxB,EAAEL,EAAEg0B,GAAG1zB,EAAEsyB,kBAAkB,IAAIzxB,EAAE8wB,GAAG,WAAWgC,GAAGj0B,EAAE1xD,MAAM2yD,EAAEC,EAAEwzB,eAAexzB,EAAE7Q,aAAa4jC,GAAGj0B,EAAE1xD,KAAI,EAAK8xD,GAAE,GAAO,GAAG,CAAC,UAAU,SAAStxD,QAAQ,SAASuxD,GAAG9kD,iBAAiB8kD,EAAE,WAAW,OAAOwzB,GAAG1yB,EAAE,EAAE,CAACqG,MAAK,EAAKluB,SAAQ,GAAO,GAAG04C,GAAG7wB,GAAG+vB,GAAG,SAASpyB,GAAGkB,EAAEwxB,GAAG,OAAOpxB,EAAE0xB,GAAGzxB,EAAEL,EAAEg0B,GAAG1zB,EAAEsyB,kBAAkBb,GAAG,WAAW/xB,EAAEl6D,MAAMg6E,YAAYjmC,MAAMilB,EAAEsyB,UAAU6C,GAAGj0B,EAAE1xD,KAAI,EAAK8xD,GAAE,EAAM,EAAG,EAAG,CAAC,EAAG,EAAE8rB,OAAO,SAAS7rB,EAAEC,GAAGA,EAAEA,GAAG,CAAA,EAAG,IAAIF,EAAEoxB,GAAG,QAAQ1yB,EAAEgzB,GAAGzxB,EAAED,EAAE8zB,GAAG5zB,EAAEsyB,kBAAkBuB,GAAG,WAAW,IAAIn0B,EAAEqxB,KAAKrxB,IAAII,EAAEt6D,MAAM0N,KAAKG,IAAIqsD,EAAE2gB,cAAc2Q,KAAK,GAAGlxB,EAAE9+B,QAAQ,CAAC0+B,GAAGlB,GAAE,GAAMoyB,GAAG,WAAW9wB,EAAEoxB,GAAG,OAAO,IAAI1yB,EAAEgzB,GAAGzxB,EAAED,EAAE8zB,GAAG5zB,EAAEsyB,oBAAmB,EAAM,GAAI,EAAG,IAOroqI,MAAM/xD,GAAO,CAACqsC,EAAQC,EAAcv2D,IACzB,IAAI6qE,GAAGvU,EAAQC,EAAcv2D,GAGlB,oBAAXjG,SACPA,OAAOogF,qBAAuBtP,GAC9B9wE,OAAOkkF,cAAgB,CAAEh0D,UCnkY7B,MAAMqoC,GAAY,IAAwB,oBAAXv4D,OA0bzB,SAAUmkF,GACdpoF,EACAkK,GAEA,IACE,MAAMm+E,EACJn+E,GAASo+E,SACU,oBAAXrkF,OACFA,OAA0G,kCAC5G+uD,GACFq1B,GAA+C,mBAA7BA,EAAQnI,kBAC5BmI,EAAQnI,iBAAiBlgF,EAAO,CAC9BmvE,eAAgBjlE,GAASilE,eACzB7K,UAAW,SAGjB,CAAE,MAEF,CACF,CC9dA,MAAMikB,GDgGA,SAAmC/qF,EAAmBu/D,GAC1D,MAAMyrB,EAAuBC,EAAoE,MAG3FC,EAA+BC,IAAgC,CACnElT,SAAW56C,IACT8tD,EAAW9tD,IAEb66C,aAAch8C,OAASswC,iBAAgB5G,oBACrCulB,EAAW,CACTzlF,KAAM,WACN8mE,iBACA5G,kBAEK,IAET9pD,MAAO,OAGP65D,KAAM,OAGNuP,OAAQ,OAGR3B,SAAU,KACRhkB,EAAIhuD,KAAK,qEAEX0nE,oBAAqB,OACrBvP,oBAAqB,KAAM,EAC3BE,oBAAqB,IAAM,GAC3BuO,cAAe,SAIjB,SAASiT,IACP,MAAMP,EAAUQ,EAAWL,GAqC3B,OAnCAM,EAAU,KACR,GAAIT,GAA6B,oBAAXpkF,OAAwB,CAE5CokF,EAAQ1S,gBAGR,MAAMoT,EAAoB,KACxBV,EAAQ1S,iBAIV1xE,OAAO4K,iBAAiB,WAAYk6E,GAGpC,MAAMvP,EAAoBkC,QAAQC,UAC5BlC,EAAuBiC,QAAQE,aAYrC,OAVAF,QAAQC,UAAY,YAAY3vD,GAC9BwtD,EAAkB/jE,MAAMlU,KAAMyqB,GAC9B+8D,GACF,EAEArN,QAAQE,aAAe,YAAY5vD,GACjCytD,EAAqBhkE,MAAMlU,KAAMyqB,GACjC+8D,GACF,EAEO,KACL9kF,OAAOuK,oBAAoB,WAAYu6E,GACvCrN,QAAQC,UAAYnC,EACpBkC,QAAQE,aAAenC,EAE3B,GACC,CAAC4O,IAEG,IACT,CAEA,MA0JMW,EAAmB,KACvB,MAAMX,EAAUQ,EAAWL,GAC3B,IAAKH,EACH,MAAM,IAAIlwE,MAAM,gEAElB,OAAOkwE,GAkDT,MAAMY,UAAmCC,EAAMC,UAI7C,WAAAprF,CAAY+uB,GACVrU,MAAMqU,GACNvrB,KAAKqxD,MAAQ,CAAEw2B,UAAU,EAC3B,CAEA,+BAAOC,GACL,MAAO,CAAED,UAAU,EACrB,CAEA,iBAAAE,CAAkBtpF,EAAc88D,GAC9B,MAAMqS,EAAiBrS,GAAMqS,gBAAkB,KAC/C,IACE,MAAMkZ,EAAU9mF,KAAKurB,MAAMw7D,QAAU/mF,KAAKgsC,QACtC86C,GAAyE,mBAAtDA,EAAiCnI,kBACrDmI,EAAiCnI,iBAAiBlgF,EAAO,CACxDmvE,eAAgBA,QAAkBnc,EAClCsR,UAAW,SAGjB,CAAE,MAEF,CACA,IACE/iE,KAAKurB,MAAMojD,UAAUlwE,EAAOmvE,EAC9B,CAAE,MAEF,CACF,CAEA,MAAAoa,GACE,OAAIhoF,KAAKqxD,MAAMw2B,SACN7nF,KAAKurB,MAAM08D,UAAY,KAEzBjoF,KAAKurB,MAAMvB,QACpB,EAGF,OAxCS09D,EAAAj/B,YAAcw+B,EAwChB,CACLA,uBACAiB,sBA5P4B,EAAGjpB,SAAQ8nB,SAAQ/8D,WAAUrhB,cACzD,MAAOw/E,EAAeC,GAAoBC,EAAsCtB,GAAU,OACnFzR,EAAYgT,GAAiBD,EAAgB,KAC7CE,EAAWC,GAAgBH,GAAS,IACpC1f,EAAe8f,GAAoBJ,GAAS,GAG7CK,EAAYC,EAAO1pB,GACnB2pB,EAAYD,EAAO5B,GACnB8B,EAAgBF,EAAOrT,GAG7BiS,EAAU,KACRmB,EAAU14D,QAAUivC,EACpB2pB,EAAU54D,QAAU+2D,GACnB,CAAC9nB,EAAQ8nB,IAGZQ,EAAU,KACRsB,EAAc74D,QAAUslD,GACvB,CAACA,IAGJ,MAAM8R,EAAa0B,EAAaxvD,IAC9BgvD,EAAc1pE,GAAQ,IAAIA,EAAM0a,KAC/B,IAGHiuD,EAAU,KACRiB,GAAa,IACZ,IAEHjB,EAAU,KAER,GAAMtsB,KAAN,CAKA,GAAI2tB,EAAU54D,QAGZ,OAFAo4D,EAAiBQ,EAAU54D,cAC3By4D,GAAiB,GAKnB,GAAKC,EAAU14D,SAAwC,KAA7B04D,EAAU14D,QAAQxpB,QAM5C,GAAsB,OAAlB2hF,EAIJ,IAGE,MAAMrB,EAAU7qF,EAAK22B,KACnB81D,EAAU14D,QAAQxpB,OAClB,CACE04D,aAAcv2D,GAASu2D,aACvBuV,SAAU9rE,GAAS8rE,SACnBvP,aAAcv8D,GAASu8D,aACvBH,kBAAmBp8D,GAASo8D,kBAC5BoQ,wBAAyBxsE,GAASwsE,wBAClCb,sBAAuB3rE,GAAS2rE,sBAChCjrE,aAAcV,GAASU,aACvBu/D,0BAA2BjgE,GAASigE,0BACpCG,iBAAkBpgE,GAASogE,iBAC3BsM,yBAA0B1sE,GAAS0sE,yBACnCzX,aAAcj1D,GAASi1D,aACvB+W,sBAAuBhsE,GAASgsE,sBAChCC,sBAAuBjsE,GAASisE,sBAChCC,oBAAqBlsE,GAASksE,oBAC9BE,gBAAiBpsE,GAASosE,gBAC1BC,cAAersE,GAASqsE,cACxBxH,QAAS7kE,GAAS6kE,QAClBC,YAAa9kE,GAAS8kE,YACtBC,UAAW/kE,GAAS+kE,UACpBC,KAAMhlE,GAASglE,KACfmH,qBAAsBnsE,GAASmsE,qBAC/BiU,OAAQpgF,GAASogF,OACjB9vD,QAAStwB,GAASswB,UAItBmvD,EAAiBtB,GAGjB2B,GAAiB,GAGjB3B,EAAQ/P,uBAAuB//C,KAAKmB,UAE3B2uD,EAAQrT,wBACHqT,EAAQ/uE,QAIpB,MAAMixE,EAAeH,EAAc74D,QACnC,GAAIg5D,EAAalqF,OAAS,EAAG,CAC3B,IAAK,MAAMw6B,KAAS0vD,EAClB,GAAmB,aAAf1vD,EAAM33B,KAAqB,CAC7B65D,EAAI3N,MAAM,mCAAoCv0B,GAC9C,UACQwtD,EAAQ3S,aAAa,CACzB1L,eAAgBnvC,EAAMmvC,eACtB5G,cAAevoC,EAAMuoC,eAEzB,CAAE,MAAOpjE,GACP+8D,EAAI/8D,MAAM,sCAAuCA,EACnD,CACF,MACEqoF,EAAQ5S,SAAS56C,GAGrBgvD,EAAc,GAChB,IACC7vD,MAAOh6B,IACR+8D,EAAI/8D,MAAM,6CAA8CA,IAE5D,CAAE,MAAOA,GACP+8D,EAAI/8D,MAAM,yCAA0CA,EACtD,OA9EE+8D,EAAI/8D,MAAM,mDAXZ,GA0FC,CAAC8pF,IAGJ,MAAMU,EAAeC,EAAQ,IACtBX,GAIA5f,EAIEwf,EAPEhB,EAA4BC,GAQpC,CAACmB,EAAW5f,EAAewf,EAAef,IAG7C,OAAMnsB,KAKJkuB,EAAClC,EAAqBmC,UAASvxF,MAAOoxF,EAAYj/D,SAAA,CAChDq/D,EAAChC,EAAqB,CAAA,GACrBr9D,KANIq/D,EAAAC,EAAA,CAAAt/D,SAAGA,KA8GZy9D,mBACA8B,aA3FmB,KACnB,MAAMzC,EAAUW,IAchB,MAAO,CACLvS,oBAb0B4T,EAAapM,IACvCoK,EAAQ5R,oBAAoBwH,IAC3B,CAACoK,IAYFnhB,oBAV0BmjB,EAAY,IAC/BhC,EAAQnhB,sBACd,CAACmhB,IASFjhB,oBAP0BijB,EAAY,IAC/BhC,EAAQjhB,sBACd,CAACihB,MA+EJ0C,gBArEsB,KACtB,MAAM1C,EAAUW,IAYhB,MAAO,CACLtT,aAXmB2U,EAAY3wD,OAASswC,iBAAgB5G,oBACxD,IAEE,aADMilB,EAAQ3S,aAAa,CAAE1L,iBAAgB5G,kBACtC,CAAE2gB,SAAS,EACpB,CAAE,MAAO/jF,GAEP,OADA+8D,EAAI/8D,MAAM,2BAA4BA,GAC/B,CAAE+jF,SAAS,EAAO/jF,QAC3B,GACC,CAACqoF,MA+DJY,2BACEA,EAEN,CCnbc+B,CAAyB3G,GAAsB,CAC3DrkF,MAAOirF,GACPl8E,KAAMm8E,GACN97B,MAAO+7B,KAGI1B,GAAwBlB,GAAMkB,sBAC9BT,GAAmBT,GAAMS,iBACzB8B,GAAevC,GAAMuC,aACrBC,GAAkBxC,GAAMwC,gBACxB9B,GAA6BV,GAAMU"}