hypha-debugger 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hypha-debugger.js","sources":["../src/ui/styles.ts","../src/ui/overlay.ts","../src/utils/env.ts","../src/services/info.ts","../src/services/dom.ts","../node_modules/html-to-image/es/util.js","../node_modules/html-to-image/es/clone-pseudos.js","../node_modules/html-to-image/es/mimes.js","../node_modules/html-to-image/es/dataurl.js","../node_modules/html-to-image/es/clone-node.js","../node_modules/html-to-image/es/embed-resources.js","../node_modules/html-to-image/es/embed-images.js","../node_modules/html-to-image/es/apply-style.js","../node_modules/html-to-image/es/embed-webfonts.js","../node_modules/html-to-image/es/index.js","../src/services/screenshot.ts","../src/services/execute.ts","../src/services/navigate.ts","../src/services/react.ts","../src/debugger.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,"export function resolveUrl(url, baseUrl) {\n // url is absolute already\n if (url.match(/^[a-z]+:\\/\\//i)) {\n return url;\n }\n // url is absolute already, without protocol\n if (url.match(/^\\/\\//)) {\n return window.location.protocol + url;\n }\n // dataURI, mailto:, tel:, etc.\n if (url.match(/^[a-z]+:/i)) {\n return url;\n }\n const doc = document.implementation.createHTMLDocument();\n const base = doc.createElement('base');\n const a = doc.createElement('a');\n doc.head.appendChild(base);\n doc.body.appendChild(a);\n if (baseUrl) {\n base.href = baseUrl;\n }\n a.href = url;\n return a.href;\n}\nexport const uuid = (() => {\n // generate uuid for className of pseudo elements.\n // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.\n let counter = 0;\n // ref: http://stackoverflow.com/a/6248722/2519373\n const random = () => \n // eslint-disable-next-line no-bitwise\n `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n})();\nexport function delay(ms) {\n return (args) => new Promise((resolve) => {\n setTimeout(() => resolve(args), ms);\n });\n}\nexport function toArray(arrayLike) {\n const arr = [];\n for (let i = 0, l = arrayLike.length; i < l; i++) {\n arr.push(arrayLike[i]);\n }\n return arr;\n}\nlet styleProps = null;\nexport function getStyleProperties(options = {}) {\n if (styleProps) {\n return styleProps;\n }\n if (options.includeStyleProperties) {\n styleProps = options.includeStyleProperties;\n return styleProps;\n }\n styleProps = toArray(window.getComputedStyle(document.documentElement));\n return styleProps;\n}\nfunction px(node, styleProperty) {\n const win = node.ownerDocument.defaultView || window;\n const val = win.getComputedStyle(node).getPropertyValue(styleProperty);\n return val ? parseFloat(val.replace('px', '')) : 0;\n}\nfunction getNodeWidth(node) {\n const leftBorder = px(node, 'border-left-width');\n const rightBorder = px(node, 'border-right-width');\n return node.clientWidth + leftBorder + rightBorder;\n}\nfunction getNodeHeight(node) {\n const topBorder = px(node, 'border-top-width');\n const bottomBorder = px(node, 'border-bottom-width');\n return node.clientHeight + topBorder + bottomBorder;\n}\nexport function getImageSize(targetNode, options = {}) {\n const width = options.width || getNodeWidth(targetNode);\n const height = options.height || getNodeHeight(targetNode);\n return { width, height };\n}\nexport function getPixelRatio() {\n let ratio;\n let FINAL_PROCESS;\n try {\n FINAL_PROCESS = process;\n }\n catch (e) {\n // pass\n }\n const val = FINAL_PROCESS && FINAL_PROCESS.env\n ? FINAL_PROCESS.env.devicePixelRatio\n : null;\n if (val) {\n ratio = parseInt(val, 10);\n if (Number.isNaN(ratio)) {\n ratio = 1;\n }\n }\n return ratio || window.devicePixelRatio || 1;\n}\n// @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size\nconst canvasDimensionLimit = 16384;\nexport function checkCanvasDimensions(canvas) {\n if (canvas.width > canvasDimensionLimit ||\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvasDimensionLimit &&\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvas.height) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n else if (canvas.width > canvasDimensionLimit) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n}\nexport function canvasToBlob(canvas, options = {}) {\n if (canvas.toBlob) {\n return new Promise((resolve) => {\n canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);\n });\n }\n return new Promise((resolve) => {\n const binaryString = window.atob(canvas\n .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)\n .split(',')[1]);\n const len = binaryString.length;\n const binaryArray = new Uint8Array(len);\n for (let i = 0; i < len; i += 1) {\n binaryArray[i] = binaryString.charCodeAt(i);\n }\n resolve(new Blob([binaryArray], {\n type: options.type ? options.type : 'image/png',\n }));\n });\n}\nexport function createImage(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n img.decode().then(() => {\n requestAnimationFrame(() => resolve(img));\n });\n };\n img.onerror = reject;\n img.crossOrigin = 'anonymous';\n img.decoding = 'async';\n img.src = url;\n });\n}\nexport async function svgToDataURL(svg) {\n return Promise.resolve()\n .then(() => new XMLSerializer().serializeToString(svg))\n .then(encodeURIComponent)\n .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);\n}\nexport async function nodeToDataURL(node, width, height) {\n const xmlns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(xmlns, 'svg');\n const foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttribute('width', `${width}`);\n svg.setAttribute('height', `${height}`);\n svg.setAttribute('viewBox', `0 0 ${width} ${height}`);\n foreignObject.setAttribute('width', '100%');\n foreignObject.setAttribute('height', '100%');\n foreignObject.setAttribute('x', '0');\n foreignObject.setAttribute('y', '0');\n foreignObject.setAttribute('externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svgToDataURL(svg);\n}\nexport const isInstanceOfElement = (node, instance) => {\n if (node instanceof instance)\n return true;\n const nodePrototype = Object.getPrototypeOf(node);\n if (nodePrototype === null)\n return false;\n return (nodePrototype.constructor.name === instance.name ||\n isInstanceOfElement(nodePrototype, instance));\n};\n//# sourceMappingURL=util.js.map","import { uuid, getStyleProperties } from './util';\nfunction formatCSSText(style) {\n const content = style.getPropertyValue('content');\n return `${style.cssText} content: '${content.replace(/'|\"/g, '')}';`;\n}\nfunction formatCSSProperties(style, options) {\n return getStyleProperties(options)\n .map((name) => {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n return `${name}: ${value}${priority ? ' !important' : ''};`;\n })\n .join(' ');\n}\nfunction getPseudoElementStyle(className, pseudo, style, options) {\n const selector = `.${className}:${pseudo}`;\n const cssText = style.cssText\n ? formatCSSText(style)\n : formatCSSProperties(style, options);\n return document.createTextNode(`${selector}{${cssText}}`);\n}\nfunction clonePseudoElement(nativeNode, clonedNode, pseudo, options) {\n const style = window.getComputedStyle(nativeNode, pseudo);\n const content = style.getPropertyValue('content');\n if (content === '' || content === 'none') {\n return;\n }\n const className = uuid();\n try {\n clonedNode.className = `${clonedNode.className} ${className}`;\n }\n catch (err) {\n return;\n }\n const styleElement = document.createElement('style');\n styleElement.appendChild(getPseudoElementStyle(className, pseudo, style, options));\n clonedNode.appendChild(styleElement);\n}\nexport function clonePseudoElements(nativeNode, clonedNode, options) {\n clonePseudoElement(nativeNode, clonedNode, ':before', options);\n clonePseudoElement(nativeNode, clonedNode, ':after', options);\n}\n//# sourceMappingURL=clone-pseudos.js.map","const WOFF = 'application/font-woff';\nconst JPEG = 'image/jpeg';\nconst mimes = {\n woff: WOFF,\n woff2: WOFF,\n ttf: 'application/font-truetype',\n eot: 'application/vnd.ms-fontobject',\n png: 'image/png',\n jpg: JPEG,\n jpeg: JPEG,\n gif: 'image/gif',\n tiff: 'image/tiff',\n svg: 'image/svg+xml',\n webp: 'image/webp',\n};\nfunction getExtension(url) {\n const match = /\\.([^./]*?)$/g.exec(url);\n return match ? match[1] : '';\n}\nexport function getMimeType(url) {\n const extension = getExtension(url).toLowerCase();\n return mimes[extension] || '';\n}\n//# sourceMappingURL=mimes.js.map","function getContentFromDataUrl(dataURL) {\n return dataURL.split(/,/)[1];\n}\nexport function isDataUrl(url) {\n return url.search(/^(data:)/) !== -1;\n}\nexport function makeDataUrl(content, mimeType) {\n return `data:${mimeType};base64,${content}`;\n}\nexport async function fetchAsDataURL(url, init, process) {\n const res = await fetch(url, init);\n if (res.status === 404) {\n throw new Error(`Resource \"${res.url}\" not found`);\n }\n const blob = await res.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = () => {\n try {\n resolve(process({ res, result: reader.result }));\n }\n catch (error) {\n reject(error);\n }\n };\n reader.readAsDataURL(blob);\n });\n}\nconst cache = {};\nfunction getCacheKey(url, contentType, includeQueryParams) {\n let key = url.replace(/\\?.*/, '');\n if (includeQueryParams) {\n key = url;\n }\n // font resource\n if (/ttf|otf|eot|woff2?/i.test(key)) {\n key = key.replace(/.*\\//, '');\n }\n return contentType ? `[${contentType}]${key}` : key;\n}\nexport async function resourceToDataURL(resourceUrl, contentType, options) {\n const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);\n if (cache[cacheKey] != null) {\n return cache[cacheKey];\n }\n // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n if (options.cacheBust) {\n // eslint-disable-next-line no-param-reassign\n resourceUrl += (/\\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();\n }\n let dataURL;\n try {\n const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {\n if (!contentType) {\n // eslint-disable-next-line no-param-reassign\n contentType = res.headers.get('Content-Type') || '';\n }\n return getContentFromDataUrl(result);\n });\n dataURL = makeDataUrl(content, contentType);\n }\n catch (error) {\n dataURL = options.imagePlaceholder || '';\n let msg = `Failed to fetch resource: ${resourceUrl}`;\n if (error) {\n msg = typeof error === 'string' ? error : error.message;\n }\n if (msg) {\n console.warn(msg);\n }\n }\n cache[cacheKey] = dataURL;\n return dataURL;\n}\n//# sourceMappingURL=dataurl.js.map","import { clonePseudoElements } from './clone-pseudos';\nimport { createImage, toArray, isInstanceOfElement, getStyleProperties, } from './util';\nimport { getMimeType } from './mimes';\nimport { resourceToDataURL } from './dataurl';\nasync function cloneCanvasElement(canvas) {\n const dataURL = canvas.toDataURL();\n if (dataURL === 'data:,') {\n return canvas.cloneNode(false);\n }\n return createImage(dataURL);\n}\nasync function cloneVideoElement(video, options) {\n if (video.currentSrc) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = video.clientWidth;\n canvas.height = video.clientHeight;\n ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n const dataURL = canvas.toDataURL();\n return createImage(dataURL);\n }\n const poster = video.poster;\n const contentType = getMimeType(poster);\n const dataURL = await resourceToDataURL(poster, contentType, options);\n return createImage(dataURL);\n}\nasync function cloneIFrameElement(iframe, options) {\n var _a;\n try {\n if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {\n return (await cloneNode(iframe.contentDocument.body, options, true));\n }\n }\n catch (_b) {\n // Failed to clone iframe\n }\n return iframe.cloneNode(false);\n}\nasync function cloneSingleNode(node, options) {\n if (isInstanceOfElement(node, HTMLCanvasElement)) {\n return cloneCanvasElement(node);\n }\n if (isInstanceOfElement(node, HTMLVideoElement)) {\n return cloneVideoElement(node, options);\n }\n if (isInstanceOfElement(node, HTMLIFrameElement)) {\n return cloneIFrameElement(node, options);\n }\n return node.cloneNode(isSVGElement(node));\n}\nconst isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';\nconst isSVGElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SVG';\nasync function cloneChildren(nativeNode, clonedNode, options) {\n var _a, _b;\n if (isSVGElement(clonedNode)) {\n return clonedNode;\n }\n let children = [];\n if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {\n children = toArray(nativeNode.assignedNodes());\n }\n else if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n children = toArray(nativeNode.contentDocument.body.childNodes);\n }\n else {\n children = toArray(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);\n }\n if (children.length === 0 ||\n isInstanceOfElement(nativeNode, HTMLVideoElement)) {\n return clonedNode;\n }\n await children.reduce((deferred, child) => deferred\n .then(() => cloneNode(child, options))\n .then((clonedChild) => {\n if (clonedChild) {\n clonedNode.appendChild(clonedChild);\n }\n }), Promise.resolve());\n return clonedNode;\n}\nfunction cloneCSSStyle(nativeNode, clonedNode, options) {\n const targetStyle = clonedNode.style;\n if (!targetStyle) {\n return;\n }\n const sourceStyle = window.getComputedStyle(nativeNode);\n if (sourceStyle.cssText) {\n targetStyle.cssText = sourceStyle.cssText;\n targetStyle.transformOrigin = sourceStyle.transformOrigin;\n }\n else {\n getStyleProperties(options).forEach((name) => {\n let value = sourceStyle.getPropertyValue(name);\n if (name === 'font-size' && value.endsWith('px')) {\n const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;\n value = `${reducedFont}px`;\n }\n if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n name === 'display' &&\n value === 'inline') {\n value = 'block';\n }\n if (name === 'd' && clonedNode.getAttribute('d')) {\n value = `path(${clonedNode.getAttribute('d')})`;\n }\n targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));\n });\n }\n}\nfunction cloneInputValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLTextAreaElement)) {\n clonedNode.innerHTML = nativeNode.value;\n }\n if (isInstanceOfElement(nativeNode, HTMLInputElement)) {\n clonedNode.setAttribute('value', nativeNode.value);\n }\n}\nfunction cloneSelectValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLSelectElement)) {\n const clonedSelect = clonedNode;\n const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));\n if (selectedOption) {\n selectedOption.setAttribute('selected', '');\n }\n }\n}\nfunction decorate(nativeNode, clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n cloneCSSStyle(nativeNode, clonedNode, options);\n clonePseudoElements(nativeNode, clonedNode, options);\n cloneInputValue(nativeNode, clonedNode);\n cloneSelectValue(nativeNode, clonedNode);\n }\n return clonedNode;\n}\nasync function ensureSVGSymbols(clone, options) {\n const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];\n if (uses.length === 0) {\n return clone;\n }\n const processedDefs = {};\n for (let i = 0; i < uses.length; i++) {\n const use = uses[i];\n const id = use.getAttribute('xlink:href');\n if (id) {\n const exist = clone.querySelector(id);\n const definition = document.querySelector(id);\n if (!exist && definition && !processedDefs[id]) {\n // eslint-disable-next-line no-await-in-loop\n processedDefs[id] = (await cloneNode(definition, options, true));\n }\n }\n }\n const nodes = Object.values(processedDefs);\n if (nodes.length) {\n const ns = 'http://www.w3.org/1999/xhtml';\n const svg = document.createElementNS(ns, 'svg');\n svg.setAttribute('xmlns', ns);\n svg.style.position = 'absolute';\n svg.style.width = '0';\n svg.style.height = '0';\n svg.style.overflow = 'hidden';\n svg.style.display = 'none';\n const defs = document.createElementNS(ns, 'defs');\n svg.appendChild(defs);\n for (let i = 0; i < nodes.length; i++) {\n defs.appendChild(nodes[i]);\n }\n clone.appendChild(svg);\n }\n return clone;\n}\nexport async function cloneNode(node, options, isRoot) {\n if (!isRoot && options.filter && !options.filter(node)) {\n return null;\n }\n return Promise.resolve(node)\n .then((clonedNode) => cloneSingleNode(clonedNode, options))\n .then((clonedNode) => cloneChildren(node, clonedNode, options))\n .then((clonedNode) => decorate(node, clonedNode, options))\n .then((clonedNode) => ensureSVGSymbols(clonedNode, options));\n}\n//# sourceMappingURL=clone-node.js.map","import { resolveUrl } from './util';\nimport { getMimeType } from './mimes';\nimport { isDataUrl, makeDataUrl, resourceToDataURL } from './dataurl';\nconst URL_REGEX = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nconst URL_WITH_FORMAT_REGEX = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_REGEX = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction toRegex(url) {\n // eslint-disable-next-line no-useless-escape\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, 'g');\n}\nexport function parseURLs(cssText) {\n const urls = [];\n cssText.replace(URL_REGEX, (raw, quotation, url) => {\n urls.push(url);\n return raw;\n });\n return urls.filter((url) => !isDataUrl(url));\n}\nexport async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {\n try {\n const resolvedURL = baseURL ? resolveUrl(resourceURL, baseURL) : resourceURL;\n const contentType = getMimeType(resourceURL);\n let dataURL;\n if (getContentFromUrl) {\n const content = await getContentFromUrl(resolvedURL);\n dataURL = makeDataUrl(content, contentType);\n }\n else {\n dataURL = await resourceToDataURL(resolvedURL, contentType, options);\n }\n return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);\n }\n catch (error) {\n // pass\n }\n return cssText;\n}\nfunction filterPreferredFontFormat(str, { preferredFontFormat }) {\n return !preferredFontFormat\n ? str\n : str.replace(FONT_SRC_REGEX, (match) => {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];\n if (!format) {\n return '';\n }\n if (format === preferredFontFormat) {\n return `src: ${src};`;\n }\n }\n });\n}\nexport function shouldEmbed(url) {\n return url.search(URL_REGEX) !== -1;\n}\nexport async function embedResources(cssText, baseUrl, options) {\n if (!shouldEmbed(cssText)) {\n return cssText;\n }\n const filteredCSSText = filterPreferredFontFormat(cssText, options);\n const urls = parseURLs(filteredCSSText);\n return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));\n}\n//# sourceMappingURL=embed-resources.js.map","import { embedResources } from './embed-resources';\nimport { toArray, isInstanceOfElement } from './util';\nimport { isDataUrl, resourceToDataURL } from './dataurl';\nimport { getMimeType } from './mimes';\nasync function embedProp(propName, node, options) {\n var _a;\n const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);\n if (propValue) {\n const cssString = await embedResources(propValue, null, options);\n node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));\n return true;\n }\n return false;\n}\nasync function embedBackground(clonedNode, options) {\n ;\n (await embedProp('background', clonedNode, options)) ||\n (await embedProp('background-image', clonedNode, options));\n (await embedProp('mask', clonedNode, options)) ||\n (await embedProp('-webkit-mask', clonedNode, options)) ||\n (await embedProp('mask-image', clonedNode, options)) ||\n (await embedProp('-webkit-mask-image', clonedNode, options));\n}\nasync function embedImageNode(clonedNode, options) {\n const isImageElement = isInstanceOfElement(clonedNode, HTMLImageElement);\n if (!(isImageElement && !isDataUrl(clonedNode.src)) &&\n !(isInstanceOfElement(clonedNode, SVGImageElement) &&\n !isDataUrl(clonedNode.href.baseVal))) {\n return;\n }\n const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;\n const dataURL = await resourceToDataURL(url, getMimeType(url), options);\n await new Promise((resolve, reject) => {\n clonedNode.onload = resolve;\n clonedNode.onerror = options.onImageErrorHandler\n ? (...attributes) => {\n try {\n resolve(options.onImageErrorHandler(...attributes));\n }\n catch (error) {\n reject(error);\n }\n }\n : reject;\n const image = clonedNode;\n if (image.decode) {\n image.decode = resolve;\n }\n if (image.loading === 'lazy') {\n image.loading = 'eager';\n }\n if (isImageElement) {\n clonedNode.srcset = '';\n clonedNode.src = dataURL;\n }\n else {\n clonedNode.href.baseVal = dataURL;\n }\n });\n}\nasync function embedChildren(clonedNode, options) {\n const children = toArray(clonedNode.childNodes);\n const deferreds = children.map((child) => embedImages(child, options));\n await Promise.all(deferreds).then(() => clonedNode);\n}\nexport async function embedImages(clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n await embedBackground(clonedNode, options);\n await embedImageNode(clonedNode, options);\n await embedChildren(clonedNode, options);\n }\n}\n//# sourceMappingURL=embed-images.js.map","export function applyStyle(node, options) {\n const { style } = node;\n if (options.backgroundColor) {\n style.backgroundColor = options.backgroundColor;\n }\n if (options.width) {\n style.width = `${options.width}px`;\n }\n if (options.height) {\n style.height = `${options.height}px`;\n }\n const manual = options.style;\n if (manual != null) {\n Object.keys(manual).forEach((key) => {\n style[key] = manual[key];\n });\n }\n return node;\n}\n//# sourceMappingURL=apply-style.js.map","import { toArray } from './util';\nimport { fetchAsDataURL } from './dataurl';\nimport { shouldEmbed, embedResources } from './embed-resources';\nconst cssFetchCache = {};\nasync function fetchCSS(url) {\n let cache = cssFetchCache[url];\n if (cache != null) {\n return cache;\n }\n const res = await fetch(url);\n const cssText = await res.text();\n cache = { url, cssText };\n cssFetchCache[url] = cache;\n return cache;\n}\nasync function embedFonts(data, options) {\n let cssText = data.cssText;\n const regexUrl = /url\\([\"']?([^\"')]+)[\"']?\\)/g;\n const fontLocs = cssText.match(/url\\([^)]+\\)/g) || [];\n const loadFonts = fontLocs.map(async (loc) => {\n let url = loc.replace(regexUrl, '$1');\n if (!url.startsWith('https://')) {\n url = new URL(url, data.url).href;\n }\n return fetchAsDataURL(url, options.fetchRequestInit, ({ result }) => {\n cssText = cssText.replace(loc, `url(${result})`);\n return [loc, result];\n });\n });\n return Promise.all(loadFonts).then(() => cssText);\n}\nfunction parseCSS(source) {\n if (source == null) {\n return [];\n }\n const result = [];\n const commentsRegex = /(\\/\\*[\\s\\S]*?\\*\\/)/gi;\n // strip out comments\n let cssText = source.replace(commentsRegex, '');\n // eslint-disable-next-line prefer-regex-literals\n const keyframesRegex = new RegExp('((@.*?keyframes [\\\\s\\\\S]*?){([\\\\s\\\\S]*?}\\\\s*?)})', 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const matches = keyframesRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n result.push(matches[0]);\n }\n cssText = cssText.replace(keyframesRegex, '');\n const importRegex = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n // to match css & media queries together\n const combinedCSSRegex = '((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]' +\n '*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})';\n // unified regex\n const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let matches = importRegex.exec(cssText);\n if (matches === null) {\n matches = unifiedRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n else {\n importRegex.lastIndex = unifiedRegex.lastIndex;\n }\n }\n else {\n unifiedRegex.lastIndex = importRegex.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nasync function getCSSRules(styleSheets, options) {\n const ret = [];\n const deferreds = [];\n // First loop inlines imports\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item, index) => {\n if (item.type === CSSRule.IMPORT_RULE) {\n let importIndex = index + 1;\n const url = item.href;\n const deferred = fetchCSS(url)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n try {\n sheet.insertRule(rule, rule.startsWith('@import')\n ? (importIndex += 1)\n : sheet.cssRules.length);\n }\n catch (error) {\n console.error('Error inserting rule from remote css', {\n rule,\n error,\n });\n }\n }))\n .catch((e) => {\n console.error('Error loading remote css', e.toString());\n });\n deferreds.push(deferred);\n }\n });\n }\n catch (e) {\n const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];\n if (sheet.href != null) {\n deferreds.push(fetchCSS(sheet.href)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n inline.insertRule(rule, inline.cssRules.length);\n }))\n .catch((err) => {\n console.error('Error loading remote stylesheet', err);\n }));\n }\n console.error('Error inlining remote css file', e);\n }\n }\n });\n return Promise.all(deferreds).then(() => {\n // Second loop parses rules\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item) => {\n ret.push(item);\n });\n }\n catch (e) {\n console.error(`Error while reading CSS rules from ${sheet.href}`, e);\n }\n }\n });\n return ret;\n });\n}\nfunction getWebFontRules(cssRules) {\n return cssRules\n .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)\n .filter((rule) => shouldEmbed(rule.style.getPropertyValue('src')));\n}\nasync function parseWebFontRules(node, options) {\n if (node.ownerDocument == null) {\n throw new Error('Provided element is not within a Document');\n }\n const styleSheets = toArray(node.ownerDocument.styleSheets);\n const cssRules = await getCSSRules(styleSheets, options);\n return getWebFontRules(cssRules);\n}\nfunction normalizeFontFamily(font) {\n return font.trim().replace(/[\"']/g, '');\n}\nfunction getUsedFonts(node) {\n const fonts = new Set();\n function traverse(node) {\n const fontFamily = node.style.fontFamily || getComputedStyle(node).fontFamily;\n fontFamily.split(',').forEach((font) => {\n fonts.add(normalizeFontFamily(font));\n });\n Array.from(node.children).forEach((child) => {\n if (child instanceof HTMLElement) {\n traverse(child);\n }\n });\n }\n traverse(node);\n return fonts;\n}\nexport async function getWebFontCSS(node, options) {\n const rules = await parseWebFontRules(node, options);\n const usedFonts = getUsedFonts(node);\n const cssTexts = await Promise.all(rules\n .filter((rule) => usedFonts.has(normalizeFontFamily(rule.style.fontFamily)))\n .map((rule) => {\n const baseUrl = rule.parentStyleSheet\n ? rule.parentStyleSheet.href\n : null;\n return embedResources(rule.cssText, baseUrl, options);\n }));\n return cssTexts.join('\\n');\n}\nexport async function embedWebFonts(clonedNode, options) {\n const cssText = options.fontEmbedCSS != null\n ? options.fontEmbedCSS\n : options.skipFonts\n ? null\n : await getWebFontCSS(clonedNode, options);\n if (cssText) {\n const styleNode = document.createElement('style');\n const sytleContent = document.createTextNode(cssText);\n styleNode.appendChild(sytleContent);\n if (clonedNode.firstChild) {\n clonedNode.insertBefore(styleNode, clonedNode.firstChild);\n }\n else {\n clonedNode.appendChild(styleNode);\n }\n }\n}\n//# sourceMappingURL=embed-webfonts.js.map","import { cloneNode } from './clone-node';\nimport { embedImages } from './embed-images';\nimport { applyStyle } from './apply-style';\nimport { embedWebFonts, getWebFontCSS } from './embed-webfonts';\nimport { getImageSize, getPixelRatio, createImage, canvasToBlob, nodeToDataURL, checkCanvasDimensions, } from './util';\nexport async function toSvg(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const clonedNode = (await cloneNode(node, options, true));\n await embedWebFonts(clonedNode, options);\n await embedImages(clonedNode, options);\n applyStyle(clonedNode, options);\n const datauri = await nodeToDataURL(clonedNode, width, height);\n return datauri;\n}\nexport async function toCanvas(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const svg = await toSvg(node, options);\n const img = await createImage(svg);\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n const ratio = options.pixelRatio || getPixelRatio();\n const canvasWidth = options.canvasWidth || width;\n const canvasHeight = options.canvasHeight || height;\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n if (!options.skipAutoScale) {\n checkCanvasDimensions(canvas);\n }\n canvas.style.width = `${canvasWidth}`;\n canvas.style.height = `${canvasHeight}`;\n if (options.backgroundColor) {\n context.fillStyle = options.backgroundColor;\n context.fillRect(0, 0, canvas.width, canvas.height);\n }\n context.drawImage(img, 0, 0, canvas.width, canvas.height);\n return canvas;\n}\nexport async function toPixelData(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const canvas = await toCanvas(node, options);\n const ctx = canvas.getContext('2d');\n return ctx.getImageData(0, 0, width, height).data;\n}\nexport async function toPng(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL();\n}\nexport async function toJpeg(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL('image/jpeg', options.quality || 1);\n}\nexport async function toBlob(node, options = {}) {\n const canvas = await toCanvas(node, options);\n const blob = await canvasToBlob(canvas);\n return blob;\n}\nexport async function getFontEmbedCSS(node, options = {}) {\n return getWebFontCSS(node, options);\n}\n//# sourceMappingURL=index.js.map",null,null,null,null,null,null],"names":["hyphaRpc"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAAA;;EAEG;EACI,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoO5B;;ECvOD;;EAEG;QAOU,YAAY,CAAA;EAavB,IAAA,WAAA,CAAY,OAAwB,EAAA;UAL5B,IAAA,CAAA,MAAM,GAAG,KAAK;UACd,IAAA,CAAA,UAAU,GAAG,KAAK;UAClB,IAAA,CAAA,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;UAC3B,IAAA,CAAA,aAAa,GAAG,EAAE;;UAIxB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EACzC,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,qBAAqB;UACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;EAC7B,YAAA,QAAQ,EAAE,OAAO;EACjB,YAAA,MAAM,EAAE,MAAM;EACd,YAAA,KAAK,EAAE,MAAM;EACb,YAAA,MAAM,EAAE,YAAY;EACpB,YAAA,OAAO,EAAE,MAAM;EACf,YAAA,aAAa,EAAE,QAAQ;EACvB,YAAA,UAAU,EAAE,UAAU;EACvB,SAAA,CAAC;EAEF,QAAA,IAAI,OAAO,EAAE,QAAQ,EAAE;cACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;cAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;EAC9B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI;EAChD,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI;UACjD;;EAGA,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;UAGtD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;EAC7C,QAAA,KAAK,CAAC,WAAW,GAAG,aAAa;EACjC,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;;UAG9B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EAC7C,QAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;EACnC,QAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;EAC9B,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ;EACtC,QAAA,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU;;UAGrC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EAC1C,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,gBAAgB;UAEvC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EAC5C,QAAA,MAAM,CAAC,SAAS,GAAG,cAAc;UACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;EAChD,QAAA,SAAS,CAAC,SAAS,GAAG,OAAO;UAC7B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;EAC/C,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;EACvC,QAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;UACrC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;UACjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;EAC/C,QAAA,QAAQ,CAAC,SAAS,GAAG,WAAW;EAChC,QAAA,QAAQ,CAAC,WAAW,GAAG,QAAQ;EAC/B,QAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;EACvD,QAAA,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;EAC7B,QAAA,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;UAE5B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,YAAY;UAE7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EAC7C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;UAE/B,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EAChD,QAAA,UAAU,CAAC,SAAS,GAAG,aAAa;UACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EAC9C,QAAA,QAAQ,CAAC,SAAS,GAAG,WAAW;EAChC,QAAA,QAAQ,CAAC,WAAW,GAAG,mBAAmB;UAC1C,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EACjD,QAAA,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC;EAChC,QAAA,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;EACzC,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;EAE5B,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;EAC9B,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;;UAG5B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EACzC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe;EACrC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW;UACnC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAI;cACxC,IAAI,CAAC,IAAI,CAAC,UAAU;kBAAE,IAAI,CAAC,MAAM,EAAE;EACrC,QAAA,CAAC,CAAC;EAEF,QAAA,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;EAC/B,QAAA,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;EAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;;UAGhC,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;UAG/C,IAAI,CAAC,SAAS,EAAE;MAClB;MAEQ,SAAS,GAAA;UACf,IAAI,MAAM,GAAG,CAAC;UACd,IAAI,MAAM,GAAG,CAAC;UACd,IAAI,KAAK,GAAG,KAAK;UAEjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAa,KAAI;EACxD,YAAA,MAAM,GAAG,CAAC,CAAC,OAAO;EAClB,YAAA,MAAM,GAAG,CAAC,CAAC,OAAO;cAClB,KAAK,GAAG,KAAK;cACb,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;EAC9C,YAAA,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI;EACzC,YAAA,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG;cACxC,CAAC,CAAC,cAAc,EAAE;EACpB,QAAA,CAAC,CAAC;UAEF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAa,KAAI;EACvD,YAAA,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC;kBAAE;EAClC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC;EACvC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC;cACvC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;kBACpB,KAAK,GAAG,IAAI;EACZ,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;EACtB,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI;EAC3D,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI;kBAC1D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;kBAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;cACjC;EACF,QAAA,CAAC,CAAC;EAEF,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAK;cACxC,MAAM,GAAG,CAAC;cACV,MAAM,GAAG,CAAC;cACV,IAAI,KAAK,EAAE;;kBAET,UAAU,CAAC,MAAK;EACd,oBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;kBACzB,CAAC,EAAE,EAAE,CAAC;cACR;EACF,QAAA,CAAC,CAAC;MACJ;MAEA,MAAM,GAAA;EACJ,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM;EAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;MAClD;EAEA,IAAA,SAAS,CAAC,MAA8C,EAAA;EACtD,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;EACvC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe;EACrC,QAAA,IAAI,MAAM,KAAK,WAAW,EAAE;cAC1B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;cACzC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;UACtC;EAAO,aAAA,IAAI,MAAM,KAAK,OAAO,EAAE;cAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;cACrC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;UAClC;MACF;EAEA,IAAA,OAAO,CAAC,IAA4B,EAAA;EAClC,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,EAAE;EAC5B,QAAA,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;cACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EACzC,YAAA,GAAG,CAAC,SAAS,GAAG,UAAU;cAC1B,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;EAChD,YAAA,SAAS,CAAC,SAAS,GAAG,OAAO;EAC7B,YAAA,SAAS,CAAC,WAAW,GAAG,KAAK;cAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;EAChD,YAAA,SAAS,CAAC,SAAS,GAAG,OAAO;EAC7B,YAAA,SAAS,CAAC,WAAW,GAAG,KAAK;EAC7B,YAAA,SAAS,CAAC,KAAK,GAAG,KAAK;EACvB,YAAA,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC;EAC1B,YAAA,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC;EAC1B,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC;UAChC;MACF;;MAGA,aAAa,CAAC,GAAW,EAAE,KAAa,EAAA;UACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EAC7C,QAAA,OAAO,CAAC,SAAS,GAAG,aAAa;UAEjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EAC9C,QAAA,QAAQ,CAAC,SAAS,GAAG,WAAW;EAChC,QAAA,QAAQ,CAAC,WAAW,GAAG,aAAa;EACpC,QAAA,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;UAE7B,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EAC5C,QAAA,MAAM,CAAC,SAAS,GAAG,SAAS;UAC5B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;EAC9C,QAAA,OAAO,CAAC,SAAS,GAAG,UAAU;EAC9B,QAAA,OAAO,CAAC,WAAW,GAAG,GAAG;EACzB,QAAA,OAAO,CAAC,KAAK,GAAG,GAAG;UACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;EAChD,QAAA,OAAO,CAAC,SAAS,GAAG,UAAU;EAC9B,QAAA,OAAO,CAAC,WAAW,GAAG,MAAM;EAC5B,QAAA,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;cACrC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAK;EAC3C,gBAAA,OAAO,CAAC,WAAW,GAAG,SAAS;EAC/B,gBAAA,UAAU,CAAC,MAAK,EAAG,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;EAC3D,YAAA,CAAC,CAAC;EACJ,QAAA,CAAC,CAAC;EACF,QAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;EAC3B,QAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;EAC3B,QAAA,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;UAE3B,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EAChD,QAAA,UAAU,CAAC,SAAS,GAAG,WAAW;EAClC,QAAA,UAAU,CAAC,WAAW,GAAG,OAAO;EAChC,QAAA,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK;EAClC,QAAA,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC;UAE/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EAC9C,QAAA,QAAQ,CAAC,SAAS,GAAG,SAAS;UAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;EAChD,QAAA,SAAS,CAAC,SAAS,GAAG,UAAU;EAChC,QAAA,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;EAClD,QAAA,SAAS,CAAC,KAAK,GAAG,KAAK;UACvB,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;EACrD,QAAA,YAAY,CAAC,SAAS,GAAG,UAAU;EACnC,QAAA,YAAY,CAAC,WAAW,GAAG,MAAM;EACjC,QAAA,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;cAC1C,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAK;EAC7C,gBAAA,YAAY,CAAC,WAAW,GAAG,SAAS;EACpC,gBAAA,UAAU,CAAC,MAAK,EAAG,YAAY,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;EAChE,YAAA,CAAC,CAAC;EACJ,QAAA,CAAC,CAAC;EACF,QAAA,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC;EAC/B,QAAA,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC;EAClC,QAAA,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;EAE7B,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;MACpC;EAEA,IAAA,MAAM,CACJ,OAAe,EACf,IAAA,GAAoC,MAAM,EAAA;UAE1C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;EAC3C,QAAA,KAAK,CAAC,SAAS,GAAG,CAAA,UAAA,EAAa,IAAI,EAAE;EACrC,QAAA,KAAK,CAAC,WAAW,GAAG,OAAO;EAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC;;EAGpC,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE;cAC7D,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,UAAW,CAAC;UAC9D;;UAGA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;EACpD,QAAA,IAAI,IAAI;EAAE,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY;MAC9C;MAEA,OAAO,GAAA;EACL,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;MACpB;EACD;;EC9QD;;EAEG;WAoBa,gBAAgB,GAAA;MAC9B,MAAM,UAAU,GAAa,EAAE;MAC/B,MAAM,CAAC,GAAG,MAAa;;MAGvB,IAAI,CAAC,CAAC,8BAA8B,EAAE,SAAS,EAAE,IAAI,GAAG,CAAC,EAAE;EACzD,QAAA,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;MAC1B;WAAO;UACL,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,+BAA+B,CAAC;UACpE,IAAI,IAAI,EAAE;cACR,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAC1C,CAAC,CAAC,KACA,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC;EAC7B,gBAAA,CAAC,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAC3C;EACD,YAAA,IAAI,aAAa;EAAE,gBAAA,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;UAC7C;MACF;;MAGA,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,4BAA4B,EAAE;EAC/C,QAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;MACxB;WAAO;UACL,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC;EACvD,QAAA,IAAI,EAAE,IAAK,EAAU,CAAC,WAAW;EAAE,YAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;MAC3D;;MAGA,IAAI,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;EAClD,QAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;MAC5B;;EAGA,IAAA,IAAI,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE;EAChD,QAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;MAC3B;;EAGA,IAAA,IAAI,CAAC,CAAC,aAAa,EAAE;EACnB,QAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;MAC3B;EAEA,IAAA,OAAO,UAAU;EACnB;WAEgB,eAAe,GAAA;MAC7B,MAAM,IAAI,GAAG,WAAW,CAAC,gBAAgB,CACvC,YAAY,CACb,CAAC,CAAC,CAA4C;MAE/C,OAAO;EACL,QAAA,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;UACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;EACrB,QAAA,QAAQ,EAAE;cACR,KAAK,EAAE,MAAM,CAAC,UAAU;cACxB,MAAM,EAAE,MAAM,CAAC,WAAW;EAC3B,SAAA;EACD,QAAA,aAAa,EAAE;EACb,YAAA,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,WAAW;EAC3C,YAAA,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,YAAY;EAC9C,SAAA;UACD,UAAU,EAAE,SAAS,CAAC,SAAS;EAC/B,QAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;UACnC,eAAe,EAAE,SAAS,CAAC,aAAa;UACxC,QAAQ,EAAE,SAAS,CAAC,QAAQ;UAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;UAC5B,MAAM,EAAE,SAAS,CAAC,MAAM;EACxB,QAAA,WAAW,EAAE;cACX,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI;EAC1E,YAAA,qBAAqB,EAAE;EACrB,kBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS;EAC3D,kBAAE,IAAI;EACT,SAAA;UACD,UAAU,EAAE,gBAAgB,EAAE;OAC/B;EACH;;ECjGA;;EAEG;WAGa,WAAW,GAAA;MACzB,OAAO,eAAe,EAAE;EAC1B;EAEA,WAAW,CAAC,UAAU,GAAG;EACvB,IAAA,IAAI,EAAE,aAAa;EACnB,IAAA,WAAW,EACT,8HAA8H;EAChI,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE,EAAE;EACf,KAAA;GACF;EAEK,SAAU,cAAc,CAAC,OAG9B,EAAA;MACC,MAAM,IAAI,GAAI,MAAc,CAAC,kBAAkB,EAAE,WAAW,IAAI,EAAE;EAClE,IAAA,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK;EAC5B,IAAA,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,GAAG;MACnC,IAAI,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,IAAI;EACxE,IAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;EAC/B;EAEA,cAAc,CAAC,UAAU,GAAG;EAC1B,IAAA,IAAI,EAAE,gBAAgB;EACtB,IAAA,WAAW,EAAE,4DAA4D;EACzE,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE;EACV,YAAA,KAAK,EAAE;EACL,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EACT,2EAA2E;kBAC7E,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;EACvC,aAAA;EACD,YAAA,KAAK,EAAE;EACL,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EACT,sEAAsE;EACzE,aAAA;EACF,SAAA;EACF,KAAA;GACF;EAED;EACM,SAAU,qBAAqB,CAAC,UAAU,GAAG,GAAG,EAAA;;MACpD,MAAM,KAAK,IAAG,CAAA,EAAA,GAAE,MAAc,EAAC,kBAAkB,KAAA,EAAA,CAAlB,kBAAkB,GAAK,EAAE,CAAA,CAAC;MACzD,IAAI,KAAK,CAAC,gBAAgB;UAAE;EAE5B,IAAA,KAAK,CAAC,WAAW,GAAG,EAIlB;EACF,IAAA,KAAK,CAAC,gBAAgB,GAAG,IAAI;MAE7B,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAU;EACxD,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;UAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;UAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAW,KAAI;EAClC,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW;cAC9B,IAAI,CAAC,IAAI,CAAC;kBACR,KAAK;EACL,gBAAA,OAAO,EAAE;EACN,qBAAA,GAAG,CAAC,CAAC,CAAM,KAAI;EACd,oBAAA,IAAI;EACF,wBAAA,OAAO,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;sBACtD;EAAE,oBAAA,MAAM;EACN,wBAAA,OAAO,MAAM,CAAC,CAAC,CAAC;sBAClB;EACF,gBAAA,CAAC;uBACA,IAAI,CAAC,GAAG,CAAC;EACZ,gBAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;EACpC,aAAA,CAAC;EACF,YAAA,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE;kBAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;cAC1C;EACA,YAAA,QAAQ,CAAC,GAAG,IAAI,CAAC;EACnB,QAAA,CAAC;MACH;EACF;;ECvFA;;EAEG;EAaH,SAAS,aAAa,CAAC,EAAW,EAAA;EAChC,IAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE;MACvC,MAAM,KAAK,GAA2B,EAAE;EACxC,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;UAC5C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK;MAC/B;MACA,OAAO;EACL,QAAA,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;UAC7B,EAAE,EAAE,EAAE,CAAC,EAAE;UACT,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;EACjC,QAAA,IAAI,EAAE,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;EACjD,QAAA,UAAU,EAAE,KAAK;EACjB,QAAA,MAAM,EAAE;cACN,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;cACrB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;cACrB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;cAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;EAChC,SAAA;EACD,QAAA,OAAO,EACL,IAAI,CAAC,KAAK,GAAG,CAAC;cACd,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,YAAA,gBAAgB,CAAC,EAAE,CAAC,CAAC,UAAU,KAAK,QAAQ;EAC5C,YAAA,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,MAAM;EACzC,QAAA,cAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM;OACnC;EACH;EAEM,SAAU,QAAQ,CACtB,QAAgB,EAChB,OAAoD,EAAA;EAEpD,IAAA,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE;MAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC;MACpD,MAAM,OAAO,GAAkB,EAAE;MACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE;UACzD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;MAC1C;EACA,IAAA,OAAO,OAAO;EAChB;EAEA,QAAQ,CAAC,UAAU,GAAG;EACpB,IAAA,IAAI,EAAE,UAAU;EAChB,IAAA,WAAW,EACT,kJAAkJ;EACpJ,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE;EACV,YAAA,QAAQ,EAAE;EACR,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,6DAA6D;EAC3E,aAAA;EACD,YAAA,KAAK,EAAE;EACL,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,oDAAoD;EAClE,aAAA;EACF,SAAA;UACD,QAAQ,EAAE,CAAC,UAAU,CAAC;EACvB,KAAA;GACF;EAEK,SAAU,YAAY,CAAC,QAAgB,EAAA;MAC3C,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;MAC3C,IAAI,CAAC,EAAE,EAAE;UACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA,+BAAA,EAAkC,QAAQ,CAAA,CAAE,EAAE;MAClF;EACA,IAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE;EACvC,IAAA,EAAE,CAAC,aAAa,CACd,IAAI,UAAU,CAAC,OAAO,EAAE;EACtB,QAAA,OAAO,EAAE,IAAI;EACb,QAAA,UAAU,EAAE,IAAI;EAChB,QAAA,IAAI,EAAE,MAAM;UACZ,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;UACnC,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EACpC,KAAA,CAAC,CACH;MACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA,iBAAA,EAAoB,QAAQ,CAAA,CAAE,EAAE;EACnE;EAEA,YAAY,CAAC,UAAU,GAAG;EACxB,IAAA,IAAI,EAAE,cAAc;EACpB,IAAA,WAAW,EAAE,gDAAgD;EAC7D,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE;EACV,YAAA,QAAQ,EAAE;EACR,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,uCAAuC;EACrD,aAAA;EACF,SAAA;UACD,QAAQ,EAAE,CAAC,UAAU,CAAC;EACvB,KAAA;GACF;EAEK,SAAU,SAAS,CACvB,QAAgB,EAChB,KAAa,EAAA;MAEb,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;MAC3C,IAAI,CAAC,EAAE,EAAE;UACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA,+BAAA,EAAkC,QAAQ,CAAA,CAAE,EAAE;MAClF;MAEA,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;MACpC,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,UAAU,EAAE;UACzC,MAAM,OAAO,GAAG,EAA4C;;EAE5D,QAAA,MAAM,KAAK,GACT,GAAG,KAAK;gBACJ,mBAAmB,CAAC;EACtB,cAAE,gBAAgB,CAAC,SAAS;EAChC,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG;UACzE,IAAI,YAAY,EAAE;EAChB,YAAA,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;UACnC;eAAO;EACL,YAAA,OAAO,CAAC,KAAK,GAAG,KAAK;UACvB;EACA,QAAA,OAAO,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;EAC5D,QAAA,OAAO,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;UAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA,OAAA,EAAU,QAAQ,CAAA,WAAA,CAAa,EAAE;MACpE;EAEA,IAAA,IAAI,GAAG,KAAK,QAAQ,EAAE;UACpB,MAAM,QAAQ,GAAG,EAAuB;EACxC,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,wBAAwB,CAClD,iBAAiB,CAAC,SAAS,EAC3B,OAAO,CACR,EAAE,GAAG;UACN,IAAI,YAAY,EAAE;EAChB,YAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;UACpC;eAAO;EACL,YAAA,QAAQ,CAAC,KAAK,GAAG,KAAK;UACxB;EACA,QAAA,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;EAC9D,QAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA,IAAA,EAAO,QAAQ,CAAA,IAAA,EAAO,KAAK,CAAA,CAAE,EAAE;MAClE;MAEA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA,QAAA,EAAW,QAAQ,CAAA,gCAAA,CAAkC,EAAE;EAC3F;EAEA,SAAS,CAAC,UAAU,GAAG;EACrB,IAAA,IAAI,EAAE,WAAW;EACjB,IAAA,WAAW,EACT,iGAAiG;EACnG,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE;EACV,YAAA,QAAQ,EAAE;EACR,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,oCAAoC;EAClD,aAAA;EACD,YAAA,KAAK,EAAE;EACL,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,mBAAmB;EACjC,aAAA;EACF,SAAA;EACD,QAAA,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;EAChC,KAAA;GACF;EAEK,SAAU,QAAQ,CACtB,MAAyC,EAAA;EAEzC,IAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;UAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;UACzC,IAAI,CAAC,EAAE,EAAE;cACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA,+BAAA,EAAkC,MAAM,CAAA,CAAE,EAAE;UAChF;EACA,QAAA,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;UAC1D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA,YAAA,EAAe,MAAM,CAAA,CAAE,EAAE;MAC5D;MACA,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;EACtE,IAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA,aAAA,EAAgB,MAAM,CAAC,CAAC,CAAA,EAAA,EAAK,MAAM,CAAC,CAAC,CAAA,CAAA,CAAG,EAAE;EAC7E;EAEA,QAAQ,CAAC,UAAU,GAAG;EACpB,IAAA,IAAI,EAAE,UAAU;EAChB,IAAA,WAAW,EACT,8EAA8E;EAChF,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE;EACV,YAAA,MAAM,EAAE;EACN,gBAAA,WAAW,EACT,gGAAgG;EACnG,aAAA;EACF,SAAA;UACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;EACrB,KAAA;GACF;EAEK,SAAU,iBAAiB,CAC/B,QAAgB,EAChB,UAAqB,EAAA;MAErB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;MAC3C,IAAI,CAAC,EAAE,EAAE;EACP,QAAA,OAAO,EAAE,KAAK,EAAE,kCAAkC,QAAQ,CAAA,CAAE,EAAE;MAChE;EACA,IAAA,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,CAAC;MACrC,MAAM,MAAM,GAA2B,EAAE;MACzC,MAAM,KAAK,GACT,UAAU;EACV,QAAA;cACE,SAAS;cACT,UAAU;cACV,OAAO;cACP,QAAQ;cACR,OAAO;cACP,kBAAkB;cAClB,WAAW;cACX,aAAa;cACb,QAAQ;cACR,SAAS;cACT,QAAQ;cACR,SAAS;cACT,YAAY;cACZ,UAAU;cACV,SAAS;WACV;EACH,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;UACxB,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;MAChD;EACA,IAAA,OAAO,MAAM;EACf;EAEA,iBAAiB,CAAC,UAAU,GAAG;EAC7B,IAAA,IAAI,EAAE,mBAAmB;EACzB,IAAA,WAAW,EAAE,yCAAyC;EACtD,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE;EACV,YAAA,QAAQ,EAAE;EACR,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,8BAA8B;EAC5C,aAAA;EACD,YAAA,UAAU,EAAE;EACV,gBAAA,IAAI,EAAE,OAAO;EACb,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;EACzB,gBAAA,WAAW,EACT,wFAAwF;EAC3F,aAAA;EACF,SAAA;UACD,QAAQ,EAAE,CAAC,UAAU,CAAC;EACvB,KAAA;GACF;EAEK,SAAU,gBAAgB,CAC9B,QAAgB,EAAA;MAEhB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;MAC3C,IAAI,CAAC,EAAE,EAAE;EACP,QAAA,OAAO,EAAE,KAAK,EAAE,kCAAkC,QAAQ,CAAA,CAAE,EAAE;MAChE;EACA,IAAA,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE;MACvC,OAAO;EACL,QAAA,MAAM,EAAE;cACN,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;cACrB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;cACrB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;cAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;EAChC,SAAA;EACD,QAAA,OAAO,EACL,IAAI,CAAC,KAAK,GAAG,CAAC;cACd,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,YAAA,gBAAgB,CAAC,EAAE,CAAC,CAAC,UAAU,KAAK,QAAQ;EAC5C,YAAA,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,MAAM;OAC1C;EACH;EAEA,gBAAgB,CAAC,UAAU,GAAG;EAC5B,IAAA,IAAI,EAAE,kBAAkB;EACxB,IAAA,WAAW,EAAE,6DAA6D;EAC1E,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE;EACV,YAAA,QAAQ,EAAE;EACR,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,8BAA8B;EAC5C,aAAA;EACF,SAAA;UACD,QAAQ,EAAE,CAAC,UAAU,CAAC;EACvB,KAAA;GACF;;ECzSM,SAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE;EACzC;EACA,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;EACpC,QAAQ,OAAO,GAAG;EAClB,IAAI;EACJ;EACA,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;EAC5B,QAAQ,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG;EAC7C,IAAI;EACJ;EACA,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;EAChC,QAAQ,OAAO,GAAG;EAClB,IAAI;EACJ,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,EAAE;EAC5D,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;EAC1C,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC;EACpC,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;EAC9B,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;EAC3B,IAAI,IAAI,OAAO,EAAE;EACjB,QAAQ,IAAI,CAAC,IAAI,GAAG,OAAO;EAC3B,IAAI;EACJ,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG;EAChB,IAAI,OAAO,CAAC,CAAC,IAAI;EACjB;EACO,MAAM,IAAI,GAAG,CAAC,MAAM;EAC3B;EACA;EACA,IAAI,IAAI,OAAO,GAAG,CAAC;EACnB;EACA,IAAI,MAAM,MAAM,GAAG;EACnB;EACA,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;EACpE,IAAI,OAAO,MAAM;EACjB,QAAQ,OAAO,IAAI,CAAC;EACpB,QAAQ,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;EACvC,IAAI,CAAC;EACL,CAAC,GAAG;EAMG,SAAS,OAAO,CAAC,SAAS,EAAE;EACnC,IAAI,MAAM,GAAG,GAAG,EAAE;EAClB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;EACtD,QAAQ,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;EAC9B,IAAI;EACJ,IAAI,OAAO,GAAG;EACd;EACA,IAAI,UAAU,GAAG,IAAI;EACd,SAAS,kBAAkB,CAAC,OAAO,GAAG,EAAE,EAAE;EACjD,IAAI,IAAI,UAAU,EAAE;EACpB,QAAQ,OAAO,UAAU;EACzB,IAAI;EACJ,IAAI,IAAI,OAAO,CAAC,sBAAsB,EAAE;EACxC,QAAQ,UAAU,GAAG,OAAO,CAAC,sBAAsB;EACnD,QAAQ,OAAO,UAAU;EACzB,IAAI;EACJ,IAAI,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;EAC3E,IAAI,OAAO,UAAU;EACrB;EACA,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE;EACjC,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,MAAM;EACxD,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC;EAC1E,IAAI,OAAO,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;EACtD;EACA,SAAS,YAAY,CAAC,IAAI,EAAE;EAC5B,IAAI,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC;EACpD,IAAI,MAAM,WAAW,GAAG,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC;EACtD,IAAI,OAAO,IAAI,CAAC,WAAW,GAAG,UAAU,GAAG,WAAW;EACtD;EACA,SAAS,aAAa,CAAC,IAAI,EAAE;EAC7B,IAAI,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC;EAClD,IAAI,MAAM,YAAY,GAAG,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC;EACxD,IAAI,OAAO,IAAI,CAAC,YAAY,GAAG,SAAS,GAAG,YAAY;EACvD;EACO,SAAS,YAAY,CAAC,UAAU,EAAE,OAAO,GAAG,EAAE,EAAE;EACvD,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,UAAU,CAAC;EAC3D,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC;EAC9D,IAAI,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;EAC5B;EACO,SAAS,aAAa,GAAG;EAChC,IAAI,IAAI,KAAK;EACb,IAAI,IAAI,aAAa;EACrB,IAAI,IAAI;EACR,QAAQ,aAAa,GAAG,OAAO;EAC/B,IAAI;EACJ,IAAI,OAAO,CAAC,EAAE;EACd;EACA,IAAI;EACJ,IAAI,MAAM,GAAG,GAAG,aAAa,IAAI,aAAa,CAAC;EAC/C,UAAU,aAAa,CAAC,GAAG,CAAC;EAC5B,UAAU,IAAI;EACd,IAAI,IAAI,GAAG,EAAE;EACb,QAAQ,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC;EACjC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;EACjC,YAAY,KAAK,GAAG,CAAC;EACrB,QAAQ;EACR,IAAI;EACJ,IAAI,OAAO,KAAK,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC;EAChD;EACA;EACA,MAAM,oBAAoB,GAAG,KAAK;EAC3B,SAAS,qBAAqB,CAAC,MAAM,EAAE;EAC9C,IAAI,IAAI,MAAM,CAAC,KAAK,GAAG,oBAAoB;EAC3C,QAAQ,MAAM,CAAC,MAAM,GAAG,oBAAoB,EAAE;EAC9C,QAAQ,IAAI,MAAM,CAAC,KAAK,GAAG,oBAAoB;EAC/C,YAAY,MAAM,CAAC,MAAM,GAAG,oBAAoB,EAAE;EAClD,YAAY,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE;EAC9C,gBAAgB,MAAM,CAAC,MAAM,IAAI,oBAAoB,GAAG,MAAM,CAAC,KAAK;EACpE,gBAAgB,MAAM,CAAC,KAAK,GAAG,oBAAoB;EACnD,YAAY;EACZ,iBAAiB;EACjB,gBAAgB,MAAM,CAAC,KAAK,IAAI,oBAAoB,GAAG,MAAM,CAAC,MAAM;EACpE,gBAAgB,MAAM,CAAC,MAAM,GAAG,oBAAoB;EACpD,YAAY;EACZ,QAAQ;EACR,aAAa,IAAI,MAAM,CAAC,KAAK,GAAG,oBAAoB,EAAE;EACtD,YAAY,MAAM,CAAC,MAAM,IAAI,oBAAoB,GAAG,MAAM,CAAC,KAAK;EAChE,YAAY,MAAM,CAAC,KAAK,GAAG,oBAAoB;EAC/C,QAAQ;EACR,aAAa;EACb,YAAY,MAAM,CAAC,KAAK,IAAI,oBAAoB,GAAG,MAAM,CAAC,MAAM;EAChE,YAAY,MAAM,CAAC,MAAM,GAAG,oBAAoB;EAChD,QAAQ;EACR,IAAI;EACJ;EAqBO,SAAS,WAAW,CAAC,GAAG,EAAE;EACjC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;EAC5C,QAAQ,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE;EAC/B,QAAQ,GAAG,CAAC,MAAM,GAAG,MAAM;EAC3B,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM;EACpC,gBAAgB,qBAAqB,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;EACzD,YAAY,CAAC,CAAC;EACd,QAAQ,CAAC;EACT,QAAQ,GAAG,CAAC,OAAO,GAAG,MAAM;EAC5B,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW;EACrC,QAAQ,GAAG,CAAC,QAAQ,GAAG,OAAO;EAC9B,QAAQ,GAAG,CAAC,GAAG,GAAG,GAAG;EACrB,IAAI,CAAC,CAAC;EACN;EACO,eAAe,YAAY,CAAC,GAAG,EAAE;EACxC,IAAI,OAAO,OAAO,CAAC,OAAO;EAC1B,SAAS,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC;EAC9D,SAAS,IAAI,CAAC,kBAAkB;EAChC,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC,CAAC;EACnE;EACO,eAAe,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;EACzD,IAAI,MAAM,KAAK,GAAG,4BAA4B;EAC9C,IAAI,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;EACtD,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC;EAC1E,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;EACzC,IAAI,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;EAC3C,IAAI,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;EACzD,IAAI,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC;EAC/C,IAAI,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;EAChD,IAAI,aAAa,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;EACxC,IAAI,aAAa,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;EACxC,IAAI,aAAa,CAAC,YAAY,CAAC,2BAA2B,EAAE,MAAM,CAAC;EACnE,IAAI,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC;EAClC,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC;EACnC,IAAI,OAAO,YAAY,CAAC,GAAG,CAAC;EAC5B;EACO,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;EACvD,IAAI,IAAI,IAAI,YAAY,QAAQ;EAChC,QAAQ,OAAO,IAAI;EACnB,IAAI,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;EACrD,IAAI,IAAI,aAAa,KAAK,IAAI;EAC9B,QAAQ,OAAO,KAAK;EACpB,IAAI,QAAQ,aAAa,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;EAC5D,QAAQ,mBAAmB,CAAC,aAAa,EAAE,QAAQ,CAAC;EACpD,CAAC;;EC9LD,SAAS,aAAa,CAAC,KAAK,EAAE;EAC9B,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC;EACrD,IAAI,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;EACxE;EACA,SAAS,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE;EAC7C,IAAI,OAAO,kBAAkB,CAAC,OAAO;EACrC,SAAS,GAAG,CAAC,CAAC,IAAI,KAAK;EACvB,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC;EAClD,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC;EACxD,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC;EACnE,IAAI,CAAC;EACL,SAAS,IAAI,CAAC,GAAG,CAAC;EAClB;EACA,SAAS,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;EAClE,IAAI,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;EAC9C,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC;EAC1B,UAAU,aAAa,CAAC,KAAK;EAC7B,UAAU,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC;EAC7C,IAAI,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;EAC7D;EACA,SAAS,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE;EACrE,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC;EAC7D,IAAI,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC;EACrD,IAAI,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,MAAM,EAAE;EAC9C,QAAQ;EACR,IAAI;EACJ,IAAI,MAAM,SAAS,GAAG,IAAI,EAAE;EAC5B,IAAI,IAAI;EACR,QAAQ,UAAU,CAAC,SAAS,GAAG,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EACrE,IAAI;EACJ,IAAI,OAAO,GAAG,EAAE;EAChB,QAAQ;EACR,IAAI;EACJ,IAAI,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;EACxD,IAAI,YAAY,CAAC,WAAW,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;EACtF,IAAI,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC;EACxC;EACO,SAAS,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE;EACrE,IAAI,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC;EAClE,IAAI,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC;EACjE;;ECzCA,MAAM,IAAI,GAAG,uBAAuB;EACpC,MAAM,IAAI,GAAG,YAAY;EACzB,MAAM,KAAK,GAAG;EACd,IAAI,IAAI,EAAE,IAAI;EACd,IAAI,KAAK,EAAE,IAAI;EACf,IAAI,GAAG,EAAE,2BAA2B;EACpC,IAAI,GAAG,EAAE,+BAA+B;EACxC,IAAI,GAAG,EAAE,WAAW;EACpB,IAAI,GAAG,EAAE,IAAI;EACb,IAAI,IAAI,EAAE,IAAI;EACd,IAAI,GAAG,EAAE,WAAW;EACpB,IAAI,IAAI,EAAE,YAAY;EACtB,IAAI,GAAG,EAAE,eAAe;EACxB,IAAI,IAAI,EAAE,YAAY;EACtB,CAAC;EACD,SAAS,YAAY,CAAC,GAAG,EAAE;EAC3B,IAAI,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;EAC3C,IAAI,OAAO,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;EAChC;EACO,SAAS,WAAW,CAAC,GAAG,EAAE;EACjC,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;EACrD,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;EACjC;;ECtBA,SAAS,qBAAqB,CAAC,OAAO,EAAE;EACxC,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAChC;EACO,SAAS,SAAS,CAAC,GAAG,EAAE;EAC/B,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE;EACxC;EACO,SAAS,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE;EAC/C,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;EAC/C;EACO,eAAe,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;EACzD,IAAI,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;EACtC,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;EAC5B,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;EAC1D,IAAI;EACJ,IAAI,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;EACjC,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;EAC5C,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;EACvC,QAAQ,MAAM,CAAC,OAAO,GAAG,MAAM;EAC/B,QAAQ,MAAM,CAAC,SAAS,GAAG,MAAM;EACjC,YAAY,IAAI;EAChB,gBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;EAChE,YAAY;EACZ,YAAY,OAAO,KAAK,EAAE;EAC1B,gBAAgB,MAAM,CAAC,KAAK,CAAC;EAC7B,YAAY;EACZ,QAAQ,CAAC;EACT,QAAQ,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;EAClC,IAAI,CAAC,CAAC;EACN;EACA,MAAM,KAAK,GAAG,EAAE;EAChB,SAAS,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,kBAAkB,EAAE;EAC3D,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EACrC,IAAI,IAAI,kBAAkB,EAAE;EAC5B,QAAQ,GAAG,GAAG,GAAG;EACjB,IAAI;EACJ;EACA,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;EACzC,QAAQ,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EACrC,IAAI;EACJ,IAAI,OAAO,WAAW,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG;EACvD;EACO,eAAe,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE;EAC3E,IAAI,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,kBAAkB,CAAC;EACtF,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE;EACjC,QAAQ,OAAO,KAAK,CAAC,QAAQ,CAAC;EAC9B,IAAI;EACJ;EACA,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE;EAC3B;EACA,QAAQ,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;EAClF,IAAI;EACJ,IAAI,IAAI,OAAO;EACf,IAAI,IAAI;EACR,QAAQ,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK;EACzG,YAAY,IAAI,CAAC,WAAW,EAAE;EAC9B;EACA,gBAAgB,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE;EACnE,YAAY;EACZ,YAAY,OAAO,qBAAqB,CAAC,MAAM,CAAC;EAChD,QAAQ,CAAC,CAAC;EACV,QAAQ,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC;EACnD,IAAI;EACJ,IAAI,OAAO,KAAK,EAAE;EAClB,QAAQ,OAAO,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE;EAChD,QAAQ,IAAI,GAAG,GAAG,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;EAC5D,QAAQ,IAAI,KAAK,EAAE;EACnB,YAAY,GAAG,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO;EACnE,QAAQ;EACR,QAAQ,IAAI,GAAG,EAAE;EACjB,YAAY,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;EAC7B,QAAQ;EACR,IAAI;EACJ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO;EAC7B,IAAI,OAAO,OAAO;EAClB;;ECtEA,eAAe,kBAAkB,CAAC,MAAM,EAAE;EAC1C,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE;EACtC,IAAI,IAAI,OAAO,KAAK,QAAQ,EAAE;EAC9B,QAAQ,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;EACtC,IAAI;EACJ,IAAI,OAAO,WAAW,CAAC,OAAO,CAAC;EAC/B;EACA,eAAe,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE;EACjD,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;EAC1B,QAAQ,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;EACvD,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;EAC3C,QAAQ,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,WAAW;EACxC,QAAQ,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,YAAY;EAC1C,QAAQ,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;EACzG,QAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE;EAC1C,QAAQ,OAAO,WAAW,CAAC,OAAO,CAAC;EACnC,IAAI;EACJ,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;EAC/B,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;EAC3C,IAAI,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC;EACzE,IAAI,OAAO,WAAW,CAAC,OAAO,CAAC;EAC/B;EACA,eAAe,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE;EACnD,IAAI,IAAI,EAAE;EACV,IAAI,IAAI;EACR,QAAQ,IAAI,CAAC,EAAE,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE;EACxI,YAAY,QAAQ,MAAM,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;EAC/E,QAAQ;EACR,IAAI;EACJ,IAAI,OAAO,EAAE,EAAE;EACf;EACA,IAAI;EACJ,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;EAClC;EACA,eAAe,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE;EAC9C,IAAI,IAAI,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE;EACtD,QAAQ,OAAO,kBAAkB,CAAC,IAAI,CAAC;EACvC,IAAI;EACJ,IAAI,IAAI,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE;EACrD,QAAQ,OAAO,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC;EAC/C,IAAI;EACJ,IAAI,IAAI,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE;EACtD,QAAQ,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC;EAChD,IAAI;EACJ,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;EAC7C;EACA,MAAM,aAAa,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,MAAM;EAC7F,MAAM,YAAY,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK;EAC3F,eAAe,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE;EAC9D,IAAI,IAAI,EAAE,EAAE,EAAE;EACd,IAAI,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE;EAClC,QAAQ,OAAO,UAAU;EACzB,IAAI;EACJ,IAAI,IAAI,QAAQ,GAAG,EAAE;EACrB,IAAI,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,aAAa,EAAE;EAC/D,QAAQ,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;EACtD,IAAI;EACJ,SAAS,IAAI,mBAAmB,CAAC,UAAU,EAAE,iBAAiB,CAAC;EAC/D,SAAS,CAAC,EAAE,GAAG,UAAU,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;EAC1F,QAAQ,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;EACtE,IAAI;EACJ,SAAS;EACT,QAAQ,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,UAAU,EAAE,UAAU,CAAC;EACjH,IAAI;EACJ,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;EAC7B,QAAQ,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE;EAC3D,QAAQ,OAAO,UAAU;EACzB,IAAI;EACJ,IAAI,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,KAAK;EAC/C,SAAS,IAAI,CAAC,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC;EAC7C,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK;EAC/B,QAAQ,IAAI,WAAW,EAAE;EACzB,YAAY,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC;EAC/C,QAAQ;EACR,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;EAC1B,IAAI,OAAO,UAAU;EACrB;EACA,SAAS,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE;EACxD,IAAI,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK;EACxC,IAAI,IAAI,CAAC,WAAW,EAAE;EACtB,QAAQ;EACR,IAAI;EACJ,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC;EAC3D,IAAI,IAAI,WAAW,CAAC,OAAO,EAAE;EAC7B,QAAQ,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO;EACjD,QAAQ,WAAW,CAAC,eAAe,GAAG,WAAW,CAAC,eAAe;EACjE,IAAI;EACJ,SAAS;EACT,QAAQ,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;EACtD,YAAY,IAAI,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC;EAC1D,YAAY,IAAI,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;EAC9D,gBAAgB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;EACtG,gBAAgB,KAAK,GAAG,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;EAC1C,YAAY;EACZ,YAAY,IAAI,mBAAmB,CAAC,UAAU,EAAE,iBAAiB,CAAC;EAClE,gBAAgB,IAAI,KAAK,SAAS;EAClC,gBAAgB,KAAK,KAAK,QAAQ,EAAE;EACpC,gBAAgB,KAAK,GAAG,OAAO;EAC/B,YAAY;EACZ,YAAY,IAAI,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;EAC9D,gBAAgB,KAAK,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAC/D,YAAY;EACZ,YAAY,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;EACvF,QAAQ,CAAC,CAAC;EACV,IAAI;EACJ;EACA,SAAS,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE;EACjD,IAAI,IAAI,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAAE;EAC9D,QAAQ,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,KAAK;EAC/C,IAAI;EACJ,IAAI,IAAI,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE;EAC3D,QAAQ,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC;EAC1D,IAAI;EACJ;EACA,SAAS,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE;EAClD,IAAI,IAAI,mBAAmB,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAAE;EAC5D,QAAQ,MAAM,YAAY,GAAG,UAAU;EACvC,QAAQ,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,KAAK,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;EAClI,QAAQ,IAAI,cAAc,EAAE;EAC5B,YAAY,cAAc,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;EACvD,QAAQ;EACR,IAAI;EACJ;EACA,SAAS,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE;EACnD,IAAI,IAAI,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;EAClD,QAAQ,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;EACtD,QAAQ,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;EAC5D,QAAQ,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC;EAC/C,QAAQ,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC;EAChD,IAAI;EACJ,IAAI,OAAO,UAAU;EACrB;EACA,eAAe,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE;EAChD,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE;EAC5E,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;EAC3B,QAAQ,OAAO,KAAK;EACpB,IAAI;EACJ,IAAI,MAAM,aAAa,GAAG,EAAE;EAC5B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC1C,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;EAC3B,QAAQ,MAAM,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC;EACjD,QAAQ,IAAI,EAAE,EAAE;EAChB,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;EACjD,YAAY,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;EACzD,YAAY,IAAI,CAAC,KAAK,IAAI,UAAU,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE;EAC5D;EACA,gBAAgB,aAAa,CAAC,EAAE,CAAC,IAAI,MAAM,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;EAChF,YAAY;EACZ,QAAQ;EACR,IAAI;EACJ,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;EAC9C,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE;EACtB,QAAQ,MAAM,EAAE,GAAG,8BAA8B;EACjD,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC;EACvD,QAAQ,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;EACrC,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;EACvC,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG;EAC7B,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;EAC9B,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;EACrC,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;EAClC,QAAQ,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC;EACzD,QAAQ,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;EAC7B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC/C,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;EACtC,QAAQ;EACR,QAAQ,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC;EAC9B,IAAI;EACJ,IAAI,OAAO,KAAK;EAChB;EACO,eAAe,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;EACvD,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;EAC5D,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI;EAC/B,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC;EAClE,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC;EACtE,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC;EACjE,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;EACpE;;ECnLA,MAAM,SAAS,GAAG,4BAA4B;EAC9C,MAAM,qBAAqB,GAAG,6CAA6C;EAC3E,MAAM,cAAc,GAAG,oDAAoD;EAC3E,SAAS,OAAO,CAAC,GAAG,EAAE;EACtB;EACA,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC;EACnE,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC;EACjE;EACO,SAAS,SAAS,CAAC,OAAO,EAAE;EACnC,IAAI,MAAM,IAAI,GAAG,EAAE;EACnB,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK;EACxD,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;EACtB,QAAQ,OAAO,GAAG;EAClB,IAAI,CAAC,CAAC;EACN,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;EAChD;EACO,eAAe,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE;EACvF,IAAI,IAAI;EACR,QAAQ,MAAM,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,WAAW;EACpF,QAAQ,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;EACpD,QAAQ,IAAI,OAAO;EACnB,QAAQ,IAAI,iBAAiB,EAAE;EAI/B,aAAa;EACb,YAAY,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC;EAChF,QAAQ;EACR,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;EACtE,IAAI;EACJ,IAAI,OAAO,KAAK,EAAE;EAClB;EACA,IAAI;EACJ,IAAI,OAAO,OAAO;EAClB;EACA,SAAS,yBAAyB,CAAC,GAAG,EAAE,EAAE,mBAAmB,EAAE,EAAE;EACjE,IAAI,OAAO,CAAC;EACZ,UAAU;EACV,UAAU,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,KAAK,KAAK;EACjD;EACA,YAAY,OAAO,IAAI,EAAE;EACzB,gBAAgB,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;EAC/E,gBAAgB,IAAI,CAAC,MAAM,EAAE;EAC7B,oBAAoB,OAAO,EAAE;EAC7B,gBAAgB;EAChB,gBAAgB,IAAI,MAAM,KAAK,mBAAmB,EAAE;EACpD,oBAAoB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;EACzC,gBAAgB;EAChB,YAAY;EACZ,QAAQ,CAAC,CAAC;EACV;EACO,SAAS,WAAW,CAAC,GAAG,EAAE;EACjC,IAAI,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE;EACvC;EACO,eAAe,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;EAChE,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;EAC/B,QAAQ,OAAO,OAAO;EACtB,IAAI;EACJ,IAAI,MAAM,eAAe,GAAG,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC;EACvE,IAAI,MAAM,IAAI,GAAG,SAAS,CAAC,eAAe,CAAC;EAC3C,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,GAAG,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;EACtI;;EC5DA,eAAe,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;EAClD,IAAI,IAAI,EAAE;EACV,IAAI,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC;EAC1G,IAAI,IAAI,SAAS,EAAE;EACnB,QAAQ,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC;EACxE,QAAQ,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;EAC7F,QAAQ,OAAO,IAAI;EACnB,IAAI;EACJ,IAAI,OAAO,KAAK;EAChB;EACA,eAAe,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE;EAEpD,IAAI,CAAC,MAAM,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC;EACvD,SAAS,MAAM,SAAS,CAAC,kBAAkB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;EAClE,IAAI,CAAC,MAAM,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;EACjD,SAAS,MAAM,SAAS,CAAC,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;EAC9D,SAAS,MAAM,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;EAC5D,SAAS,MAAM,SAAS,CAAC,oBAAoB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;EACpE;EACA,eAAe,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE;EACnD,IAAI,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,CAAC;EAC5E,IAAI,IAAI,EAAE,cAAc,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;EACvD,QAAQ,EAAE,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAC;EAC1D,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE;EAClD,QAAQ;EACR,IAAI;EACJ,IAAI,MAAM,GAAG,GAAG,cAAc,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO;EACzE,IAAI,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;EAC3E,IAAI,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;EAC3C,QAAQ,UAAU,CAAC,MAAM,GAAG,OAAO;EACnC,QAAQ,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;EACrC,cAAc,CAAC,GAAG,UAAU,KAAK;EACjC,gBAAgB,IAAI;EACpB,oBAAoB,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC,CAAC;EACvE,gBAAgB;EAChB,gBAAgB,OAAO,KAAK,EAAE;EAC9B,oBAAoB,MAAM,CAAC,KAAK,CAAC;EACjC,gBAAgB;EAChB,YAAY;EACZ,cAAc,MAAM;EACpB,QAAQ,MAAM,KAAK,GAAG,UAAU;EAChC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;EAC1B,YAAY,KAAK,CAAC,MAAM,GAAG,OAAO;EAClC,QAAQ;EACR,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;EACtC,YAAY,KAAK,CAAC,OAAO,GAAG,OAAO;EACnC,QAAQ;EACR,QAAQ,IAAI,cAAc,EAAE;EAC5B,YAAY,UAAU,CAAC,MAAM,GAAG,EAAE;EAClC,YAAY,UAAU,CAAC,GAAG,GAAG,OAAO;EACpC,QAAQ;EACR,aAAa;EACb,YAAY,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO;EAC7C,QAAQ;EACR,IAAI,CAAC,CAAC;EACN;EACA,eAAe,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE;EAClD,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC;EACnD,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;EAC1E,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC;EACvD;EACO,eAAe,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE;EACvD,IAAI,IAAI,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;EAClD,QAAQ,MAAM,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC;EAClD,QAAQ,MAAM,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC;EACjD,QAAQ,MAAM,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC;EAChD,IAAI;EACJ;;ECvEO,SAAS,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE;EAC1C,IAAI,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;EAC1B,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE;EACjC,QAAQ,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe;EACvD,IAAI;EACJ,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;EACvB,QAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;EAC1C,IAAI;EACJ,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE;EACxB,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;EAC5C,IAAI;EACJ,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK;EAChC,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE;EACxB,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;EAC7C,YAAY,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;EACpC,QAAQ,CAAC,CAAC;EACV,IAAI;EACJ,IAAI,OAAO,IAAI;EACf;;ECfA,MAAM,aAAa,GAAG,EAAE;EACxB,eAAe,QAAQ,CAAC,GAAG,EAAE;EAC7B,IAAI,IAAI,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC;EAClC,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;EACvB,QAAQ,OAAO,KAAK;EACpB,IAAI;EACJ,IAAI,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;EAChC,IAAI,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;EACpC,IAAI,KAAK,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;EAC5B,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK;EAC9B,IAAI,OAAO,KAAK;EAChB;EACA,eAAe,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE;EACzC,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO;EAC9B,IAAI,MAAM,QAAQ,GAAG,6BAA6B;EAClD,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE;EACzD,IAAI,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK;EAClD,QAAQ,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;EAC7C,QAAQ,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;EACzC,YAAY,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;EAC7C,QAAQ;EACR,QAAQ,OAAO,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK;EAC7E,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;EAC5D,YAAY,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;EAChC,QAAQ,CAAC,CAAC;EACV,IAAI,CAAC,CAAC;EACN,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC;EACrD;EACA,SAAS,QAAQ,CAAC,MAAM,EAAE;EAC1B,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE;EACxB,QAAQ,OAAO,EAAE;EACjB,IAAI;EACJ,IAAI,MAAM,MAAM,GAAG,EAAE;EACrB,IAAI,MAAM,aAAa,GAAG,sBAAsB;EAChD;EACA,IAAI,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;EACnD;EACA,IAAI,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,kDAAkD,EAAE,IAAI,CAAC;EAC/F;EACA,IAAI,OAAO,IAAI,EAAE;EACjB,QAAQ,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;EACpD,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE;EAC9B,YAAY;EACZ,QAAQ;EACR,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;EAC/B,IAAI;EACJ,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;EACjD,IAAI,MAAM,WAAW,GAAG,wCAAwC;EAChE;EACA,IAAI,MAAM,gBAAgB,GAAG,uDAAuD;EACpF,QAAQ,uDAAuD;EAC/D;EACA,IAAI,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC;EAC3D;EACA,IAAI,OAAO,IAAI,EAAE;EACjB,QAAQ,IAAI,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;EAC/C,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE;EAC9B,YAAY,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;EAChD,YAAY,IAAI,OAAO,KAAK,IAAI,EAAE;EAClC,gBAAgB;EAChB,YAAY;EACZ,iBAAiB;EACjB,gBAAgB,WAAW,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS;EAC9D,YAAY;EACZ,QAAQ;EACR,aAAa;EACb,YAAY,YAAY,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS;EAC1D,QAAQ;EACR,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;EAC/B,IAAI;EACJ,IAAI,OAAO,MAAM;EACjB;EACA,eAAe,WAAW,CAAC,WAAW,EAAE,OAAO,EAAE;EACjD,IAAI,MAAM,GAAG,GAAG,EAAE;EAClB,IAAI,MAAM,SAAS,GAAG,EAAE;EACxB;EACA,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;EACnC,QAAQ,IAAI,UAAU,IAAI,KAAK,EAAE;EACjC,YAAY,IAAI;EAChB,gBAAgB,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK;EACvE,oBAAoB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,WAAW,EAAE;EAC3D,wBAAwB,IAAI,WAAW,GAAG,KAAK,GAAG,CAAC;EACnD,wBAAwB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI;EAC7C,wBAAwB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG;EACrD,6BAA6B,IAAI,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;EAC7E,6BAA6B,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;EACnF,4BAA4B,IAAI;EAChC,gCAAgC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS;EAChF,uCAAuC,WAAW,IAAI,CAAC;EACvD,sCAAsC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;EAC5D,4BAA4B;EAC5B,4BAA4B,OAAO,KAAK,EAAE;EAC1C,gCAAgC,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE;EACtF,oCAAoC,IAAI;EACxC,oCAAoC,KAAK;EACzC,iCAAiC,CAAC;EAClC,4BAA4B;EAC5B,wBAAwB,CAAC,CAAC;EAC1B,6BAA6B,KAAK,CAAC,CAAC,CAAC,KAAK;EAC1C,4BAA4B,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;EACnF,wBAAwB,CAAC,CAAC;EAC1B,wBAAwB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;EAChD,oBAAoB;EACpB,gBAAgB,CAAC,CAAC;EAClB,YAAY;EACZ,YAAY,OAAO,CAAC,EAAE;EACtB,gBAAgB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;EACjG,gBAAgB,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;EACxC,oBAAoB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;EACtD,yBAAyB,IAAI,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC;EACzE,yBAAyB,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;EAC/E,wBAAwB,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;EACvE,oBAAoB,CAAC,CAAC;EACtB,yBAAyB,KAAK,CAAC,CAAC,GAAG,KAAK;EACxC,wBAAwB,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC;EAC7E,oBAAoB,CAAC,CAAC,CAAC;EACvB,gBAAgB;EAChB,gBAAgB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,CAAC,CAAC;EAClE,YAAY;EACZ,QAAQ;EACR,IAAI,CAAC,CAAC;EACN,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM;EAC7C;EACA,QAAQ,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;EACvC,YAAY,IAAI,UAAU,IAAI,KAAK,EAAE;EACrC,gBAAgB,IAAI;EACpB,oBAAoB,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;EACpE,wBAAwB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;EACtC,oBAAoB,CAAC,CAAC;EACtB,gBAAgB;EAChB,gBAAgB,OAAO,CAAC,EAAE;EAC1B,oBAAoB,OAAO,CAAC,KAAK,CAAC,CAAC,mCAAmC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;EACxF,gBAAgB;EAChB,YAAY;EACZ,QAAQ,CAAC,CAAC;EACV,QAAQ,OAAO,GAAG;EAClB,IAAI,CAAC,CAAC;EACN;EACA,SAAS,eAAe,CAAC,QAAQ,EAAE;EACnC,IAAI,OAAO;EACX,SAAS,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,cAAc;EAC9D,SAAS,MAAM,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;EAC1E;EACA,eAAe,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE;EAChD,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;EACpC,QAAQ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC;EACpE,IAAI;EACJ,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;EAC/D,IAAI,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC;EAC5D,IAAI,OAAO,eAAe,CAAC,QAAQ,CAAC;EACpC;EACA,SAAS,mBAAmB,CAAC,IAAI,EAAE;EACnC,IAAI,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;EAC3C;EACA,SAAS,YAAY,CAAC,IAAI,EAAE;EAC5B,IAAI,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE;EAC3B,IAAI,SAAS,QAAQ,CAAC,IAAI,EAAE;EAC5B,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,UAAU;EACrF,QAAQ,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;EAChD,YAAY,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;EAChD,QAAQ,CAAC,CAAC;EACV,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;EACrD,YAAY,IAAI,KAAK,YAAY,WAAW,EAAE;EAC9C,gBAAgB,QAAQ,CAAC,KAAK,CAAC;EAC/B,YAAY;EACZ,QAAQ,CAAC,CAAC;EACV,IAAI;EACJ,IAAI,QAAQ,CAAC,IAAI,CAAC;EAClB,IAAI,OAAO,KAAK;EAChB;EACO,eAAe,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE;EACnD,IAAI,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC;EACxD,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC;EACxC,IAAI,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;EACvC,SAAS,MAAM,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;EACnF,SAAS,GAAG,CAAC,CAAC,IAAI,KAAK;EACvB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC;EAC7B,cAAc,IAAI,CAAC,gBAAgB,CAAC;EACpC,cAAc,IAAI;EAClB,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;EAC7D,IAAI,CAAC,CAAC,CAAC;EACP,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;EAC9B;EACO,eAAe,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE;EACzD,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,IAAI;EAC5C,UAAU,OAAO,CAAC;EAClB,UAAU,OAAO,CAAC;EAClB,cAAc;EACd,cAAc,MAAM,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC;EACtD,IAAI,IAAI,OAAO,EAAE;EACjB,QAAQ,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;EACzD,QAAQ,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;EAC7D,QAAQ,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC;EAC3C,QAAQ,IAAI,UAAU,CAAC,UAAU,EAAE;EACnC,YAAY,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC;EACrE,QAAQ;EACR,aAAa;EACb,YAAY,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC;EAC7C,QAAQ;EACR,IAAI;EACJ;;ECtMO,eAAe,KAAK,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;EAChD,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;EACzD,IAAI,MAAM,UAAU,IAAI,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;EAC7D,IAAI,MAAM,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC;EAC5C,IAAI,MAAM,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC;EAC1C,IAAI,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC;EACnC,IAAI,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC;EAClE,IAAI,OAAO,OAAO;EAClB;EACO,eAAe,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;EACnD,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;EACzD,IAAI,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC;EAC1C,IAAI,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC;EACtC,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;EACnD,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;EAC3C,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,IAAI,aAAa,EAAE;EACvD,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK;EACpD,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM;EACvD,IAAI,MAAM,CAAC,KAAK,GAAG,WAAW,GAAG,KAAK;EACtC,IAAI,MAAM,CAAC,MAAM,GAAG,YAAY,GAAG,KAAK;EACxC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;EAChC,QAAQ,qBAAqB,CAAC,MAAM,CAAC;EACrC,IAAI;EACJ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;EACzC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;EAC3C,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE;EACjC,QAAQ,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,eAAe;EACnD,QAAQ,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;EAC3D,IAAI;EACJ,IAAI,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;EAC7D,IAAI,OAAO,MAAM;EACjB;EAOO,eAAe,KAAK,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;EAChD,IAAI,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;EAChD,IAAI,OAAO,MAAM,CAAC,SAAS,EAAE;EAC7B;EACO,eAAe,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;EACjD,IAAI,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;EAChD,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;EAC/D;;EClDA;;EAEG;EAGI,eAAe,cAAc,CAAC,OAOpC,EAAA;EACC,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ;EAClC,IAAA,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK;EACvC,IAAA,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI;EACxC,IAAA,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC;EAEjC,IAAA,MAAM,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,IAAI;MAC1E,IAAI,CAAC,MAAM,EAAE;EACX,QAAA,OAAO,EAAE,KAAK,EAAE,kCAAkC,QAAQ,CAAA,CAAE,EAAE;MAChE;EAEA,IAAA,IAAI;UACF,MAAM,IAAI,GAAG,MAAqB;EAClC,QAAA,MAAM,cAAc,GAAG;cACrB,OAAO;EACP,YAAA,UAAU,EAAE,KAAK;EACjB,YAAA,SAAS,EAAE,IAAI;EACf,YAAA,aAAa,EAAE,IAAI;;EAEnB,YAAA,MAAM,EAAE,CAAC,EAAe,KAAI;EAC1B,gBAAA,OAAO,EAAE,CAAC,EAAE,KAAK,qBAAqB;cACxC,CAAC;WACF;EAED,QAAA,IAAI,OAAe;EACnB,QAAA,IAAI,MAAM,KAAK,MAAM,EAAE;cACrB,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC;UAC9C;eAAO;cACL,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC;UAC7C;;EAGA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE;EACzC,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;EAC1C,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;;EAG5C,QAAA,MAAM,IAAI,GAAG,OAAO,EAAE,SAAS;EAC/B,QAAA,MAAM,IAAI,GAAG,OAAO,EAAE,UAAU;EAChC,QAAA,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,EAAE;EACxB,YAAA,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK;cAC1B,KAAK,GAAG,IAAI;cACZ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;UACrC;EACA,QAAA,IAAI,IAAI,IAAI,MAAM,GAAG,IAAI,EAAE;EACzB,YAAA,MAAM,KAAK,GAAG,IAAI,GAAG,MAAM;cAC3B,MAAM,GAAG,IAAI;cACb,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;UACnC;UAEA,OAAO;EACL,YAAA,IAAI,EAAE,OAAO;cACb,MAAM;cACN,KAAK;cACL,MAAM;WACP;MACH;MAAE,OAAO,GAAQ,EAAE;UACjB,OAAO,EAAE,KAAK,EAAE,CAAA,mBAAA,EAAsB,GAAG,CAAC,OAAO,IAAI,GAAG,CAAA,CAAE,EAAE;MAC9D;EACF;EAEA,cAAc,CAAC,UAAU,GAAG;EAC1B,IAAA,IAAI,EAAE,gBAAgB;EACtB,IAAA,WAAW,EACT,mGAAmG;EACrG,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE;EACV,YAAA,QAAQ,EAAE;EACR,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EACT,+EAA+E;EAClF,aAAA;EACD,YAAA,MAAM,EAAE;EACN,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;EACrB,gBAAA,WAAW,EAAE,+BAA+B;EAC7C,aAAA;EACD,YAAA,OAAO,EAAE;EACP,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,8CAA8C;EAC5D,aAAA;EACD,YAAA,KAAK,EAAE;EACL,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,2DAA2D;EACzE,aAAA;EACD,YAAA,SAAS,EAAE;EACT,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,+DAA+D;EAC7E,aAAA;EACD,YAAA,UAAU,EAAE;EACV,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,gEAAgE;EAC9E,aAAA;EACF,SAAA;EACF,KAAA;GACF;;EC5GD;;EAEG;EAEI,eAAe,aAAa,CACjC,IAAY,EACZ,OAAiC,EAAA;EAEjC,IAAA,MAAM,SAAS,GAAG,OAAO,EAAE,UAAU,IAAI,KAAK;EAE9C,IAAA,IAAI;EACF,QAAA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;;cAEhC,IAAI,QAAQ,CAAC,uBAAuB,GAAG,IAAI,GAAG,MAAM,CAAC,EAAE;cACvD,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,KACpB,UAAU,CAAC,MAAM,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,EAAE,SAAS,CAAC,CACtE;EACF,SAAA,CAAC;;EAGF,QAAA,IAAI,UAAe;EACnB,QAAA,IAAI,IAAI,GAAW,OAAO,MAAM;EAChC,QAAA,IAAI;EACF,YAAA,IAAI,MAAM,KAAK,SAAS,EAAE;kBACxB,UAAU,GAAG,IAAI;kBACjB,IAAI,GAAG,WAAW;cACpB;EAAO,iBAAA,IAAI,MAAM,YAAY,WAAW,EAAE;EACxC,gBAAA,UAAU,GAAG;EACX,oBAAA,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;sBACjC,EAAE,EAAE,MAAM,CAAC,EAAE;EACb,oBAAA,IAAI,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;mBACtD;kBACD,IAAI,GAAG,aAAa;cACtB;mBAAO,IAAI,MAAM,YAAY,QAAQ,IAAI,MAAM,YAAY,cAAc,EAAE;EACzE,gBAAA,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAO,MAAM;EAChD,oBAAA,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE;sBAC9B,EAAE,EAAE,EAAE,CAAC,EAAE;EACT,oBAAA,IAAI,EAAE,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;EAClD,iBAAA,CAAC,CAAC;kBACH,IAAI,GAAG,UAAU;cACnB;mBAAO;;EAEL,gBAAA,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;cACjD;UACF;EAAE,QAAA,MAAM;EACN,YAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;cAC3B,IAAI,GAAG,qBAAqB;UAC9B;EAEA,QAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;MACrC;MAAE,OAAO,GAAQ,EAAE;UACjB,OAAO,EAAE,KAAK,EAAE,CAAA,iBAAA,EAAoB,GAAG,CAAC,OAAO,IAAI,GAAG,CAAA,CAAE,EAAE;MAC5D;EACF;EAEA,aAAa,CAAC,UAAU,GAAG;EACzB,IAAA,IAAI,EAAE,eAAe;EACrB,IAAA,WAAW,EACT,yHAAyH;EAC3H,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE;EACV,YAAA,IAAI,EAAE;EACJ,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EACT,6GAA6G;EAChH,aAAA;EACD,YAAA,UAAU,EAAE;EACV,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,yDAAyD;EACvE,aAAA;EACF,SAAA;UACD,QAAQ,EAAE,CAAC,MAAM,CAAC;EACnB,KAAA;GACF;;EC1ED;;EAEG;EAEG,SAAU,QAAQ,CACtB,GAAW,EAAA;EAEX,IAAA,IAAI;EACF,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG;UAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA,cAAA,EAAiB,GAAG,CAAA,CAAE,EAAE;MAC3D;MAAE,OAAO,GAAQ,EAAE;EACjB,QAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA,mBAAA,EAAsB,GAAG,CAAC,OAAO,IAAI,GAAG,CAAA,CAAE,EAAE;MAChF;EACF;EAEA,QAAQ,CAAC,UAAU,GAAG;EACpB,IAAA,IAAI,EAAE,UAAU;EAChB,IAAA,WAAW,EAAE,oCAAoC;EACjD,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE;EACV,YAAA,GAAG,EAAE;EACH,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,yBAAyB;EACvC,aAAA;EACF,SAAA;UACD,QAAQ,EAAE,CAAC,KAAK,CAAC;EAClB,KAAA;GACF;WAEe,MAAM,GAAA;EACpB,IAAA,IAAI;EACF,QAAA,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;UACrB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE;MACrD;MAAE,OAAO,GAAQ,EAAE;EACjB,QAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA,wBAAA,EAA2B,GAAG,CAAC,OAAO,IAAI,GAAG,CAAA,CAAE,EAAE;MACrF;EACF;EAEA,MAAM,CAAC,UAAU,GAAG;EAClB,IAAA,IAAI,EAAE,QAAQ;EACd,IAAA,WAAW,EAAE,mCAAmC;EAChD,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE,EAAE;EACf,KAAA;GACF;WAEe,SAAS,GAAA;EACvB,IAAA,IAAI;EACF,QAAA,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;UACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE;MACxD;MAAE,OAAO,GAAQ,EAAE;UACjB,OAAO;EACL,YAAA,OAAO,EAAE,KAAK;EACd,YAAA,OAAO,EAAE,CAAA,2BAAA,EAA8B,GAAG,CAAC,OAAO,IAAI,GAAG,CAAA,CAAE;WAC5D;MACH;EACF;EAEA,SAAS,CAAC,UAAU,GAAG;EACrB,IAAA,IAAI,EAAE,WAAW;EACjB,IAAA,WAAW,EAAE,sCAAsC;EACnD,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE,EAAE;EACf,KAAA;GACF;WAEe,MAAM,GAAA;EACpB,IAAA,IAAI;EACF,QAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;UACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE;MACrD;MAAE,OAAO,GAAQ,EAAE;EACjB,QAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA,eAAA,EAAkB,GAAG,CAAC,OAAO,IAAI,GAAG,CAAA,CAAE,EAAE;MAC5E;EACF;EAEA,MAAM,CAAC,UAAU,GAAG;EAClB,IAAA,IAAI,EAAE,QAAQ;EACd,IAAA,WAAW,EAAE,0BAA0B;EACvC,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE,EAAE;EACf,KAAA;GACF;;ECrFD;;EAEG;EAuBH,SAAS,eAAe,CAAC,IAAa,EAAA;MACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;EAC9B,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,CAAC,CAAC,KACA,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC;EAC7B,QAAA,CAAC,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAC3C;EACD,IAAA,OAAO,QAAQ,GAAI,IAAY,CAAC,QAAQ,CAAC,GAAG,IAAI;EAClD;EAEA,SAAS,gBAAgB,CAAC,KAAgB,EAAA;EACxC,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK;EACtB,IAAA,IAAI,CAAC,IAAI;EAAE,QAAA,OAAO,WAAW;MAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ;UAAE,OAAO,IAAI,CAAC;EAC1C,IAAA,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;UAC9B,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,IAAI,WAAW;MACrD;EACA,IAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;UAC5B,IAAI,IAAI,CAAC,WAAW;cAAE,OAAO,IAAI,CAAC,WAAW;UAC7C,IAAI,IAAI,CAAC,MAAM;EACb,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,YAAY;UACpE,IAAI,IAAI,CAAC,IAAI;cAAE,OAAO,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAe,CAAC;;UAExE,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,oBAAoB,EAAE;EACtD,YAAA,OAAO,CAAA,KAAA,EAAQ,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAe,CAAC,CAAA,CAAA,CAAG;UACtE;MACF;EACA,IAAA,OAAO,WAAW;EACpB;EAEA,SAAS,YAAY,CAAC,KAAgB,EAAA;;MAEpC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE;EAC7E,QAAA,OAAO,UAAU;EACnB,IAAA,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC;EAAE,QAAA,OAAO,OAAO;MACnC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC;EAAE,QAAA,OAAO,MAAM;EACrD,IAAA,OAAO,OAAO;EAChB;EAEA,SAAS,aAAa,CAAC,GAAQ,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAA;MACtD,IAAI,KAAK,GAAG,QAAQ;EAAE,QAAA,OAAO,aAAa;EAC1C,IAAA,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;EAAE,QAAA,OAAO,GAAG;MACjD,IAAI,OAAO,GAAG,KAAK,UAAU;EAAE,QAAA,OAAO,cAAc,GAAG,CAAC,IAAI,IAAI,WAAW,GAAG;MAC9E,IAAI,OAAO,GAAG,KAAK,QAAQ;EAAE,QAAA,OAAO,GAAG;MACvC,IAAI,GAAG,YAAY,WAAW;EAAE,QAAA,OAAO,CAAA,CAAA,EAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA,CAAA,EAAI,GAAG,CAAC,EAAE,CAAA,CAAA,CAAG;EACjF,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;UACtB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;MAC3E;MACA,MAAM,MAAM,GAAwB,EAAE;EACtC,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;EAC1C,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;EACtB,QAAA,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;cAAE;EACjD,QAAA,IAAI;EACF,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC;UAC5D;EAAE,QAAA,MAAM;EACN,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB;UAClC;MACF;EACA,IAAA,OAAO,MAAM;EACf;EAEA,SAAS,YAAY,CAAC,KAAgB,EAAA;MACpC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE;;UAEtC,OAAO,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;MAC7C;EACA,IAAA,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE,EAAE;;UAE3D,MAAM,MAAM,GAAU,EAAE;EACxB,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,aAAa;UAC9B,IAAI,CAAC,GAAG,CAAC;EACT,QAAA,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;EACrB,YAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;kBACnD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;cAChD;EACA,YAAA,IAAI,GAAG,IAAI,CAAC,IAAI;EAChB,YAAA,CAAC,EAAE;UACL;EACA,QAAA,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI;MAC1C;EACA,IAAA,OAAO,IAAI;EACb;EAEA,SAAS,WAAW,CAClB,KAAgB,EAChB,KAAa,EACb,QAAgB,EAAA;EAEhB,IAAA,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;;MAGrC,MAAM,WAAW,GAAG,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,OAAO;EAErE,IAAA,MAAM,IAAI,GAAuB;EAC/B,QAAA,IAAI,EAAE,gBAAgB,CAAC,KAAK,CAAC;EAC7B,QAAA,IAAI,EAAE,SAAS;EACf,QAAA,KAAK,EAAE,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;EAC5D,QAAA,KAAK,EAAE,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,IAAI;UAC/C,GAAG,EAAE,KAAK,CAAC,GAAG;EACd,QAAA,QAAQ,EAAE,EAAE;OACb;EAED,IAAA,IAAI,KAAK,GAAG,QAAQ,EAAE;EACpB,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK;UACvB,OAAO,KAAK,EAAE;EACZ,YAAA,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC;cACzD,IAAI,SAAS,EAAE;;EAEb,gBAAA,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;EAC9D,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;kBAC/B;cACF;EACA,YAAA,KAAK,GAAG,KAAK,CAAC,OAAO;UACvB;MACF;EAEA,IAAA,OAAO,IAAI;EACb;EAEM,SAAU,YAAY,CAAC,OAG5B,EAAA;EACC,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO;EAC7C,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,SAAS,IAAI,CAAC;MAExC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;MAC/C,IAAI,CAAC,MAAM,EAAE;EACX,QAAA,OAAO,EAAE,KAAK,EAAE,kCAAkC,QAAQ,CAAA,CAAE,EAAE;MAChE;EAEA,IAAA,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC;MACrC,IAAI,CAAC,KAAK,EAAE;UACV,OAAO;cACL,KAAK,EAAE,CAAA,iCAAA,EAAoC,QAAQ,CAAA,uBAAA,CAAyB;WAC7E;MACH;;MAGA,IAAI,OAAO,GAAqB,KAAK;MACrC,OAAO,OAAO,IAAI,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE;;EAEnC,QAAA,OAAO,GAAG,OAAO,CAAC,KAAK;MACzB;MACA,IAAI,CAAC,OAAO,EAAE;EACZ,QAAA,OAAO,EAAE,KAAK,EAAE,4CAA4C,EAAE;MAChE;MAEA,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC;MAC9C,IAAI,CAAC,IAAI,EAAE;EACT,QAAA,OAAO,EAAE,KAAK,EAAE,uCAAuC,EAAE;MAC3D;EACA,IAAA,OAAO,IAAI;EACb;EAEA,YAAY,CAAC,UAAU,GAAG;EACxB,IAAA,IAAI,EAAE,cAAc;EACpB,IAAA,WAAW,EACT,gJAAgJ;EAClJ,IAAA,UAAU,EAAE;EACV,QAAA,IAAI,EAAE,QAAQ;EACd,QAAA,UAAU,EAAE;EACV,YAAA,QAAQ,EAAE;EACR,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EACT,2DAA2D;EAC9D,aAAA;EACD,YAAA,SAAS,EAAE;EACT,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,WAAW,EAAE,2DAA2D;EACzE,aAAA;EACF,SAAA;EACF,KAAA;GACF;;ECtMD;;EAEG;QAiDU,aAAa,CAAA;EAMxB,IAAA,WAAA,CAAY,MAAsB,EAAA;UAJ1B,IAAA,CAAA,OAAO,GAAwB,IAAI;UACnC,IAAA,CAAA,MAAM,GAAQ,IAAI;UAClB,IAAA,CAAA,WAAW,GAAQ,IAAI;UAG7B,IAAI,CAAC,MAAM,GAAG;cACZ,UAAU,EAAE,MAAM,CAAC,UAAU;EAC7B,YAAA,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;EACjC,YAAA,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;EACzB,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,cAAc;EAC/C,YAAA,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,cAAc;EACnD,YAAA,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;EAC/B,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,QAAQ;WAC1C;MACH;EAEA,IAAA,MAAM,KAAK,GAAA;;EAET,QAAA,qBAAqB,EAAE;;UAGvB,MAAM,CAAC,GAAG,MAAa;EACvB,QAAA,IAAI,CAAC,CAAC,kBAAkB,EAAE,QAAQ,EAAE;EAClC,YAAA,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC;EAC7E,YAAA,OAAO,CAAC,CAAC,kBAAkB,CAAC,OAAO;UACrC;;EAGA,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;EACvB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,EAAE;EACjC,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC;cACtC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;UACnD;EAEA,QAAA,IAAI;;EAEF,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE;;EAGzC,YAAA,MAAM,aAAa,GAAQ;EACzB,gBAAA,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;eACnC;EACD,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS;kBAAE,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;EAC1E,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;kBAAE,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;cAE9D,IAAI,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC;;EAG1C,YAAA,MAAM,MAAM,GAAG,CAAC,EAAO,EAAE,IAAY,KAAI;EACvC,gBAAA,MAAM,OAAO,GAAG,OAAO,GAAG,IAAW,KAAI;EACvC,oBAAA,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;EACpE,oBAAA,IAAI;0BACF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;EAChC,wBAAA,MAAM,QAAQ,GACZ,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,MAAM;0BAC3D,IAAI,QAAQ,EAAE;EACZ,4BAAA,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA,EAAG,IAAI,CAAA,EAAA,EAAK,MAAM,CAAC,KAAK,CAAA,CAAE,EAAE,OAAO,CAAC;0BAC3D;+BAAO;8BACL,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA,EAAG,IAAI,CAAA,MAAA,CAAQ,EAAE,QAAQ,CAAC;0BACjD;EACA,wBAAA,OAAO,MAAM;sBACf;sBAAE,OAAO,GAAQ,EAAE;EACjB,wBAAA,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA,EAAG,IAAI,CAAA,EAAA,EAAK,GAAG,CAAC,OAAO,CAAA,CAAE,EAAE,OAAO,CAAC;EACxD,wBAAA,MAAM,GAAG;sBACX;EACF,gBAAA,CAAC;;EAED,gBAAA,IAAI,EAAE,CAAC,UAAU,EAAE;EAChB,oBAAA,OAAe,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU;kBAC7C;EACA,gBAAA,OAAO,OAAO;EAChB,YAAA,CAAC;;EAGD,YAAA,MAAM,OAAO,GAAQ;EACnB,gBAAA,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;EAC1B,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;EAC9B,gBAAA,IAAI,EAAE,UAAU;EAChB,gBAAA,WAAW,EACT,2HAA2H;EAC7H,gBAAA,MAAM,EAAE;EACN,oBAAA,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;EACnC,iBAAA;;EAED,gBAAA,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC;EACnD,gBAAA,gBAAgB,EAAE,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC;EAC5D,gBAAA,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;EACxC,gBAAA,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC;EACpD,gBAAA,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC;EAC3C,gBAAA,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;EACxC,gBAAA,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;EACrE,gBAAA,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;EAClE,gBAAA,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC;EAC1D,gBAAA,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC;EACvD,gBAAA,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC;EACtC,gBAAA,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;EAClC,gBAAA,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC;EAC3C,gBAAA,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;EAChC,gBAAA,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC;eACvD;EAED,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC;;cAG7D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS;EAC9C,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU;;cAGnE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;;cAGtD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;EAEtD,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;EAChB,gBAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC;EACnC,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;EACnB,oBAAA,MAAM,EAAE,WAAW;EACnB,oBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;EAC/B,iBAAA,CAAC;kBACF,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC;kBACpD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,QAAQ,CAAC;cACrD;cAEA,OAAO,CAAC,GAAG,CAAC,CAAA,8BAAA,EAAiC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAA,CAAE,CAAC;EACtE,YAAA,OAAO,CAAC,GAAG,CAAC,gCAAgC,aAAa,CAAA,CAAE,CAAC;EAC5D,YAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,UAAU,CAAA,CAAE,CAAC;EAC1D,YAAA,OAAO,CAAC,GAAG,CAAC,2BAA2B,YAAY,CAAA,CAAE,CAAC;cACtD,OAAO,CAAC,GAAG,CACT,CAAA,mCAAA,EAAsC,UAAU,CAAA,0CAAA,EAA6C,YAAY,CAAA,CAAA,CAAG,CAC7G;;EAGD,YAAA,MAAM,OAAO,GAAiB;EAC5B,gBAAA,UAAU,EAAE,aAAa;kBACzB,SAAS;kBACT,MAAM,EAAE,IAAI,CAAC,MAAM;EACnB,gBAAA,WAAW,EAAE,UAAU;EACvB,gBAAA,KAAK,EAAE,YAAY;EACnB,gBAAA,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE;eAC9B;;cAGD,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,kBAAkB,IAAI,EAAE;EACjD,YAAA,CAAC,CAAC,kBAAkB,CAAC,QAAQ,GAAG,IAAI;EACpC,YAAA,CAAC,CAAC,kBAAkB,CAAC,OAAO,GAAG,OAAO;EAEtC,YAAA,OAAO,OAAO;UAChB;UAAE,OAAO,GAAQ,EAAE;EACjB,YAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC;EACvD,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;EAChB,gBAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC;EAC/B,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;EACnB,oBAAA,MAAM,EAAE,OAAO;sBACf,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC;EAClC,iBAAA,CAAC;cACJ;EACA,YAAA,MAAM,GAAG;UACX;MACF;EAEA,IAAA,MAAM,OAAO,GAAA;EACX,QAAA,IAAI;cACF,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE;EACnC,gBAAA,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;cAC1D;UACF;EAAE,QAAA,MAAM;;UAER;EACA,QAAA,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;EACvB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;UACnB,MAAM,CAAC,GAAG,MAAa;EACvB,QAAA,IAAI,CAAC,CAAC,kBAAkB,EAAE;EACxB,YAAA,OAAO,CAAC,CAAC,kBAAkB,CAAC,QAAQ;EACpC,YAAA,OAAO,CAAC,CAAC,kBAAkB,CAAC,OAAO;UACrC;MACF;EAEQ,IAAA,eAAe,CAAC,SAAiB,EAAA;EACvC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;;UAEvD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC;EACvC,QAAA,IAAI,QAAQ,KAAK,EAAE,EAAE;cACnB,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC;cAClD,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC;EACjD,YAAA,OAAO,GAAG,IAAI,CAAA,CAAA,EAAI,SAAS,CAAA,UAAA,EAAa,OAAO,EAAE;UACnD;EACA,QAAA,OAAO,CAAA,EAAG,IAAI,CAAA,UAAA,EAAa,SAAS,EAAE;MACxC;MAEQ,kBAAkB,GAAA;;EAExB,QAAA,MAAM,OAAO,GAAIA,mBAAgB,CAAC,eAAe;EACjD,QAAA,IAAI,OAAO;EAAE,YAAA,OAAO,OAAO;UAC3B,MAAM,CAAC,GAAG,MAAa;EACvB,QAAA,IAAI,CAAC,CAAC,oBAAoB,EAAE,eAAe,EAAE;EAC3C,YAAA,OAAO,CAAC,CAAC,oBAAoB,CAAC,eAAe;UAC/C;UACA,MAAM,IAAI,KAAK,CACb,qEAAqE;EACnE,YAAA,wGAAwG,CAC3G;MACH;EAEQ,IAAA,aAAa,CAAC,IAAW,EAAA;EAC/B,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;EAAE,YAAA,OAAO,EAAE;EAChC,QAAA,OAAO;EACJ,aAAA,GAAG,CAAC,CAAC,CAAC,KAAI;cACT,IAAI,OAAO,CAAC,KAAK,QAAQ;kBAAE,OAAO,CAAC,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC;EAC5E,YAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;EAAE,gBAAA,OAAO,OAAO;EACvD,YAAA,OAAO,MAAM,CAAC,CAAC,CAAC;EAClB,QAAA,CAAC;eACA,IAAI,CAAC,IAAI,CAAC;MACf;EACD;;EC1QD;;;;;;EAMG;EAQH;;;;;;;;;;;;;;EAcG;EACI,eAAe,aAAa,CAAC,MAAsB,EAAA;EACxD,IAAA,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC;EAC3C,IAAA,OAAO,SAAS,CAAC,KAAK,EAAE;EAC1B;;;;;;;;;","x_google_ignoreList":[5,6,7,8,9,10,11,12,13,14]}
@@ -0,0 +1,2 @@
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("hypha-rpc")):"function"==typeof define&&define.amd?define(["exports","hypha-rpc"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).hyphaDebugger={},e.hyphaWebsocketClient)}(this,function(e,t){"use strict";function n(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,Object.freeze(t)}var r=n(t);class o{constructor(e){this.isOpen=!1,this.isDragging=!1,this.dragOffset={x:0,y:0},this.maxLogEntries=50,this.host=document.createElement("div"),this.host.id="hypha-debugger-host",Object.assign(this.host.style,{position:"fixed",bottom:"20px",right:"20px",zIndex:"2147483647",display:"flex",flexDirection:"column",alignItems:"flex-end"}),e?.position&&(this.host.style.bottom="auto",this.host.style.right="auto",this.host.style.left=e.position.x+"px",this.host.style.top=e.position.y+"px"),this.shadow=this.host.attachShadow({mode:"open"});const t=document.createElement("style");t.textContent="\n :host {\n all: initial;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n }\n\n * {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n }\n\n .debugger-icon {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: #4a90d9;\n color: white;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);\n transition: transform 0.15s, background 0.15s;\n user-select: none;\n font-size: 18px;\n line-height: 1;\n }\n\n .debugger-icon:hover {\n transform: scale(1.1);\n background: #357abd;\n }\n\n .debugger-icon.connected {\n background: #27ae60;\n }\n\n .debugger-icon.error {\n background: #e74c3c;\n }\n\n .debugger-panel {\n display: none;\n width: 320px;\n max-height: 420px;\n background: #1e1e2e;\n color: #cdd6f4;\n border-radius: 8px;\n border: 1px solid #45475a;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);\n overflow: hidden;\n flex-direction: column;\n position: absolute;\n bottom: 50px;\n right: 0;\n font-size: 13px;\n }\n\n .debugger-panel.open {\n display: flex;\n }\n\n .panel-header {\n background: #313244;\n padding: 8px 12px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: default;\n border-bottom: 1px solid #45475a;\n font-weight: 600;\n font-size: 12px;\n letter-spacing: 0.3px;\n text-transform: uppercase;\n color: #a6adc8;\n }\n\n .panel-header .title {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .panel-header .close-btn {\n cursor: pointer;\n color: #6c7086;\n font-size: 16px;\n line-height: 1;\n padding: 2px 4px;\n border-radius: 3px;\n }\n\n .panel-header .close-btn:hover {\n color: #cdd6f4;\n background: #45475a;\n }\n\n .status-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n display: inline-block;\n background: #6c7086;\n }\n\n .status-dot.connected {\n background: #a6e3a1;\n }\n\n .status-dot.error {\n background: #f38ba8;\n }\n\n .panel-body {\n padding: 10px 12px;\n overflow-y: auto;\n flex: 1;\n max-height: 340px;\n }\n\n .info-row {\n display: flex;\n justify-content: space-between;\n padding: 4px 0;\n border-bottom: 1px solid #313244;\n font-size: 12px;\n }\n\n .info-row .label {\n color: #6c7086;\n }\n\n .info-row .value {\n color: #cdd6f4;\n text-align: right;\n word-break: break-all;\n max-width: 180px;\n font-family: 'SF Mono', Monaco, Consolas, monospace;\n font-size: 11px;\n }\n\n .url-section {\n margin-top: 8px;\n padding-top: 6px;\n border-top: 1px solid #313244;\n }\n\n .url-label {\n font-size: 11px;\n color: #6c7086;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 3px;\n }\n\n .url-row {\n display: flex;\n align-items: center;\n gap: 4px;\n background: #313244;\n border-radius: 3px;\n padding: 4px 6px;\n }\n\n .url-text {\n flex: 1;\n font-family: 'SF Mono', Monaco, Consolas, monospace;\n font-size: 10px;\n color: #89b4fa;\n word-break: break-all;\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n }\n\n .copy-btn {\n background: #45475a;\n color: #cdd6f4;\n border: none;\n border-radius: 3px;\n padding: 2px 8px;\n font-size: 10px;\n cursor: pointer;\n white-space: nowrap;\n flex-shrink: 0;\n }\n\n .copy-btn:hover {\n background: #585b70;\n }\n\n .log-section {\n margin-top: 8px;\n }\n\n .log-title {\n font-size: 11px;\n color: #6c7086;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 4px;\n }\n\n .log-entry {\n font-family: 'SF Mono', Monaco, Consolas, monospace;\n font-size: 11px;\n padding: 3px 6px;\n border-radius: 3px;\n background: #313244;\n margin-bottom: 2px;\n color: #a6adc8;\n word-break: break-all;\n }\n\n .log-entry.call {\n border-left: 2px solid #89b4fa;\n }\n\n .log-entry.result {\n border-left: 2px solid #a6e3a1;\n }\n\n .log-entry.error {\n border-left: 2px solid #f38ba8;\n color: #f38ba8;\n }\n",this.shadow.appendChild(t);const n=document.createElement("div");n.style.position="relative",n.style.display="flex",n.style.flexDirection="column",n.style.alignItems="flex-end",this.panel=document.createElement("div"),this.panel.className="debugger-panel";const r=document.createElement("div");r.className="panel-header";const o=document.createElement("span");o.className="title",this.statusDot=document.createElement("span"),this.statusDot.className="status-dot",o.appendChild(this.statusDot),o.appendChild(document.createTextNode(" Hypha Debugger"));const i=document.createElement("span");i.className="close-btn",i.textContent="×",i.addEventListener("click",()=>this.toggle()),r.appendChild(o),r.appendChild(i);const s=document.createElement("div");s.className="panel-body",this.infoBody=document.createElement("div"),s.appendChild(this.infoBody);const a=document.createElement("div");a.className="log-section";const c=document.createElement("div");c.className="log-title",c.textContent="Remote Operations",this.logContainer=document.createElement("div"),a.appendChild(c),a.appendChild(this.logContainer),s.appendChild(a),this.panel.appendChild(r),this.panel.appendChild(s),this.icon=document.createElement("div"),this.icon.className="debugger-icon",this.icon.textContent="🐛",this.icon.addEventListener("click",e=>{this.isDragging||this.toggle()}),n.appendChild(this.panel),n.appendChild(this.icon),this.shadow.appendChild(n),document.documentElement.appendChild(this.host),this.setupDrag()}setupDrag(){let e=0,t=0,n=!1;this.icon.addEventListener("mousedown",r=>{e=r.clientX,t=r.clientY,n=!1;const o=this.host.getBoundingClientRect();this.dragOffset.x=r.clientX-o.left,this.dragOffset.y=r.clientY-o.top,r.preventDefault()}),document.addEventListener("mousemove",r=>{if(0===e&&0===t)return;const o=Math.abs(r.clientX-e),i=Math.abs(r.clientY-t);(o>3||i>3)&&(n=!0,this.isDragging=!0,this.host.style.left=r.clientX-this.dragOffset.x+"px",this.host.style.top=r.clientY-this.dragOffset.y+"px",this.host.style.right="auto",this.host.style.bottom="auto")}),document.addEventListener("mouseup",()=>{e=0,t=0,n&&setTimeout(()=>{this.isDragging=!1},50)})}toggle(){this.isOpen=!this.isOpen,this.panel.classList.toggle("open",this.isOpen)}setStatus(e){this.statusDot.className="status-dot",this.icon.className="debugger-icon","connected"===e?(this.statusDot.classList.add("connected"),this.icon.classList.add("connected")):"error"===e&&(this.statusDot.classList.add("error"),this.icon.classList.add("error"))}setInfo(e){this.infoBody.innerHTML="";for(const[t,n]of Object.entries(e)){const e=document.createElement("div");e.className="info-row";const r=document.createElement("span");r.className="label",r.textContent=t;const o=document.createElement("span");o.className="value",o.textContent=n,o.title=n,e.appendChild(r),e.appendChild(o),this.infoBody.appendChild(e)}}setServiceUrl(e,t){const n=document.createElement("div");n.className="url-section";const r=document.createElement("div");r.className="url-label",r.textContent="Service URL",n.appendChild(r);const o=document.createElement("div");o.className="url-row";const i=document.createElement("span");i.className="url-text",i.textContent=e,i.title=e;const s=document.createElement("button");s.className="copy-btn",s.textContent="Copy",s.addEventListener("click",()=>{navigator.clipboard.writeText(e).then(()=>{s.textContent="Copied!",setTimeout(()=>{s.textContent="Copy"},1500)})}),o.appendChild(i),o.appendChild(s),n.appendChild(o);const a=document.createElement("div");a.className="url-label",a.textContent="Token",a.style.marginTop="6px",n.appendChild(a);const c=document.createElement("div");c.className="url-row";const l=document.createElement("span");l.className="url-text",l.textContent=t.slice(0,20)+"...",l.title=t;const u=document.createElement("button");u.className="copy-btn",u.textContent="Copy",u.addEventListener("click",()=>{navigator.clipboard.writeText(t).then(()=>{u.textContent="Copied!",setTimeout(()=>{u.textContent="Copy"},1500)})}),c.appendChild(l),c.appendChild(u),n.appendChild(c),this.infoBody.appendChild(n)}addLog(e,t="call"){const n=document.createElement("div");for(n.className=`log-entry ${t}`,n.textContent=e,this.logContainer.appendChild(n);this.logContainer.children.length>this.maxLogEntries;)this.logContainer.removeChild(this.logContainer.firstChild);const r=this.panel.querySelector(".panel-body");r&&(r.scrollTop=r.scrollHeight)}destroy(){this.host.remove()}}function i(){const e=[],t=window;if(t.__REACT_DEVTOOLS_GLOBAL_HOOK__?.renderers?.size>0)e.push("react");else{const t=document.querySelector("#root, #app, [data-reactroot]");if(t){Object.keys(t).some(e=>e.startsWith("__reactFiber$")||e.startsWith("__reactInternalInstance$"))&&e.push("react")}}if(t.__VUE__||t.__VUE_DEVTOOLS_GLOBAL_HOOK__)e.push("vue");else{const t=document.querySelector("[data-v-app], #app");t&&t.__vue_app__&&e.push("vue")}return(t.ng||document.querySelector("[ng-version]"))&&e.push("angular"),document.querySelector("[class*='svelte-']")&&e.push("svelte"),t.__NEXT_DATA__&&e.push("nextjs"),e}function s(){return function(){const e=performance.getEntriesByType("navigation")[0];return{url:window.location.href,title:document.title,viewport:{width:window.innerWidth,height:window.innerHeight},document_size:{width:document.documentElement.scrollWidth,height:document.documentElement.scrollHeight},user_agent:navigator.userAgent,timestamp:(new Date).toISOString(),cookies_enabled:navigator.cookieEnabled,language:navigator.language,platform:navigator.platform,online:navigator.onLine,performance:{load_time_ms:e?Math.round(e.loadEventEnd-e.startTime):null,dom_content_loaded_ms:e?Math.round(e.domContentLoadedEventEnd-e.startTime):null},frameworks:i()}}()}function a(e){const t=window.__HYPHA_DEBUGGER__?.consoleLogs??[],n=e?.level,r=e?.limit??100;return(n?t.filter(e=>e.level===n):t).slice(-r)}function c(e){const t=e.getBoundingClientRect(),n={};for(const t of Array.from(e.attributes))n[t.name]=t.value;return{tag:e.tagName.toLowerCase(),id:e.id,classes:Array.from(e.classList),text:(e.textContent??"").trim().slice(0,500),attributes:n,bounds:{x:Math.round(t.x),y:Math.round(t.y),width:Math.round(t.width),height:Math.round(t.height)},visible:t.width>0&&t.height>0&&"hidden"!==getComputedStyle(e).visibility&&"none"!==getComputedStyle(e).display,children_count:e.children.length}}function l(e,t){const n=t?.limit??20,r=document.querySelectorAll(e),o=[];for(let e=0;e<Math.min(r.length,n);e++)o.push(c(r[e]));return o}function u(e){const t=document.querySelector(e);if(!t)return{success:!1,message:`No element found for selector: ${e}`};const n=t.getBoundingClientRect();return t.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window,clientX:n.left+n.width/2,clientY:n.top+n.height/2})),{success:!0,message:`Clicked element: ${e}`}}function d(e,t){const n=document.querySelector(e);if(!n)return{success:!1,message:`No element found for selector: ${e}`};const r=n.tagName.toLowerCase();if("input"===r||"textarea"===r){const o=n,i="textarea"===r?HTMLTextAreaElement.prototype:HTMLInputElement.prototype,s=Object.getOwnPropertyDescriptor(i,"value")?.set;return s?s.call(o,t):o.value=t,o.dispatchEvent(new Event("input",{bubbles:!0})),o.dispatchEvent(new Event("change",{bubbles:!0})),{success:!0,message:`Filled ${e} with value`}}if("select"===r){const r=n,o=Object.getOwnPropertyDescriptor(HTMLSelectElement.prototype,"value")?.set;return o?o.call(r,t):r.value=t,r.dispatchEvent(new Event("change",{bubbles:!0})),{success:!0,message:`Set ${e} to ${t}`}}return{success:!1,message:`Element ${e} is not an input/textarea/select`}}function p(e){if("string"==typeof e){const t=document.querySelector(e);return t?(t.scrollIntoView({behavior:"smooth",block:"center"}),{success:!0,message:`Scrolled to ${e}`}):{success:!1,message:`No element found for selector: ${e}`}}return window.scrollTo({left:e.x,top:e.y,behavior:"smooth"}),{success:!0,message:`Scrolled to (${e.x}, ${e.y})`}}function h(e,t){const n=document.querySelector(e);if(!n)return{error:`No element found for selector: ${e}`};const r=getComputedStyle(n),o={},i=t??["display","position","width","height","color","background-color","font-size","font-family","margin","padding","border","opacity","visibility","overflow","z-index"];for(const e of i)o[e]=r.getPropertyValue(e);return o}function m(e){const t=document.querySelector(e);if(!t)return{error:`No element found for selector: ${e}`};const n=t.getBoundingClientRect();return{bounds:{x:Math.round(n.x),y:Math.round(n.y),width:Math.round(n.width),height:Math.round(n.height)},visible:n.width>0&&n.height>0&&"hidden"!==getComputedStyle(t).visibility&&"none"!==getComputedStyle(t).display}}s.__schema__={name:"getPageInfo",description:"Get information about the current web page including URL, title, viewport size, detected frameworks, and performance timing.",parameters:{type:"object",properties:{}}},a.__schema__={name:"getConsoleLogs",description:"Retrieve captured console output (log, warn, error, info).",parameters:{type:"object",properties:{level:{type:"string",description:'Filter by log level: "log", "warn", "error", "info". Omit for all levels.',enum:["log","warn","error","info"]},limit:{type:"number",description:"Maximum number of log entries to return (most recent). Default: 100."}}}},l.__schema__={name:"queryDom",description:"Query DOM elements by CSS selector. Returns tag, id, classes, text content, attributes, bounding rect, and visibility for each matching element.",parameters:{type:"object",properties:{selector:{type:"string",description:'CSS selector to query, e.g. "button.primary", "#app > div".'},limit:{type:"number",description:"Maximum number of elements to return. Default: 20."}},required:["selector"]}},u.__schema__={name:"clickElement",description:"Click a DOM element matching the CSS selector.",parameters:{type:"object",properties:{selector:{type:"string",description:"CSS selector of the element to click."}},required:["selector"]}},d.__schema__={name:"fillInput",description:"Set the value of an input, textarea, or select element. Works with React controlled components.",parameters:{type:"object",properties:{selector:{type:"string",description:"CSS selector of the input element."},value:{type:"string",description:"The value to set."}},required:["selector","value"]}},p.__schema__={name:"scrollTo",description:"Scroll to a DOM element (by CSS selector) or to an absolute position {x, y}.",parameters:{type:"object",properties:{target:{description:"CSS selector string to scroll to an element, or an object {x, y} for absolute scroll position."}},required:["target"]}},h.__schema__={name:"getComputedStyles",description:"Get computed CSS styles for an element.",parameters:{type:"object",properties:{selector:{type:"string",description:"CSS selector of the element."},properties:{type:"array",items:{type:"string"},description:'CSS property names to retrieve, e.g. ["color", "font-size"]. Omit for common defaults.'}},required:["selector"]}},m.__schema__={name:"getElementBounds",description:"Get the bounding rectangle and visibility of a DOM element.",parameters:{type:"object",properties:{selector:{type:"string",description:"CSS selector of the element."}},required:["selector"]}};const g=(()=>{let e=0;return()=>(e+=1,`u${`0000${(Math.random()*36**4|0).toString(36)}`.slice(-4)}${e}`)})();function f(e){const t=[];for(let n=0,r=e.length;n<r;n++)t.push(e[n]);return t}let y=null;function b(e={}){return y||(e.includeStyleProperties?(y=e.includeStyleProperties,y):(y=f(window.getComputedStyle(document.documentElement)),y))}function w(e,t){const n=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return n?parseFloat(n.replace("px","")):0}function _(e,t={}){return{width:t.width||function(e){const t=w(e,"border-left-width"),n=w(e,"border-right-width");return e.clientWidth+t+n}(e),height:t.height||function(e){const t=w(e,"border-top-width"),n=w(e,"border-bottom-width");return e.clientHeight+t+n}(e)}}const v=16384;function x(e){return new Promise((t,n)=>{const r=new Image;r.onload=()=>{r.decode().then(()=>{requestAnimationFrame(()=>t(r))})},r.onerror=n,r.crossOrigin="anonymous",r.decoding="async",r.src=e})}async function S(e,t,n){const r="http://www.w3.org/2000/svg",o=document.createElementNS(r,"svg"),i=document.createElementNS(r,"foreignObject");return o.setAttribute("width",`${t}`),o.setAttribute("height",`${n}`),o.setAttribute("viewBox",`0 0 ${t} ${n}`),i.setAttribute("width","100%"),i.setAttribute("height","100%"),i.setAttribute("x","0"),i.setAttribute("y","0"),i.setAttribute("externalResourcesRequired","true"),o.appendChild(i),i.appendChild(e),async function(e){return Promise.resolve().then(()=>(new XMLSerializer).serializeToString(e)).then(encodeURIComponent).then(e=>`data:image/svg+xml;charset=utf-8,${e}`)}(o)}const E=(e,t)=>{if(e instanceof t)return!0;const n=Object.getPrototypeOf(e);return null!==n&&(n.constructor.name===t.name||E(n,t))};function C(e,t,n,r){const o=`.${e}:${t}`,i=n.cssText?function(e){const t=e.getPropertyValue("content");return`${e.cssText} content: '${t.replace(/'|"/g,"")}';`}(n):function(e,t){return b(t).map(t=>`${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t)?" !important":""};`).join(" ")}(n,r);return document.createTextNode(`${o}{${i}}`)}function k(e,t,n,r){const o=window.getComputedStyle(e,n),i=o.getPropertyValue("content");if(""===i||"none"===i)return;const s=g();try{t.className=`${t.className} ${s}`}catch(e){return}const a=document.createElement("style");a.appendChild(C(s,n,o,r)),t.appendChild(a)}const $="application/font-woff",N="image/jpeg",R={woff:$,woff2:$,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:N,jpeg:N,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml",webp:"image/webp"};function L(e){const t=function(e){const t=/\.([^./]*?)$/g.exec(e);return t?t[1]:""}(e).toLowerCase();return R[t]||""}function T(e){return-1!==e.search(/^(data:)/)}async function D(e,t,n){const r=await fetch(e,t);if(404===r.status)throw new Error(`Resource "${r.url}" not found`);const o=await r.blob();return new Promise((e,t)=>{const i=new FileReader;i.onerror=t,i.onloadend=()=>{try{e(n({res:r,result:i.result}))}catch(e){t(e)}},i.readAsDataURL(o)})}const M={};async function O(e,t,n){const r=function(e,t,n){let r=e.replace(/\?.*/,"");return n&&(r=e),/ttf|otf|eot|woff2?/i.test(r)&&(r=r.replace(/.*\//,"")),t?`[${t}]${r}`:r}(e,t,n.includeQueryParams);if(null!=M[r])return M[r];let o;n.cacheBust&&(e+=(/\?/.test(e)?"&":"?")+(new Date).getTime());try{const r=await D(e,n.fetchRequestInit,({res:e,result:n})=>(t||(t=e.headers.get("Content-Type")||""),function(e){return e.split(/,/)[1]}(n)));o=function(e,t){return`data:${t};base64,${e}`}(r,t)}catch(t){o=n.imagePlaceholder||"";let r=`Failed to fetch resource: ${e}`;t&&(r="string"==typeof t?t:t.message),r&&console.warn(r)}return M[r]=o,o}async function H(e,t){return E(e,HTMLCanvasElement)?async function(e){const t=e.toDataURL();return"data:,"===t?e.cloneNode(!1):x(t)}(e):E(e,HTMLVideoElement)?async function(e,t){if(e.currentSrc){const t=document.createElement("canvas"),n=t.getContext("2d");return t.width=e.clientWidth,t.height=e.clientHeight,null==n||n.drawImage(e,0,0,t.width,t.height),x(t.toDataURL())}const n=e.poster,r=L(n);return x(await O(n,r,t))}(e,t):E(e,HTMLIFrameElement)?async function(e,t){var n;try{if(null===(n=null==e?void 0:e.contentDocument)||void 0===n?void 0:n.body)return await I(e.contentDocument.body,t,!0)}catch(e){}return e.cloneNode(!1)}(e,t):e.cloneNode(A(e))}const P=e=>null!=e.tagName&&"SLOT"===e.tagName.toUpperCase(),A=e=>null!=e.tagName&&"SVG"===e.tagName.toUpperCase();function j(e,t,n){return E(t,Element)&&(function(e,t,n){const r=t.style;if(!r)return;const o=window.getComputedStyle(e);o.cssText?(r.cssText=o.cssText,r.transformOrigin=o.transformOrigin):b(n).forEach(n=>{let i=o.getPropertyValue(n);if("font-size"===n&&i.endsWith("px")){const e=Math.floor(parseFloat(i.substring(0,i.length-2)))-.1;i=`${e}px`}E(e,HTMLIFrameElement)&&"display"===n&&"inline"===i&&(i="block"),"d"===n&&t.getAttribute("d")&&(i=`path(${t.getAttribute("d")})`),r.setProperty(n,i,o.getPropertyPriority(n))})}(e,t,n),function(e,t,n){k(e,t,":before",n),k(e,t,":after",n)}(e,t,n),function(e,t){E(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),E(e,HTMLInputElement)&&t.setAttribute("value",e.value)}(e,t),function(e,t){if(E(e,HTMLSelectElement)){const n=t,r=Array.from(n.children).find(t=>e.value===t.getAttribute("value"));r&&r.setAttribute("selected","")}}(e,t)),t}async function I(e,t,n){return n||!t.filter||t.filter(e)?Promise.resolve(e).then(e=>H(e,t)).then(n=>async function(e,t,n){var r,o;if(A(t))return t;let i=[];return i=P(e)&&e.assignedNodes?f(e.assignedNodes()):E(e,HTMLIFrameElement)&&(null===(r=e.contentDocument)||void 0===r?void 0:r.body)?f(e.contentDocument.body.childNodes):f((null!==(o=e.shadowRoot)&&void 0!==o?o:e).childNodes),0===i.length||E(e,HTMLVideoElement)||await i.reduce((e,r)=>e.then(()=>I(r,n)).then(e=>{e&&t.appendChild(e)}),Promise.resolve()),t}(e,n,t)).then(n=>j(e,n,t)).then(e=>async function(e,t){const n=e.querySelectorAll?e.querySelectorAll("use"):[];if(0===n.length)return e;const r={};for(let o=0;o<n.length;o++){const i=n[o].getAttribute("xlink:href");if(i){const n=e.querySelector(i),o=document.querySelector(i);n||!o||r[i]||(r[i]=await I(o,t,!0))}}const o=Object.values(r);if(o.length){const t="http://www.w3.org/1999/xhtml",n=document.createElementNS(t,"svg");n.setAttribute("xmlns",t),n.style.position="absolute",n.style.width="0",n.style.height="0",n.style.overflow="hidden",n.style.display="none";const r=document.createElementNS(t,"defs");n.appendChild(r);for(let e=0;e<o.length;e++)r.appendChild(o[e]);e.appendChild(n)}return e}(e,t)):null}const q=/url\((['"]?)([^'"]+?)\1\)/g,U=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,z=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;async function B(e,t,n,r,o){try{const i=n?function(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;const n=document.implementation.createHTMLDocument(),r=n.createElement("base"),o=n.createElement("a");return n.head.appendChild(r),n.body.appendChild(o),t&&(r.href=t),o.href=e,o.href}(t,n):t,s=L(t);let a;return o||(a=await O(i,s,r)),e.replace(function(e){const t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1");return new RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,"g")}(t),`$1${a}$3`)}catch(e){}return e}function G(e){return-1!==e.search(q)}async function F(e,t,n){if(!G(e))return e;const r=function(e,{preferredFontFormat:t}){return t?e.replace(z,e=>{for(;;){const[n,,r]=U.exec(e)||[];if(!r)return"";if(r===t)return`src: ${n};`}}):e}(e,n),o=function(e){const t=[];return e.replace(q,(e,n,r)=>(t.push(r),e)),t.filter(e=>!T(e))}(r);return o.reduce((e,r)=>e.then(e=>B(e,r,t,n)),Promise.resolve(r))}async function V(e,t,n){var r;const o=null===(r=t.style)||void 0===r?void 0:r.getPropertyValue(e);if(o){const r=await F(o,null,n);return t.style.setProperty(e,r,t.style.getPropertyPriority(e)),!0}return!1}async function W(e,t){E(e,Element)&&(await async function(e,t){await V("background",e,t)||await V("background-image",e,t),await V("mask",e,t)||await V("-webkit-mask",e,t)||await V("mask-image",e,t)||await V("-webkit-mask-image",e,t)}(e,t),await async function(e,t){const n=E(e,HTMLImageElement);if((!n||T(e.src))&&(!E(e,SVGImageElement)||T(e.href.baseVal)))return;const r=n?e.src:e.href.baseVal,o=await O(r,L(r),t);await new Promise((r,i)=>{e.onload=r,e.onerror=t.onImageErrorHandler?(...e)=>{try{r(t.onImageErrorHandler(...e))}catch(e){i(e)}}:i;const s=e;s.decode&&(s.decode=r),"lazy"===s.loading&&(s.loading="eager"),n?(e.srcset="",e.src=o):e.href.baseVal=o})}(e,t),await async function(e,t){const n=f(e.childNodes).map(e=>W(e,t));await Promise.all(n).then(()=>e)}(e,t))}const Y={};async function J(e){let t=Y[e];if(null!=t)return t;const n=await fetch(e);return t={url:e,cssText:await n.text()},Y[e]=t,t}async function X(e,t){let n=e.cssText;const r=/url\(["']?([^"')]+)["']?\)/g,o=(n.match(/url\([^)]+\)/g)||[]).map(async o=>{let i=o.replace(r,"$1");return i.startsWith("https://")||(i=new URL(i,e.url).href),D(i,t.fetchRequestInit,({result:e})=>(n=n.replace(o,`url(${e})`),[o,e]))});return Promise.all(o).then(()=>n)}function K(e){if(null==e)return[];const t=[];let n=e.replace(/(\/\*[\s\S]*?\*\/)/gi,"");const r=new RegExp("((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})","gi");for(;;){const e=r.exec(n);if(null===e)break;t.push(e[0])}n=n.replace(r,"");const o=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,i=new RegExp("((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})","gi");for(;;){let e=o.exec(n);if(null===e){if(e=i.exec(n),null===e)break;o.lastIndex=i.lastIndex}else i.lastIndex=o.lastIndex;t.push(e[0])}return t}async function Q(e,t){if(null==e.ownerDocument)throw new Error("Provided element is not within a Document");const n=f(e.ownerDocument.styleSheets),r=await async function(e,t){const n=[],r=[];return e.forEach(n=>{if("cssRules"in n)try{f(n.cssRules||[]).forEach((e,o)=>{if(e.type===CSSRule.IMPORT_RULE){let i=o+1;const s=J(e.href).then(e=>X(e,t)).then(e=>K(e).forEach(e=>{try{n.insertRule(e,e.startsWith("@import")?i+=1:n.cssRules.length)}catch(t){console.error("Error inserting rule from remote css",{rule:e,error:t})}})).catch(e=>{console.error("Error loading remote css",e.toString())});r.push(s)}})}catch(o){const i=e.find(e=>null==e.href)||document.styleSheets[0];null!=n.href&&r.push(J(n.href).then(e=>X(e,t)).then(e=>K(e).forEach(e=>{i.insertRule(e,i.cssRules.length)})).catch(e=>{console.error("Error loading remote stylesheet",e)})),console.error("Error inlining remote css file",o)}}),Promise.all(r).then(()=>(e.forEach(e=>{if("cssRules"in e)try{f(e.cssRules||[]).forEach(e=>{n.push(e)})}catch(t){console.error(`Error while reading CSS rules from ${e.href}`,t)}}),n))}(n,t);return function(e){return e.filter(e=>e.type===CSSRule.FONT_FACE_RULE).filter(e=>G(e.style.getPropertyValue("src")))}(r)}function Z(e){return e.trim().replace(/["']/g,"")}async function ee(e,t){const n=await Q(e,t),r=function(e){const t=new Set;return function e(n){(n.style.fontFamily||getComputedStyle(n).fontFamily).split(",").forEach(e=>{t.add(Z(e))}),Array.from(n.children).forEach(t=>{t instanceof HTMLElement&&e(t)})}(e),t}(e);return(await Promise.all(n.filter(e=>r.has(Z(e.style.fontFamily))).map(e=>{const n=e.parentStyleSheet?e.parentStyleSheet.href:null;return F(e.cssText,n,t)}))).join("\n")}async function te(e,t={}){const{width:n,height:r}=_(e,t),o=await I(e,t,!0);await async function(e,t){const n=null!=t.fontEmbedCSS?t.fontEmbedCSS:t.skipFonts?null:await ee(e,t);if(n){const t=document.createElement("style"),r=document.createTextNode(n);t.appendChild(r),e.firstChild?e.insertBefore(t,e.firstChild):e.appendChild(t)}}(o,t),await W(o,t),function(e,t){const{style:n}=e;t.backgroundColor&&(n.backgroundColor=t.backgroundColor),t.width&&(n.width=`${t.width}px`),t.height&&(n.height=`${t.height}px`);const r=t.style;null!=r&&Object.keys(r).forEach(e=>{n[e]=r[e]})}(o,t);return await S(o,n,r)}async function ne(e,t={}){const{width:n,height:r}=_(e,t),o=await te(e,t),i=await x(o),s=document.createElement("canvas"),a=s.getContext("2d"),c=t.pixelRatio||function(){let e,t;try{t=process}catch(e){}const n=t&&t.env?t.env.devicePixelRatio:null;return n&&(e=parseInt(n,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}(),l=t.canvasWidth||n,u=t.canvasHeight||r;return s.width=l*c,s.height=u*c,t.skipAutoScale||function(e){(e.width>v||e.height>v)&&(e.width>v&&e.height>v?e.width>e.height?(e.height*=v/e.width,e.width=v):(e.width*=v/e.height,e.height=v):e.width>v?(e.height*=v/e.width,e.width=v):(e.width*=v/e.height,e.height=v))}(s),s.style.width=`${l}`,s.style.height=`${u}`,t.backgroundColor&&(a.fillStyle=t.backgroundColor,a.fillRect(0,0,s.width,s.height)),a.drawImage(i,0,0,s.width,s.height),s}async function re(e){const t=e?.selector,n=e?.format??"png",r=e?.quality??.92,o=e?.scale??1,i=t?document.querySelector(t):document.body;if(!i)return{error:`No element found for selector: ${t}`};try{const t=i,s={quality:r,pixelRatio:o,cacheBust:!0,skipAutoScale:!0,filter:e=>"hypha-debugger-host"!==e.id};let a;a="jpeg"===n?await async function(e,t={}){return(await ne(e,t)).toDataURL("image/jpeg",t.quality||1)}(t,s):await async function(e,t={}){return(await ne(e,t)).toDataURL()}(t,s);const c=t.getBoundingClientRect();let l=Math.round(c.width*o),u=Math.round(c.height*o);const d=e?.max_width,p=e?.max_height;if(d&&l>d){const e=d/l;l=d,u=Math.round(u*e)}if(p&&u>p){const e=p/u;u=p,l=Math.round(l*e)}return{data:a,format:n,width:l,height:u}}catch(e){return{error:`Screenshot failed: ${e.message??e}`}}}async function oe(e,t){const n=t?.timeout_ms??1e4;try{const t=await Promise.race([new Function("return (async () => {"+e+"})()")(),new Promise((e,t)=>setTimeout(()=>t(new Error("Execution timed out")),n))]);let r,o=typeof t;try{void 0===t?(r=null,o="undefined"):t instanceof HTMLElement?(r={tag:t.tagName.toLowerCase(),id:t.id,text:(t.textContent??"").trim().slice(0,500)},o="HTMLElement"):t instanceof NodeList||t instanceof HTMLCollection?(r=Array.from(t).map(e=>({tag:e.tagName?.toLowerCase(),id:e.id,text:(e.textContent??"").trim().slice(0,200)})),o="NodeList"):r=JSON.parse(JSON.stringify(t))}catch{r=String(t),o="string (serialized)"}return{result:r,type:o}}catch(e){return{error:`Execution error: ${e.message??e}`}}}function ie(e){try{return window.location.href=e,{success:!0,message:`Navigating to ${e}`}}catch(e){return{success:!1,message:`Navigation failed: ${e.message??e}`}}}function se(){try{return window.history.back(),{success:!0,message:"Navigated back"}}catch(e){return{success:!1,message:`Back navigation failed: ${e.message??e}`}}}function ae(){try{return window.history.forward(),{success:!0,message:"Navigated forward"}}catch(e){return{success:!1,message:`Forward navigation failed: ${e.message??e}`}}}function ce(){try{return window.location.reload(),{success:!0,message:"Reloading page"}}catch(e){return{success:!1,message:`Reload failed: ${e.message??e}`}}}function le(e){const{type:t}=e;if(!t)return"(unknown)";if("string"==typeof t)return t;if("function"==typeof t)return t.displayName||t.name||"Anonymous";if("object"==typeof t){if(t.displayName)return t.displayName;if(t.render)return t.render.displayName||t.render.name||"ForwardRef";if(t.type)return le({type:t.type});if("Symbol(react.memo)"===t.$$typeof?.toString())return`Memo(${le({type:t.type})})`}return"(unknown)"}function ue(e,t=0,n=2){if(t>n)return"[max depth]";if(null==e)return e;if("function"==typeof e)return`[Function: ${e.name||"anonymous"}]`;if("object"!=typeof e)return e;if(e instanceof HTMLElement)return`[${e.tagName.toLowerCase()}#${e.id}]`;if(Array.isArray(e))return e.slice(0,10).map(e=>ue(e,t+1,n));const r={},o=Object.keys(e).slice(0,20);for(const i of o)if(!i.startsWith("_")&&!i.startsWith("$$"))try{r[i]=ue(e[i],t+1,n)}catch{r[i]="[unserializable]"}return r}function de(e){if(1===e.tag&&e.stateNode)return ue(e.stateNode.state);if(0===e.tag||11===e.tag||15===e.tag){const t=[];let n=e.memoizedState,r=0;for(;n&&r<20;)null!==n.queue&&void 0!==n.queue&&t.push(ue(n.memoizedState)),n=n.next,r++;return t.length>0?t:null}return null}function pe(e,t,n){const r=function(e){return 0===e.tag||11===e.tag||14===e.tag||15===e.tag?"function":1===e.tag?"class":5===e.tag||6===e.tag?"host":"other"}(e),o="function"===r||"class"===r,i={name:le(e),type:r,props:o?ue(e.memoizedProps):{},state:o?de(e):null,key:e.key,children:[]};if(t<n){let r=e.child;for(;r;){const e=pe(r,t+1,n);e&&("host"!==e.type||e.children.length>0)&&i.children.push(e),r=r.sibling}}return i}function he(e){const t=e?.selector??"#root",n=e?.max_depth??5,r=document.querySelector(t);if(!r)return{error:`No element found for selector: ${t}`};const o=function(e){const t=Object.keys(e).find(e=>e.startsWith("__reactFiber$")||e.startsWith("__reactInternalInstance$"));return t?e[t]:null}(r);if(!o)return{error:`No React fiber found on element "${t}". Is this a React app?`};let i=o;for(;i&&3===i.tag;)i=i.child;if(!i)return{error:"Could not find root React component fiber."};const s=pe(i,0,n);return s||{error:"Could not build React component tree."}}re.__schema__={name:"takeScreenshot",description:"Capture a screenshot of the entire page or a specific element. Returns a base64-encoded data URL.",parameters:{type:"object",properties:{selector:{type:"string",description:"CSS selector of the element to capture. Omit to capture the entire page body."},format:{type:"string",enum:["png","jpeg"],description:'Image format. Default: "png".'},quality:{type:"number",description:"Image quality (0-1) for JPEG. Default: 0.92."},scale:{type:"number",description:"Pixel ratio / scale factor. Default: 1. Use 2 for retina."},max_width:{type:"number",description:"Maximum width in pixels. Image will be scaled down if larger."},max_height:{type:"number",description:"Maximum height in pixels. Image will be scaled down if larger."}}}},oe.__schema__={name:"executeScript",description:"Execute arbitrary JavaScript code in the page context. Supports async/await. Returns the result of the last expression.",parameters:{type:"object",properties:{code:{type:"string",description:'JavaScript code to execute. The result of the last expression is returned. Example: "return document.title"'},timeout_ms:{type:"number",description:"Maximum execution time in milliseconds. Default: 10000."}},required:["code"]}},ie.__schema__={name:"navigate",description:"Navigate the browser to a new URL.",parameters:{type:"object",properties:{url:{type:"string",description:"The URL to navigate to."}},required:["url"]}},se.__schema__={name:"goBack",description:"Navigate back in browser history.",parameters:{type:"object",properties:{}}},ae.__schema__={name:"goForward",description:"Navigate forward in browser history.",parameters:{type:"object",properties:{}}},ce.__schema__={name:"reload",description:"Reload the current page.",parameters:{type:"object",properties:{}}},he.__schema__={name:"getReactTree",description:"Inspect the React component tree starting from a DOM element. Returns component names, props, state (including hooks), and children hierarchy.",parameters:{type:"object",properties:{selector:{type:"string",description:'CSS selector of the React root element. Default: "#root".'},max_depth:{type:"number",description:"Maximum depth to traverse the component tree. Default: 5."}}}};class me{constructor(e){this.overlay=null,this.server=null,this.serviceInfo=null,this.config={server_url:e.server_url,workspace:e.workspace??"",token:e.token??"",service_id:e.service_id??"web-debugger",service_name:e.service_name??"Web Debugger",show_ui:e.show_ui??!0,visibility:e.visibility??"public"}}async start(){!function(e=500){var t;const n=(t=window).__HYPHA_DEBUGGER__??(t.__HYPHA_DEBUGGER__={});if(n.consoleInstalled)return;n.consoleLogs=[],n.consoleInstalled=!0;const r=["log","warn","error","info"];for(const t of r){const r=console[t].bind(console);console[t]=(...o)=>{const i=n.consoleLogs;i.push({level:t,message:o.map(e=>{try{return"string"==typeof e?e:JSON.stringify(e)}catch{return String(e)}}).join(" "),timestamp:(new Date).toISOString()}),i.length>e&&i.splice(0,i.length-e),r(...o)}}}();const e=window;if(e.__HYPHA_DEBUGGER__?.instance)return console.warn("[hypha-debugger] Already running, returning existing session."),e.__HYPHA_DEBUGGER__.session;this.config.show_ui&&(this.overlay=new o,this.overlay.setStatus("disconnected"),this.overlay.setInfo({Status:"Connecting..."}));try{const t=this.getConnectToServer(),n={server_url:this.config.server_url};this.config.workspace&&(n.workspace=this.config.workspace),this.config.token&&(n.token=this.config.token),this.server=await t(n);const r=(e,t)=>{const n=async(...n)=>{this.overlay?.addLog(`${t}(${this.summarizeArgs(n)})`,"call");try{const r=await e(...n);return r&&"object"==typeof r&&"error"in r?this.overlay?.addLog(`${t}: ${r.error}`,"error"):this.overlay?.addLog(`${t} -> OK`,"result"),r}catch(e){throw this.overlay?.addLog(`${t}: ${e.message}`,"error"),e}};return e.__schema__&&(n.__schema__=e.__schema__),n},o={id:this.config.service_id,name:this.config.service_name,type:"debugger",description:"Remote web page debugger. Allows inspecting DOM, taking screenshots, executing JavaScript, and interacting with the page.",config:{visibility:this.config.visibility},get_page_info:r(s,"get_page_info"),get_console_logs:r(a,"get_console_logs"),query_dom:r(l,"query_dom"),click_element:r(u,"click_element"),fill_input:r(d,"fill_input"),scroll_to:r(p,"scroll_to"),get_computed_styles:r(h,"get_computed_styles"),get_element_bounds:r(m,"get_element_bounds"),take_screenshot:r(re,"take_screenshot"),execute_script:r(oe,"execute_script"),navigate:r(ie,"navigate"),go_back:r(se,"go_back"),go_forward:r(ae,"go_forward"),reload:r(ce,"reload"),get_react_tree:r(he,"get_react_tree")};this.serviceInfo=await this.server.registerService(o);const i=this.server.config.workspace,c=this.serviceInfo.id??this.config.service_id,g=await this.server.generateToken(),f=this.buildServiceUrl(c);this.overlay&&(this.overlay.setStatus("connected"),this.overlay.setInfo({Status:"Connected",Server:this.config.server_url}),this.overlay.setServiceUrl(f,g),this.overlay.addLog("Service registered","result")),console.log(`[hypha-debugger] Connected to ${this.config.server_url}`),console.log(`[hypha-debugger] Service ID: ${c}`),console.log(`[hypha-debugger] Service URL: ${f}`),console.log(`[hypha-debugger] Token: ${g}`),console.log(`[hypha-debugger] Test it:\n curl '${f}/get_page_info' -H 'Authorization: Bearer ${g}'`);const y={service_id:c,workspace:i,server:this.server,service_url:f,token:g,destroy:()=>this.destroy()};return e.__HYPHA_DEBUGGER__=e.__HYPHA_DEBUGGER__??{},e.__HYPHA_DEBUGGER__.instance=this,e.__HYPHA_DEBUGGER__.session=y,y}catch(e){throw console.error("[hypha-debugger] Failed to start:",e),this.overlay&&(this.overlay.setStatus("error"),this.overlay.setInfo({Status:"Error",Error:e.message??String(e)})),e}}async destroy(){try{this.serviceInfo&&this.server&&await this.server.unregisterService(this.serviceInfo.id)}catch{}this.overlay?.destroy(),this.overlay=null;const e=window;e.__HYPHA_DEBUGGER__&&(delete e.__HYPHA_DEBUGGER__.instance,delete e.__HYPHA_DEBUGGER__.session)}buildServiceUrl(e){const t=this.config.server_url.replace(/\/+$/,""),n=e.indexOf("/");if(-1!==n){return`${t}/${e.substring(0,n)}/services/${e.substring(n+1)}`}return`${t}/services/${e}`}getConnectToServer(){const e=r.connectToServer;if(e)return e;const t=window;if(t.hyphaWebsocketClient?.connectToServer)return t.hyphaWebsocketClient.connectToServer;throw new Error('hypha-rpc not found. Install it via npm or include the script tag: <script src="https://cdn.jsdelivr.net/npm/hypha-rpc@0.20.97/dist/hypha-rpc-websocket.min.js"><\/script>')}summarizeArgs(e){return 0===e.length?"":e.map(e=>"string"==typeof e?e.length>40?e.slice(0,40)+"...":e:"object"==typeof e&&null!==e?"{...}":String(e)).join(", ")}}e.HyphaDebugger=me,e.startDebugger=async function(e){return new me(e).start()}});
2
+ //# sourceMappingURL=hypha-debugger.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hypha-debugger.min.js","sources":["../src/ui/overlay.ts","../src/ui/styles.ts","../src/utils/env.ts","../src/services/info.ts","../src/services/dom.ts","../node_modules/html-to-image/es/util.js","../node_modules/html-to-image/es/clone-pseudos.js","../node_modules/html-to-image/es/mimes.js","../node_modules/html-to-image/es/dataurl.js","../node_modules/html-to-image/es/clone-node.js","../node_modules/html-to-image/es/embed-resources.js","../node_modules/html-to-image/es/embed-images.js","../node_modules/html-to-image/es/embed-webfonts.js","../node_modules/html-to-image/es/index.js","../node_modules/html-to-image/es/apply-style.js","../src/services/screenshot.ts","../src/services/execute.ts","../src/services/navigate.ts","../src/services/react.ts","../src/debugger.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,"export function resolveUrl(url, baseUrl) {\n // url is absolute already\n if (url.match(/^[a-z]+:\\/\\//i)) {\n return url;\n }\n // url is absolute already, without protocol\n if (url.match(/^\\/\\//)) {\n return window.location.protocol + url;\n }\n // dataURI, mailto:, tel:, etc.\n if (url.match(/^[a-z]+:/i)) {\n return url;\n }\n const doc = document.implementation.createHTMLDocument();\n const base = doc.createElement('base');\n const a = doc.createElement('a');\n doc.head.appendChild(base);\n doc.body.appendChild(a);\n if (baseUrl) {\n base.href = baseUrl;\n }\n a.href = url;\n return a.href;\n}\nexport const uuid = (() => {\n // generate uuid for className of pseudo elements.\n // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.\n let counter = 0;\n // ref: http://stackoverflow.com/a/6248722/2519373\n const random = () => \n // eslint-disable-next-line no-bitwise\n `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n})();\nexport function delay(ms) {\n return (args) => new Promise((resolve) => {\n setTimeout(() => resolve(args), ms);\n });\n}\nexport function toArray(arrayLike) {\n const arr = [];\n for (let i = 0, l = arrayLike.length; i < l; i++) {\n arr.push(arrayLike[i]);\n }\n return arr;\n}\nlet styleProps = null;\nexport function getStyleProperties(options = {}) {\n if (styleProps) {\n return styleProps;\n }\n if (options.includeStyleProperties) {\n styleProps = options.includeStyleProperties;\n return styleProps;\n }\n styleProps = toArray(window.getComputedStyle(document.documentElement));\n return styleProps;\n}\nfunction px(node, styleProperty) {\n const win = node.ownerDocument.defaultView || window;\n const val = win.getComputedStyle(node).getPropertyValue(styleProperty);\n return val ? parseFloat(val.replace('px', '')) : 0;\n}\nfunction getNodeWidth(node) {\n const leftBorder = px(node, 'border-left-width');\n const rightBorder = px(node, 'border-right-width');\n return node.clientWidth + leftBorder + rightBorder;\n}\nfunction getNodeHeight(node) {\n const topBorder = px(node, 'border-top-width');\n const bottomBorder = px(node, 'border-bottom-width');\n return node.clientHeight + topBorder + bottomBorder;\n}\nexport function getImageSize(targetNode, options = {}) {\n const width = options.width || getNodeWidth(targetNode);\n const height = options.height || getNodeHeight(targetNode);\n return { width, height };\n}\nexport function getPixelRatio() {\n let ratio;\n let FINAL_PROCESS;\n try {\n FINAL_PROCESS = process;\n }\n catch (e) {\n // pass\n }\n const val = FINAL_PROCESS && FINAL_PROCESS.env\n ? FINAL_PROCESS.env.devicePixelRatio\n : null;\n if (val) {\n ratio = parseInt(val, 10);\n if (Number.isNaN(ratio)) {\n ratio = 1;\n }\n }\n return ratio || window.devicePixelRatio || 1;\n}\n// @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size\nconst canvasDimensionLimit = 16384;\nexport function checkCanvasDimensions(canvas) {\n if (canvas.width > canvasDimensionLimit ||\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvasDimensionLimit &&\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvas.height) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n else if (canvas.width > canvasDimensionLimit) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n}\nexport function canvasToBlob(canvas, options = {}) {\n if (canvas.toBlob) {\n return new Promise((resolve) => {\n canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);\n });\n }\n return new Promise((resolve) => {\n const binaryString = window.atob(canvas\n .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)\n .split(',')[1]);\n const len = binaryString.length;\n const binaryArray = new Uint8Array(len);\n for (let i = 0; i < len; i += 1) {\n binaryArray[i] = binaryString.charCodeAt(i);\n }\n resolve(new Blob([binaryArray], {\n type: options.type ? options.type : 'image/png',\n }));\n });\n}\nexport function createImage(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n img.decode().then(() => {\n requestAnimationFrame(() => resolve(img));\n });\n };\n img.onerror = reject;\n img.crossOrigin = 'anonymous';\n img.decoding = 'async';\n img.src = url;\n });\n}\nexport async function svgToDataURL(svg) {\n return Promise.resolve()\n .then(() => new XMLSerializer().serializeToString(svg))\n .then(encodeURIComponent)\n .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);\n}\nexport async function nodeToDataURL(node, width, height) {\n const xmlns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(xmlns, 'svg');\n const foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttribute('width', `${width}`);\n svg.setAttribute('height', `${height}`);\n svg.setAttribute('viewBox', `0 0 ${width} ${height}`);\n foreignObject.setAttribute('width', '100%');\n foreignObject.setAttribute('height', '100%');\n foreignObject.setAttribute('x', '0');\n foreignObject.setAttribute('y', '0');\n foreignObject.setAttribute('externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svgToDataURL(svg);\n}\nexport const isInstanceOfElement = (node, instance) => {\n if (node instanceof instance)\n return true;\n const nodePrototype = Object.getPrototypeOf(node);\n if (nodePrototype === null)\n return false;\n return (nodePrototype.constructor.name === instance.name ||\n isInstanceOfElement(nodePrototype, instance));\n};\n//# sourceMappingURL=util.js.map","import { uuid, getStyleProperties } from './util';\nfunction formatCSSText(style) {\n const content = style.getPropertyValue('content');\n return `${style.cssText} content: '${content.replace(/'|\"/g, '')}';`;\n}\nfunction formatCSSProperties(style, options) {\n return getStyleProperties(options)\n .map((name) => {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n return `${name}: ${value}${priority ? ' !important' : ''};`;\n })\n .join(' ');\n}\nfunction getPseudoElementStyle(className, pseudo, style, options) {\n const selector = `.${className}:${pseudo}`;\n const cssText = style.cssText\n ? formatCSSText(style)\n : formatCSSProperties(style, options);\n return document.createTextNode(`${selector}{${cssText}}`);\n}\nfunction clonePseudoElement(nativeNode, clonedNode, pseudo, options) {\n const style = window.getComputedStyle(nativeNode, pseudo);\n const content = style.getPropertyValue('content');\n if (content === '' || content === 'none') {\n return;\n }\n const className = uuid();\n try {\n clonedNode.className = `${clonedNode.className} ${className}`;\n }\n catch (err) {\n return;\n }\n const styleElement = document.createElement('style');\n styleElement.appendChild(getPseudoElementStyle(className, pseudo, style, options));\n clonedNode.appendChild(styleElement);\n}\nexport function clonePseudoElements(nativeNode, clonedNode, options) {\n clonePseudoElement(nativeNode, clonedNode, ':before', options);\n clonePseudoElement(nativeNode, clonedNode, ':after', options);\n}\n//# sourceMappingURL=clone-pseudos.js.map","const WOFF = 'application/font-woff';\nconst JPEG = 'image/jpeg';\nconst mimes = {\n woff: WOFF,\n woff2: WOFF,\n ttf: 'application/font-truetype',\n eot: 'application/vnd.ms-fontobject',\n png: 'image/png',\n jpg: JPEG,\n jpeg: JPEG,\n gif: 'image/gif',\n tiff: 'image/tiff',\n svg: 'image/svg+xml',\n webp: 'image/webp',\n};\nfunction getExtension(url) {\n const match = /\\.([^./]*?)$/g.exec(url);\n return match ? match[1] : '';\n}\nexport function getMimeType(url) {\n const extension = getExtension(url).toLowerCase();\n return mimes[extension] || '';\n}\n//# sourceMappingURL=mimes.js.map","function getContentFromDataUrl(dataURL) {\n return dataURL.split(/,/)[1];\n}\nexport function isDataUrl(url) {\n return url.search(/^(data:)/) !== -1;\n}\nexport function makeDataUrl(content, mimeType) {\n return `data:${mimeType};base64,${content}`;\n}\nexport async function fetchAsDataURL(url, init, process) {\n const res = await fetch(url, init);\n if (res.status === 404) {\n throw new Error(`Resource \"${res.url}\" not found`);\n }\n const blob = await res.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = () => {\n try {\n resolve(process({ res, result: reader.result }));\n }\n catch (error) {\n reject(error);\n }\n };\n reader.readAsDataURL(blob);\n });\n}\nconst cache = {};\nfunction getCacheKey(url, contentType, includeQueryParams) {\n let key = url.replace(/\\?.*/, '');\n if (includeQueryParams) {\n key = url;\n }\n // font resource\n if (/ttf|otf|eot|woff2?/i.test(key)) {\n key = key.replace(/.*\\//, '');\n }\n return contentType ? `[${contentType}]${key}` : key;\n}\nexport async function resourceToDataURL(resourceUrl, contentType, options) {\n const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);\n if (cache[cacheKey] != null) {\n return cache[cacheKey];\n }\n // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n if (options.cacheBust) {\n // eslint-disable-next-line no-param-reassign\n resourceUrl += (/\\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();\n }\n let dataURL;\n try {\n const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {\n if (!contentType) {\n // eslint-disable-next-line no-param-reassign\n contentType = res.headers.get('Content-Type') || '';\n }\n return getContentFromDataUrl(result);\n });\n dataURL = makeDataUrl(content, contentType);\n }\n catch (error) {\n dataURL = options.imagePlaceholder || '';\n let msg = `Failed to fetch resource: ${resourceUrl}`;\n if (error) {\n msg = typeof error === 'string' ? error : error.message;\n }\n if (msg) {\n console.warn(msg);\n }\n }\n cache[cacheKey] = dataURL;\n return dataURL;\n}\n//# sourceMappingURL=dataurl.js.map","import { clonePseudoElements } from './clone-pseudos';\nimport { createImage, toArray, isInstanceOfElement, getStyleProperties, } from './util';\nimport { getMimeType } from './mimes';\nimport { resourceToDataURL } from './dataurl';\nasync function cloneCanvasElement(canvas) {\n const dataURL = canvas.toDataURL();\n if (dataURL === 'data:,') {\n return canvas.cloneNode(false);\n }\n return createImage(dataURL);\n}\nasync function cloneVideoElement(video, options) {\n if (video.currentSrc) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = video.clientWidth;\n canvas.height = video.clientHeight;\n ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n const dataURL = canvas.toDataURL();\n return createImage(dataURL);\n }\n const poster = video.poster;\n const contentType = getMimeType(poster);\n const dataURL = await resourceToDataURL(poster, contentType, options);\n return createImage(dataURL);\n}\nasync function cloneIFrameElement(iframe, options) {\n var _a;\n try {\n if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {\n return (await cloneNode(iframe.contentDocument.body, options, true));\n }\n }\n catch (_b) {\n // Failed to clone iframe\n }\n return iframe.cloneNode(false);\n}\nasync function cloneSingleNode(node, options) {\n if (isInstanceOfElement(node, HTMLCanvasElement)) {\n return cloneCanvasElement(node);\n }\n if (isInstanceOfElement(node, HTMLVideoElement)) {\n return cloneVideoElement(node, options);\n }\n if (isInstanceOfElement(node, HTMLIFrameElement)) {\n return cloneIFrameElement(node, options);\n }\n return node.cloneNode(isSVGElement(node));\n}\nconst isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';\nconst isSVGElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SVG';\nasync function cloneChildren(nativeNode, clonedNode, options) {\n var _a, _b;\n if (isSVGElement(clonedNode)) {\n return clonedNode;\n }\n let children = [];\n if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {\n children = toArray(nativeNode.assignedNodes());\n }\n else if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n children = toArray(nativeNode.contentDocument.body.childNodes);\n }\n else {\n children = toArray(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);\n }\n if (children.length === 0 ||\n isInstanceOfElement(nativeNode, HTMLVideoElement)) {\n return clonedNode;\n }\n await children.reduce((deferred, child) => deferred\n .then(() => cloneNode(child, options))\n .then((clonedChild) => {\n if (clonedChild) {\n clonedNode.appendChild(clonedChild);\n }\n }), Promise.resolve());\n return clonedNode;\n}\nfunction cloneCSSStyle(nativeNode, clonedNode, options) {\n const targetStyle = clonedNode.style;\n if (!targetStyle) {\n return;\n }\n const sourceStyle = window.getComputedStyle(nativeNode);\n if (sourceStyle.cssText) {\n targetStyle.cssText = sourceStyle.cssText;\n targetStyle.transformOrigin = sourceStyle.transformOrigin;\n }\n else {\n getStyleProperties(options).forEach((name) => {\n let value = sourceStyle.getPropertyValue(name);\n if (name === 'font-size' && value.endsWith('px')) {\n const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;\n value = `${reducedFont}px`;\n }\n if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n name === 'display' &&\n value === 'inline') {\n value = 'block';\n }\n if (name === 'd' && clonedNode.getAttribute('d')) {\n value = `path(${clonedNode.getAttribute('d')})`;\n }\n targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));\n });\n }\n}\nfunction cloneInputValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLTextAreaElement)) {\n clonedNode.innerHTML = nativeNode.value;\n }\n if (isInstanceOfElement(nativeNode, HTMLInputElement)) {\n clonedNode.setAttribute('value', nativeNode.value);\n }\n}\nfunction cloneSelectValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLSelectElement)) {\n const clonedSelect = clonedNode;\n const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));\n if (selectedOption) {\n selectedOption.setAttribute('selected', '');\n }\n }\n}\nfunction decorate(nativeNode, clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n cloneCSSStyle(nativeNode, clonedNode, options);\n clonePseudoElements(nativeNode, clonedNode, options);\n cloneInputValue(nativeNode, clonedNode);\n cloneSelectValue(nativeNode, clonedNode);\n }\n return clonedNode;\n}\nasync function ensureSVGSymbols(clone, options) {\n const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];\n if (uses.length === 0) {\n return clone;\n }\n const processedDefs = {};\n for (let i = 0; i < uses.length; i++) {\n const use = uses[i];\n const id = use.getAttribute('xlink:href');\n if (id) {\n const exist = clone.querySelector(id);\n const definition = document.querySelector(id);\n if (!exist && definition && !processedDefs[id]) {\n // eslint-disable-next-line no-await-in-loop\n processedDefs[id] = (await cloneNode(definition, options, true));\n }\n }\n }\n const nodes = Object.values(processedDefs);\n if (nodes.length) {\n const ns = 'http://www.w3.org/1999/xhtml';\n const svg = document.createElementNS(ns, 'svg');\n svg.setAttribute('xmlns', ns);\n svg.style.position = 'absolute';\n svg.style.width = '0';\n svg.style.height = '0';\n svg.style.overflow = 'hidden';\n svg.style.display = 'none';\n const defs = document.createElementNS(ns, 'defs');\n svg.appendChild(defs);\n for (let i = 0; i < nodes.length; i++) {\n defs.appendChild(nodes[i]);\n }\n clone.appendChild(svg);\n }\n return clone;\n}\nexport async function cloneNode(node, options, isRoot) {\n if (!isRoot && options.filter && !options.filter(node)) {\n return null;\n }\n return Promise.resolve(node)\n .then((clonedNode) => cloneSingleNode(clonedNode, options))\n .then((clonedNode) => cloneChildren(node, clonedNode, options))\n .then((clonedNode) => decorate(node, clonedNode, options))\n .then((clonedNode) => ensureSVGSymbols(clonedNode, options));\n}\n//# sourceMappingURL=clone-node.js.map","import { resolveUrl } from './util';\nimport { getMimeType } from './mimes';\nimport { isDataUrl, makeDataUrl, resourceToDataURL } from './dataurl';\nconst URL_REGEX = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nconst URL_WITH_FORMAT_REGEX = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_REGEX = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction toRegex(url) {\n // eslint-disable-next-line no-useless-escape\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, 'g');\n}\nexport function parseURLs(cssText) {\n const urls = [];\n cssText.replace(URL_REGEX, (raw, quotation, url) => {\n urls.push(url);\n return raw;\n });\n return urls.filter((url) => !isDataUrl(url));\n}\nexport async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {\n try {\n const resolvedURL = baseURL ? resolveUrl(resourceURL, baseURL) : resourceURL;\n const contentType = getMimeType(resourceURL);\n let dataURL;\n if (getContentFromUrl) {\n const content = await getContentFromUrl(resolvedURL);\n dataURL = makeDataUrl(content, contentType);\n }\n else {\n dataURL = await resourceToDataURL(resolvedURL, contentType, options);\n }\n return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);\n }\n catch (error) {\n // pass\n }\n return cssText;\n}\nfunction filterPreferredFontFormat(str, { preferredFontFormat }) {\n return !preferredFontFormat\n ? str\n : str.replace(FONT_SRC_REGEX, (match) => {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];\n if (!format) {\n return '';\n }\n if (format === preferredFontFormat) {\n return `src: ${src};`;\n }\n }\n });\n}\nexport function shouldEmbed(url) {\n return url.search(URL_REGEX) !== -1;\n}\nexport async function embedResources(cssText, baseUrl, options) {\n if (!shouldEmbed(cssText)) {\n return cssText;\n }\n const filteredCSSText = filterPreferredFontFormat(cssText, options);\n const urls = parseURLs(filteredCSSText);\n return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));\n}\n//# sourceMappingURL=embed-resources.js.map","import { embedResources } from './embed-resources';\nimport { toArray, isInstanceOfElement } from './util';\nimport { isDataUrl, resourceToDataURL } from './dataurl';\nimport { getMimeType } from './mimes';\nasync function embedProp(propName, node, options) {\n var _a;\n const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);\n if (propValue) {\n const cssString = await embedResources(propValue, null, options);\n node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));\n return true;\n }\n return false;\n}\nasync function embedBackground(clonedNode, options) {\n ;\n (await embedProp('background', clonedNode, options)) ||\n (await embedProp('background-image', clonedNode, options));\n (await embedProp('mask', clonedNode, options)) ||\n (await embedProp('-webkit-mask', clonedNode, options)) ||\n (await embedProp('mask-image', clonedNode, options)) ||\n (await embedProp('-webkit-mask-image', clonedNode, options));\n}\nasync function embedImageNode(clonedNode, options) {\n const isImageElement = isInstanceOfElement(clonedNode, HTMLImageElement);\n if (!(isImageElement && !isDataUrl(clonedNode.src)) &&\n !(isInstanceOfElement(clonedNode, SVGImageElement) &&\n !isDataUrl(clonedNode.href.baseVal))) {\n return;\n }\n const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;\n const dataURL = await resourceToDataURL(url, getMimeType(url), options);\n await new Promise((resolve, reject) => {\n clonedNode.onload = resolve;\n clonedNode.onerror = options.onImageErrorHandler\n ? (...attributes) => {\n try {\n resolve(options.onImageErrorHandler(...attributes));\n }\n catch (error) {\n reject(error);\n }\n }\n : reject;\n const image = clonedNode;\n if (image.decode) {\n image.decode = resolve;\n }\n if (image.loading === 'lazy') {\n image.loading = 'eager';\n }\n if (isImageElement) {\n clonedNode.srcset = '';\n clonedNode.src = dataURL;\n }\n else {\n clonedNode.href.baseVal = dataURL;\n }\n });\n}\nasync function embedChildren(clonedNode, options) {\n const children = toArray(clonedNode.childNodes);\n const deferreds = children.map((child) => embedImages(child, options));\n await Promise.all(deferreds).then(() => clonedNode);\n}\nexport async function embedImages(clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n await embedBackground(clonedNode, options);\n await embedImageNode(clonedNode, options);\n await embedChildren(clonedNode, options);\n }\n}\n//# sourceMappingURL=embed-images.js.map","import { toArray } from './util';\nimport { fetchAsDataURL } from './dataurl';\nimport { shouldEmbed, embedResources } from './embed-resources';\nconst cssFetchCache = {};\nasync function fetchCSS(url) {\n let cache = cssFetchCache[url];\n if (cache != null) {\n return cache;\n }\n const res = await fetch(url);\n const cssText = await res.text();\n cache = { url, cssText };\n cssFetchCache[url] = cache;\n return cache;\n}\nasync function embedFonts(data, options) {\n let cssText = data.cssText;\n const regexUrl = /url\\([\"']?([^\"')]+)[\"']?\\)/g;\n const fontLocs = cssText.match(/url\\([^)]+\\)/g) || [];\n const loadFonts = fontLocs.map(async (loc) => {\n let url = loc.replace(regexUrl, '$1');\n if (!url.startsWith('https://')) {\n url = new URL(url, data.url).href;\n }\n return fetchAsDataURL(url, options.fetchRequestInit, ({ result }) => {\n cssText = cssText.replace(loc, `url(${result})`);\n return [loc, result];\n });\n });\n return Promise.all(loadFonts).then(() => cssText);\n}\nfunction parseCSS(source) {\n if (source == null) {\n return [];\n }\n const result = [];\n const commentsRegex = /(\\/\\*[\\s\\S]*?\\*\\/)/gi;\n // strip out comments\n let cssText = source.replace(commentsRegex, '');\n // eslint-disable-next-line prefer-regex-literals\n const keyframesRegex = new RegExp('((@.*?keyframes [\\\\s\\\\S]*?){([\\\\s\\\\S]*?}\\\\s*?)})', 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const matches = keyframesRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n result.push(matches[0]);\n }\n cssText = cssText.replace(keyframesRegex, '');\n const importRegex = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n // to match css & media queries together\n const combinedCSSRegex = '((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]' +\n '*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})';\n // unified regex\n const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let matches = importRegex.exec(cssText);\n if (matches === null) {\n matches = unifiedRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n else {\n importRegex.lastIndex = unifiedRegex.lastIndex;\n }\n }\n else {\n unifiedRegex.lastIndex = importRegex.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nasync function getCSSRules(styleSheets, options) {\n const ret = [];\n const deferreds = [];\n // First loop inlines imports\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item, index) => {\n if (item.type === CSSRule.IMPORT_RULE) {\n let importIndex = index + 1;\n const url = item.href;\n const deferred = fetchCSS(url)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n try {\n sheet.insertRule(rule, rule.startsWith('@import')\n ? (importIndex += 1)\n : sheet.cssRules.length);\n }\n catch (error) {\n console.error('Error inserting rule from remote css', {\n rule,\n error,\n });\n }\n }))\n .catch((e) => {\n console.error('Error loading remote css', e.toString());\n });\n deferreds.push(deferred);\n }\n });\n }\n catch (e) {\n const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];\n if (sheet.href != null) {\n deferreds.push(fetchCSS(sheet.href)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n inline.insertRule(rule, inline.cssRules.length);\n }))\n .catch((err) => {\n console.error('Error loading remote stylesheet', err);\n }));\n }\n console.error('Error inlining remote css file', e);\n }\n }\n });\n return Promise.all(deferreds).then(() => {\n // Second loop parses rules\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item) => {\n ret.push(item);\n });\n }\n catch (e) {\n console.error(`Error while reading CSS rules from ${sheet.href}`, e);\n }\n }\n });\n return ret;\n });\n}\nfunction getWebFontRules(cssRules) {\n return cssRules\n .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)\n .filter((rule) => shouldEmbed(rule.style.getPropertyValue('src')));\n}\nasync function parseWebFontRules(node, options) {\n if (node.ownerDocument == null) {\n throw new Error('Provided element is not within a Document');\n }\n const styleSheets = toArray(node.ownerDocument.styleSheets);\n const cssRules = await getCSSRules(styleSheets, options);\n return getWebFontRules(cssRules);\n}\nfunction normalizeFontFamily(font) {\n return font.trim().replace(/[\"']/g, '');\n}\nfunction getUsedFonts(node) {\n const fonts = new Set();\n function traverse(node) {\n const fontFamily = node.style.fontFamily || getComputedStyle(node).fontFamily;\n fontFamily.split(',').forEach((font) => {\n fonts.add(normalizeFontFamily(font));\n });\n Array.from(node.children).forEach((child) => {\n if (child instanceof HTMLElement) {\n traverse(child);\n }\n });\n }\n traverse(node);\n return fonts;\n}\nexport async function getWebFontCSS(node, options) {\n const rules = await parseWebFontRules(node, options);\n const usedFonts = getUsedFonts(node);\n const cssTexts = await Promise.all(rules\n .filter((rule) => usedFonts.has(normalizeFontFamily(rule.style.fontFamily)))\n .map((rule) => {\n const baseUrl = rule.parentStyleSheet\n ? rule.parentStyleSheet.href\n : null;\n return embedResources(rule.cssText, baseUrl, options);\n }));\n return cssTexts.join('\\n');\n}\nexport async function embedWebFonts(clonedNode, options) {\n const cssText = options.fontEmbedCSS != null\n ? options.fontEmbedCSS\n : options.skipFonts\n ? null\n : await getWebFontCSS(clonedNode, options);\n if (cssText) {\n const styleNode = document.createElement('style');\n const sytleContent = document.createTextNode(cssText);\n styleNode.appendChild(sytleContent);\n if (clonedNode.firstChild) {\n clonedNode.insertBefore(styleNode, clonedNode.firstChild);\n }\n else {\n clonedNode.appendChild(styleNode);\n }\n }\n}\n//# sourceMappingURL=embed-webfonts.js.map","import { cloneNode } from './clone-node';\nimport { embedImages } from './embed-images';\nimport { applyStyle } from './apply-style';\nimport { embedWebFonts, getWebFontCSS } from './embed-webfonts';\nimport { getImageSize, getPixelRatio, createImage, canvasToBlob, nodeToDataURL, checkCanvasDimensions, } from './util';\nexport async function toSvg(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const clonedNode = (await cloneNode(node, options, true));\n await embedWebFonts(clonedNode, options);\n await embedImages(clonedNode, options);\n applyStyle(clonedNode, options);\n const datauri = await nodeToDataURL(clonedNode, width, height);\n return datauri;\n}\nexport async function toCanvas(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const svg = await toSvg(node, options);\n const img = await createImage(svg);\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n const ratio = options.pixelRatio || getPixelRatio();\n const canvasWidth = options.canvasWidth || width;\n const canvasHeight = options.canvasHeight || height;\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n if (!options.skipAutoScale) {\n checkCanvasDimensions(canvas);\n }\n canvas.style.width = `${canvasWidth}`;\n canvas.style.height = `${canvasHeight}`;\n if (options.backgroundColor) {\n context.fillStyle = options.backgroundColor;\n context.fillRect(0, 0, canvas.width, canvas.height);\n }\n context.drawImage(img, 0, 0, canvas.width, canvas.height);\n return canvas;\n}\nexport async function toPixelData(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const canvas = await toCanvas(node, options);\n const ctx = canvas.getContext('2d');\n return ctx.getImageData(0, 0, width, height).data;\n}\nexport async function toPng(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL();\n}\nexport async function toJpeg(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL('image/jpeg', options.quality || 1);\n}\nexport async function toBlob(node, options = {}) {\n const canvas = await toCanvas(node, options);\n const blob = await canvasToBlob(canvas);\n return blob;\n}\nexport async function getFontEmbedCSS(node, options = {}) {\n return getWebFontCSS(node, options);\n}\n//# sourceMappingURL=index.js.map","export function applyStyle(node, options) {\n const { style } = node;\n if (options.backgroundColor) {\n style.backgroundColor = options.backgroundColor;\n }\n if (options.width) {\n style.width = `${options.width}px`;\n }\n if (options.height) {\n style.height = `${options.height}px`;\n }\n const manual = options.style;\n if (manual != null) {\n Object.keys(manual).forEach((key) => {\n style[key] = manual[key];\n });\n }\n return node;\n}\n//# sourceMappingURL=apply-style.js.map",null,null,null,null,null,null],"names":["DebugOverlay","constructor","options","this","isOpen","isDragging","dragOffset","x","y","maxLogEntries","host","document","createElement","id","Object","assign","style","position","bottom","right","zIndex","display","flexDirection","alignItems","left","top","shadow","attachShadow","mode","textContent","appendChild","wrapper","panel","className","header","titleSpan","statusDot","createTextNode","closeBtn","addEventListener","toggle","body","infoBody","logSection","logTitle","logContainer","icon","e","documentElement","setupDrag","startX","startY","moved","clientX","clientY","rect","getBoundingClientRect","preventDefault","dx","Math","abs","dy","setTimeout","classList","setStatus","status","add","setInfo","info","innerHTML","label","value","entries","row","labelSpan","valueSpan","title","setServiceUrl","url","token","section","urlLabel","urlRow","urlText","copyBtn","navigator","clipboard","writeText","then","tokenLabel","marginTop","tokenRow","tokenText","slice","copyTokenBtn","addLog","message","type","entry","children","length","removeChild","firstChild","querySelector","scrollTop","scrollHeight","destroy","remove","detectFrameworks","frameworks","w","window","__REACT_DEVTOOLS_GLOBAL_HOOK__","renderers","size","push","root","keys","some","k","startsWith","__VUE__","__VUE_DEVTOOLS_GLOBAL_HOOK__","el","__vue_app__","ng","__NEXT_DATA__","getPageInfo","perf","performance","getEntriesByType","location","href","viewport","width","innerWidth","height","innerHeight","document_size","scrollWidth","user_agent","userAgent","timestamp","Date","toISOString","cookies_enabled","cookieEnabled","language","platform","online","onLine","load_time_ms","round","loadEventEnd","startTime","dom_content_loaded_ms","domContentLoadedEventEnd","collectPageInfo","getConsoleLogs","logs","__HYPHA_DEBUGGER__","consoleLogs","level","limit","filter","l","elementToInfo","attrs","attr","Array","from","attributes","name","tag","tagName","toLowerCase","classes","text","trim","bounds","visible","getComputedStyle","visibility","children_count","queryDom","selector","elements","querySelectorAll","results","i","min","clickElement","success","dispatchEvent","MouseEvent","bubbles","cancelable","view","fillInput","inputEl","proto","HTMLTextAreaElement","prototype","HTMLInputElement","nativeSetter","getOwnPropertyDescriptor","set","call","Event","selectEl","HTMLSelectElement","scrollTo","target","scrollIntoView","behavior","block","getComputedStyles","properties","error","computed","result","props","prop","getPropertyValue","getElementBounds","__schema__","description","parameters","enum","required","items","uuid","counter","random","toString","toArray","arrayLike","arr","styleProps","getStyleProperties","includeStyleProperties","px","node","styleProperty","val","ownerDocument","defaultView","parseFloat","replace","getImageSize","targetNode","leftBorder","rightBorder","clientWidth","getNodeWidth","topBorder","bottomBorder","clientHeight","getNodeHeight","canvasDimensionLimit","createImage","Promise","resolve","reject","img","Image","onload","decode","requestAnimationFrame","onerror","crossOrigin","decoding","src","async","nodeToDataURL","xmlns","svg","createElementNS","foreignObject","setAttribute","XMLSerializer","serializeToString","encodeURIComponent","html","svgToDataURL","isInstanceOfElement","instance","nodePrototype","getPrototypeOf","getPseudoElementStyle","pseudo","cssText","content","formatCSSText","map","getPropertyPriority","join","formatCSSProperties","clonePseudoElement","nativeNode","clonedNode","err","styleElement","WOFF","JPEG","mimes","woff","woff2","ttf","eot","png","jpg","jpeg","gif","tiff","webp","getMimeType","extension","match","exec","getExtension","isDataUrl","search","fetchAsDataURL","init","process","res","fetch","Error","blob","reader","FileReader","onloadend","readAsDataURL","cache","resourceToDataURL","resourceUrl","contentType","cacheKey","includeQueryParams","key","test","getCacheKey","dataURL","cacheBust","getTime","fetchRequestInit","headers","get","split","getContentFromDataUrl","mimeType","makeDataUrl","imagePlaceholder","msg","console","warn","cloneSingleNode","HTMLCanvasElement","canvas","toDataURL","cloneNode","cloneCanvasElement","HTMLVideoElement","video","currentSrc","ctx","getContext","drawImage","poster","cloneVideoElement","HTMLIFrameElement","iframe","_a","contentDocument","_b","cloneIFrameElement","isSVGElement","isSlotElement","toUpperCase","decorate","Element","targetStyle","sourceStyle","transformOrigin","forEach","endsWith","reducedFont","floor","substring","getAttribute","setProperty","cloneCSSStyle","clonePseudoElements","cloneInputValue","clonedSelect","selectedOption","find","child","cloneSelectValue","isRoot","assignedNodes","childNodes","shadowRoot","reduce","deferred","clonedChild","cloneChildren","clone","uses","processedDefs","exist","definition","nodes","values","ns","overflow","defs","ensureSVGSymbols","URL_REGEX","URL_WITH_FORMAT_REGEX","FONT_SRC_REGEX","embed","resourceURL","baseURL","getContentFromUrl","resolvedURL","baseUrl","protocol","doc","implementation","createHTMLDocument","base","a","head","resolveUrl","escaped","RegExp","toRegex","shouldEmbed","embedResources","filteredCSSText","str","preferredFontFormat","format","filterPreferredFontFormat","urls","raw","quotation","parseURLs","css","embedProp","propName","propValue","cssString","embedImages","embedBackground","isImageElement","HTMLImageElement","SVGImageElement","baseVal","onImageErrorHandler","image","loading","srcset","embedImageNode","deferreds","all","embedChildren","cssFetchCache","fetchCSS","embedFonts","data","regexUrl","loadFonts","loc","URL","parseCSS","source","keyframesRegex","matches","importRegex","unifiedRegex","lastIndex","parseWebFontRules","styleSheets","cssRules","ret","sheet","item","index","CSSRule","IMPORT_RULE","importIndex","metadata","rule","insertRule","catch","inline","getCSSRules","FONT_FACE_RULE","getWebFontRules","normalizeFontFamily","font","getWebFontCSS","rules","usedFonts","fonts","Set","traverse","fontFamily","HTMLElement","getUsedFonts","has","parentStyleSheet","toSvg","fontEmbedCSS","skipFonts","styleNode","sytleContent","insertBefore","embedWebFonts","backgroundColor","manual","applyStyle","toCanvas","context","ratio","pixelRatio","FINAL_PROCESS","env","devicePixelRatio","parseInt","Number","isNaN","getPixelRatio","canvasWidth","canvasHeight","skipAutoScale","checkCanvasDimensions","fillStyle","fillRect","takeScreenshot","quality","scale","captureOptions","dataUrl","toJpeg","toPng","maxW","max_width","maxH","max_height","executeScript","code","timeoutMs","timeout_ms","race","Function","_","serialized","undefined","NodeList","HTMLCollection","JSON","parse","stringify","String","navigate","goBack","history","back","goForward","forward","reload","getComponentName","fiber","displayName","render","$$typeof","safeSerialize","obj","depth","maxDepth","isArray","v","extractState","stateNode","state","states","hook","memoizedState","queue","next","fiberToInfo","fiberType","getFiberType","isComponent","memoizedProps","childInfo","sibling","getReactTree","max_depth","rootEl","fiberKey","getFiberFromDOM","current","tree","HyphaDebugger","config","overlay","server","serviceInfo","server_url","workspace","service_id","service_name","show_ui","start","maxEntries","store","consoleInstalled","levels","original","bind","args","splice","installConsoleCapture","session","Status","connect","getConnectToServer","connectConfig","wrapFn","fn","wrapped","summarizeArgs","service","get_page_info","get_console_logs","query_dom","click_element","fill_input","scroll_to","get_computed_styles","get_element_bounds","take_screenshot","execute_script","go_back","go_forward","get_react_tree","registerService","fullServiceId","sessionToken","generateToken","serviceUrl","buildServiceUrl","Server","log","service_url","unregisterService","serviceId","slashIdx","indexOf","hyphaRpc","connectToServer","hyphaWebsocketClient"],"mappings":"gkBASaA,EAaX,WAAAC,CAAYC,GALJC,KAAAC,QAAS,EACTD,KAAAE,YAAa,EACbF,KAAAG,WAAa,CAAEC,EAAG,EAAGC,EAAG,GACxBL,KAAAM,cAAgB,GAItBN,KAAKO,KAAOC,SAASC,cAAc,OACnCT,KAAKO,KAAKG,GAAK,sBACfC,OAAOC,OAAOZ,KAAKO,KAAKM,MAAO,CAC7BC,SAAU,QACVC,OAAQ,OACRC,MAAO,OACPC,OAAQ,aACRC,QAAS,OACTC,cAAe,SACfC,WAAY,aAGVrB,GAASe,WACXd,KAAKO,KAAKM,MAAME,OAAS,OACzBf,KAAKO,KAAKM,MAAMG,MAAQ,OACxBhB,KAAKO,KAAKM,MAAMQ,KAAOtB,EAAQe,SAASV,EAAI,KAC5CJ,KAAKO,KAAKM,MAAMS,IAAMvB,EAAQe,SAAST,EAAI,MAI7CL,KAAKuB,OAASvB,KAAKO,KAAKiB,aAAa,CAAEC,KAAM,SAG7C,MAAMZ,EAAQL,SAASC,cAAc,SACrCI,EAAMa,YC7CmB,swID8CzB1B,KAAKuB,OAAOI,YAAYd,GAGxB,MAAMe,EAAUpB,SAASC,cAAc,OACvCmB,EAAQf,MAAMC,SAAW,WACzBc,EAAQf,MAAMK,QAAU,OACxBU,EAAQf,MAAMM,cAAgB,SAC9BS,EAAQf,MAAMO,WAAa,WAG3BpB,KAAK6B,MAAQrB,SAASC,cAAc,OACpCT,KAAK6B,MAAMC,UAAY,iBAEvB,MAAMC,EAASvB,SAASC,cAAc,OACtCsB,EAAOD,UAAY,eACnB,MAAME,EAAYxB,SAASC,cAAc,QACzCuB,EAAUF,UAAY,QACtB9B,KAAKiC,UAAYzB,SAASC,cAAc,QACxCT,KAAKiC,UAAUH,UAAY,aAC3BE,EAAUL,YAAY3B,KAAKiC,WAC3BD,EAAUL,YAAYnB,SAAS0B,eAAe,oBAC9C,MAAMC,EAAW3B,SAASC,cAAc,QACxC0B,EAASL,UAAY,YACrBK,EAAST,YAAc,IACvBS,EAASC,iBAAiB,QAAS,IAAMpC,KAAKqC,UAC9CN,EAAOJ,YAAYK,GACnBD,EAAOJ,YAAYQ,GAEnB,MAAMG,EAAO9B,SAASC,cAAc,OACpC6B,EAAKR,UAAY,aAEjB9B,KAAKuC,SAAW/B,SAASC,cAAc,OACvC6B,EAAKX,YAAY3B,KAAKuC,UAEtB,MAAMC,EAAahC,SAASC,cAAc,OAC1C+B,EAAWV,UAAY,cACvB,MAAMW,EAAWjC,SAASC,cAAc,OACxCgC,EAASX,UAAY,YACrBW,EAASf,YAAc,oBACvB1B,KAAK0C,aAAelC,SAASC,cAAc,OAC3C+B,EAAWb,YAAYc,GACvBD,EAAWb,YAAY3B,KAAK0C,cAC5BJ,EAAKX,YAAYa,GAEjBxC,KAAK6B,MAAMF,YAAYI,GACvB/B,KAAK6B,MAAMF,YAAYW,GAGvBtC,KAAK2C,KAAOnC,SAASC,cAAc,OACnCT,KAAK2C,KAAKb,UAAY,gBACtB9B,KAAK2C,KAAKjB,YAAc,KACxB1B,KAAK2C,KAAKP,iBAAiB,QAAUQ,IAC9B5C,KAAKE,YAAYF,KAAKqC,WAG7BT,EAAQD,YAAY3B,KAAK6B,OACzBD,EAAQD,YAAY3B,KAAK2C,MACzB3C,KAAKuB,OAAOI,YAAYC,GAGxBpB,SAASqC,gBAAgBlB,YAAY3B,KAAKO,MAG1CP,KAAK8C,WACP,CAEQ,SAAAA,GACN,IAAIC,EAAS,EACTC,EAAS,EACTC,GAAQ,EAEZjD,KAAK2C,KAAKP,iBAAiB,YAAcQ,IACvCG,EAASH,EAAEM,QACXF,EAASJ,EAAEO,QACXF,GAAQ,EACR,MAAMG,EAAOpD,KAAKO,KAAK8C,wBACvBrD,KAAKG,WAAWC,EAAIwC,EAAEM,QAAUE,EAAK/B,KACrCrB,KAAKG,WAAWE,EAAIuC,EAAEO,QAAUC,EAAK9B,IACrCsB,EAAEU,mBAGJ9C,SAAS4B,iBAAiB,YAAcQ,IACtC,GAAe,IAAXG,GAA2B,IAAXC,EAAc,OAClC,MAAMO,EAAKC,KAAKC,IAAIb,EAAEM,QAAUH,GAC1BW,EAAKF,KAAKC,IAAIb,EAAEO,QAAUH,IAC5BO,EAAK,GAAKG,EAAK,KACjBT,GAAQ,EACRjD,KAAKE,YAAa,EAClBF,KAAKO,KAAKM,MAAMQ,KAAOuB,EAAEM,QAAUlD,KAAKG,WAAWC,EAAI,KACvDJ,KAAKO,KAAKM,MAAMS,IAAMsB,EAAEO,QAAUnD,KAAKG,WAAWE,EAAI,KACtDL,KAAKO,KAAKM,MAAMG,MAAQ,OACxBhB,KAAKO,KAAKM,MAAME,OAAS,UAI7BP,SAAS4B,iBAAiB,UAAW,KACnCW,EAAS,EACTC,EAAS,EACLC,GAEFU,WAAW,KACT3D,KAAKE,YAAa,GACjB,KAGT,CAEA,MAAAmC,GACErC,KAAKC,QAAUD,KAAKC,OACpBD,KAAK6B,MAAM+B,UAAUvB,OAAO,OAAQrC,KAAKC,OAC3C,CAEA,SAAA4D,CAAUC,GACR9D,KAAKiC,UAAUH,UAAY,aAC3B9B,KAAK2C,KAAKb,UAAY,gBACP,cAAXgC,GACF9D,KAAKiC,UAAU2B,UAAUG,IAAI,aAC7B/D,KAAK2C,KAAKiB,UAAUG,IAAI,cACJ,UAAXD,IACT9D,KAAKiC,UAAU2B,UAAUG,IAAI,SAC7B/D,KAAK2C,KAAKiB,UAAUG,IAAI,SAE5B,CAEA,OAAAC,CAAQC,GACNjE,KAAKuC,SAAS2B,UAAY,GAC1B,IAAK,MAAOC,EAAOC,KAAUzD,OAAO0D,QAAQJ,GAAO,CACjD,MAAMK,EAAM9D,SAASC,cAAc,OACnC6D,EAAIxC,UAAY,WAChB,MAAMyC,EAAY/D,SAASC,cAAc,QACzC8D,EAAUzC,UAAY,QACtByC,EAAU7C,YAAcyC,EACxB,MAAMK,EAAYhE,SAASC,cAAc,QACzC+D,EAAU1C,UAAY,QACtB0C,EAAU9C,YAAc0C,EACxBI,EAAUC,MAAQL,EAClBE,EAAI3C,YAAY4C,GAChBD,EAAI3C,YAAY6C,GAChBxE,KAAKuC,SAASZ,YAAY2C,EAC5B,CACF,CAGA,aAAAI,CAAcC,EAAaC,GACzB,MAAMC,EAAUrE,SAASC,cAAc,OACvCoE,EAAQ/C,UAAY,cAEpB,MAAMgD,EAAWtE,SAASC,cAAc,OACxCqE,EAAShD,UAAY,YACrBgD,EAASpD,YAAc,cACvBmD,EAAQlD,YAAYmD,GAEpB,MAAMC,EAASvE,SAASC,cAAc,OACtCsE,EAAOjD,UAAY,UACnB,MAAMkD,EAAUxE,SAASC,cAAc,QACvCuE,EAAQlD,UAAY,WACpBkD,EAAQtD,YAAciD,EACtBK,EAAQP,MAAQE,EAChB,MAAMM,EAAUzE,SAASC,cAAc,UACvCwE,EAAQnD,UAAY,WACpBmD,EAAQvD,YAAc,OACtBuD,EAAQ7C,iBAAiB,QAAS,KAChC8C,UAAUC,UAAUC,UAAUT,GAAKU,KAAK,KACtCJ,EAAQvD,YAAc,UACtBiC,WAAW,KAAQsB,EAAQvD,YAAc,QAAW,UAGxDqD,EAAOpD,YAAYqD,GACnBD,EAAOpD,YAAYsD,GACnBJ,EAAQlD,YAAYoD,GAEpB,MAAMO,EAAa9E,SAASC,cAAc,OAC1C6E,EAAWxD,UAAY,YACvBwD,EAAW5D,YAAc,QACzB4D,EAAWzE,MAAM0E,UAAY,MAC7BV,EAAQlD,YAAY2D,GAEpB,MAAME,EAAWhF,SAASC,cAAc,OACxC+E,EAAS1D,UAAY,UACrB,MAAM2D,EAAYjF,SAASC,cAAc,QACzCgF,EAAU3D,UAAY,WACtB2D,EAAU/D,YAAckD,EAAMc,MAAM,EAAG,IAAM,MAC7CD,EAAUhB,MAAQG,EAClB,MAAMe,EAAenF,SAASC,cAAc,UAC5CkF,EAAa7D,UAAY,WACzB6D,EAAajE,YAAc,OAC3BiE,EAAavD,iBAAiB,QAAS,KACrC8C,UAAUC,UAAUC,UAAUR,GAAOS,KAAK,KACxCM,EAAajE,YAAc,UAC3BiC,WAAW,KAAQgC,EAAajE,YAAc,QAAW,UAG7D8D,EAAS7D,YAAY8D,GACrBD,EAAS7D,YAAYgE,GACrBd,EAAQlD,YAAY6D,GAEpBxF,KAAKuC,SAASZ,YAAYkD,EAC5B,CAEA,MAAAe,CACEC,EACAC,EAAoC,QAEpC,MAAMC,EAAQvF,SAASC,cAAc,OAMrC,IALAsF,EAAMjE,UAAY,aAAagE,IAC/BC,EAAMrE,YAAcmE,EACpB7F,KAAK0C,aAAaf,YAAYoE,GAGvB/F,KAAK0C,aAAasD,SAASC,OAASjG,KAAKM,eAC9CN,KAAK0C,aAAawD,YAAYlG,KAAK0C,aAAayD,YAIlD,MAAM7D,EAAOtC,KAAK6B,MAAMuE,cAAc,eAClC9D,IAAMA,EAAK+D,UAAY/D,EAAKgE,aAClC,CAEA,OAAAC,GACEvG,KAAKO,KAAKiG,QACZ,WEvPcC,IACd,MAAMC,EAAuB,GACvBC,EAAIC,OAGV,GAAID,EAAEE,gCAAgCC,WAAWC,KAAO,EACtDL,EAAWM,KAAK,aACX,CACL,MAAMC,EAAOzG,SAAS4F,cAAc,iCACpC,GAAIa,EAAM,CACctG,OAAOuG,KAAKD,GAAME,KACrCC,GACCA,EAAEC,WAAW,kBACbD,EAAEC,WAAW,8BAEEX,EAAWM,KAAK,QACrC,CACF,CAGA,GAAIL,EAAEW,SAAWX,EAAEY,6BACjBb,EAAWM,KAAK,WACX,CACL,MAAMQ,EAAKhH,SAAS4F,cAAc,sBAC9BoB,GAAOA,EAAWC,aAAaf,EAAWM,KAAK,MACrD,CAiBA,OAdIL,EAAEe,IAAMlH,SAAS4F,cAAc,kBACjCM,EAAWM,KAAK,WAIdxG,SAAS4F,cAAc,uBACzBM,EAAWM,KAAK,UAIdL,EAAEgB,eACJjB,EAAWM,KAAK,UAGXN,CACT,UC5DgBkB,IACd,kBD8DA,MAAMC,EAAOC,YAAYC,iBACvB,cACA,GAEF,MAAO,CACLpD,IAAKiC,OAAOoB,SAASC,KACrBxD,MAAOjE,SAASiE,MAChByD,SAAU,CACRC,MAAOvB,OAAOwB,WACdC,OAAQzB,OAAO0B,aAEjBC,cAAe,CACbJ,MAAO3H,SAASqC,gBAAgB2F,YAChCH,OAAQ7H,SAASqC,gBAAgByD,cAEnCmC,WAAYvD,UAAUwD,UACtBC,WAAW,IAAIC,MAAOC,cACtBC,gBAAiB5D,UAAU6D,cAC3BC,SAAU9D,UAAU8D,SACpBC,SAAU/D,UAAU+D,SACpBC,OAAQhE,UAAUiE,OAClBrB,YAAa,CACXsB,aAAcvB,EAAOrE,KAAK6F,MAAMxB,EAAKyB,aAAezB,EAAK0B,WAAa,KACtEC,sBAAuB3B,EACnBrE,KAAK6F,MAAMxB,EAAK4B,yBAA2B5B,EAAK0B,WAChD,MAEN7C,WAAYD,IAEhB,CC3FSiD,EACT,CAYM,SAAUC,EAAe5J,GAI7B,MAAM6J,EAAQhD,OAAeiD,oBAAoBC,aAAe,GAC1DC,EAAQhK,GAASgK,MACjBC,EAAQjK,GAASiK,OAAS,IAEhC,OADeD,EAAQH,EAAKK,OAAQC,GAAWA,EAAEH,QAAUA,GAASH,GACpDlE,OAAOsE,EACzB,CCbA,SAASG,EAAc3C,GACrB,MAAMpE,EAAOoE,EAAGnE,wBACV+G,EAAgC,CAAA,EACtC,IAAK,MAAMC,KAAQC,MAAMC,KAAK/C,EAAGgD,YAC/BJ,EAAMC,EAAKI,MAAQJ,EAAKjG,MAE1B,MAAO,CACLsG,IAAKlD,EAAGmD,QAAQC,cAChBlK,GAAI8G,EAAG9G,GACPmK,QAASP,MAAMC,KAAK/C,EAAG5D,WACvBkH,MAAOtD,EAAG9F,aAAe,IAAIqJ,OAAOrF,MAAM,EAAG,KAC7C8E,WAAYJ,EACZY,OAAQ,CACN5K,EAAGoD,KAAK6F,MAAMjG,EAAKhD,GACnBC,EAAGmD,KAAK6F,MAAMjG,EAAK/C,GACnB8H,MAAO3E,KAAK6F,MAAMjG,EAAK+E,OACvBE,OAAQ7E,KAAK6F,MAAMjG,EAAKiF,SAE1B4C,QACE7H,EAAK+E,MAAQ,GACb/E,EAAKiF,OAAS,GACsB,WAApC6C,iBAAiB1D,GAAI2D,YACY,SAAjCD,iBAAiB1D,GAAItG,QACvBkK,eAAgB5D,EAAGxB,SAASC,OAEhC,CAEM,SAAUoF,EACdC,EACAvL,GAEA,MAAMiK,EAAQjK,GAASiK,OAAS,GAC1BuB,EAAW/K,SAASgL,iBAAiBF,GACrCG,EAAyB,GAC/B,IAAK,IAAIC,EAAI,EAAGA,EAAIlI,KAAKmI,IAAIJ,EAAStF,OAAQ+D,GAAQ0B,IACpDD,EAAQzE,KAAKmD,EAAcoB,EAASG,KAEtC,OAAOD,CACT,CAsBM,SAAUG,EAAaN,GAC3B,MAAM9D,EAAKhH,SAAS4F,cAAckF,GAClC,IAAK9D,EACH,MAAO,CAAEqE,SAAS,EAAOhG,QAAS,kCAAkCyF,KAEtE,MAAMlI,EAAOoE,EAAGnE,wBAUhB,OATAmE,EAAGsE,cACD,IAAIC,WAAW,QAAS,CACtBC,SAAS,EACTC,YAAY,EACZC,KAAMtF,OACN1D,QAASE,EAAK/B,KAAO+B,EAAK+E,MAAQ,EAClChF,QAASC,EAAK9B,IAAM8B,EAAKiF,OAAS,KAG/B,CAAEwD,SAAS,EAAMhG,QAAS,oBAAoByF,IACvD,CAiBM,SAAUa,EACdb,EACAlH,GAEA,MAAMoD,EAAKhH,SAAS4F,cAAckF,GAClC,IAAK9D,EACH,MAAO,CAAEqE,SAAS,EAAOhG,QAAS,kCAAkCyF,KAGtE,MAAMZ,EAAMlD,EAAGmD,QAAQC,cACvB,GAAY,UAARF,GAA2B,aAARA,EAAoB,CACzC,MAAM0B,EAAU5E,EAEV6E,EACI,aAAR3B,EACI4B,oBAAoBC,UACpBC,iBAAiBD,UACjBE,EAAe9L,OAAO+L,yBAAyBL,EAAO,UAAUM,IAQtE,OAPIF,EACFA,EAAaG,KAAKR,EAAShI,GAE3BgI,EAAQhI,MAAQA,EAElBgI,EAAQN,cAAc,IAAIe,MAAM,QAAS,CAAEb,SAAS,KACpDI,EAAQN,cAAc,IAAIe,MAAM,SAAU,CAAEb,SAAS,KAC9C,CAAEH,SAAS,EAAMhG,QAAS,UAAUyF,eAC7C,CAEA,GAAY,WAARZ,EAAkB,CACpB,MAAMoC,EAAWtF,EACXiF,EAAe9L,OAAO+L,yBAC1BK,kBAAkBR,UAClB,UACCI,IAOH,OANIF,EACFA,EAAaG,KAAKE,EAAU1I,GAE5B0I,EAAS1I,MAAQA,EAEnB0I,EAAShB,cAAc,IAAIe,MAAM,SAAU,CAAEb,SAAS,KAC/C,CAAEH,SAAS,EAAMhG,QAAS,OAAOyF,QAAelH,IACzD,CAEA,MAAO,CAAEyH,SAAS,EAAOhG,QAAS,WAAWyF,oCAC/C,CAsBM,SAAU0B,EACdC,GAEA,GAAsB,iBAAXA,EAAqB,CAC9B,MAAMzF,EAAKhH,SAAS4F,cAAc6G,GAClC,OAAKzF,GAGLA,EAAG0F,eAAe,CAAEC,SAAU,SAAUC,MAAO,WACxC,CAAEvB,SAAS,EAAMhG,QAAS,eAAeoH,MAHvC,CAAEpB,SAAS,EAAOhG,QAAS,kCAAkCoH,IAIxE,CAEA,OADArG,OAAOoG,SAAS,CAAE3L,KAAM4L,EAAO7M,EAAGkB,IAAK2L,EAAO5M,EAAG8M,SAAU,WACpD,CAAEtB,SAAS,EAAMhG,QAAS,gBAAgBoH,EAAO7M,MAAM6M,EAAO5M,KACvE,CAkBM,SAAUgN,EACd/B,EACAgC,GAEA,MAAM9F,EAAKhH,SAAS4F,cAAckF,GAClC,IAAK9D,EACH,MAAO,CAAE+F,MAAO,kCAAkCjC,KAEpD,MAAMkC,EAAWtC,iBAAiB1D,GAC5BiG,EAAiC,CAAA,EACjCC,EACJJ,GACA,CACE,UACA,WACA,QACA,SACA,QACA,mBACA,YACA,cACA,SACA,UACA,SACA,UACA,aACA,WACA,WAEJ,IAAK,MAAMK,KAAQD,EACjBD,EAAOE,GAAQH,EAASI,iBAAiBD,GAE3C,OAAOF,CACT,CAuBM,SAAUI,EACdvC,GAEA,MAAM9D,EAAKhH,SAAS4F,cAAckF,GAClC,IAAK9D,EACH,MAAO,CAAE+F,MAAO,kCAAkCjC,KAEpD,MAAMlI,EAAOoE,EAAGnE,wBAChB,MAAO,CACL2H,OAAQ,CACN5K,EAAGoD,KAAK6F,MAAMjG,EAAKhD,GACnBC,EAAGmD,KAAK6F,MAAMjG,EAAK/C,GACnB8H,MAAO3E,KAAK6F,MAAMjG,EAAK+E,OACvBE,OAAQ7E,KAAK6F,MAAMjG,EAAKiF,SAE1B4C,QACE7H,EAAK+E,MAAQ,GACb/E,EAAKiF,OAAS,GACsB,WAApC6C,iBAAiB1D,GAAI2D,YACY,SAAjCD,iBAAiB1D,GAAItG,QAE3B,CDjRA0G,EAAYkG,WAAa,CACvBrD,KAAM,cACNsD,YACE,+HACFC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CAAA,IAehB3D,EAAemE,WAAa,CAC1BrD,KAAM,iBACNsD,YAAa,6DACbC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CACVvD,MAAO,CACLjE,KAAM,SACNiI,YACE,4EACFE,KAAM,CAAC,MAAO,OAAQ,QAAS,SAEjCjE,MAAO,CACLlE,KAAM,SACNiI,YACE,2ECUV1C,EAASyC,WAAa,CACpBrD,KAAM,WACNsD,YACE,mJACFC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CACVhC,SAAU,CACRxF,KAAM,SACNiI,YAAa,+DAEf/D,MAAO,CACLlE,KAAM,SACNiI,YAAa,uDAGjBG,SAAU,CAAC,cAsBftC,EAAakC,WAAa,CACxBrD,KAAM,eACNsD,YAAa,iDACbC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CACVhC,SAAU,CACRxF,KAAM,SACNiI,YAAa,0CAGjBG,SAAU,CAAC,cAkDf/B,EAAU2B,WAAa,CACrBrD,KAAM,YACNsD,YACE,kGACFC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CACVhC,SAAU,CACRxF,KAAM,SACNiI,YAAa,sCAEf3J,MAAO,CACL0B,KAAM,SACNiI,YAAa,sBAGjBG,SAAU,CAAC,WAAY,WAmB3BlB,EAASc,WAAa,CACpBrD,KAAM,WACNsD,YACE,+EACFC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CACVL,OAAQ,CACNc,YACE,mGAGNG,SAAU,CAAC,YAuCfb,EAAkBS,WAAa,CAC7BrD,KAAM,oBACNsD,YAAa,0CACbC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CACVhC,SAAU,CACRxF,KAAM,SACNiI,YAAa,gCAEfT,WAAY,CACVxH,KAAM,QACNqI,MAAO,CAAErI,KAAM,UACfiI,YACE,2FAGNG,SAAU,CAAC,cA2BfL,EAAiBC,WAAa,CAC5BrD,KAAM,mBACNsD,YAAa,8DACbC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CACVhC,SAAU,CACRxF,KAAM,SACNiI,YAAa,iCAGjBG,SAAU,CAAC,cC/QR,MAAME,EAAO,MAGhB,IAAIC,EAAU,EAKd,MAAO,KACHA,GAAW,EACJ,IAHX,QAAS7K,KAAK8K,SAAW,IAAM,EAAM,GAAGC,SAAS,MAAM7I,OAAM,KAGnC2I,IAE7B,EAZmB,GAkBb,SAASG,EAAQC,GACpB,MAAMC,EAAM,GACZ,IAAK,IAAIhD,EAAI,EAAGxB,EAAIuE,EAAUxI,OAAQyF,EAAIxB,EAAGwB,IACzCgD,EAAI1H,KAAKyH,EAAU/C,IAEvB,OAAOgD,CACX,CACA,IAAIC,EAAa,KACV,SAASC,EAAmB7O,EAAU,IACzC,OAAI4O,IAGA5O,EAAQ8O,wBACRF,EAAa5O,EAAQ8O,uBACdF,IAEXA,EAAaH,EAAQ5H,OAAOsE,iBAAiB1K,SAASqC,kBAC/C8L,GACX,CACA,SAASG,EAAGC,EAAMC,GACd,MACMC,GADMF,EAAKG,cAAcC,aAAevI,QAC9BsE,iBAAiB6D,GAAMnB,iBAAiBoB,GACxD,OAAOC,EAAMG,WAAWH,EAAII,QAAQ,KAAM,KAAO,CACrD,CAWO,SAASC,EAAaC,EAAYxP,EAAU,IAG/C,MAAO,CAAEoI,MAFKpI,EAAQoI,OAX1B,SAAsB4G,GAClB,MAAMS,EAAaV,EAAGC,EAAM,qBACtBU,EAAcX,EAAGC,EAAM,sBAC7B,OAAOA,EAAKW,YAAcF,EAAaC,CAC3C,CAOmCE,CAAaJ,GAE5BlH,OADDtI,EAAQsI,QAP3B,SAAuB0G,GACnB,MAAMa,EAAYd,EAAGC,EAAM,oBACrBc,EAAef,EAAGC,EAAM,uBAC9B,OAAOA,EAAKe,aAAeF,EAAYC,CAC3C,CAGqCE,CAAcR,GAEnD,CAsBA,MAAMS,EAAuB,MA6CtB,SAASC,EAAYtL,GACxB,OAAO,IAAIuL,QAAQ,CAACC,EAASC,KACzB,MAAMC,EAAM,IAAIC,MAChBD,EAAIE,OAAS,KACTF,EAAIG,SAASnL,KAAK,KACdoL,sBAAsB,IAAMN,EAAQE,OAG5CA,EAAIK,QAAUN,EACdC,EAAIM,YAAc,YAClBN,EAAIO,SAAW,QACfP,EAAIQ,IAAMlM,GAElB,CAOOmM,eAAeC,EAAchC,EAAM5G,EAAOE,GAC7C,MAAM2I,EAAQ,6BACRC,EAAMzQ,SAAS0Q,gBAAgBF,EAAO,OACtCG,EAAgB3Q,SAAS0Q,gBAAgBF,EAAO,iBAWtD,OAVAC,EAAIG,aAAa,QAAS,GAAGjJ,KAC7B8I,EAAIG,aAAa,SAAU,GAAG/I,KAC9B4I,EAAIG,aAAa,UAAW,OAAOjJ,KAASE,KAC5C8I,EAAcC,aAAa,QAAS,QACpCD,EAAcC,aAAa,SAAU,QACrCD,EAAcC,aAAa,IAAK,KAChCD,EAAcC,aAAa,IAAK,KAChCD,EAAcC,aAAa,4BAA6B,QACxDH,EAAItP,YAAYwP,GAChBA,EAAcxP,YAAYoN,GAnBvB+B,eAA4BG,GAC/B,OAAOf,QAAQC,UACV9K,KAAK,KAAM,IAAIgM,eAAgBC,kBAAkBL,IACjD5L,KAAKkM,oBACLlM,KAAMmM,GAAS,oCAAoCA,IAC5D,CAeWC,CAAaR,EACxB,CACO,MAAMS,EAAsB,CAAC3C,EAAM4C,KACtC,GAAI5C,aAAgB4C,EAChB,OAAO,EACX,MAAMC,EAAgBjR,OAAOkR,eAAe9C,GAC5C,OAAsB,OAAlB6C,IAEIA,EAAc9R,YAAY2K,OAASkH,EAASlH,MAChDiH,EAAoBE,EAAeD,KChL3C,SAASG,EAAsBhQ,EAAWiQ,EAAQlR,EAAOd,GACrD,MAAMuL,EAAW,IAAIxJ,KAAaiQ,IAC5BC,EAAUnR,EAAMmR,QAf1B,SAAuBnR,GACnB,MAAMoR,EAAUpR,EAAM+M,iBAAiB,WACvC,MAAO,GAAG/M,EAAMmR,qBAAqBC,EAAQ5C,QAAQ,OAAQ,OACjE,CAaU6C,CAAcrR,GAZxB,SAA6BA,EAAOd,GAChC,OAAO6O,EAAmB7O,GACrBoS,IAAK1H,GAGC,GAAGA,MAFI5J,EAAM+M,iBAAiBnD,KACpB5J,EAAMuR,oBAAoB3H,GACL,cAAgB,OAErD4H,KAAK,IACd,CAKUC,CAAoBzR,EAAOd,GACjC,OAAOS,SAAS0B,eAAe,GAAGoJ,KAAY0G,KAClD,CACA,SAASO,EAAmBC,EAAYC,EAAYV,EAAQhS,GACxD,MAAMc,EAAQ+F,OAAOsE,iBAAiBsH,EAAYT,GAC5CE,EAAUpR,EAAM+M,iBAAiB,WACvC,GAAgB,KAAZqE,GAA8B,SAAZA,EAClB,OAEJ,MAAMnQ,EAAYsM,IAClB,IACIqE,EAAW3Q,UAAY,GAAG2Q,EAAW3Q,aAAaA,GACtD,CACA,MAAO4Q,GACH,MACJ,CACA,MAAMC,EAAenS,SAASC,cAAc,SAC5CkS,EAAahR,YAAYmQ,EAAsBhQ,EAAWiQ,EAAQlR,EAAOd,IACzE0S,EAAW9Q,YAAYgR,EAC3B,CCrCA,MAAMC,EAAO,wBACPC,EAAO,aACPC,EAAQ,CACVC,KAAMH,EACNI,MAAOJ,EACPK,IAAK,4BACLC,IAAK,gCACLC,IAAK,YACLC,IAAKP,EACLQ,KAAMR,EACNS,IAAK,YACLC,KAAM,aACNtC,IAAK,gBACLuC,KAAM,cAMH,SAASC,EAAY9O,GACxB,MAAM+O,EALV,SAAsB/O,GAClB,MAAMgP,EAAQ,gBAAgBC,KAAKjP,GACnC,OAAOgP,EAAQA,EAAM,GAAK,EAC9B,CAEsBE,CAAalP,GAAKiG,cACpC,OAAOkI,EAAMY,IAAc,EAC/B,CCnBO,SAASI,EAAUnP,GACtB,OAAkC,IAA3BA,EAAIoP,OAAO,WACtB,CAIOjD,eAAekD,EAAerP,EAAKsP,EAAMC,GAC5C,MAAMC,QAAYC,MAAMzP,EAAKsP,GAC7B,GAAmB,MAAfE,EAAIrQ,OACJ,MAAM,IAAIuQ,MAAM,aAAaF,EAAIxP,kBAErC,MAAM2P,QAAaH,EAAIG,OACvB,OAAO,IAAIpE,QAAQ,CAACC,EAASC,KACzB,MAAMmE,EAAS,IAAIC,WACnBD,EAAO7D,QAAUN,EACjBmE,EAAOE,UAAY,KACf,IACItE,EAAQ+D,EAAQ,CAAEC,MAAK1G,OAAQ8G,EAAO9G,SAC1C,CACA,MAAOF,GACH6C,EAAO7C,EACX,GAEJgH,EAAOG,cAAcJ,IAE7B,CACA,MAAMK,EAAQ,CAAA,EAYP7D,eAAe8D,EAAkBC,EAAaC,EAAa/U,GAC9D,MAAMgV,EAZV,SAAqBpQ,EAAKmQ,EAAaE,GACnC,IAAIC,EAAMtQ,EAAI0K,QAAQ,OAAQ,IAQ9B,OAPI2F,IACAC,EAAMtQ,GAGN,sBAAsBuQ,KAAKD,KAC3BA,EAAMA,EAAI5F,QAAQ,OAAQ,KAEvByF,EAAc,IAAIA,KAAeG,IAAQA,CACpD,CAEqBE,CAAYN,EAAaC,EAAa/U,EAAQiV,oBAC/D,GAAuB,MAAnBL,EAAMI,GACN,OAAOJ,EAAMI,GAOjB,IAAIK,EAJArV,EAAQsV,YAERR,IAAgB,KAAKK,KAAKL,GAAe,IAAM,MAAO,IAAIjM,MAAO0M,WAGrE,IACI,MAAMrD,QAAgB+B,EAAea,EAAa9U,EAAQwV,iBAAkB,EAAGpB,MAAK1G,aAC3EqH,IAEDA,EAAcX,EAAIqB,QAAQC,IAAI,iBAAmB,IAxDjE,SAA+BL,GAC3B,OAAOA,EAAQM,MAAM,KAAK,EAC9B,CAwDmBC,CAAsBlI,KAEjC2H,EAtDD,SAAqBnD,EAAS2D,GACjC,MAAO,QAAQA,YAAmB3D,GACtC,CAoDkB4D,CAAY5D,EAAS6C,EACnC,CACA,MAAOvH,GACH6H,EAAUrV,EAAQ+V,kBAAoB,GACtC,IAAIC,EAAM,6BAA6BlB,IACnCtH,IACAwI,EAAuB,iBAAVxI,EAAqBA,EAAQA,EAAM1H,SAEhDkQ,GACAC,QAAQC,KAAKF,EAErB,CAEA,OADApB,EAAMI,GAAYK,EACXA,CACX,CCpCAtE,eAAeoF,EAAgBnH,EAAMhP,GACjC,OAAI2R,EAAoB3C,EAAMoH,mBAnClCrF,eAAkCsF,GAC9B,MAAMhB,EAAUgB,EAAOC,YACvB,MAAgB,WAAZjB,EACOgB,EAAOE,WAAU,GAErBrG,EAAYmF,EACvB,CA8BemB,CAAmBxH,GAE1B2C,EAAoB3C,EAAMyH,kBA/BlC1F,eAAiC2F,EAAO1W,GACpC,GAAI0W,EAAMC,WAAY,CAClB,MAAMN,EAAS5V,SAASC,cAAc,UAChCkW,EAAMP,EAAOQ,WAAW,MAK9B,OAJAR,EAAOjO,MAAQsO,EAAM/G,YACrB0G,EAAO/N,OAASoO,EAAM3G,aACtB6G,SAA0CA,EAAIE,UAAUJ,EAAO,EAAG,EAAGL,EAAOjO,MAAOiO,EAAO/N,QAEnF4H,EADSmG,EAAOC,YAE3B,CACA,MAAMS,EAASL,EAAMK,OACfhC,EAAcrB,EAAYqD,GAEhC,OAAO7G,QADe2E,EAAkBkC,EAAQhC,EAAa/U,GAEjE,CAkBegX,CAAkBhI,EAAMhP,GAE/B2R,EAAoB3C,EAAMiI,mBAnBlClG,eAAkCmG,EAAQlX,GACtC,IAAImX,EACJ,IACI,GAAsF,QAAjFA,EAAKD,aAA4C,EAAIA,EAAOE,uBAAyC,IAAZD,OAAqB,EAAIA,EAAG5U,KACtH,aAAcgU,EAAUW,EAAOE,gBAAgB7U,KAAMvC,GAAS,EAEtE,CACA,MAAOqX,GAEP,CACA,OAAOH,EAAOX,WAAU,EAC5B,CASee,CAAmBtI,EAAMhP,GAE7BgP,EAAKuH,UAAUgB,EAAavI,GACvC,CACA,MAAMwI,EAAiBxI,GAAyB,MAAhBA,EAAKpE,SAAkD,SAA/BoE,EAAKpE,QAAQ6M,cAC/DF,EAAgBvI,GAAyB,MAAhBA,EAAKpE,SAAkD,QAA/BoE,EAAKpE,QAAQ6M,cA4EpE,SAASC,EAASjF,EAAYC,EAAY1S,GAOtC,OANI2R,EAAoBe,EAAYiF,WA/CxC,SAAuBlF,EAAYC,EAAY1S,GAC3C,MAAM4X,EAAclF,EAAW5R,MAC/B,IAAK8W,EACD,OAEJ,MAAMC,EAAchR,OAAOsE,iBAAiBsH,GACxCoF,EAAY5F,SACZ2F,EAAY3F,QAAU4F,EAAY5F,QAClC2F,EAAYE,gBAAkBD,EAAYC,iBAG1CjJ,EAAmB7O,GAAS+X,QAASrN,IACjC,IAAIrG,EAAQwT,EAAYhK,iBAAiBnD,GACzC,GAAa,cAATA,GAAwBrG,EAAM2T,SAAS,MAAO,CAC9C,MAAMC,EAAcxU,KAAKyU,MAAM7I,WAAWhL,EAAM8T,UAAU,EAAG9T,EAAM6B,OAAS,KAAO,GACnF7B,EAAQ,GAAG4T,KACf,CACItG,EAAoBc,EAAYwE,oBACvB,YAATvM,GACU,WAAVrG,IACAA,EAAQ,SAEC,MAATqG,GAAgBgI,EAAW0F,aAAa,OACxC/T,EAAQ,QAAQqO,EAAW0F,aAAa,SAE5CR,EAAYS,YAAY3N,EAAMrG,EAAOwT,EAAYxF,oBAAoB3H,KAGjF,CAoBQ4N,CAAc7F,EAAYC,EAAY1S,GH3FvC,SAA6ByS,EAAYC,EAAY1S,GACxDwS,EAAmBC,EAAYC,EAAY,UAAW1S,GACtDwS,EAAmBC,EAAYC,EAAY,SAAU1S,EACzD,CGyFQuY,CAAoB9F,EAAYC,EAAY1S,GApBpD,SAAyByS,EAAYC,GAC7Bf,EAAoBc,EAAYlG,uBAChCmG,EAAWvO,UAAYsO,EAAWpO,OAElCsN,EAAoBc,EAAYhG,mBAChCiG,EAAWrB,aAAa,QAASoB,EAAWpO,MAEpD,CAcQmU,CAAgB/F,EAAYC,GAbpC,SAA0BD,EAAYC,GAClC,GAAIf,EAAoBc,EAAYzF,mBAAoB,CACpD,MAAMyL,EAAe/F,EACfgG,EAAiBnO,MAAMC,KAAKiO,EAAaxS,UAAU0S,KAAMC,GAAUnG,EAAWpO,QAAUuU,EAAMR,aAAa,UAC7GM,GACAA,EAAerH,aAAa,WAAY,GAEhD,CACJ,CAMQwH,CAAiBpG,EAAYC,IAE1BA,CACX,CAsCO3B,eAAewF,EAAUvH,EAAMhP,EAAS8Y,GAC3C,OAAKA,IAAU9Y,EAAQkK,QAAWlK,EAAQkK,OAAO8E,GAG1CmB,QAAQC,QAAQpB,GAClB1J,KAAMoN,GAAeyD,EAAgBzD,EAAY1S,IACjDsF,KAAMoN,GA/Hf3B,eAA6B0B,EAAYC,EAAY1S,GACjD,IAAImX,EAAIE,EACR,GAAIE,EAAa7E,GACb,OAAOA,EAEX,IAAIzM,EAAW,GAWf,OATIA,EADAuR,EAAc/E,IAAeA,EAAWsG,cAC7BtK,EAAQgE,EAAWsG,iBAEzBpH,EAAoBc,EAAYwE,qBACE,QAArCE,EAAK1E,EAAW2E,uBAAoC,IAAPD,OAAgB,EAASA,EAAG5U,MAChEkM,EAAQgE,EAAW2E,gBAAgB7U,KAAKyW,YAGxCvK,GAA0C,QAAhC4I,EAAK5E,EAAWwG,kBAA+B,IAAP5B,EAAgBA,EAAK5E,GAAYuG,YAE1E,IAApB/S,EAASC,QACTyL,EAAoBc,EAAYgE,yBAG9BxQ,EAASiT,OAAO,CAACC,EAAUP,IAAUO,EACtC7T,KAAK,IAAMiR,EAAUqC,EAAO5Y,IAC5BsF,KAAM8T,IACHA,GACA1G,EAAW9Q,YAAYwX,KAE3BjJ,QAAQC,WARDsC,CAUf,CAmG8B2G,CAAcrK,EAAM0D,EAAY1S,IACrDsF,KAAMoN,GAAegF,EAAS1I,EAAM0D,EAAY1S,IAChDsF,KAAMoN,GA7Cf3B,eAAgCuI,EAAOtZ,GACnC,MAAMuZ,EAAOD,EAAM7N,iBAAmB6N,EAAM7N,iBAAiB,OAAS,GACtE,GAAoB,IAAhB8N,EAAKrT,OACL,OAAOoT,EAEX,MAAME,EAAgB,CAAA,EACtB,IAAK,IAAI7N,EAAI,EAAGA,EAAI4N,EAAKrT,OAAQyF,IAAK,CAClC,MACMhL,EADM4Y,EAAK5N,GACFyM,aAAa,cAC5B,GAAIzX,EAAI,CACJ,MAAM8Y,EAAQH,EAAMjT,cAAc1F,GAC5B+Y,EAAajZ,SAAS4F,cAAc1F,GACrC8Y,IAASC,GAAeF,EAAc7Y,KAEvC6Y,EAAc7Y,SAAa4V,EAAUmD,EAAY1Z,GAAS,GAElE,CACJ,CACA,MAAM2Z,EAAQ/Y,OAAOgZ,OAAOJ,GAC5B,GAAIG,EAAMzT,OAAQ,CACd,MAAM2T,EAAK,+BACL3I,EAAMzQ,SAAS0Q,gBAAgB0I,EAAI,OACzC3I,EAAIG,aAAa,QAASwI,GAC1B3I,EAAIpQ,MAAMC,SAAW,WACrBmQ,EAAIpQ,MAAMsH,MAAQ,IAClB8I,EAAIpQ,MAAMwH,OAAS,IACnB4I,EAAIpQ,MAAMgZ,SAAW,SACrB5I,EAAIpQ,MAAMK,QAAU,OACpB,MAAM4Y,EAAOtZ,SAAS0Q,gBAAgB0I,EAAI,QAC1C3I,EAAItP,YAAYmY,GAChB,IAAK,IAAIpO,EAAI,EAAGA,EAAIgO,EAAMzT,OAAQyF,IAC9BoO,EAAKnY,YAAY+X,EAAMhO,IAE3B2N,EAAM1X,YAAYsP,EACtB,CACA,OAAOoI,CACX,CAS8BU,CAAiBtH,EAAY1S,IAN5C,IAOf,CCnLA,MAAMia,EAAY,6BACZC,EAAwB,8CACxBC,EAAiB,qDAchBpJ,eAAeqJ,EAAMnI,EAASoI,EAAaC,EAASta,EAASua,GAChE,IACI,MAAMC,EAAcF,ELrBrB,SAAoB1V,EAAK6V,GAE5B,GAAI7V,EAAIgP,MAAM,iBACV,OAAOhP,EAGX,GAAIA,EAAIgP,MAAM,SACV,OAAO/M,OAAOoB,SAASyS,SAAW9V,EAGtC,GAAIA,EAAIgP,MAAM,aACV,OAAOhP,EAEX,MAAM+V,EAAMla,SAASma,eAAeC,qBAC9BC,EAAOH,EAAIja,cAAc,QACzBqa,EAAIJ,EAAIja,cAAc,KAO5B,OANAia,EAAIK,KAAKpZ,YAAYkZ,GACrBH,EAAIpY,KAAKX,YAAYmZ,GACjBN,IACAK,EAAK5S,KAAOuS,GAEhBM,EAAE7S,KAAOtD,EACFmW,EAAE7S,IACb,CKFsC+S,CAAWZ,EAAaC,GAAWD,EAC3DtF,EAAcrB,EAAY2G,GAChC,IAAIhF,EAQJ,OAPIkF,IAKAlF,QAAgBR,EAAkB2F,EAAazF,EAAa/U,IAEzDiS,EAAQ3C,QAzBvB,SAAiB1K,GAEb,MAAMsW,EAAUtW,EAAI0K,QAAQ,2BAA4B,QACxD,OAAO,IAAI6L,OAAO,iBAAiBD,eAAsB,IAC7D,CAqB+BE,CAAQf,GAAc,KAAKhF,MACtD,CACA,MAAO7H,GAEP,CACA,OAAOyE,CACX,CAiBO,SAASoJ,EAAYzW,GACxB,OAAiC,IAA1BA,EAAIoP,OAAOiG,EACtB,CACOlJ,eAAeuK,EAAerJ,EAASwI,EAASza,GACnD,IAAKqb,EAAYpJ,GACb,OAAOA,EAEX,MAAMsJ,EAvBV,SAAmCC,GAAKC,oBAAEA,IACtC,OAAQA,EAEFD,EAAIlM,QAAQ6K,EAAiBvG,IAE3B,OAAa,CACT,MAAO9C,EAAG,CAAI4K,GAAUxB,EAAsBrG,KAAKD,IAAU,GAC7D,IAAK8H,EACD,MAAO,GAEX,GAAIA,IAAWD,EACX,MAAO,QAAQ3K,IAEvB,IAXF0K,CAaV,CAQ4BG,CAA0B1J,EAASjS,GACrD4b,EAnDH,SAAmB3J,GACtB,MAAM2J,EAAO,GAKb,OAJA3J,EAAQ3C,QAAQ2K,EAAW,CAAC4B,EAAKC,EAAWlX,KACxCgX,EAAK3U,KAAKrC,GACHiX,IAEJD,EAAK1R,OAAQtF,IAASmP,EAAUnP,GAC3C,CA4CiBmX,CAAUR,GACvB,OAAOK,EAAK1C,OAAO,CAACC,EAAUvU,IAAQuU,EAAS7T,KAAM0W,GAAQ5B,EAAM4B,EAAKpX,EAAK6V,EAASza,IAAWmQ,QAAQC,QAAQmL,GACrH,CC5DAxK,eAAekL,EAAUC,EAAUlN,EAAMhP,GACrC,IAAImX,EACJ,MAAMgF,EAAkC,QAArBhF,EAAKnI,EAAKlO,aAA0B,IAAPqW,OAAgB,EAASA,EAAGtJ,iBAAiBqO,GAC7F,GAAIC,EAAW,CACX,MAAMC,QAAkBd,EAAea,EAAW,KAAMnc,GAExD,OADAgP,EAAKlO,MAAMuX,YAAY6D,EAAUE,EAAWpN,EAAKlO,MAAMuR,oBAAoB6J,KACpE,CACX,CACA,OAAO,CACX,CAoDOnL,eAAesL,EAAY3J,EAAY1S,GACtC2R,EAAoBe,EAAYiF,iBApDxC5G,eAA+B2B,EAAY1S,SAEhCic,EAAU,aAAcvJ,EAAY1S,UAChCic,EAAU,mBAAoBvJ,EAAY1S,SAC9Cic,EAAU,OAAQvJ,EAAY1S,UAC1Bic,EAAU,eAAgBvJ,EAAY1S,UACtCic,EAAU,aAAcvJ,EAAY1S,UACpCic,EAAU,qBAAsBvJ,EAAY1S,EAC3D,CA6Ccsc,CAAgB5J,EAAY1S,SA5C1C+Q,eAA8B2B,EAAY1S,GACtC,MAAMuc,EAAiB5K,EAAoBe,EAAY8J,kBACvD,KAAMD,GAAmBxI,EAAUrB,EAAW5B,SACxCa,EAAoBe,EAAY+J,kBAC7B1I,EAAUrB,EAAWxK,KAAKwU,UAC/B,OAEJ,MAAM9X,EAAM2X,EAAiB7J,EAAW5B,IAAM4B,EAAWxK,KAAKwU,QACxDrH,QAAgBR,EAAkBjQ,EAAK8O,EAAY9O,GAAM5E,SACzD,IAAImQ,QAAQ,CAACC,EAASC,KACxBqC,EAAWlC,OAASJ,EACpBsC,EAAW/B,QAAU3Q,EAAQ2c,oBACvB,IAAIlS,KACF,IACI2F,EAAQpQ,EAAQ2c,uBAAuBlS,GAC3C,CACA,MAAO+C,GACH6C,EAAO7C,EACX,GAEF6C,EACN,MAAMuM,EAAQlK,EACVkK,EAAMnM,SACNmM,EAAMnM,OAASL,GAEG,SAAlBwM,EAAMC,UACND,EAAMC,QAAU,SAEhBN,GACA7J,EAAWoK,OAAS,GACpBpK,EAAW5B,IAAMuE,GAGjB3C,EAAWxK,KAAKwU,QAAUrH,GAGtC,CASc0H,CAAerK,EAAY1S,SARzC+Q,eAA6B2B,EAAY1S,GACrC,MACMgd,EADWvO,EAAQiE,EAAWsG,YACT5G,IAAKwG,GAAUyD,EAAYzD,EAAO5Y,UACvDmQ,QAAQ8M,IAAID,GAAW1X,KAAK,IAAMoN,EAC5C,CAKcwK,CAAcxK,EAAY1S,GAExC,CCpEA,MAAMmd,EAAgB,CAAA,EACtBpM,eAAeqM,EAASxY,GACpB,IAAIgQ,EAAQuI,EAAcvY,GAC1B,GAAa,MAATgQ,EACA,OAAOA,EAEX,MAAMR,QAAYC,MAAMzP,GAIxB,OAFAgQ,EAAQ,CAAEhQ,MAAKqN,cADOmC,EAAIrJ,QAE1BoS,EAAcvY,GAAOgQ,EACdA,CACX,CACA7D,eAAesM,EAAWC,EAAMtd,GAC5B,IAAIiS,EAAUqL,EAAKrL,QACnB,MAAMsL,EAAW,8BAEXC,GADWvL,EAAQ2B,MAAM,kBAAoB,IACxBxB,IAAIrB,MAAO0M,IAClC,IAAI7Y,EAAM6Y,EAAInO,QAAQiO,EAAU,MAIhC,OAHK3Y,EAAI0C,WAAW,cAChB1C,EAAM,IAAI8Y,IAAI9Y,EAAK0Y,EAAK1Y,KAAKsD,MAE1B+L,EAAerP,EAAK5E,EAAQwV,iBAAkB,EAAG9H,aACpDuE,EAAUA,EAAQ3C,QAAQmO,EAAK,OAAO/P,MAC/B,CAAC+P,EAAK/P,OAGrB,OAAOyC,QAAQ8M,IAAIO,GAAWlY,KAAK,IAAM2M,EAC7C,CACA,SAAS0L,EAASC,GACd,GAAc,MAAVA,EACA,MAAO,GAEX,MAAMlQ,EAAS,GAGf,IAAIuE,EAAU2L,EAAOtO,QAFC,uBAEsB,IAE5C,MAAMuO,EAAiB,IAAI1C,OAAO,mDAAoD,MAEtF,OAAa,CACT,MAAM2C,EAAUD,EAAehK,KAAK5B,GACpC,GAAgB,OAAZ6L,EACA,MAEJpQ,EAAOzG,KAAK6W,EAAQ,GACxB,CACA7L,EAAUA,EAAQ3C,QAAQuO,EAAgB,IAC1C,MAAME,EAAc,yCAKdC,EAAe,IAAI7C,OAHA,6GAGyB,MAElD,OAAa,CACT,IAAI2C,EAAUC,EAAYlK,KAAK5B,GAC/B,GAAgB,OAAZ6L,EAAkB,CAElB,GADAA,EAAUE,EAAanK,KAAK5B,GACZ,OAAZ6L,EACA,MAGAC,EAAYE,UAAYD,EAAaC,SAE7C,MAEID,EAAaC,UAAYF,EAAYE,UAEzCvQ,EAAOzG,KAAK6W,EAAQ,GACxB,CACA,OAAOpQ,CACX,CAwEAqD,eAAemN,EAAkBlP,EAAMhP,GACnC,GAA0B,MAAtBgP,EAAKG,cACL,MAAM,IAAImF,MAAM,6CAEpB,MAAM6J,EAAc1P,EAAQO,EAAKG,cAAcgP,aACzCC,QA5EVrN,eAA2BoN,EAAane,GACpC,MAAMqe,EAAM,GACNrB,EAAY,GA+ClB,OA7CAmB,EAAYpG,QAASuG,IACjB,GAAI,aAAcA,EACd,IACI7P,EAAQ6P,EAAMF,UAAY,IAAIrG,QAAQ,CAACwG,EAAMC,KACzC,GAAID,EAAKxY,OAAS0Y,QAAQC,YAAa,CACnC,IAAIC,EAAcH,EAAQ,EAC1B,MACMrF,EAAWiE,EADLmB,EAAKrW,MAEZ5C,KAAMsZ,GAAavB,EAAWuB,EAAU5e,IACxCsF,KAAM2M,GAAY0L,EAAS1L,GAAS8F,QAAS8G,IAC9C,IACIP,EAAMQ,WAAWD,EAAMA,EAAKvX,WAAW,WAChCqX,GAAe,EAChBL,EAAMF,SAASlY,OACzB,CACA,MAAOsH,GACHyI,QAAQzI,MAAM,uCAAwC,CAClDqR,OACArR,SAER,KAECuR,MAAOlc,IACRoT,QAAQzI,MAAM,2BAA4B3K,EAAE2L,cAEhDwO,EAAU/V,KAAKkS,EACnB,GAER,CACA,MAAOtW,GACH,MAAMmc,EAASb,EAAYxF,KAAMoC,GAAgB,MAAVA,EAAE7S,OAAiBzH,SAAS0d,YAAY,GAC7D,MAAdG,EAAMpW,MACN8U,EAAU/V,KAAKmW,EAASkB,EAAMpW,MACzB5C,KAAMsZ,GAAavB,EAAWuB,EAAU5e,IACxCsF,KAAM2M,GAAY0L,EAAS1L,GAAS8F,QAAS8G,IAC9CG,EAAOF,WAAWD,EAAMG,EAAOZ,SAASlY,WAEvC6Y,MAAOpM,IACRsD,QAAQzI,MAAM,kCAAmCmF,MAGzDsD,QAAQzI,MAAM,iCAAkC3K,EACpD,IAGDsN,QAAQ8M,IAAID,GAAW1X,KAAK,KAE/B6Y,EAAYpG,QAASuG,IACjB,GAAI,aAAcA,EACd,IACI7P,EAAQ6P,EAAMF,UAAY,IAAIrG,QAASwG,IACnCF,EAAIpX,KAAKsX,IAEjB,CACA,MAAO1b,GACHoT,QAAQzI,MAAM,sCAAsC8Q,EAAMpW,OAAQrF,EACtE,IAGDwb,GAEf,CAW2BY,CAAYd,EAAane,GAChD,OAXJ,SAAyBoe,GACrB,OAAOA,EACFlU,OAAQ2U,GAASA,EAAK9Y,OAAS0Y,QAAQS,gBACvChV,OAAQ2U,GAASxD,EAAYwD,EAAK/d,MAAM+M,iBAAiB,QAClE,CAOWsR,CAAgBf,EAC3B,CACA,SAASgB,EAAoBC,GACzB,OAAOA,EAAKrU,OAAOsE,QAAQ,QAAS,GACxC,CAiBOyB,eAAeuO,GAActQ,EAAMhP,GACtC,MAAMuf,QAAcrB,EAAkBlP,EAAMhP,GACtCwf,EAlBV,SAAsBxQ,GAClB,MAAMyQ,EAAQ,IAAIC,IAalB,OAZA,SAASC,EAAS3Q,IACKA,EAAKlO,MAAM8e,YAAczU,iBAAiB6D,GAAM4Q,YACxDjK,MAAM,KAAKoC,QAASsH,IAC3BI,EAAMzb,IAAIob,EAAoBC,MAElC9U,MAAMC,KAAKwE,EAAK/I,UAAU8R,QAASa,IAC3BA,aAAiBiH,aACjBF,EAAS/G,IAGrB,CACA+G,CAAS3Q,GACFyQ,CACX,CAGsBK,CAAa9Q,GAS/B,aARuBmB,QAAQ8M,IAAIsC,EAC9BrV,OAAQ2U,GAASW,EAAUO,IAAIX,EAAoBP,EAAK/d,MAAM8e,cAC9DxN,IAAKyM,IACN,MAAMpE,EAAUoE,EAAKmB,iBACfnB,EAAKmB,iBAAiB9X,KACtB,KACN,OAAOoT,EAAeuD,EAAK5M,QAASwI,EAASza,OAEjCsS,KAAK,KACzB,CCpLOvB,eAAekP,GAAMjR,EAAMhP,EAAU,IACxC,MAAMoI,MAAEA,EAAKE,OAAEA,GAAWiH,EAAaP,EAAMhP,GACvC0S,QAAoB6D,EAAUvH,EAAMhP,GAAS,SDmLhD+Q,eAA6B2B,EAAY1S,GAC5C,MAAMiS,EAAkC,MAAxBjS,EAAQkgB,aAClBlgB,EAAQkgB,aACRlgB,EAAQmgB,UACJ,WACMb,GAAc5M,EAAY1S,GAC1C,GAAIiS,EAAS,CACT,MAAMmO,EAAY3f,SAASC,cAAc,SACnC2f,EAAe5f,SAAS0B,eAAe8P,GAC7CmO,EAAUxe,YAAYye,GAClB3N,EAAWtM,WACXsM,EAAW4N,aAAaF,EAAW1N,EAAWtM,YAG9CsM,EAAW9Q,YAAYwe,EAE/B,CACJ,CCnMUG,CAAc7N,EAAY1S,SAC1Bqc,EAAY3J,EAAY1S,GCT3B,SAAoBgP,EAAMhP,GAC7B,MAAMc,MAAEA,GAAUkO,EACdhP,EAAQwgB,kBACR1f,EAAM0f,gBAAkBxgB,EAAQwgB,iBAEhCxgB,EAAQoI,QACRtH,EAAMsH,MAAQ,GAAGpI,EAAQoI,WAEzBpI,EAAQsI,SACRxH,EAAMwH,OAAS,GAAGtI,EAAQsI,YAE9B,MAAMmY,EAASzgB,EAAQc,MACT,MAAV2f,GACA7f,OAAOuG,KAAKsZ,GAAQ1I,QAAS7C,IACzBpU,EAAMoU,GAAOuL,EAAOvL,IAIhC,CDRIwL,CAAWhO,EAAY1S,GAEvB,aADsBgR,EAAc0B,EAAYtK,EAAOE,EAE3D,CACOyI,eAAe4P,GAAS3R,EAAMhP,EAAU,IAC3C,MAAMoI,MAAEA,EAAKE,OAAEA,GAAWiH,EAAaP,EAAMhP,GACvCkR,QAAY+O,GAAMjR,EAAMhP,GACxBsQ,QAAYJ,EAAYgB,GACxBmF,EAAS5V,SAASC,cAAc,UAChCkgB,EAAUvK,EAAOQ,WAAW,MAC5BgK,EAAQ7gB,EAAQ8gB,YR6DnB,WACH,IAAID,EACAE,EACJ,IACIA,EAAgB5M,OACpB,CACA,MAAOtR,GAEP,CACA,MAAMqM,EAAM6R,GAAiBA,EAAcC,IACrCD,EAAcC,IAAIC,iBAClB,KAON,OANI/R,IACA2R,EAAQK,SAAShS,EAAK,IAClBiS,OAAOC,MAAMP,KACbA,EAAQ,IAGTA,GAASha,OAAOoa,kBAAoB,CAC/C,CQhFwCI,GAC9BC,EAActhB,EAAQshB,aAAelZ,EACrCmZ,EAAevhB,EAAQuhB,cAAgBjZ,EAa7C,OAZA+N,EAAOjO,MAAQkZ,EAAcT,EAC7BxK,EAAO/N,OAASiZ,EAAeV,EAC1B7gB,EAAQwhB,eR8EV,SAA+BnL,IAC9BA,EAAOjO,MAAQ6H,GACfoG,EAAO/N,OAAS2H,KACZoG,EAAOjO,MAAQ6H,GACfoG,EAAO/N,OAAS2H,EACZoG,EAAOjO,MAAQiO,EAAO/N,QACtB+N,EAAO/N,QAAU2H,EAAuBoG,EAAOjO,MAC/CiO,EAAOjO,MAAQ6H,IAGfoG,EAAOjO,OAAS6H,EAAuBoG,EAAO/N,OAC9C+N,EAAO/N,OAAS2H,GAGfoG,EAAOjO,MAAQ6H,GACpBoG,EAAO/N,QAAU2H,EAAuBoG,EAAOjO,MAC/CiO,EAAOjO,MAAQ6H,IAGfoG,EAAOjO,OAAS6H,EAAuBoG,EAAO/N,OAC9C+N,EAAO/N,OAAS2H,GAG5B,CQpGQwR,CAAsBpL,GAE1BA,EAAOvV,MAAMsH,MAAQ,GAAGkZ,IACxBjL,EAAOvV,MAAMwH,OAAS,GAAGiZ,IACrBvhB,EAAQwgB,kBACRI,EAAQc,UAAY1hB,EAAQwgB,gBAC5BI,EAAQe,SAAS,EAAG,EAAGtL,EAAOjO,MAAOiO,EAAO/N,SAEhDsY,EAAQ9J,UAAUxG,EAAK,EAAG,EAAG+F,EAAOjO,MAAOiO,EAAO/N,QAC3C+N,CACX,CE/BOtF,eAAe6Q,GAAe5hB,GAQnC,MAAMuL,EAAWvL,GAASuL,SACpBmQ,EAAS1b,GAAS0b,QAAU,MAC5BmG,EAAU7hB,GAAS6hB,SAAW,IAC9BC,EAAQ9hB,GAAS8hB,OAAS,EAE1B5U,EAAS3B,EAAW9K,SAAS4F,cAAckF,GAAY9K,SAAS8B,KACtE,IAAK2K,EACH,MAAO,CAAEM,MAAO,kCAAkCjC,KAGpD,IACE,MAAMyD,EAAO9B,EACP6U,EAAiB,CACrBF,UACAf,WAAYgB,EACZxM,WAAW,EACXkM,eAAe,EAEftX,OAASzC,GACU,wBAAVA,EAAG9G,IAId,IAAIqhB,EAEFA,EADa,SAAXtG,QFUD3K,eAAsB/B,EAAMhP,EAAU,IAEzC,aADqB2gB,GAAS3R,EAAMhP,IACtBsW,UAAU,aAActW,EAAQ6hB,SAAW,EAC7D,CEZsBI,CAAOjT,EAAM+S,SFK5BhR,eAAqB/B,EAAMhP,EAAU,IAExC,aADqB2gB,GAAS3R,EAAMhP,IACtBsW,WAClB,CENsB4L,CAAMlT,EAAM+S,GAI9B,MAAM1e,EAAO2L,EAAK1L,wBAClB,IAAI8E,EAAQ3E,KAAK6F,MAAMjG,EAAK+E,MAAQ0Z,GAChCxZ,EAAS7E,KAAK6F,MAAMjG,EAAKiF,OAASwZ,GAGtC,MAAMK,EAAOniB,GAASoiB,UAChBC,EAAOriB,GAASsiB,WACtB,GAAIH,GAAQ/Z,EAAQ+Z,EAAM,CACxB,MAAMtB,EAAQsB,EAAO/Z,EACrBA,EAAQ+Z,EACR7Z,EAAS7E,KAAK6F,MAAMhB,EAASuY,EAC/B,CACA,GAAIwB,GAAQ/Z,EAAS+Z,EAAM,CACzB,MAAMxB,EAAQwB,EAAO/Z,EACrBA,EAAS+Z,EACTja,EAAQ3E,KAAK6F,MAAMlB,EAAQyY,EAC7B,CAEA,MAAO,CACLvD,KAAM0E,EACNtG,SACAtT,QACAE,SAEJ,CAAE,MAAOqK,GACP,MAAO,CAAEnF,MAAO,sBAAsBmF,EAAI7M,SAAW6M,IACvD,CACF,CCnEO5B,eAAewR,GACpBC,EACAxiB,GAEA,MAAMyiB,EAAYziB,GAAS0iB,YAAc,IAEzC,IACE,MAAMhV,QAAeyC,QAAQwS,KAAK,CAEhC,IAAIC,SAAS,wBAA0BJ,EAAO,OAA9C,GACA,IAAIrS,QAAQ,CAAC0S,EAAGxS,IACdzM,WAAW,IAAMyM,EAAO,IAAIiE,MAAM,wBAAyBmO,MAK/D,IAAIK,EACA/c,SAAsB2H,EAC1B,SACiBqV,IAAXrV,GACFoV,EAAa,KACb/c,EAAO,aACE2H,aAAkBmS,aAC3BiD,EAAa,CACXnY,IAAK+C,EAAO9C,QAAQC,cACpBlK,GAAI+M,EAAO/M,GACXoK,MAAO2C,EAAO/L,aAAe,IAAIqJ,OAAOrF,MAAM,EAAG,MAEnDI,EAAO,eACE2H,aAAkBsV,UAAYtV,aAAkBuV,gBACzDH,EAAavY,MAAMC,KAAKkD,GAAQ0E,IAAK3K,IAAO,CAC1CkD,IAAKlD,EAAGmD,SAASC,cACjBlK,GAAI8G,EAAG9G,GACPoK,MAAOtD,EAAG9F,aAAe,IAAIqJ,OAAOrF,MAAM,EAAG,QAE/CI,EAAO,YAGP+c,EAAaI,KAAKC,MAAMD,KAAKE,UAAU1V,GAE3C,CAAE,MACAoV,EAAaO,OAAO3V,GACpB3H,EAAO,qBACT,CAEA,MAAO,CAAE2H,OAAQoV,EAAY/c,OAC/B,CAAE,MAAO4M,GACP,MAAO,CAAEnF,MAAO,oBAAoBmF,EAAI7M,SAAW6M,IACrD,CACF,CCjDM,SAAU2Q,GACd1e,GAEA,IAEE,OADAiC,OAAOoB,SAASC,KAAOtD,EAChB,CAAEkH,SAAS,EAAMhG,QAAS,iBAAiBlB,IACpD,CAAE,MAAO+N,GACP,MAAO,CAAE7G,SAAS,EAAOhG,QAAS,sBAAsB6M,EAAI7M,SAAW6M,IACzE,CACF,UAiBgB4Q,KACd,IAEE,OADA1c,OAAO2c,QAAQC,OACR,CAAE3X,SAAS,EAAMhG,QAAS,iBACnC,CAAE,MAAO6M,GACP,MAAO,CAAE7G,SAAS,EAAOhG,QAAS,2BAA2B6M,EAAI7M,SAAW6M,IAC9E,CACF,UAWgB+Q,KACd,IAEE,OADA7c,OAAO2c,QAAQG,UACR,CAAE7X,SAAS,EAAMhG,QAAS,oBACnC,CAAE,MAAO6M,GACP,MAAO,CACL7G,SAAS,EACThG,QAAS,8BAA8B6M,EAAI7M,SAAW6M,IAE1D,CACF,UAWgBiR,KACd,IAEE,OADA/c,OAAOoB,SAAS2b,SACT,CAAE9X,SAAS,EAAMhG,QAAS,iBACnC,CAAE,MAAO6M,GACP,MAAO,CAAE7G,SAAS,EAAOhG,QAAS,kBAAkB6M,EAAI7M,SAAW6M,IACrE,CACF,CCzCA,SAASkR,GAAiBC,GACxB,MAAM/d,KAAEA,GAAS+d,EACjB,IAAK/d,EAAM,MAAO,YAClB,GAAoB,iBAATA,EAAmB,OAAOA,EACrC,GAAoB,mBAATA,EACT,OAAOA,EAAKge,aAAehe,EAAK2E,MAAQ,YAE1C,GAAoB,iBAAT3E,EAAmB,CAC5B,GAAIA,EAAKge,YAAa,OAAOhe,EAAKge,YAClC,GAAIhe,EAAKie,OACP,OAAOje,EAAKie,OAAOD,aAAehe,EAAKie,OAAOtZ,MAAQ,aACxD,GAAI3E,EAAKA,KAAM,OAAO8d,GAAiB,CAAE9d,KAAMA,EAAKA,OAEpD,GAAkC,uBAA9BA,EAAKke,UAAUzV,WACjB,MAAO,QAAQqV,GAAiB,CAAE9d,KAAMA,EAAKA,SAEjD,CACA,MAAO,WACT,CAWA,SAASme,GAAcC,EAAUC,EAAQ,EAAGC,EAAW,GACrD,GAAID,EAAQC,EAAU,MAAO,cAC7B,GAAIF,QAAmC,OAAOA,EAC9C,GAAmB,mBAARA,EAAoB,MAAO,cAAcA,EAAIzZ,MAAQ,eAChE,GAAmB,iBAARyZ,EAAkB,OAAOA,EACpC,GAAIA,aAAetE,YAAa,MAAO,IAAIsE,EAAIvZ,QAAQC,iBAAiBsZ,EAAIxjB,MAC5E,GAAI4J,MAAM+Z,QAAQH,GAChB,OAAOA,EAAIxe,MAAM,EAAG,IAAIyM,IAAKmS,GAAML,GAAcK,EAAGH,EAAQ,EAAGC,IAEjE,MAAM3W,EAA8B,CAAA,EAC9BvG,EAAOvG,OAAOuG,KAAKgd,GAAKxe,MAAM,EAAG,IACvC,IAAK,MAAMuP,KAAO/N,EAChB,IAAI+N,EAAI5N,WAAW,OAAQ4N,EAAI5N,WAAW,MAC1C,IACEoG,EAAOwH,GAAOgP,GAAcC,EAAIjP,GAAMkP,EAAQ,EAAGC,EACnD,CAAE,MACA3W,EAAOwH,GAAO,kBAChB,CAEF,OAAOxH,CACT,CAEA,SAAS8W,GAAaV,GACpB,GAAkB,IAAdA,EAAMnZ,KAAamZ,EAAMW,UAE3B,OAAOP,GAAcJ,EAAMW,UAAUC,OAEvC,GAAkB,IAAdZ,EAAMnZ,KAA2B,KAAdmZ,EAAMnZ,KAA4B,KAAdmZ,EAAMnZ,IAAY,CAE3D,MAAMga,EAAgB,GACtB,IAAIC,EAAOd,EAAMe,cACblZ,EAAI,EACR,KAAOiZ,GAAQjZ,EAAI,IACE,OAAfiZ,EAAKE,YAAiC/B,IAAf6B,EAAKE,OAC9BH,EAAO1d,KAAKid,GAAcU,EAAKC,gBAEjCD,EAAOA,EAAKG,KACZpZ,IAEF,OAAOgZ,EAAOze,OAAS,EAAIye,EAAS,IACtC,CACA,OAAO,IACT,CAEA,SAASK,GACPlB,EACAM,EACAC,GAEA,MAAMY,EA1DR,SAAsBnB,GAEpB,OAAkB,IAAdA,EAAMnZ,KAA2B,KAAdmZ,EAAMnZ,KAA4B,KAAdmZ,EAAMnZ,KAA4B,KAAdmZ,EAAMnZ,IAC5D,WACS,IAAdmZ,EAAMnZ,IAAkB,QACV,IAAdmZ,EAAMnZ,KAA2B,IAAdmZ,EAAMnZ,IAAkB,OACxC,OACT,CAmDoBua,CAAapB,GAGzBqB,EAA4B,aAAdF,GAA0C,UAAdA,EAE1C/gB,EAA2B,CAC/BwG,KAAMmZ,GAAiBC,GACvB/d,KAAMkf,EACNtX,MAAOwX,EAAcjB,GAAcJ,EAAMsB,eAAiB,CAAA,EAC1DV,MAAOS,EAAcX,GAAaV,GAAS,KAC3C5O,IAAK4O,EAAM5O,IACXjP,SAAU,IAGZ,GAAIme,EAAQC,EAAU,CACpB,IAAIzL,EAAQkL,EAAMlL,MAClB,KAAOA,GAAO,CACZ,MAAMyM,EAAYL,GAAYpM,EAAOwL,EAAQ,EAAGC,GAC5CgB,IAEqB,SAAnBA,EAAUtf,MAAmBsf,EAAUpf,SAASC,OAAS,IAC3DhC,EAAK+B,SAASgB,KAAKoe,GAGvBzM,EAAQA,EAAM0M,OAChB,CACF,CAEA,OAAOphB,CACT,CAEM,SAAUqhB,GAAavlB,GAI3B,MAAMuL,EAAWvL,GAASuL,UAAY,QAChC8Y,EAAWrkB,GAASwlB,WAAa,EAEjCC,EAAShlB,SAAS4F,cAAckF,GACtC,IAAKka,EACH,MAAO,CAAEjY,MAAO,kCAAkCjC,KAGpD,MAAMuY,EAnIR,SAAyB9U,GACvB,MACM0W,EADO9kB,OAAOuG,KAAK6H,GACH2J,KACnBtR,GACCA,EAAEC,WAAW,kBACbD,EAAEC,WAAW,6BAEjB,OAAOoe,EAAY1W,EAAa0W,GAAY,IAC9C,CA2HgBC,CAAgBF,GAC9B,IAAK3B,EACH,MAAO,CACLtW,MAAO,oCAAoCjC,4BAK/C,IAAIqa,EAA4B9B,EAChC,KAAO8B,GAA2B,IAAhBA,EAAQjb,KAExBib,EAAUA,EAAQhN,MAEpB,IAAKgN,EACH,MAAO,CAAEpY,MAAO,8CAGlB,MAAMqY,EAAOb,GAAYY,EAAS,EAAGvB,GACrC,OAAKwB,GACI,CAAErY,MAAO,wCAGpB,CHzGAoU,GAAe7T,WAAa,CAC1BrD,KAAM,iBACNsD,YACE,oGACFC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CACVhC,SAAU,CACRxF,KAAM,SACNiI,YACE,iFAEJ0N,OAAQ,CACN3V,KAAM,SACNmI,KAAM,CAAC,MAAO,QACdF,YAAa,iCAEf6T,QAAS,CACP9b,KAAM,SACNiI,YAAa,gDAEf8T,MAAO,CACL/b,KAAM,SACNiI,YAAa,6DAEfoU,UAAW,CACTrc,KAAM,SACNiI,YAAa,iEAEfsU,WAAY,CACVvc,KAAM,SACNiI,YAAa,qECjDrBuU,GAAcxU,WAAa,CACzBrD,KAAM,gBACNsD,YACE,0HACFC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CACViV,KAAM,CACJzc,KAAM,SACNiI,YACE,+GAEJ0U,WAAY,CACV3c,KAAM,SACNiI,YAAa,4DAGjBG,SAAU,CAAC,UCzDfmV,GAASvV,WAAa,CACpBrD,KAAM,WACNsD,YAAa,qCACbC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CACV3I,IAAK,CACHmB,KAAM,SACNiI,YAAa,4BAGjBG,SAAU,CAAC,SAafoV,GAAOxV,WAAa,CAClBrD,KAAM,SACNsD,YAAa,oCACbC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CAAA,IAgBhBmW,GAAU3V,WAAa,CACrBrD,KAAM,YACNsD,YAAa,uCACbC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CAAA,IAahBqW,GAAO7V,WAAa,CAClBrD,KAAM,SACNsD,YAAa,2BACbC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CAAA,ICiGhBgY,GAAaxX,WAAa,CACxBrD,KAAM,eACNsD,YACE,iJACFC,WAAY,CACVlI,KAAM,SACNwH,WAAY,CACVhC,SAAU,CACRxF,KAAM,SACNiI,YACE,6DAEJwX,UAAW,CACTzf,KAAM,SACNiI,YAAa,sEC/IR8X,GAMX,WAAA/lB,CAAYgmB,GAJJ9lB,KAAA+lB,QAA+B,KAC/B/lB,KAAAgmB,OAAc,KACdhmB,KAAAimB,YAAmB,KAGzBjmB,KAAK8lB,OAAS,CACZI,WAAYJ,EAAOI,WACnBC,UAAWL,EAAOK,WAAa,GAC/BvhB,MAAOkhB,EAAOlhB,OAAS,GACvBwhB,WAAYN,EAAOM,YAAc,eACjCC,aAAcP,EAAOO,cAAgB,eACrCC,QAASR,EAAOQ,UAAW,EAC3Bnb,WAAY2a,EAAO3a,YAAc,SAErC,CAEA,WAAMob,IhBjBF,SAAgCC,EAAa,WACjD,MAAMC,GAAQvP,EAAEtQ,QAAeiD,qBAAkBqN,EAAlBrN,mBAAuB,CAAA,GACtD,GAAI4c,EAAMC,iBAAkB,OAE5BD,EAAM3c,YAAc,GAKpB2c,EAAMC,kBAAmB,EAEzB,MAAMC,EAAS,CAAC,MAAO,OAAQ,QAAS,QACxC,IAAK,MAAM5c,KAAS4c,EAAQ,CAC1B,MAAMC,EAAW5Q,QAAQjM,GAAO8c,KAAK7Q,SACrCA,QAAQjM,GAAS,IAAI+c,KACnB,MAAMld,EAAO6c,EAAM3c,YACnBF,EAAK5C,KAAK,CACR+C,QACAlE,QAASihB,EACN3U,IAAK2I,IACJ,IACE,MAAoB,iBAANA,EAAiBA,EAAImI,KAAKE,UAAUrI,EACpD,CAAE,MACA,OAAOsI,OAAOtI,EAChB,IAEDzI,KAAK,KACR1J,WAAW,IAAIC,MAAOC,gBAEpBe,EAAK3D,OAASugB,GAChB5c,EAAKmd,OAAO,EAAGnd,EAAK3D,OAASugB,GAE/BI,KAAYE,GAEhB,CACF,CgBhBIE,GAGA,MAAMrgB,EAAIC,OACV,GAAID,EAAEkD,oBAAoB8H,SAExB,OADAqE,QAAQC,KAAK,iEACNtP,EAAEkD,mBAAmBod,QAI1BjnB,KAAK8lB,OAAOQ,UACdtmB,KAAK+lB,QAAU,IAAIlmB,EACnBG,KAAK+lB,QAAQliB,UAAU,gBACvB7D,KAAK+lB,QAAQ/hB,QAAQ,CAAEkjB,OAAQ,mBAGjC,IAEE,MAAMC,EAAUnnB,KAAKonB,qBAGfC,EAAqB,CACzBnB,WAAYlmB,KAAK8lB,OAAOI,YAEtBlmB,KAAK8lB,OAAOK,YAAWkB,EAAclB,UAAYnmB,KAAK8lB,OAAOK,WAC7DnmB,KAAK8lB,OAAOlhB,QAAOyiB,EAAcziB,MAAQ5E,KAAK8lB,OAAOlhB,OAEzD5E,KAAKgmB,aAAemB,EAAQE,GAG5B,MAAMC,EAAS,CAACC,EAAS9c,KACvB,MAAM+c,EAAU1W,SAAUgW,KACxB9mB,KAAK+lB,SAASngB,OAAO,GAAG6E,KAAQzK,KAAKynB,cAAcX,MAAU,QAC7D,IACE,MAAMrZ,QAAe8Z,KAAMT,GAQ3B,OANErZ,GAA4B,iBAAXA,GAAuB,UAAWA,EAEnDzN,KAAK+lB,SAASngB,OAAO,GAAG6E,MAASgD,EAAOF,QAAS,SAEjDvN,KAAK+lB,SAASngB,OAAO,GAAG6E,UAAc,UAEjCgD,CACT,CAAE,MAAOiF,GAEP,MADA1S,KAAK+lB,SAASngB,OAAO,GAAG6E,MAASiI,EAAI7M,UAAW,SAC1C6M,CACR,GAMF,OAHI6U,EAAGzZ,aACJ0Z,EAAgB1Z,WAAayZ,EAAGzZ,YAE5B0Z,GAIHE,EAAe,CACnBhnB,GAAIV,KAAK8lB,OAAOM,WAChB3b,KAAMzK,KAAK8lB,OAAOO,aAClBvgB,KAAM,WACNiI,YACE,4HACF+X,OAAQ,CACN3a,WAAYnL,KAAK8lB,OAAO3a,YAG1Bwc,cAAeL,EAAO1f,EAAa,iBACnCggB,iBAAkBN,EAAO3d,EAAgB,oBACzCke,UAAWP,EAAOjc,EAAU,aAC5Byc,cAAeR,EAAO1b,EAAc,iBACpCmc,WAAYT,EAAOnb,EAAW,cAC9B6b,UAAWV,EAAOta,EAAU,aAC5Bib,oBAAqBX,EAAOja,EAAmB,uBAC/C6a,mBAAoBZ,EAAOzZ,EAAkB,sBAC7Csa,gBAAiBb,EAAO3F,GAAgB,mBACxCyG,eAAgBd,EAAOhF,GAAe,kBACtCe,SAAUiE,EAAOjE,GAAU,YAC3BgF,QAASf,EAAOhE,GAAQ,WACxBgF,WAAYhB,EAAO7D,GAAW,cAC9BE,OAAQ2D,EAAO3D,GAAQ,UACvB4E,eAAgBjB,EAAOhC,GAAc,mBAGvCtlB,KAAKimB,kBAAoBjmB,KAAKgmB,OAAOwC,gBAAgBd,GAGrD,MAAMvB,EAAYnmB,KAAKgmB,OAAOF,OAAOK,UAC/BsC,EAAgBzoB,KAAKimB,YAAYvlB,IAAMV,KAAK8lB,OAAOM,WAGnDsC,QAAqB1oB,KAAKgmB,OAAO2C,gBAGjCC,EAAa5oB,KAAK6oB,gBAAgBJ,GAEpCzoB,KAAK+lB,UACP/lB,KAAK+lB,QAAQliB,UAAU,aACvB7D,KAAK+lB,QAAQ/hB,QAAQ,CACnBkjB,OAAQ,YACR4B,OAAQ9oB,KAAK8lB,OAAOI,aAEtBlmB,KAAK+lB,QAAQrhB,cAAckkB,EAAYF,GACvC1oB,KAAK+lB,QAAQngB,OAAO,qBAAsB,WAG5CoQ,QAAQ+S,IAAI,iCAAiC/oB,KAAK8lB,OAAOI,cACzDlQ,QAAQ+S,IAAI,gCAAgCN,KAC5CzS,QAAQ+S,IAAI,iCAAiCH,KAC7C5S,QAAQ+S,IAAI,2BAA2BL,KACvC1S,QAAQ+S,IACN,sCAAsCH,8CAAuDF,MAI/F,MAAMzB,EAAwB,CAC5Bb,WAAYqC,EACZtC,YACAH,OAAQhmB,KAAKgmB,OACbgD,YAAaJ,EACbhkB,MAAO8jB,EACPniB,QAAS,IAAMvG,KAAKuG,WAQtB,OAJAI,EAAEkD,mBAAqBlD,EAAEkD,oBAAsB,CAAA,EAC/ClD,EAAEkD,mBAAmB8H,SAAW3R,KAChC2G,EAAEkD,mBAAmBod,QAAUA,EAExBA,CACT,CAAE,MAAOvU,GASP,MARAsD,QAAQzI,MAAM,oCAAqCmF,GAC/C1S,KAAK+lB,UACP/lB,KAAK+lB,QAAQliB,UAAU,SACvB7D,KAAK+lB,QAAQ/hB,QAAQ,CACnBkjB,OAAQ,QACR7S,MAAO3B,EAAI7M,SAAWud,OAAO1Q,MAG3BA,CACR,CACF,CAEA,aAAMnM,GACJ,IACMvG,KAAKimB,aAAejmB,KAAKgmB,cACrBhmB,KAAKgmB,OAAOiD,kBAAkBjpB,KAAKimB,YAAYvlB,GAEzD,CAAE,MAEF,CACAV,KAAK+lB,SAASxf,UACdvG,KAAK+lB,QAAU,KACf,MAAMpf,EAAIC,OACND,EAAEkD,4BACGlD,EAAEkD,mBAAmB8H,gBACrBhL,EAAEkD,mBAAmBod,QAEhC,CAEQ,eAAA4B,CAAgBK,GACtB,MAAMrO,EAAO7a,KAAK8lB,OAAOI,WAAW7W,QAAQ,OAAQ,IAE9C8Z,EAAWD,EAAUE,QAAQ,KACnC,IAAiB,IAAbD,EAAiB,CAGnB,MAAO,GAAGtO,KAFQqO,EAAUhR,UAAU,EAAGiR,eACzBD,EAAUhR,UAAUiR,EAAW,IAEjD,CACA,MAAO,GAAGtO,cAAiBqO,GAC7B,CAEQ,kBAAA9B,GAEN,MAAMD,EAAWkC,EAAiBC,gBAClC,GAAInC,EAAS,OAAOA,EACpB,MAAMxgB,EAAIC,OACV,GAAID,EAAE4iB,sBAAsBD,gBAC1B,OAAO3iB,EAAE4iB,qBAAqBD,gBAEhC,MAAM,IAAIjV,MACR,6KAGJ,CAEQ,aAAAoT,CAAcX,GACpB,OAAoB,IAAhBA,EAAK7gB,OAAqB,GACvB6gB,EACJ3U,IAAK2I,GACa,iBAANA,EAAuBA,EAAE7U,OAAS,GAAK6U,EAAEpV,MAAM,EAAG,IAAM,MAAQoV,EAC1D,iBAANA,GAAwB,OAANA,EAAmB,QACzCsI,OAAOtI,IAEfzI,KAAK,KACV,qCC5OKvB,eAA6BgV,GAElC,OADkB,IAAID,GAAcC,GACnBS,OACnB","x_google_ignoreList":[5,6,7,8,9,10,11,12,13,14]}