labellife-design-tool 2.2.0 → 2.2.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sources":["../../../src/model/node-model.js","../../../src/model/shape-model.js","../../../src/model/image-model.js","../../../src/model/text-model.js","../../../src/model/svg-model.js","../../../src/model/figure-model.js","../../../src/model/line-model.js","../../../src/model/group-model.js","../../../src/model/page-model.js","../../../src/model/history.js","../../../src/model/store.js"],"sourcesContent":["import { types, getParent, getRoot } from 'mobx-state-tree';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport const Node = types\n .model('Node', {\n id: types.optional(types.identifier, () => uuidv4()),\n type: types.optional(types.string, ''),\n name: types.optional(types.string, ''),\n opacity: types.optional(types.number, 1),\n custom: types.optional(types.frozen(), {}),\n visible: types.optional(types.boolean, true),\n selectable: types.optional(types.boolean, true),\n removable: types.optional(types.boolean, true),\n alwaysOnTop: types.optional(types.boolean, false),\n showInExport: types.optional(types.boolean, true),\n })\n .preProcessSnapshot((snapshot) => {\n if (!snapshot) return snapshot;\n const s = { ...snapshot };\n\n // Polotno uses 'locked' boolean → map to our interaction flags\n if (s.locked === true) {\n if (s.draggable === undefined) s.draggable = false;\n if (s.resizable === undefined) s.resizable = false;\n if (s.contentEditable === undefined) s.contentEditable = false;\n if (s.styleEditable === undefined) s.styleEditable = false;\n }\n delete s.locked;\n\n // Coerce opacity from string to number if needed\n if (typeof s.opacity === 'string') {\n s.opacity = parseFloat(s.opacity) || 1;\n }\n\n return s;\n })\n .views((self) => ({\n get locked() {\n return (\n !self.draggable &&\n !self.resizable &&\n !self.contentEditable &&\n !self.styleEditable\n );\n },\n get page() {\n try {\n let parent = getParent(self);\n // Walk up: element -> children array -> page\n if (parent && getParent(parent)) {\n return getParent(parent);\n }\n } catch (e) {\n // not attached yet\n }\n return undefined;\n },\n get store() {\n try {\n return getRoot(self);\n } catch (e) {\n return undefined;\n }\n },\n get top() {\n // For grouped elements, returns the top-level group. For ungrouped, returns self.\n try {\n let parent = getParent(self);\n if (parent) {\n let grandParent = getParent(parent);\n if (grandParent && grandParent.type === 'group') {\n return grandParent.top;\n }\n }\n } catch (e) {\n // not in a group\n }\n return self;\n },\n get parent() {\n try {\n const arr = getParent(self);\n if (arr) {\n return getParent(arr);\n }\n } catch (e) {\n // not attached\n }\n return undefined;\n },\n get zIndex() {\n try {\n const arr = getParent(self);\n if (arr) {\n return arr.indexOf(self);\n }\n } catch (e) {\n // not attached\n }\n return 0;\n },\n }))\n .actions((self) => ({\n toJSON() {\n const json = {};\n const snapshot = { ...self };\n for (const key of Object.keys(snapshot)) {\n if (key.startsWith('_')) continue;\n json[key] = snapshot[key];\n }\n return json;\n },\n }))\n .actions((self) => ({\n clone(attrs = {}, { skipSelect = false } = {}) {\n const json = self.toJSON();\n delete json.id;\n Object.assign(json, attrs);\n const page = self.page;\n if (page) {\n return page.addElement(json, { skipSelect });\n }\n return null;\n },\n set(attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (key in self && key !== 'id') {\n self[key] = value;\n }\n }\n },\n moveUp() {\n const page = self.page;\n if (page) {\n page.moveElementUp(self.id);\n }\n },\n moveTop() {\n const page = self.page;\n if (page) {\n page.moveElementTop(self.id);\n }\n },\n moveDown() {\n const page = self.page;\n if (page) {\n page.moveElementDown(self.id);\n }\n },\n moveBottom() {\n const page = self.page;\n if (page) {\n page.moveElementBottom(self.id);\n }\n },\n setZIndex(zIndex) {\n const page = self.page;\n if (page) {\n page.setElementZIndex(self.id, zIndex);\n }\n },\n beforeDestroy() {\n // cleanup hook\n },\n }));\n","import { types } from 'mobx-state-tree';\nimport { Node } from './node-model';\n\nconst Animation = types.model('Animation', {\n delay: types.optional(types.number, 0),\n duration: types.optional(types.number, 1),\n enabled: types.optional(types.boolean, false),\n type: types.optional(types.string, ''),\n name: types.optional(types.string, ''),\n data: types.optional(types.frozen(), {}),\n});\n\nconst ShapeFilter = types.model('ShapeFilter', {\n intensity: types.optional(types.number, 1),\n});\n\nexport const Shape = Node.named('Shape')\n .props({\n x: types.optional(types.number, 0),\n y: types.optional(types.number, 0),\n width: types.optional(types.number, 100),\n height: types.optional(types.number, 100),\n rotation: types.optional(types.number, 0),\n\n animations: types.optional(types.array(Animation), []),\n\n // Effects\n blurEnabled: types.optional(types.boolean, false),\n blurRadius: types.optional(types.number, 10),\n brightnessEnabled: types.optional(types.boolean, false),\n brightness: types.optional(types.number, 0),\n sepiaEnabled: types.optional(types.boolean, false),\n grayscaleEnabled: types.optional(types.boolean, false),\n warmEnabled: types.optional(types.boolean, false),\n coldEnabled: types.optional(types.boolean, false),\n filters: types.optional(types.map(ShapeFilter), {}),\n\n // Shadow\n shadowEnabled: types.optional(types.boolean, false),\n shadowBlur: types.optional(types.number, 5),\n shadowOffsetX: types.optional(types.number, 0),\n shadowOffsetY: types.optional(types.number, 0),\n shadowColor: types.optional(types.string, 'black'),\n shadowOpacity: types.optional(types.number, 1),\n\n // Interaction flags\n draggable: types.optional(types.boolean, true),\n resizable: types.optional(types.boolean, true),\n contentEditable: types.optional(types.boolean, true),\n styleEditable: types.optional(types.boolean, true),\n })\n .preProcessSnapshot((snapshot) => {\n if (!snapshot) return snapshot;\n const s = { ...snapshot };\n\n // Coerce numeric properties that may arrive as strings from templates\n const numericKeys = [\n 'x', 'y', 'width', 'height', 'rotation',\n 'blurRadius', 'brightness',\n 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'shadowOpacity',\n ];\n numericKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = parseFloat(s[key]) || 0;\n }\n });\n\n // Coerce boolean properties that may arrive as strings\n const boolKeys = [\n 'blurEnabled', 'brightnessEnabled', 'sepiaEnabled', 'grayscaleEnabled', 'warmEnabled', 'coldEnabled',\n 'shadowEnabled', 'draggable', 'resizable', 'contentEditable', 'styleEditable',\n ];\n boolKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = s[key] === 'true';\n }\n });\n\n return s;\n })\n .actions((self) => ({\n setAnimation(type, attrs) {\n const existing = self.animations.find((a) => a.type === type);\n if (existing) {\n Object.assign(existing, attrs);\n } else {\n self.animations.push({ type, ...attrs });\n }\n },\n setFilter(type, value) {\n self.filters.set(type, { intensity: value });\n },\n }));\n\nexport { Animation, ShapeFilter };\n","import { types } from 'mobx-state-tree';\nimport { Shape } from './shape-model';\n\nexport const ImageElement = Shape.named('ImageElement')\n .props({\n type: types.optional(types.string, 'image'),\n src: types.optional(types.string, ''),\n cropX: types.optional(types.number, 0),\n cropY: types.optional(types.number, 0),\n cropWidth: types.optional(types.number, 1),\n cropHeight: types.optional(types.number, 1),\n cornerRadius: types.optional(types.number, 0),\n flipX: types.optional(types.boolean, false),\n flipY: types.optional(types.boolean, false),\n clipSrc: types.optional(types.string, ''),\n borderColor: types.optional(types.string, ''),\n borderSize: types.optional(types.number, 0),\n keepRatio: types.optional(types.boolean, true),\n stretchEnabled: types.optional(types.boolean, false),\n })\n .preProcessSnapshot((snapshot) => {\n if (!snapshot) return snapshot;\n const s = { ...snapshot };\n const numericKeys = ['cropX', 'cropY', 'cropWidth', 'cropHeight', 'cornerRadius', 'borderSize'];\n numericKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = parseFloat(s[key]) || 0;\n }\n });\n const boolKeys = ['flipX', 'flipY', 'keepRatio', 'stretchEnabled'];\n boolKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = s[key] === 'true';\n }\n });\n return s;\n })\n .volatile(() => ({\n _cropModeEnabled: false,\n }))\n .actions((self) => ({\n toggleCropMode(flag) {\n self._cropModeEnabled = flag !== undefined ? flag : !self._cropModeEnabled;\n },\n }));\n","import { types } from 'mobx-state-tree';\nimport { Shape } from './shape-model';\n\nexport const TextElement = Shape.named('TextElement')\n .props({\n type: types.optional(types.string, 'text'),\n text: types.optional(types.string, ''),\n placeholder: types.optional(types.string, ''),\n fontSize: types.optional(types.number, 20),\n fontFamily: types.optional(types.string, 'Roboto'),\n fontStyle: types.optional(types.string, 'normal'),\n fontWeight: types.optional(types.union(types.string, types.number), 'normal'),\n textDecoration: types.optional(types.string, ''),\n textTransform: types.optional(types.string, ''),\n fill: types.optional(types.string, '#000000'),\n align: types.optional(types.string, 'center'),\n verticalAlign: types.optional(types.string, 'top'),\n strokeWidth: types.optional(types.number, 0),\n stroke: types.optional(types.string, ''),\n lineHeight: types.optional(types.union(types.number, types.string), 1.2),\n letterSpacing: types.optional(types.number, 0),\n\n // Text background\n backgroundEnabled: types.optional(types.boolean, false),\n backgroundColor: types.optional(types.string, '#ffffff'),\n backgroundOpacity: types.optional(types.number, 1),\n backgroundCornerRadius: types.optional(types.number, 0),\n backgroundPadding: types.optional(types.number, 0),\n\n // Curved text\n curveEnabled: types.optional(types.boolean, false),\n curvePower: types.optional(types.number, 0),\n })\n .preProcessSnapshot((snapshot) => {\n if (!snapshot) return snapshot;\n const s = { ...snapshot };\n\n // Normalize combined fontStyle that may include weight (e.g. \"italic bold\", \"bold\")\n if (s.fontStyle && typeof s.fontStyle === 'string') {\n const parts = s.fontStyle.trim().split(/\\s+/);\n const styleWords = [];\n const weightWords = [];\n const weightKeywords = ['bold', 'normal', 'lighter', 'bolder',\n '100','200','300','400','500','600','700','800','900'];\n parts.forEach((p) => {\n if (weightKeywords.includes(p)) {\n weightWords.push(p);\n } else {\n styleWords.push(p);\n }\n });\n if (weightWords.length > 0 && !s.fontWeight) {\n s.fontWeight = weightWords[0];\n } else if (weightWords.length > 0 && s.fontWeight === 'normal') {\n s.fontWeight = weightWords[0];\n }\n s.fontStyle = styleWords.length > 0 ? styleWords.join(' ') : 'normal';\n }\n\n // Coerce numeric fontWeight to string if needed\n if (typeof s.fontWeight === 'number') {\n s.fontWeight = String(s.fontWeight);\n }\n\n // Coerce text-specific numeric properties from strings\n const numericKeys = [\n 'fontSize', 'letterSpacing', 'strokeWidth',\n 'backgroundOpacity', 'backgroundCornerRadius', 'backgroundPadding',\n 'curvePower',\n ];\n numericKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = parseFloat(s[key]) || 0;\n }\n });\n\n // Coerce text-specific boolean properties\n const boolKeys = ['backgroundEnabled', 'curveEnabled'];\n boolKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = s[key] === 'true';\n }\n });\n\n return s;\n })\n .volatile(() => ({\n _editModeEnabled: false,\n }))\n .actions((self) => ({\n toggleEditMode(editing) {\n self._editModeEnabled =\n editing !== undefined ? editing : !self._editModeEnabled;\n },\n }));\n","import { types } from 'mobx-state-tree';\nimport { Shape } from './shape-model';\n\nexport const SVGElement = Shape.named('SVGElement')\n .props({\n type: types.optional(types.string, 'svg'),\n src: types.optional(types.string, ''),\n maskSrc: types.optional(types.string, ''),\n cropX: types.optional(types.number, 0),\n cropY: types.optional(types.number, 0),\n cropWidth: types.optional(types.number, 1),\n cropHeight: types.optional(types.number, 1),\n keepRatio: types.optional(types.boolean, true),\n stretchEnabled: types.optional(types.boolean, false),\n flipX: types.optional(types.boolean, false),\n flipY: types.optional(types.boolean, false),\n borderColor: types.optional(types.string, ''),\n borderSize: types.optional(types.number, 0),\n cornerRadius: types.optional(types.number, 0),\n colorsReplace: types.optional(types.map(types.string), {}),\n })\n .actions((self) => ({\n replaceColor(oldColor, newColor) {\n self.colorsReplace.set(oldColor, newColor);\n },\n }));\n","import { types } from 'mobx-state-tree';\nimport { Shape } from './shape-model';\n\nexport const FigureElement = Shape.named('FigureElement')\n .props({\n type: types.optional(types.string, 'figure'),\n subType: types.optional(types.string, 'rect'),\n fill: types.optional(types.string, '#BFBFBF'),\n dash: types.optional(types.array(types.number), []),\n strokeWidth: types.optional(types.number, 0),\n stroke: types.optional(types.string, ''),\n cornerRadius: types.optional(types.number, 0),\n pathData: types.optional(types.string, ''),\n })\n .preProcessSnapshot((snapshot) => {\n if (!snapshot) return snapshot;\n const s = { ...snapshot };\n const numericKeys = ['strokeWidth', 'cornerRadius'];\n numericKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = parseFloat(s[key]) || 0;\n }\n });\n return s;\n });\n","import { types } from 'mobx-state-tree';\nimport { Shape } from './shape-model';\n\nexport const LineElement = Shape.named('LineElement')\n .props({\n type: types.optional(types.string, 'line'),\n color: types.optional(types.string, '#000000'),\n dash: types.optional(types.array(types.number), []),\n startHead: types.optional(types.string, ''),\n endHead: types.optional(types.string, ''),\n });\n","import { types, getSnapshot } from 'mobx-state-tree';\nimport { ImageElement } from './image-model';\nimport { TextElement } from './text-model';\nimport { SVGElement } from './svg-model';\nimport { FigureElement } from './figure-model';\nimport { LineElement } from './line-model';\nimport { Node } from './node-model';\n\nexport const TYPES_MAP = {\n image: ImageElement,\n text: TextElement,\n svg: SVGElement,\n figure: FigureElement,\n line: LineElement,\n};\n\nconst ElementUnion = types.union(\n {\n dispatcher: (snapshot) => {\n if (!snapshot || !snapshot.type) return Node;\n const model = TYPES_MAP[snapshot.type];\n if (model) return model;\n // For group type or unknown types, use late-bound GroupElement or Node\n if (snapshot.type === 'group') return GroupElement;\n return Node;\n },\n },\n ImageElement,\n TextElement,\n SVGElement,\n FigureElement,\n LineElement,\n // GroupElement added below via late binding\n Node\n);\n\nexport const GroupElement = Node.named('GroupElement')\n .props({\n type: types.optional(types.string, 'group'),\n x: types.optional(types.number, 0),\n y: types.optional(types.number, 0),\n width: types.optional(types.number, 0),\n height: types.optional(types.number, 0),\n rotation: types.optional(types.number, 0),\n draggable: types.optional(types.boolean, true),\n resizable: types.optional(types.boolean, true),\n children: types.optional(types.array(types.late(() => ElementUnion)), []),\n })\n .preProcessSnapshot((snapshot) => {\n if (!snapshot) return snapshot;\n const s = { ...snapshot };\n\n // Polotno compat: groups without explicit width — compute bounds from children\n if (s.children && s.children.length > 0 && !(s.width > 0)) {\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n s.children.forEach((child) => {\n const cx = child.x || 0;\n const cy = child.y || 0;\n const cw = child.width || 0;\n const ch = child.height || 0;\n minX = Math.min(minX, cx);\n minY = Math.min(minY, cy);\n maxX = Math.max(maxX, cx + cw);\n maxY = Math.max(maxY, cy + ch);\n });\n if (minX !== Infinity) {\n s.x = minX;\n s.y = minY;\n s.width = maxX - minX;\n s.height = maxY - minY;\n s.children = s.children.map((child) => ({\n ...child,\n x: (child.x || 0) - minX,\n y: (child.y || 0) - minY,\n }));\n }\n }\n\n return s;\n })\n .actions((self) => ({\n toJSON() {\n const gx = self.x;\n const gy = self.y;\n return {\n id: self.id,\n type: self.type,\n name: self.name,\n opacity: self.opacity,\n visible: self.visible,\n selectable: self.selectable,\n removable: self.removable,\n alwaysOnTop: self.alwaysOnTop,\n showInExport: self.showInExport,\n children: self.children.map((child) => {\n const cj = child.toJSON ? child.toJSON() : getSnapshot(child);\n return { ...cj, x: (cj.x || 0) + gx, y: (cj.y || 0) + gy };\n }),\n };\n },\n }));\n\nexport const forEveryChild = (node, cb) => {\n cb(node);\n if (node.children) {\n node.children.forEach((child) => forEveryChild(child, cb));\n }\n};\n\nexport const createElement = (attrs) => {\n const type = attrs.type;\n const Model = TYPES_MAP[type];\n if (Model) {\n return Model.create(attrs);\n }\n if (type === 'group') {\n return GroupElement.create(attrs);\n }\n return Node.create(attrs);\n};\n\nexport { ElementUnion };\n","import { types, getParent, getRoot, getSnapshot, destroy } from 'mobx-state-tree';\nimport { v4 as uuidv4 } from 'uuid';\nimport { ImageElement } from './image-model';\nimport { TextElement } from './text-model';\nimport { SVGElement } from './svg-model';\nimport { FigureElement } from './figure-model';\nimport { LineElement } from './line-model';\nimport { GroupElement, ElementUnion, TYPES_MAP } from './group-model';\n\nexport const Page = types\n .model('Page', {\n id: types.optional(types.identifier, () => uuidv4()),\n children: types.optional(types.array(types.late(() => ElementUnion)), []),\n width: types.optional(types.union(types.number, types.literal('auto')), 'auto'),\n height: types.optional(types.union(types.number, types.literal('auto')), 'auto'),\n background: types.optional(types.string, ''),\n bleed: types.optional(types.number, 0),\n custom: types.optional(types.frozen(), {}),\n duration: types.optional(types.number, 5000),\n })\n .volatile(() => ({\n _exporting: false,\n _rendering: false,\n _forceMount: false,\n }))\n .views((self) => ({\n get store() {\n try {\n return getRoot(self);\n } catch (e) {\n return undefined;\n }\n },\n get computedWidth() {\n if (self.width !== 'auto') return self.width;\n const store = self.store;\n return store ? store.width : 500;\n },\n get computedHeight() {\n if (self.height !== 'auto') return self.height;\n const store = self.store;\n return store ? store.height : 500;\n },\n get startTime() {\n const store = self.store;\n if (!store) return 0;\n let time = 0;\n for (const page of store.pages) {\n if (page.id === self.id) return time;\n time += page.duration;\n }\n return time;\n },\n get _exportingOrRendering() {\n return self._exporting || self._rendering;\n },\n }))\n .actions((self) => ({\n toJSON() {\n return {\n id: self.id,\n children: self.children.map((child) => {\n if (child.toJSON) return child.toJSON();\n return getSnapshot(child);\n }),\n width: self.width,\n height: self.height,\n background: self.background,\n bleed: self.bleed,\n custom: self.custom,\n duration: self.duration,\n };\n },\n set(attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (key in self && key !== 'id') {\n self[key] = value;\n }\n }\n },\n select() {\n const store = self.store;\n if (store) {\n store.selectPage(self.id);\n }\n },\n clone(attrs = {}) {\n const json = self.toJSON();\n delete json.id;\n Object.assign(json, attrs);\n const store = self.store;\n if (store) {\n return store.addPage(json);\n }\n return null;\n },\n addElement(attrs, { skipSelect = false } = {}) {\n const type = attrs.type;\n const elementData = {\n id: uuidv4(),\n ...attrs,\n };\n\n self.children.push(elementData);\n const newElement = self.children[self.children.length - 1];\n\n if (!skipSelect) {\n const store = self.store;\n if (store) {\n store.selectElements([newElement.id]);\n }\n }\n\n return newElement;\n },\n\n // Z-ordering helpers\n _findChildIndex(id) {\n return self.children.findIndex((c) => c.id === id);\n },\n\n canMoveElementsUp(ids) {\n for (const id of ids) {\n const idx = self._findChildIndex(id);\n if (idx < self.children.length - 1) return true;\n }\n return false;\n },\n moveElementsUp(ids) {\n for (const id of ids) {\n self.moveElementUp(id);\n }\n },\n moveElementUp(id) {\n const idx = self._findChildIndex(id);\n if (idx >= 0 && idx < self.children.length - 1) {\n const snapshot = getSnapshot(self.children[idx]);\n self.children.splice(idx, 1);\n self.children.splice(idx + 1, 0, snapshot);\n }\n },\n\n canMoveElementsTop(ids) {\n for (const id of ids) {\n const idx = self._findChildIndex(id);\n if (idx < self.children.length - 1) return true;\n }\n return false;\n },\n moveElementsTop(ids) {\n for (const id of ids) {\n self.moveElementTop(id);\n }\n },\n moveElementTop(id) {\n const idx = self._findChildIndex(id);\n if (idx >= 0 && idx < self.children.length - 1) {\n const snapshot = getSnapshot(self.children[idx]);\n self.children.splice(idx, 1);\n self.children.push(snapshot);\n }\n },\n\n canMoveElementsDown(ids) {\n for (const id of ids) {\n const idx = self._findChildIndex(id);\n if (idx > 0) return true;\n }\n return false;\n },\n moveElementsDown(ids) {\n for (const id of ids) {\n self.moveElementDown(id);\n }\n },\n moveElementDown(id) {\n const idx = self._findChildIndex(id);\n if (idx > 0) {\n const snapshot = getSnapshot(self.children[idx]);\n self.children.splice(idx, 1);\n self.children.splice(idx - 1, 0, snapshot);\n }\n },\n\n canMoveElementsBottom(ids) {\n for (const id of ids) {\n const idx = self._findChildIndex(id);\n if (idx > 0) return true;\n }\n return false;\n },\n moveElementsBottom(ids) {\n for (const id of ids) {\n self.moveElementBottom(id);\n }\n },\n moveElementBottom(id) {\n const idx = self._findChildIndex(id);\n if (idx > 0) {\n const snapshot = getSnapshot(self.children[idx]);\n self.children.splice(idx, 1);\n self.children.splice(0, 0, snapshot);\n }\n },\n\n setElementZIndex(id, zIndex) {\n const idx = self._findChildIndex(id);\n if (idx >= 0 && zIndex >= 0 && zIndex < self.children.length) {\n const snapshot = getSnapshot(self.children[idx]);\n self.children.splice(idx, 1);\n self.children.splice(zIndex, 0, snapshot);\n }\n },\n\n setSize({ width, height, useMagic = false, softChange = false }) {\n if (width !== undefined) self.width = width;\n if (height !== undefined) self.height = height;\n },\n\n setZIndex(zIndex) {\n const store = self.store;\n if (store) {\n store.setPageZIndex(self.id, zIndex);\n }\n },\n\n _forEachElementUp(ids, callback) {\n for (let i = self.children.length - 1; i >= 0; i--) {\n const child = self.children[i];\n if (ids.includes(child.id)) {\n callback(child);\n }\n }\n },\n\n _forEachElementDown(ids, callback) {\n for (let i = 0; i < self.children.length; i++) {\n const child = self.children[i];\n if (ids.includes(child.id)) {\n callback(child);\n }\n }\n return false;\n },\n\n play() {\n // placeholder for animation support\n },\n }));\n","import { types, getSnapshot, applySnapshot, getRoot } from 'mobx-state-tree';\n\nexport const History = types\n .model('History', {\n history: types.optional(types.array(types.frozen()), []),\n undoIdx: types.optional(types.number, -1),\n targetPath: types.optional(types.string, ''),\n })\n .volatile(() => ({\n _isTransacting: false,\n _skipSave: false,\n _ignoring: false,\n }))\n .views((self) => ({\n get canUndo() {\n return self.undoIdx > 0;\n },\n get canRedo() {\n return self.undoIdx < self.history.length - 1;\n },\n }))\n .actions((self) => {\n let disposer = null;\n\n return {\n startTransaction() {\n self._isTransacting = true;\n },\n endTransaction(skipSave = false) {\n self._isTransacting = false;\n if (!skipSave) {\n self.addUndoState();\n }\n },\n ignore(func) {\n self._ignoring = true;\n try {\n func();\n } finally {\n self._ignoring = false;\n }\n },\n async transaction(func) {\n self.startTransaction();\n try {\n await func();\n } finally {\n self.endTransaction();\n }\n },\n addUndoState() {\n if (self._ignoring) return;\n try {\n const root = getRoot(self);\n const snapshot = getSnapshot(root);\n // Strip history (circular) and zoom-level properties (UI preference,\n // not content — should not be affected by undo/redo).\n const stateToSave = { ...snapshot };\n delete stateToSave.history;\n delete stateToSave.scale;\n delete stateToSave.scaleToFit;\n\n // Remove future states if we're in the middle of history\n if (self.undoIdx < self.history.length - 1) {\n self.history.splice(self.undoIdx + 1);\n }\n\n self.history.push(stateToSave);\n self.undoIdx = self.history.length - 1;\n\n // Limit history size to 100 entries\n if (self.history.length > 100) {\n self.history.splice(0, self.history.length - 100);\n self.undoIdx = self.history.length - 1;\n }\n } catch (e) {\n console.warn('History: failed to save state', e);\n }\n },\n _restoreState(state) {\n if (!state) return;\n self._ignoring = true;\n try {\n const root = getRoot(self);\n const currentHistory = getSnapshot(self);\n\n // Preserve zoom level across undo/redo — scale and scaleToFit are UI\n // preferences, not content, so they are excluded from history snapshots.\n const currentScale = root.scale;\n const currentScaleToFit = root.scaleToFit;\n\n // Apply the full snapshot (children may get reordered by MST reconciliation)\n applySnapshot(root, {\n ...state,\n history: currentHistory,\n scale: currentScale,\n scaleToFit: currentScaleToFit,\n });\n\n // Fix children order — MST's identifier-based reconciliation can\n // reorder arrays. Use getSnapshot→clear→push (same pattern as\n // page-model moveElementUp/Down) to enforce the saved order.\n if (state.pages) {\n state.pages.forEach((savedPage) => {\n const page = root.pages.find((p) => p.id === savedPage.id);\n if (!page || !savedPage.children || !savedPage.children.length) return;\n const targetIds = savedPage.children.map((c) => c.id);\n const currentIds = page.children.map((c) => c.id);\n // Only reorder if order actually differs\n if (targetIds.length === currentIds.length &&\n targetIds.every((id, i) => id === currentIds[i])) return;\n const snapById = {};\n page.children.forEach((c) => { snapById[c.id] = getSnapshot(c); });\n page.children.clear();\n targetIds.forEach((id) => {\n if (snapById[id]) page.children.push(snapById[id]);\n });\n });\n }\n } catch (e) {\n console.warn('History: failed to restore state', e);\n } finally {\n self._ignoring = false;\n }\n },\n undo() {\n if (!self.canUndo) return;\n self.undoIdx -= 1;\n self._restoreState(self.history[self.undoIdx]);\n },\n redo() {\n if (!self.canRedo) return;\n self.undoIdx += 1;\n self._restoreState(self.history[self.undoIdx]);\n },\n clear() {\n self.history.clear();\n self.undoIdx = -1;\n },\n afterCreate() {\n // Do NOT defer an addUndoState() here.\n //\n // The previous setTimeout(addUndoState, 0) fired asynchronously and\n // created a race condition with loadJSON:\n //\n // • If the timeout fired BEFORE loadJSON: the empty-store snapshot\n // was saved as history[0], then loadJSON's history.clear() removed\n // it and saved the correct template as the new history[0] — OK so\n // far, but then the timeout could also fire AFTER loadJSON and add\n // a stale duplicate as history[1], making undoIdx=1 instead of 0.\n //\n // • Either way, history[0] ended up being saved with whatever `scale`\n // was current at a moment we did not control (potentially a negative\n // value produced by the ResizeObserver when the container had\n // width=0), so the first undo restored that wrong scale and mirrored\n // the entire canvas.\n //\n // loadJSON (and store.clear) both call history.clear() + addUndoState()\n // explicitly, and now do so AFTER resetting scale=1, so they own the\n // \"initial state\" responsibility completely.\n },\n beforeDestroy() {\n if (disposer) {\n disposer();\n disposer = null;\n }\n },\n replaceState() {\n // Replace the current state in history (for non-undoable changes)\n if (self._ignoring) return;\n try {\n const root = getRoot(self);\n const snapshot = getSnapshot(root);\n const stateToSave = { ...snapshot };\n delete stateToSave.history;\n\n if (self.undoIdx >= 0 && self.undoIdx < self.history.length) {\n self.history[self.undoIdx] = stateToSave;\n }\n } catch (e) {\n console.warn('History: failed to replace state', e);\n }\n },\n requestAddState() {\n // Debounced version - just calls addUndoState\n self.addUndoState();\n },\n };\n });\n","import { types, getSnapshot, applySnapshot, destroy, onSnapshot } from 'mobx-state-tree';\nimport { v4 as uuidv4 } from 'uuid';\nimport { jsPDF } from 'jspdf';\nimport { Page } from './page-model';\nimport { History } from './history';\nimport { TYPES_MAP, forEveryChild } from './group-model';\n\n// Detect embedded base64 data URLs (data:...;base64,...).\n// These bloat exported JSON significantly (a single image can be 1MB+).\n// Regular http/https/blob URLs are preserved.\nconst isBase64DataUrl = (v) =>\n typeof v === 'string' && v.startsWith('data:') && v.includes(';base64,');\n\nconst stripBase64FromElement = (el) => {\n const out = { ...el };\n if (isBase64DataUrl(out.src)) out.src = '';\n if (isBase64DataUrl(out.clipSrc)) out.clipSrc = '';\n if (Array.isArray(out.children)) {\n out.children = out.children.map(stripBase64FromElement);\n }\n return out;\n};\n\nconst stripBase64FromExport = (data) => ({\n ...data,\n pages: (data.pages || []).map((page) => ({\n ...page,\n children: (page.children || []).map(stripBase64FromElement),\n })),\n});\n\nconst Font = types.model('Font', {\n fontFamily: types.string,\n url: types.optional(types.string, ''),\n styles: types.optional(types.frozen(), []),\n});\n\nconst Audio = types\n .model('Audio', {\n id: types.optional(types.identifier, () => uuidv4()),\n src: types.optional(types.string, ''),\n duration: types.optional(types.number, 0),\n startTime: types.optional(types.number, 0),\n endTime: types.optional(types.number, 0),\n volume: types.optional(types.number, 1),\n delay: types.optional(types.number, 0),\n custom: types.optional(types.frozen(), {}),\n })\n .actions((self) => ({\n toJSON() {\n return {\n id: self.id,\n src: self.src,\n duration: self.duration,\n startTime: self.startTime,\n endTime: self.endTime,\n volume: self.volume,\n delay: self.delay,\n custom: self.custom,\n };\n },\n set(attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (key in self && key !== 'id') {\n self[key] = value;\n }\n }\n },\n }));\n\nexport const Store = types\n .model('Store', {\n role: types.optional(types.string, 'design'),\n pages: types.optional(types.array(Page), []),\n fonts: types.optional(types.array(Font), []),\n audios: types.optional(types.array(Audio), []),\n width: types.optional(types.number, 500),\n height: types.optional(types.number, 500),\n scale: types.optional(types.number, 1),\n scaleToFit: types.optional(types.number, 1),\n unit: types.optional(types.string, 'px'),\n dpi: types.optional(types.number, 72),\n schemaVersion: types.optional(types.number, 1),\n bleedVisible: types.optional(types.boolean, false),\n rulesVisible: types.optional(types.boolean, false),\n distanceGuidesVisible: types.optional(types.boolean, false),\n openedSidePanel: types.optional(types.string, ''),\n previousOpenedSidePanel: types.optional(types.string, ''),\n custom: types.optional(types.frozen(), {}),\n tool: types.optional(types.string, 'selection'),\n selectedElementsIds: types.optional(types.array(types.string), []),\n history: types.optional(History, {}),\n _activePageId: types.optional(types.string, ''),\n _selectedPagesIds: types.optional(types.array(types.string), []),\n _elementsPixelRatio: types.optional(types.number, 1),\n })\n .volatile(() => ({\n _stageRef: null,\n _listeners: new Map(),\n _key: '',\n _showCredit: false,\n currentTime: 0,\n isPlaying: false,\n _toolbarPanel: null, // null | { type: 'effects'|'mask', elementId: string }\n _fontVersion: 0, // incremented after each font load to trigger canvas re-render\n _pendingInputFields: [], // elements awaiting user input after loadJSON\n }))\n .views((self) => ({\n get _idsMap() {\n const map = {};\n self.pages.forEach((page) => {\n page.children.forEach((child) => {\n forEveryChild(child, (el) => {\n map[el.id] = el;\n });\n });\n });\n return map;\n },\n get selectedElements() {\n const map = self._idsMap;\n return self.selectedElementsIds\n .map((id) => map[id])\n .filter(Boolean);\n },\n get selectedShapes() {\n return self.selectedElements;\n },\n get children() {\n return self.pages;\n },\n get activePage() {\n if (self._activePageId) {\n const page = self.pages.find((p) => p.id === self._activePageId);\n if (page) return page;\n }\n return self.pages.length > 0 ? self.pages[0] : undefined;\n },\n get selectedPages() {\n if (self._selectedPagesIds.length > 0) {\n return self._selectedPagesIds\n .map((id) => self.pages.find((p) => p.id === id))\n .filter(Boolean);\n }\n const active = self.activePage;\n return active ? [active] : [];\n },\n get duration() {\n let total = 0;\n self.pages.forEach((page) => {\n total += page.duration;\n });\n return total;\n },\n get inputFields() {\n const fields = [];\n self.pages.forEach((page) => {\n page.children.forEach((el) => {\n forEveryChild(el, (child) => {\n if (child.custom && child.custom.inputField) {\n fields.push(child);\n }\n });\n });\n });\n return fields;\n },\n get _hasCroppedImages() {\n for (const page of self.pages) {\n for (const child of page.children) {\n if (\n child.type === 'image' &&\n (child.cropX !== 0 ||\n child.cropY !== 0 ||\n child.cropWidth !== 1 ||\n child.cropHeight !== 1)\n ) {\n return true;\n }\n }\n }\n return false;\n },\n }))\n .actions((self) => ({\n find(callback) {\n for (const page of self.pages) {\n if (callback(page)) return page;\n for (const child of page.children) {\n if (callback(child)) return child;\n }\n }\n return undefined;\n },\n getElementById(id) {\n return self._idsMap[id];\n },\n }))\n .actions((self) => ({\n requestInputFields() {\n const fields = self.inputFields;\n self._pendingInputFields = fields;\n return fields;\n },\n _resolveInputField(id) {\n self._pendingInputFields = self._pendingInputFields.filter(\n (el) => el.id !== id\n );\n },\n clearPendingInputFields() {\n self._pendingInputFields = [];\n },\n }))\n .actions((self) => ({\n afterCreate() {\n // set initial active page\n if (self.pages.length > 0 && !self._activePageId) {\n self._activePageId = self.pages[0].id;\n }\n },\n set(attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (key in self && !key.startsWith('_')) {\n self[key] = value;\n }\n }\n },\n setUnit({ unit, dpi }) {\n if (unit !== undefined) self.unit = unit;\n if (dpi !== undefined) self.dpi = dpi;\n },\n setRole(role) {\n self.role = role;\n },\n setTool(tool) {\n self.tool = tool;\n },\n setToolOptions(options) {\n // placeholder for tool options\n },\n addPage(attrs = {}) {\n const pageData = {\n id: uuidv4(),\n ...attrs,\n };\n self.pages.push(pageData);\n const newPage = self.pages[self.pages.length - 1];\n self._activePageId = newPage.id;\n return newPage;\n },\n selectPage(id) {\n self._activePageId = id;\n self._selectedPagesIds.clear();\n },\n selectPages(ids) {\n self._selectedPagesIds.replace(ids);\n if (ids.length > 0) {\n self._activePageId = ids[0];\n }\n },\n selectElements(ids) {\n self.selectedElementsIds.replace(ids);\n // Close toolbar panel if the selected element changes\n if (self._toolbarPanel) {\n const stillSelected = ids.includes(self._toolbarPanel.elementId);\n if (!stillSelected) {\n self._toolbarPanel = null;\n }\n }\n },\n toggleBleed(bleedVisible) {\n self.bleedVisible =\n bleedVisible !== undefined ? bleedVisible : !self.bleedVisible;\n },\n toggleRulers(rulesVisible) {\n self.rulesVisible =\n rulesVisible !== undefined ? rulesVisible : !self.rulesVisible;\n },\n toggleDistanceGuides(distanceGuidesVisible) {\n self.distanceGuidesVisible =\n distanceGuidesVisible !== undefined\n ? distanceGuidesVisible\n : !self.distanceGuidesVisible;\n },\n openSidePanel(panelName) {\n self.previousOpenedSidePanel = self.openedSidePanel;\n self.openedSidePanel = panelName;\n },\n openToolbarPanel(type) {\n const el = self.selectedElements.length === 1 ? self.selectedElements[0] : null;\n if (el) {\n self._toolbarPanel = { type, elementId: el.id };\n }\n },\n closeToolbarPanel() {\n self._toolbarPanel = null;\n },\n setScale(scale) {\n self.scale = scale;\n },\n _setScaleToFit(scale) {\n self.scaleToFit = scale;\n },\n setElementsPixelRatio(ratio) {\n self._elementsPixelRatio = ratio;\n },\n setSize(width, height, useMagic = false) {\n if (width !== undefined) self.width = width;\n if (height !== undefined) self.height = height;\n },\n setPageZIndex(id, zIndex) {\n const idx = self.pages.findIndex((p) => p.id === id);\n if (idx >= 0 && zIndex >= 0 && zIndex < self.pages.length) {\n const snapshot = getSnapshot(self.pages[idx]);\n self.pages.splice(idx, 1);\n self.pages.splice(zIndex, 0, snapshot);\n }\n },\n deletePages(ids) {\n const toRemove = self.pages.filter((p) => ids.includes(p.id));\n toRemove.forEach((page) => {\n destroy(page);\n });\n // ensure at least one page exists\n if (self.pages.length === 0) {\n self.addPage();\n }\n // fix active page if deleted\n if (!self.pages.find((p) => p.id === self._activePageId)) {\n self._activePageId = self.pages[0].id;\n }\n },\n groupElements(ids, attrs = {}) {\n const page = self.activePage;\n if (!page) return null;\n\n const elements = ids\n .map((id) => {\n const idx = page.children.findIndex((c) => c.id === id);\n if (idx >= 0) return { idx, snapshot: getSnapshot(page.children[idx]) };\n return null;\n })\n .filter(Boolean);\n\n if (elements.length < 2) return null;\n\n // Calculate group bounds\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n elements.forEach(({ snapshot }) => {\n minX = Math.min(minX, snapshot.x || 0);\n minY = Math.min(minY, snapshot.y || 0);\n maxX = Math.max(maxX, (snapshot.x || 0) + (snapshot.width || 0));\n maxY = Math.max(maxY, (snapshot.y || 0) + (snapshot.height || 0));\n });\n\n // Remove original elements (in reverse order to preserve indices)\n const sortedIndices = elements.map((e) => e.idx).sort((a, b) => b - a);\n sortedIndices.forEach((idx) => {\n page.children.splice(idx, 1);\n });\n\n // Adjust children positions relative to group\n const groupChildren = elements.map(({ snapshot }) => ({\n ...snapshot,\n id: undefined, // will get new id\n x: (snapshot.x || 0) - minX,\n y: (snapshot.y || 0) - minY,\n }));\n\n const group = page.addElement({\n type: 'group',\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n children: groupChildren,\n ...attrs,\n });\n\n return group;\n },\n ungroupElements(ids) {\n const page = self.activePage;\n if (!page) return;\n\n const newChildIds = [];\n\n ids.forEach((id) => {\n const idx = page.children.findIndex((c) => c.id === id);\n if (idx < 0) return;\n const group = page.children[idx];\n if (group.type !== 'group') return;\n\n const groupSnapshot = getSnapshot(group);\n const groupX = groupSnapshot.x || 0;\n const groupY = groupSnapshot.y || 0;\n\n // Remove group\n page.children.splice(idx, 1);\n\n // Re-add children at group's position\n (groupSnapshot.children || []).forEach((childSnapshot) => {\n const newEl = page.addElement(\n {\n ...childSnapshot,\n id: undefined,\n x: (childSnapshot.x || 0) + groupX,\n y: (childSnapshot.y || 0) + groupY,\n },\n { skipSelect: true }\n );\n if (newEl) newChildIds.push(newEl.id);\n });\n });\n\n // Select the ungrouped children\n if (newChildIds.length > 0) {\n self.selectElements(newChildIds);\n }\n },\n deleteElements(ids) {\n self.pages.forEach((page) => {\n const toRemove = page.children.filter((c) => ids.includes(c.id));\n toRemove.forEach((el) => {\n destroy(el);\n });\n });\n // Remove from selection\n self.selectedElementsIds.replace(\n self.selectedElementsIds.filter((id) => !ids.includes(id))\n );\n },\n on(event, callback) {\n if (!self._listeners.has(event)) {\n self._listeners.set(event, []);\n }\n self._listeners.get(event).push(callback);\n\n // Return disposer\n return () => {\n const listeners = self._listeners.get(event);\n if (listeners) {\n const idx = listeners.indexOf(callback);\n if (idx >= 0) listeners.splice(idx, 1);\n }\n };\n },\n _emit(event, data) {\n const listeners = self._listeners.get(event);\n if (listeners) {\n listeners.forEach((cb) => cb(data));\n }\n },\n _setStageRef(ref) {\n self._stageRef = ref;\n },\n\n async _toCanvas({\n pixelRatio = 1,\n ignoreBackground = false,\n pageId,\n mimeType = 'image/png',\n includeBleed = false,\n _skipTimeout = false,\n quickMode = false,\n } = {}) {\n const stage = self._stageRef;\n if (!stage) {\n throw new Error('Stage ref not set. Make sure <Workspace> is mounted.');\n }\n\n const page = pageId\n ? self.pages.find((p) => p.id === pageId)\n : self.activePage;\n if (!page) {\n throw new Error('No page found for export.');\n }\n\n // The workspace renders content in a Layer with offset/scale for centering.\n // For export we temporarily reset the layer transform to capture just the\n // design at its native resolution.\n const layer = stage.getLayers()[0];\n if (!layer) {\n throw new Error('No layer found in stage for export.');\n }\n\n const prevX = layer.x();\n const prevY = layer.y();\n const prevScaleX = layer.scaleX();\n const prevScaleY = layer.scaleY();\n\n layer.x(0);\n layer.y(0);\n layer.scaleX(1);\n layer.scaleY(1);\n layer.draw();\n\n const canvas = layer.toCanvas({\n pixelRatio,\n x: 0,\n y: 0,\n width: self.width,\n height: self.height,\n });\n\n // Restore\n layer.x(prevX);\n layer.y(prevY);\n layer.scaleX(prevScaleX);\n layer.scaleY(prevScaleY);\n layer.draw();\n\n return canvas;\n },\n\n async toDataURL({\n mimeType = 'image/png',\n quality = 1,\n dpi,\n dpiMetadata,\n ...rest\n } = {}) {\n const canvas = await self._toCanvas({ mimeType, ...rest });\n return canvas.toDataURL(mimeType, quality);\n },\n\n async toBlob({ mimeType = 'image/png', quality = 1, ...rest } = {}) {\n const canvas = await self._toCanvas({ mimeType, ...rest });\n return new Promise((resolve, reject) => {\n canvas.toBlob(\n (blob) => {\n if (blob) {\n resolve(blob);\n } else {\n reject(new Error('Failed to create blob'));\n }\n },\n mimeType,\n quality\n );\n });\n },\n\n async saveAsImage({ fileName = 'design.png', ...exportProps } = {}) {\n const dataURL = await self.toDataURL(exportProps);\n const link = document.createElement('a');\n link.download = fileName;\n link.href = dataURL;\n link.click();\n },\n\n async toPDFDataURL({\n pixelRatio = 2,\n pageId,\n dpi = 300,\n includeBleed = false,\n } = {}) {\n const pages = pageId\n ? [self.pages.find((p) => p.id === pageId)].filter(Boolean)\n : [...self.pages];\n\n if (pages.length === 0) {\n throw new Error('No pages found for PDF export.');\n }\n\n const widthPt = (self.width / 96) * 72;\n const heightPt = (self.height / 96) * 72;\n\n const orientation = widthPt > heightPt ? 'landscape' : 'portrait';\n const pdf = new jsPDF({\n orientation,\n unit: 'pt',\n format: [widthPt, heightPt],\n compress: true,\n });\n\n const prevActivePageId = self._activePageId;\n\n for (let i = 0; i < pages.length; i++) {\n if (i > 0) {\n pdf.addPage([widthPt, heightPt], orientation);\n }\n\n self._activePageId = pages[i].id;\n\n await new Promise((r) => setTimeout(r, 50));\n\n const canvas = await self._toCanvas({\n pixelRatio,\n pageId: pages[i].id,\n mimeType: 'image/jpeg',\n includeBleed,\n });\n\n const imgData = canvas.toDataURL('image/jpeg', 0.95);\n pdf.addImage(imgData, 'JPEG', 0, 0, widthPt, heightPt, undefined, 'FAST');\n }\n\n self._activePageId = prevActivePageId;\n\n return pdf.output('datauristring');\n },\n\n async saveAsPDF({ fileName = 'design.pdf', ...exportProps } = {}) {\n const dataURL = await self.toPDFDataURL(exportProps);\n const link = document.createElement('a');\n link.download = fileName;\n link.href = dataURL;\n link.click();\n },\n\n saveAsJSON({ fileName = 'design.json', stripBase64 = true } = {}) {\n const data = stripBase64 ? stripBase64FromExport(self.toJSON()) : self.toJSON();\n const json = JSON.stringify(data, null, 2);\n const blob = new Blob([json], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.download = fileName;\n link.href = url;\n link.click();\n URL.revokeObjectURL(url);\n },\n\n async waitLoading({ _skipTimeout = false } = {}) {\n // Wait for all images to load\n return new Promise((resolve) => {\n setTimeout(resolve, _skipTimeout ? 0 : 100);\n });\n },\n\n toJSON() {\n return {\n width: self.width,\n height: self.height,\n fonts: self.fonts.map((f) => getSnapshot(f)),\n pages: self.pages.map((p) => p.toJSON()),\n audios: self.audios.map((a) => a.toJSON()),\n unit: self.unit,\n dpi: self.dpi,\n custom: self.custom,\n schemaVersion: self.schemaVersion,\n };\n },\n\n loadJSON(json, keepHistory = false) {\n if (!json) return;\n\n const data = typeof json === 'string' ? JSON.parse(json) : json;\n\n self.history.ignore(() => {\n if (data.width !== undefined) self.width = data.width;\n if (data.height !== undefined) self.height = data.height;\n if (data.unit !== undefined) self.unit = data.unit;\n if (data.dpi !== undefined) self.dpi = data.dpi;\n if (data.custom !== undefined) self.custom = data.custom;\n if (data.schemaVersion !== undefined) self.schemaVersion = data.schemaVersion;\n\n // Load fonts\n if (data.fonts) {\n self.fonts.clear();\n data.fonts.forEach((font) => {\n self.fonts.push(font);\n });\n }\n\n // Load audios\n if (data.audios) {\n self.audios.clear();\n data.audios.forEach((audio) => {\n self.audios.push(audio);\n });\n }\n\n // Load pages\n if (data.pages) {\n self.pages.clear();\n data.pages.forEach((pageData) => {\n self.pages.push(pageData);\n });\n }\n\n // Set active page\n if (self.pages.length > 0) {\n self._activePageId = self.pages[0].id;\n }\n\n // Clear selection\n self.selectedElementsIds.clear();\n });\n\n // Reset scale before saving the initial undo state so that history[0]\n // always records scale=1 (the intended post-load baseline). Without this,\n // history[0] would capture whatever scale was active before loadJSON ran\n // (e.g. the auto-fit of a previous template or a zero-width-container\n // negative value), and the first undo would restore that wrong scale —\n // which, when negative, mirrors the entire canvas.\n self.scale = 1;\n\n if (!keepHistory) {\n self.history.clear();\n self.history.addUndoState();\n }\n\n // Auto-load fonts referenced in text elements\n self._autoLoadFonts(data);\n\n // Auto-populate pending input fields so the dialog triggers\n self.requestInputFields();\n },\n\n clear({ keepHistory = false } = {}) {\n self.pages.clear();\n self.fonts.clear();\n self.audios.clear();\n self.selectedElementsIds.clear();\n self._activePageId = '';\n self.width = 500;\n self.height = 500;\n self.custom = {};\n\n self.addPage();\n\n if (!keepHistory) {\n self.history.clear();\n self.history.addUndoState();\n }\n },\n\n addFont(font) {\n const existing = self.fonts.find((f) => f.fontFamily === font.fontFamily);\n if (!existing) {\n self.fonts.push(font);\n }\n },\n\n removeFont(fontFamily) {\n const idx = self.fonts.findIndex((f) => f.fontFamily === fontFamily);\n if (idx >= 0) {\n self.fonts.splice(idx, 1);\n }\n },\n\n addAudio(data) {\n self.audios.push({ id: uuidv4(), ...data });\n },\n\n removeAudio(audioId) {\n const idx = self.audios.findIndex((a) => a.id === audioId);\n if (idx >= 0) {\n self.audios.splice(idx, 1);\n }\n },\n\n async loadFont(fontFamily, text = '') {\n // Load font via Google Fonts CSS API\n const id = `google-font-${fontFamily.replace(/\\s+/g, '-').toLowerCase()}`;\n\n try {\n if (!document.getElementById(id)) {\n const link = document.createElement('link');\n link.id = id;\n link.href = `https://fonts.googleapis.com/css2?family=${encodeURIComponent(\n fontFamily\n )}:wght@100;200;300;400;500;600;700;800;900&display=swap`;\n link.rel = 'stylesheet';\n\n // Wait for the CSS stylesheet to load so @font-face rules are parsed\n await new Promise((resolve) => {\n link.onload = resolve;\n link.onerror = resolve; // don't block on network errors\n document.head.appendChild(link);\n });\n }\n\n // Now the browser knows about the @font-face, load the actual font files\n await document.fonts.load(`16px \"${fontFamily}\"`);\n await document.fonts.load(`bold 16px \"${fontFamily}\"`);\n await document.fonts.ready;\n\n // Bump version so MobX observers re-render with the real font\n self._fontVersion += 1;\n // Force Konva to redraw all text nodes with the newly loaded font\n if (self._stageRef) {\n self._stageRef.batchDraw();\n }\n } catch (e) {\n console.warn(`Failed to load font: ${fontFamily}`, e);\n }\n },\n\n _autoLoadFonts(data) {\n // Collect all unique fontFamily values from text elements across all pages\n const fonts = new Set();\n const collectFromChildren = (children) => {\n if (!Array.isArray(children)) return;\n children.forEach((el) => {\n if (el.type === 'text' && el.fontFamily) {\n fonts.add(el.fontFamily);\n }\n if (el.children) {\n collectFromChildren(el.children);\n }\n });\n };\n\n if (data.pages) {\n data.pages.forEach((page) => {\n collectFromChildren(page.children);\n });\n }\n\n // Also load fonts from the fonts array in the JSON\n if (data.fonts) {\n data.fonts.forEach((f) => {\n if (f.fontFamily) fonts.add(f.fontFamily);\n });\n }\n\n // Load each unique font\n fonts.forEach((fontFamily) => {\n self.loadFont(fontFamily);\n });\n },\n\n validate(json) {\n const errors = [];\n if (!json) {\n errors.push({ path: '', message: 'JSON is empty' });\n return errors;\n }\n if (typeof json.width !== 'number') {\n errors.push({ path: 'width', message: 'width must be a number' });\n }\n if (typeof json.height !== 'number') {\n errors.push({ path: 'height', message: 'height must be a number' });\n }\n if (!Array.isArray(json.pages)) {\n errors.push({ path: 'pages', message: 'pages must be an array' });\n }\n return errors;\n },\n\n checkActivePage() {\n if (self.pages.length > 0 && !self.activePage) {\n self._activePageId = self.pages[0].id;\n }\n },\n\n setCurrentTime(time) {\n self.currentTime = time;\n },\n\n _togglePlaying(playing = true) {\n self.isPlaying = playing;\n },\n\n play() {\n self._togglePlaying(true);\n },\n\n stop() {\n self._togglePlaying(false);\n },\n\n seek() {\n // placeholder\n },\n _initConfig(key, showCredit) {\n self._key = key;\n self._showCredit = showCredit;\n },\n }));\n\nexport function createStore({ key = '', showCredit = false } = {}) {\n const store = Store.create({});\n store._initConfig(key, showCredit);\n return store;\n}\n\nexport default createStore;\n"],"names":["Node","types","model","id","optional","identifier","uuidv4","type","string","name","opacity","number","custom","frozen","visible","selectable","removable","alwaysOnTop","showInExport","preProcessSnapshot","snapshot","s","_objectSpread","locked","draggable","undefined","resizable","contentEditable","styleEditable","parseFloat","views","self","page","parent","getParent","e","store","getRoot","top","grandParent","arr","zIndex","indexOf","actions","toJSON","json","_i","_Object$keys","Object","keys","length","key","startsWith","clone","attrs","arguments","_ref","_ref$skipSelect","skipSelect","assign","addElement","set","_i2","_Object$entries","entries","_Object$entries$_i","_slicedToArray","value","moveUp","moveElementUp","moveTop","moveElementTop","moveDown","moveElementDown","moveBottom","moveElementBottom","setZIndex","setElementZIndex","beforeDestroy","Animation","delay","duration","enabled","data","ShapeFilter","intensity","Shape","named","props","x","y","width","height","rotation","animations","array","blurEnabled","blurRadius","brightnessEnabled","brightness","sepiaEnabled","grayscaleEnabled","warmEnabled","coldEnabled","filters","map","shadowEnabled","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","shadowOpacity","numericKeys","forEach","boolKeys","setAnimation","existing","find","a","push","setFilter","ImageElement","src","cropX","cropY","cropWidth","cropHeight","cornerRadius","flipX","flipY","clipSrc","borderColor","borderSize","keepRatio","stretchEnabled","_cropModeEnabled","toggleCropMode","flag","TextElement","text","placeholder","fontSize","fontFamily","fontStyle","fontWeight","union","textDecoration","textTransform","fill","align","verticalAlign","strokeWidth","stroke","lineHeight","letterSpacing","backgroundEnabled","backgroundColor","backgroundOpacity","backgroundCornerRadius","backgroundPadding","curveEnabled","curvePower","parts","trim","split","styleWords","weightWords","weightKeywords","p","includes","join","String","_editModeEnabled","toggleEditMode","editing","SVGElement","maskSrc","colorsReplace","replaceColor","oldColor","newColor","FigureElement","subType","dash","pathData","LineElement","color","startHead","endHead","TYPES_MAP","image","svg","figure","line","ElementUnion","dispatcher","GroupElement","children","late","minX","Infinity","minY","maxX","maxY","child","cx","cy","cw","ch","Math","min","max","gx","gy","cj","getSnapshot","forEveryChild","node","cb","Page","literal","background","bleed","_exporting","_rendering","_forceMount","computedWidth","computedHeight","startTime","time","_iterator","_createForOfIteratorHelper","pages","_step","n","done","err","f","_exportingOrRendering","select","selectPage","addPage","elementData","newElement","selectElements","_findChildIndex","findIndex","c","canMoveElementsUp","ids","_iterator2","_step2","idx","moveElementsUp","_iterator3","_step3","splice","canMoveElementsTop","_iterator4","_step4","moveElementsTop","_iterator5","_step5","canMoveElementsDown","_iterator6","_step6","moveElementsDown","_iterator7","_step7","canMoveElementsBottom","_iterator8","_step8","moveElementsBottom","_iterator9","_step9","setSize","_ref2","useMagic","softChange","setPageZIndex","_forEachElementUp","callback","i","_forEachElementDown","play","History","history","undoIdx","targetPath","_isTransacting","_skipSave","_ignoring","canUndo","canRedo","startTransaction","endTransaction","skipSave","addUndoState","ignore","func","transaction","_asyncToGenerator","_regenerator","m","_callee","w","_context","root","stateToSave","scale","scaleToFit","console","warn","_restoreState","state","currentHistory","currentScale","currentScaleToFit","applySnapshot","savedPage","targetIds","currentIds","every","snapById","clear","undo","redo","afterCreate","replaceState","requestAddState","isBase64DataUrl","v","stripBase64FromElement","el","out","Array","isArray","stripBase64FromExport","Font","url","styles","Audio","endTime","volume","Store","role","fonts","audios","unit","dpi","schemaVersion","bleedVisible","rulesVisible","distanceGuidesVisible","openedSidePanel","previousOpenedSidePanel","tool","selectedElementsIds","_activePageId","_selectedPagesIds","_elementsPixelRatio","_stageRef","_listeners","Map","_key","_showCredit","currentTime","isPlaying","_toolbarPanel","_fontVersion","_pendingInputFields","_idsMap","selectedElements","filter","Boolean","selectedShapes","activePage","selectedPages","active","total","inputFields","fields","inputField","_hasCroppedImages","getElementById","requestInputFields","_resolveInputField","clearPendingInputFields","_Object$entries2","_Object$entries2$_i","setUnit","setRole","setTool","setToolOptions","options","pageData","newPage","selectPages","replace","stillSelected","elementId","toggleBleed","toggleRulers","toggleDistanceGuides","openSidePanel","panelName","openToolbarPanel","closeToolbarPanel","setScale","_setScaleToFit","setElementsPixelRatio","ratio","deletePages","toRemove","destroy","groupElements","elements","sortedIndices","sort","b","groupChildren","_ref3","group","ungroupElements","newChildIds","groupSnapshot","groupX","groupY","childSnapshot","newEl","deleteElements","on","event","has","get","listeners","_emit","_setStageRef","ref","_toCanvas","_arguments","_ref4","_ref4$pixelRatio","pixelRatio","pageId","stage","layer","prevX","prevY","prevScaleX","prevScaleY","canvas","ignoreBackground","mimeType","includeBleed","_skipTimeout","quickMode","Error","getLayers","scaleX","scaleY","draw","toCanvas","toDataURL","_arguments2","_callee2","_ref5","_ref5$mimeType","_ref5$quality","quality","rest","_context2","dpiMetadata","_objectWithoutProperties","_excluded","toBlob","_arguments3","_callee3","_ref6","_ref6$mimeType","_ref6$quality","_context3","_excluded2","Promise","resolve","reject","blob","saveAsImage","_arguments4","_callee4","_ref7","_ref7$fileName","fileName","exportProps","dataURL","link","_context4","_excluded3","document","createElement","download","href","click","toPDFDataURL","_arguments5","_callee5","_ref8","_ref8$pixelRatio","_ref8$includeBleed","widthPt","heightPt","orientation","pdf","prevActivePageId","imgData","_context5","_toConsumableArray","jsPDF","format","compress","r","setTimeout","addImage","output","saveAsPDF","_arguments6","_callee6","_ref9","_ref9$fileName","_context6","_excluded4","saveAsJSON","_ref0","_ref0$fileName","_ref0$stripBase","stripBase64","JSON","stringify","Blob","URL","createObjectURL","revokeObjectURL","waitLoading","_arguments7","_callee7","_ref1","_ref1$_skipTimeout","_context7","loadJSON","keepHistory","parse","font","audio","_autoLoadFonts","_ref10","_ref10$keepHistory","addFont","removeFont","addAudio","removeAudio","audioId","loadFont","_callee8","_t","_context8","concat","toLowerCase","encodeURIComponent","rel","onload","onerror","head","appendChild","load","ready","batchDraw","Set","collectFromChildren","add","validate","errors","path","message","checkActivePage","setCurrentTime","_togglePlaying","playing","stop","seek","_initConfig","showCredit","createStore","_ref11","_ref11$key","_ref11$showCredit","create"],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sources":["../../../src/model/node-model.js","../../../src/model/shape-model.js","../../../src/model/image-model.js","../../../src/model/text-model.js","../../../src/model/svg-model.js","../../../src/model/figure-model.js","../../../src/model/line-model.js","../../../src/model/group-model.js","../../../src/model/page-model.js","../../../src/model/history.js","../../../src/model/store.js"],"sourcesContent":["import { types, getParent, getRoot } from 'mobx-state-tree';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport const Node = types\n .model('Node', {\n id: types.optional(types.identifier, () => uuidv4()),\n type: types.optional(types.string, ''),\n name: types.optional(types.string, ''),\n opacity: types.optional(types.number, 1),\n custom: types.optional(types.frozen(), {}),\n visible: types.optional(types.boolean, true),\n selectable: types.optional(types.boolean, true),\n removable: types.optional(types.boolean, true),\n alwaysOnTop: types.optional(types.boolean, false),\n showInExport: types.optional(types.boolean, true),\n })\n .preProcessSnapshot((snapshot) => {\n if (!snapshot) return snapshot;\n const s = { ...snapshot };\n\n // Polotno uses 'locked' boolean → map to our interaction flags\n if (s.locked === true) {\n if (s.draggable === undefined) s.draggable = false;\n if (s.resizable === undefined) s.resizable = false;\n if (s.contentEditable === undefined) s.contentEditable = false;\n if (s.styleEditable === undefined) s.styleEditable = false;\n }\n delete s.locked;\n\n // Coerce opacity from string to number if needed\n if (typeof s.opacity === 'string') {\n s.opacity = parseFloat(s.opacity) || 1;\n }\n\n return s;\n })\n .views((self) => ({\n get locked() {\n return (\n !self.draggable &&\n !self.resizable &&\n !self.contentEditable &&\n !self.styleEditable\n );\n },\n get page() {\n try {\n let parent = getParent(self);\n // Walk up: element -> children array -> page\n if (parent && getParent(parent)) {\n return getParent(parent);\n }\n } catch (e) {\n // not attached yet\n }\n return undefined;\n },\n get store() {\n try {\n return getRoot(self);\n } catch (e) {\n return undefined;\n }\n },\n get top() {\n // For grouped elements, returns the top-level group. For ungrouped, returns self.\n try {\n let parent = getParent(self);\n if (parent) {\n let grandParent = getParent(parent);\n if (grandParent && grandParent.type === 'group') {\n return grandParent.top;\n }\n }\n } catch (e) {\n // not in a group\n }\n return self;\n },\n get parent() {\n try {\n const arr = getParent(self);\n if (arr) {\n return getParent(arr);\n }\n } catch (e) {\n // not attached\n }\n return undefined;\n },\n get zIndex() {\n try {\n const arr = getParent(self);\n if (arr) {\n return arr.indexOf(self);\n }\n } catch (e) {\n // not attached\n }\n return 0;\n },\n }))\n .actions((self) => ({\n toJSON() {\n const json = {};\n const snapshot = { ...self };\n for (const key of Object.keys(snapshot)) {\n if (key.startsWith('_')) continue;\n json[key] = snapshot[key];\n }\n return json;\n },\n }))\n .actions((self) => ({\n clone(attrs = {}, { skipSelect = false } = {}) {\n const json = self.toJSON();\n delete json.id;\n Object.assign(json, attrs);\n const page = self.page;\n if (page) {\n return page.addElement(json, { skipSelect });\n }\n return null;\n },\n set(attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (key in self && key !== 'id') {\n self[key] = value;\n }\n }\n },\n moveUp() {\n const page = self.page;\n if (page) {\n page.moveElementUp(self.id);\n }\n },\n moveTop() {\n const page = self.page;\n if (page) {\n page.moveElementTop(self.id);\n }\n },\n moveDown() {\n const page = self.page;\n if (page) {\n page.moveElementDown(self.id);\n }\n },\n moveBottom() {\n const page = self.page;\n if (page) {\n page.moveElementBottom(self.id);\n }\n },\n setZIndex(zIndex) {\n const page = self.page;\n if (page) {\n page.setElementZIndex(self.id, zIndex);\n }\n },\n beforeDestroy() {\n // cleanup hook\n },\n }));\n","import { types } from 'mobx-state-tree';\nimport { Node } from './node-model';\n\nconst Animation = types.model('Animation', {\n delay: types.optional(types.number, 0),\n duration: types.optional(types.number, 1),\n enabled: types.optional(types.boolean, false),\n type: types.optional(types.string, ''),\n name: types.optional(types.string, ''),\n data: types.optional(types.frozen(), {}),\n});\n\nconst ShapeFilter = types.model('ShapeFilter', {\n intensity: types.optional(types.number, 1),\n});\n\nexport const Shape = Node.named('Shape')\n .props({\n x: types.optional(types.number, 0),\n y: types.optional(types.number, 0),\n width: types.optional(types.number, 100),\n height: types.optional(types.number, 100),\n rotation: types.optional(types.number, 0),\n\n animations: types.optional(types.array(Animation), []),\n\n // Effects\n blurEnabled: types.optional(types.boolean, false),\n blurRadius: types.optional(types.number, 10),\n brightnessEnabled: types.optional(types.boolean, false),\n brightness: types.optional(types.number, 0),\n sepiaEnabled: types.optional(types.boolean, false),\n grayscaleEnabled: types.optional(types.boolean, false),\n warmEnabled: types.optional(types.boolean, false),\n coldEnabled: types.optional(types.boolean, false),\n filters: types.optional(types.map(ShapeFilter), {}),\n\n // Shadow\n shadowEnabled: types.optional(types.boolean, false),\n shadowBlur: types.optional(types.number, 5),\n shadowOffsetX: types.optional(types.number, 0),\n shadowOffsetY: types.optional(types.number, 0),\n shadowColor: types.optional(types.string, 'black'),\n shadowOpacity: types.optional(types.number, 1),\n\n // Interaction flags\n draggable: types.optional(types.boolean, true),\n resizable: types.optional(types.boolean, true),\n contentEditable: types.optional(types.boolean, true),\n styleEditable: types.optional(types.boolean, true),\n })\n .preProcessSnapshot((snapshot) => {\n if (!snapshot) return snapshot;\n const s = { ...snapshot };\n\n // Coerce numeric properties that may arrive as strings from templates\n const numericKeys = [\n 'x', 'y', 'width', 'height', 'rotation',\n 'blurRadius', 'brightness',\n 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'shadowOpacity',\n ];\n numericKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = parseFloat(s[key]) || 0;\n }\n });\n\n // Coerce boolean properties that may arrive as strings\n const boolKeys = [\n 'blurEnabled', 'brightnessEnabled', 'sepiaEnabled', 'grayscaleEnabled', 'warmEnabled', 'coldEnabled',\n 'shadowEnabled', 'draggable', 'resizable', 'contentEditable', 'styleEditable',\n ];\n boolKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = s[key] === 'true';\n }\n });\n\n return s;\n })\n .actions((self) => ({\n setAnimation(type, attrs) {\n const existing = self.animations.find((a) => a.type === type);\n if (existing) {\n Object.assign(existing, attrs);\n } else {\n self.animations.push({ type, ...attrs });\n }\n },\n setFilter(type, value) {\n self.filters.set(type, { intensity: value });\n },\n }));\n\nexport { Animation, ShapeFilter };\n","import { types } from 'mobx-state-tree';\nimport { Shape } from './shape-model';\n\nexport const ImageElement = Shape.named('ImageElement')\n .props({\n type: types.optional(types.string, 'image'),\n src: types.optional(types.string, ''),\n cropX: types.optional(types.number, 0),\n cropY: types.optional(types.number, 0),\n cropWidth: types.optional(types.number, 1),\n cropHeight: types.optional(types.number, 1),\n cornerRadius: types.optional(types.number, 0),\n flipX: types.optional(types.boolean, false),\n flipY: types.optional(types.boolean, false),\n clipSrc: types.optional(types.string, ''),\n borderColor: types.optional(types.string, ''),\n borderSize: types.optional(types.number, 0),\n keepRatio: types.optional(types.boolean, true),\n stretchEnabled: types.optional(types.boolean, false),\n })\n .preProcessSnapshot((snapshot) => {\n if (!snapshot) return snapshot;\n const s = { ...snapshot };\n const numericKeys = ['cropX', 'cropY', 'cropWidth', 'cropHeight', 'cornerRadius', 'borderSize'];\n numericKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = parseFloat(s[key]) || 0;\n }\n });\n const boolKeys = ['flipX', 'flipY', 'keepRatio', 'stretchEnabled'];\n boolKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = s[key] === 'true';\n }\n });\n return s;\n })\n .volatile(() => ({\n _cropModeEnabled: false,\n }))\n .actions((self) => ({\n toggleCropMode(flag) {\n self._cropModeEnabled = flag !== undefined ? flag : !self._cropModeEnabled;\n },\n }));\n","import { types } from 'mobx-state-tree';\nimport { Shape } from './shape-model';\n\nexport const TextElement = Shape.named('TextElement')\n .props({\n type: types.optional(types.string, 'text'),\n text: types.optional(types.string, ''),\n placeholder: types.optional(types.string, ''),\n fontSize: types.optional(types.number, 20),\n fontFamily: types.optional(types.string, 'Roboto'),\n fontStyle: types.optional(types.string, 'normal'),\n fontWeight: types.optional(types.union(types.string, types.number), 'normal'),\n textDecoration: types.optional(types.string, ''),\n textTransform: types.optional(types.string, ''),\n fill: types.optional(types.string, '#000000'),\n align: types.optional(types.string, 'center'),\n verticalAlign: types.optional(types.string, 'top'),\n strokeWidth: types.optional(types.number, 0),\n stroke: types.optional(types.string, ''),\n lineHeight: types.optional(types.union(types.number, types.string), 1.2),\n letterSpacing: types.optional(types.number, 0),\n\n // Text background\n backgroundEnabled: types.optional(types.boolean, false),\n backgroundColor: types.optional(types.string, '#ffffff'),\n backgroundOpacity: types.optional(types.number, 1),\n backgroundCornerRadius: types.optional(types.number, 0),\n backgroundPadding: types.optional(types.number, 0),\n\n // Curved text\n curveEnabled: types.optional(types.boolean, false),\n curvePower: types.optional(types.number, 0),\n })\n .preProcessSnapshot((snapshot) => {\n if (!snapshot) return snapshot;\n const s = { ...snapshot };\n\n // Normalize combined fontStyle that may include weight (e.g. \"italic bold\", \"bold\")\n if (s.fontStyle && typeof s.fontStyle === 'string') {\n const parts = s.fontStyle.trim().split(/\\s+/);\n const styleWords = [];\n const weightWords = [];\n const weightKeywords = ['bold', 'normal', 'lighter', 'bolder',\n '100','200','300','400','500','600','700','800','900'];\n parts.forEach((p) => {\n if (weightKeywords.includes(p)) {\n weightWords.push(p);\n } else {\n styleWords.push(p);\n }\n });\n if (weightWords.length > 0 && !s.fontWeight) {\n s.fontWeight = weightWords[0];\n } else if (weightWords.length > 0 && s.fontWeight === 'normal') {\n s.fontWeight = weightWords[0];\n }\n s.fontStyle = styleWords.length > 0 ? styleWords.join(' ') : 'normal';\n }\n\n // Coerce numeric fontWeight to string if needed\n if (typeof s.fontWeight === 'number') {\n s.fontWeight = String(s.fontWeight);\n }\n\n // Coerce text-specific numeric properties from strings\n const numericKeys = [\n 'fontSize', 'letterSpacing', 'strokeWidth',\n 'backgroundOpacity', 'backgroundCornerRadius', 'backgroundPadding',\n 'curvePower',\n ];\n numericKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = parseFloat(s[key]) || 0;\n }\n });\n\n // Coerce text-specific boolean properties\n const boolKeys = ['backgroundEnabled', 'curveEnabled'];\n boolKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = s[key] === 'true';\n }\n });\n\n return s;\n })\n .volatile(() => ({\n _editModeEnabled: false,\n }))\n .actions((self) => ({\n toggleEditMode(editing) {\n self._editModeEnabled =\n editing !== undefined ? editing : !self._editModeEnabled;\n },\n }));\n","import { types } from 'mobx-state-tree';\nimport { Shape } from './shape-model';\n\nexport const SVGElement = Shape.named('SVGElement')\n .props({\n type: types.optional(types.string, 'svg'),\n src: types.optional(types.string, ''),\n maskSrc: types.optional(types.string, ''),\n cropX: types.optional(types.number, 0),\n cropY: types.optional(types.number, 0),\n cropWidth: types.optional(types.number, 1),\n cropHeight: types.optional(types.number, 1),\n keepRatio: types.optional(types.boolean, true),\n stretchEnabled: types.optional(types.boolean, false),\n flipX: types.optional(types.boolean, false),\n flipY: types.optional(types.boolean, false),\n borderColor: types.optional(types.string, ''),\n borderSize: types.optional(types.number, 0),\n cornerRadius: types.optional(types.number, 0),\n colorsReplace: types.optional(types.map(types.string), {}),\n })\n .actions((self) => ({\n replaceColor(oldColor, newColor) {\n self.colorsReplace.set(oldColor, newColor);\n },\n }));\n","import { types } from 'mobx-state-tree';\nimport { Shape } from './shape-model';\n\nexport const FigureElement = Shape.named('FigureElement')\n .props({\n type: types.optional(types.string, 'figure'),\n subType: types.optional(types.string, 'rect'),\n fill: types.optional(types.string, '#BFBFBF'),\n dash: types.optional(types.array(types.number), []),\n strokeWidth: types.optional(types.number, 0),\n stroke: types.optional(types.string, ''),\n cornerRadius: types.optional(types.number, 0),\n pathData: types.optional(types.string, ''),\n })\n .preProcessSnapshot((snapshot) => {\n if (!snapshot) return snapshot;\n const s = { ...snapshot };\n const numericKeys = ['strokeWidth', 'cornerRadius'];\n numericKeys.forEach((key) => {\n if (key in s && typeof s[key] === 'string') {\n s[key] = parseFloat(s[key]) || 0;\n }\n });\n return s;\n });\n","import { types } from 'mobx-state-tree';\nimport { Shape } from './shape-model';\n\nexport const LineElement = Shape.named('LineElement')\n .props({\n type: types.optional(types.string, 'line'),\n color: types.optional(types.string, '#000000'),\n dash: types.optional(types.array(types.number), []),\n startHead: types.optional(types.string, ''),\n endHead: types.optional(types.string, ''),\n });\n","import { types, getSnapshot } from 'mobx-state-tree';\nimport { ImageElement } from './image-model';\nimport { TextElement } from './text-model';\nimport { SVGElement } from './svg-model';\nimport { FigureElement } from './figure-model';\nimport { LineElement } from './line-model';\nimport { Node } from './node-model';\n\nexport const TYPES_MAP = {\n image: ImageElement,\n text: TextElement,\n svg: SVGElement,\n figure: FigureElement,\n line: LineElement,\n};\n\nconst ElementUnion = types.union(\n {\n dispatcher: (snapshot) => {\n if (!snapshot || !snapshot.type) return Node;\n const model = TYPES_MAP[snapshot.type];\n if (model) return model;\n // For group type or unknown types, use late-bound GroupElement or Node\n if (snapshot.type === 'group') return GroupElement;\n return Node;\n },\n },\n ImageElement,\n TextElement,\n SVGElement,\n FigureElement,\n LineElement,\n // GroupElement added below via late binding\n Node\n);\n\nexport const GroupElement = Node.named('GroupElement')\n .props({\n type: types.optional(types.string, 'group'),\n x: types.optional(types.number, 0),\n y: types.optional(types.number, 0),\n width: types.optional(types.number, 0),\n height: types.optional(types.number, 0),\n rotation: types.optional(types.number, 0),\n draggable: types.optional(types.boolean, true),\n resizable: types.optional(types.boolean, true),\n children: types.optional(types.array(types.late(() => ElementUnion)), []),\n })\n .preProcessSnapshot((snapshot) => {\n if (!snapshot) return snapshot;\n const s = { ...snapshot };\n\n // Polotno compat: groups without explicit width — compute bounds from children\n if (s.children && s.children.length > 0 && !(s.width > 0)) {\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n s.children.forEach((child) => {\n const cx = child.x || 0;\n const cy = child.y || 0;\n const cw = child.width || 0;\n const ch = child.height || 0;\n minX = Math.min(minX, cx);\n minY = Math.min(minY, cy);\n maxX = Math.max(maxX, cx + cw);\n maxY = Math.max(maxY, cy + ch);\n });\n if (minX !== Infinity) {\n s.x = minX;\n s.y = minY;\n s.width = maxX - minX;\n s.height = maxY - minY;\n s.children = s.children.map((child) => ({\n ...child,\n x: (child.x || 0) - minX,\n y: (child.y || 0) - minY,\n }));\n }\n }\n\n return s;\n })\n .actions((self) => ({\n toJSON() {\n const gx = self.x;\n const gy = self.y;\n return {\n id: self.id,\n type: self.type,\n name: self.name,\n opacity: self.opacity,\n visible: self.visible,\n selectable: self.selectable,\n removable: self.removable,\n alwaysOnTop: self.alwaysOnTop,\n showInExport: self.showInExport,\n children: self.children.map((child) => {\n const cj = child.toJSON ? child.toJSON() : getSnapshot(child);\n return { ...cj, x: (cj.x || 0) + gx, y: (cj.y || 0) + gy };\n }),\n };\n },\n }));\n\nexport const forEveryChild = (node, cb) => {\n cb(node);\n if (node.children) {\n node.children.forEach((child) => forEveryChild(child, cb));\n }\n};\n\nexport const createElement = (attrs) => {\n const type = attrs.type;\n const Model = TYPES_MAP[type];\n if (Model) {\n return Model.create(attrs);\n }\n if (type === 'group') {\n return GroupElement.create(attrs);\n }\n return Node.create(attrs);\n};\n\nexport { ElementUnion };\n","import { types, getParent, getRoot, getSnapshot, destroy } from 'mobx-state-tree';\nimport { v4 as uuidv4 } from 'uuid';\nimport { ImageElement } from './image-model';\nimport { TextElement } from './text-model';\nimport { SVGElement } from './svg-model';\nimport { FigureElement } from './figure-model';\nimport { LineElement } from './line-model';\nimport { GroupElement, ElementUnion, TYPES_MAP } from './group-model';\n\nexport const Page = types\n .model('Page', {\n id: types.optional(types.identifier, () => uuidv4()),\n children: types.optional(types.array(types.late(() => ElementUnion)), []),\n width: types.optional(types.union(types.number, types.literal('auto')), 'auto'),\n height: types.optional(types.union(types.number, types.literal('auto')), 'auto'),\n background: types.optional(types.string, ''),\n bleed: types.optional(types.number, 0),\n custom: types.optional(types.frozen(), {}),\n duration: types.optional(types.number, 5000),\n })\n .volatile(() => ({\n _exporting: false,\n _rendering: false,\n _forceMount: false,\n }))\n .views((self) => ({\n get store() {\n try {\n return getRoot(self);\n } catch (e) {\n return undefined;\n }\n },\n get computedWidth() {\n if (self.width !== 'auto') return self.width;\n const store = self.store;\n return store ? store.width : 500;\n },\n get computedHeight() {\n if (self.height !== 'auto') return self.height;\n const store = self.store;\n return store ? store.height : 500;\n },\n get startTime() {\n const store = self.store;\n if (!store) return 0;\n let time = 0;\n for (const page of store.pages) {\n if (page.id === self.id) return time;\n time += page.duration;\n }\n return time;\n },\n get _exportingOrRendering() {\n return self._exporting || self._rendering;\n },\n }))\n .actions((self) => ({\n toJSON() {\n return {\n id: self.id,\n children: self.children.map((child) => {\n if (child.toJSON) return child.toJSON();\n return getSnapshot(child);\n }),\n width: self.width,\n height: self.height,\n background: self.background,\n bleed: self.bleed,\n custom: self.custom,\n duration: self.duration,\n };\n },\n set(attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (key in self && key !== 'id') {\n self[key] = value;\n }\n }\n },\n select() {\n const store = self.store;\n if (store) {\n store.selectPage(self.id);\n }\n },\n clone(attrs = {}) {\n const json = self.toJSON();\n delete json.id;\n Object.assign(json, attrs);\n const store = self.store;\n if (store) {\n return store.addPage(json);\n }\n return null;\n },\n addElement(attrs, { skipSelect = false } = {}) {\n const type = attrs.type;\n const elementData = {\n id: uuidv4(),\n ...attrs,\n };\n\n self.children.push(elementData);\n const newElement = self.children[self.children.length - 1];\n\n if (!skipSelect) {\n const store = self.store;\n if (store) {\n store.selectElements([newElement.id]);\n }\n }\n\n return newElement;\n },\n\n // Z-ordering helpers\n _findChildIndex(id) {\n return self.children.findIndex((c) => c.id === id);\n },\n\n canMoveElementsUp(ids) {\n for (const id of ids) {\n const idx = self._findChildIndex(id);\n if (idx < self.children.length - 1) return true;\n }\n return false;\n },\n moveElementsUp(ids) {\n for (const id of ids) {\n self.moveElementUp(id);\n }\n },\n moveElementUp(id) {\n const idx = self._findChildIndex(id);\n if (idx >= 0 && idx < self.children.length - 1) {\n const snapshot = getSnapshot(self.children[idx]);\n self.children.splice(idx, 1);\n self.children.splice(idx + 1, 0, snapshot);\n }\n },\n\n canMoveElementsTop(ids) {\n for (const id of ids) {\n const idx = self._findChildIndex(id);\n if (idx < self.children.length - 1) return true;\n }\n return false;\n },\n moveElementsTop(ids) {\n for (const id of ids) {\n self.moveElementTop(id);\n }\n },\n moveElementTop(id) {\n const idx = self._findChildIndex(id);\n if (idx >= 0 && idx < self.children.length - 1) {\n const snapshot = getSnapshot(self.children[idx]);\n self.children.splice(idx, 1);\n self.children.push(snapshot);\n }\n },\n\n canMoveElementsDown(ids) {\n for (const id of ids) {\n const idx = self._findChildIndex(id);\n if (idx > 0) return true;\n }\n return false;\n },\n moveElementsDown(ids) {\n for (const id of ids) {\n self.moveElementDown(id);\n }\n },\n moveElementDown(id) {\n const idx = self._findChildIndex(id);\n if (idx > 0) {\n const snapshot = getSnapshot(self.children[idx]);\n self.children.splice(idx, 1);\n self.children.splice(idx - 1, 0, snapshot);\n }\n },\n\n canMoveElementsBottom(ids) {\n for (const id of ids) {\n const idx = self._findChildIndex(id);\n if (idx > 0) return true;\n }\n return false;\n },\n moveElementsBottom(ids) {\n for (const id of ids) {\n self.moveElementBottom(id);\n }\n },\n moveElementBottom(id) {\n const idx = self._findChildIndex(id);\n if (idx > 0) {\n const snapshot = getSnapshot(self.children[idx]);\n self.children.splice(idx, 1);\n self.children.splice(0, 0, snapshot);\n }\n },\n\n setElementZIndex(id, zIndex) {\n const idx = self._findChildIndex(id);\n if (idx >= 0 && zIndex >= 0 && zIndex < self.children.length) {\n const snapshot = getSnapshot(self.children[idx]);\n self.children.splice(idx, 1);\n self.children.splice(zIndex, 0, snapshot);\n }\n },\n\n setSize({ width, height, useMagic = false, softChange = false }) {\n if (width !== undefined) self.width = width;\n if (height !== undefined) self.height = height;\n },\n\n setZIndex(zIndex) {\n const store = self.store;\n if (store) {\n store.setPageZIndex(self.id, zIndex);\n }\n },\n\n _forEachElementUp(ids, callback) {\n for (let i = self.children.length - 1; i >= 0; i--) {\n const child = self.children[i];\n if (ids.includes(child.id)) {\n callback(child);\n }\n }\n },\n\n _forEachElementDown(ids, callback) {\n for (let i = 0; i < self.children.length; i++) {\n const child = self.children[i];\n if (ids.includes(child.id)) {\n callback(child);\n }\n }\n return false;\n },\n\n play() {\n // placeholder for animation support\n },\n }));\n","import { types, getSnapshot, applySnapshot, getRoot } from 'mobx-state-tree';\n\nexport const History = types\n .model('History', {\n history: types.optional(types.array(types.frozen()), []),\n undoIdx: types.optional(types.number, -1),\n targetPath: types.optional(types.string, ''),\n })\n .volatile(() => ({\n _isTransacting: false,\n _skipSave: false,\n _ignoring: false,\n }))\n .views((self) => ({\n get canUndo() {\n return self.undoIdx > 0;\n },\n get canRedo() {\n return self.undoIdx < self.history.length - 1;\n },\n }))\n .actions((self) => {\n let disposer = null;\n\n return {\n startTransaction() {\n self._isTransacting = true;\n },\n endTransaction(skipSave = false) {\n self._isTransacting = false;\n if (!skipSave) {\n self.addUndoState();\n }\n },\n ignore(func) {\n self._ignoring = true;\n try {\n func();\n } finally {\n self._ignoring = false;\n }\n },\n async transaction(func) {\n self.startTransaction();\n try {\n await func();\n } finally {\n self.endTransaction();\n }\n },\n addUndoState() {\n if (self._ignoring) return;\n try {\n const root = getRoot(self);\n const snapshot = getSnapshot(root);\n // Strip history (circular) and zoom-level properties (UI preference,\n // not content — should not be affected by undo/redo).\n const stateToSave = { ...snapshot };\n delete stateToSave.history;\n delete stateToSave.scale;\n delete stateToSave.scaleToFit;\n\n // Remove future states if we're in the middle of history\n if (self.undoIdx < self.history.length - 1) {\n self.history.splice(self.undoIdx + 1);\n }\n\n self.history.push(stateToSave);\n self.undoIdx = self.history.length - 1;\n\n // Limit history size to 100 entries\n if (self.history.length > 100) {\n self.history.splice(0, self.history.length - 100);\n self.undoIdx = self.history.length - 1;\n }\n } catch (e) {\n console.warn('History: failed to save state', e);\n }\n },\n _restoreState(state) {\n if (!state) return;\n self._ignoring = true;\n try {\n const root = getRoot(self);\n const currentHistory = getSnapshot(self);\n\n // Preserve zoom level across undo/redo — scale and scaleToFit are UI\n // preferences, not content, so they are excluded from history snapshots.\n const currentScale = root.scale;\n const currentScaleToFit = root.scaleToFit;\n\n // Apply the full snapshot (children may get reordered by MST reconciliation)\n applySnapshot(root, {\n ...state,\n history: currentHistory,\n scale: currentScale,\n scaleToFit: currentScaleToFit,\n });\n\n // Fix children order — MST's identifier-based reconciliation can\n // reorder arrays. Use getSnapshot→clear→push (same pattern as\n // page-model moveElementUp/Down) to enforce the saved order.\n if (state.pages) {\n state.pages.forEach((savedPage) => {\n const page = root.pages.find((p) => p.id === savedPage.id);\n if (!page || !savedPage.children || !savedPage.children.length) return;\n const targetIds = savedPage.children.map((c) => c.id);\n const currentIds = page.children.map((c) => c.id);\n // Only reorder if order actually differs\n if (targetIds.length === currentIds.length &&\n targetIds.every((id, i) => id === currentIds[i])) return;\n const snapById = {};\n page.children.forEach((c) => { snapById[c.id] = getSnapshot(c); });\n page.children.clear();\n targetIds.forEach((id) => {\n if (snapById[id]) page.children.push(snapById[id]);\n });\n });\n }\n } catch (e) {\n console.warn('History: failed to restore state', e);\n } finally {\n self._ignoring = false;\n }\n },\n undo() {\n if (!self.canUndo) return;\n self.undoIdx -= 1;\n self._restoreState(self.history[self.undoIdx]);\n },\n redo() {\n if (!self.canRedo) return;\n self.undoIdx += 1;\n self._restoreState(self.history[self.undoIdx]);\n },\n clear() {\n self.history.clear();\n self.undoIdx = -1;\n },\n afterCreate() {\n // Do NOT defer an addUndoState() here.\n //\n // The previous setTimeout(addUndoState, 0) fired asynchronously and\n // created a race condition with loadJSON:\n //\n // • If the timeout fired BEFORE loadJSON: the empty-store snapshot\n // was saved as history[0], then loadJSON's history.clear() removed\n // it and saved the correct template as the new history[0] — OK so\n // far, but then the timeout could also fire AFTER loadJSON and add\n // a stale duplicate as history[1], making undoIdx=1 instead of 0.\n //\n // • Either way, history[0] ended up being saved with whatever `scale`\n // was current at a moment we did not control (potentially a negative\n // value produced by the ResizeObserver when the container had\n // width=0), so the first undo restored that wrong scale and mirrored\n // the entire canvas.\n //\n // loadJSON (and store.clear) both call history.clear() + addUndoState()\n // explicitly, and now do so AFTER resetting scale=1, so they own the\n // \"initial state\" responsibility completely.\n },\n beforeDestroy() {\n if (disposer) {\n disposer();\n disposer = null;\n }\n },\n replaceState() {\n // Replace the current state in history (for non-undoable changes)\n if (self._ignoring) return;\n try {\n const root = getRoot(self);\n const snapshot = getSnapshot(root);\n const stateToSave = { ...snapshot };\n delete stateToSave.history;\n\n if (self.undoIdx >= 0 && self.undoIdx < self.history.length) {\n self.history[self.undoIdx] = stateToSave;\n }\n } catch (e) {\n console.warn('History: failed to replace state', e);\n }\n },\n requestAddState() {\n // Debounced version - just calls addUndoState\n self.addUndoState();\n },\n };\n });\n","import { types, getSnapshot, applySnapshot, destroy, onSnapshot } from 'mobx-state-tree';\nimport { v4 as uuidv4 } from 'uuid';\nimport { jsPDF } from 'jspdf';\nimport { Page } from './page-model';\nimport { History } from './history';\nimport { TYPES_MAP, forEveryChild } from './group-model';\n\n// Detect embedded base64 data URLs (data:...;base64,...).\n// Regular http/https/blob URLs are preserved.\nconst isBase64DataUrl = (v) =>\n typeof v === 'string' && v.startsWith('data:') && v.includes(';base64,');\n\n// Only strip base64 from variable input-field images (inputField: true).\n// Static design images ARE the template content — stripping them clears the design.\n// Variable input-field placeholders are replaced at runtime anyway, so stripping\n// their (usually tiny SVG) placeholder base64 is safe and keeps exports clean.\nconst stripBase64FromElement = (el) => {\n const out = { ...el };\n const isInputField = out.custom && out.custom.inputField;\n if (isInputField) {\n if (isBase64DataUrl(out.src)) out.src = '';\n if (isBase64DataUrl(out.clipSrc)) out.clipSrc = '';\n }\n if (Array.isArray(out.children)) {\n out.children = out.children.map(stripBase64FromElement);\n }\n return out;\n};\n\nconst stripBase64FromExport = (data) => ({\n ...data,\n pages: (data.pages || []).map((page) => ({\n ...page,\n children: (page.children || []).map(stripBase64FromElement),\n })),\n});\n\nconst Font = types.model('Font', {\n fontFamily: types.string,\n url: types.optional(types.string, ''),\n styles: types.optional(types.frozen(), []),\n});\n\nconst Audio = types\n .model('Audio', {\n id: types.optional(types.identifier, () => uuidv4()),\n src: types.optional(types.string, ''),\n duration: types.optional(types.number, 0),\n startTime: types.optional(types.number, 0),\n endTime: types.optional(types.number, 0),\n volume: types.optional(types.number, 1),\n delay: types.optional(types.number, 0),\n custom: types.optional(types.frozen(), {}),\n })\n .actions((self) => ({\n toJSON() {\n return {\n id: self.id,\n src: self.src,\n duration: self.duration,\n startTime: self.startTime,\n endTime: self.endTime,\n volume: self.volume,\n delay: self.delay,\n custom: self.custom,\n };\n },\n set(attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (key in self && key !== 'id') {\n self[key] = value;\n }\n }\n },\n }));\n\nexport const Store = types\n .model('Store', {\n role: types.optional(types.string, 'design'),\n pages: types.optional(types.array(Page), []),\n fonts: types.optional(types.array(Font), []),\n audios: types.optional(types.array(Audio), []),\n width: types.optional(types.number, 500),\n height: types.optional(types.number, 500),\n scale: types.optional(types.number, 1),\n scaleToFit: types.optional(types.number, 1),\n unit: types.optional(types.string, 'px'),\n dpi: types.optional(types.number, 72),\n schemaVersion: types.optional(types.number, 1),\n bleedVisible: types.optional(types.boolean, false),\n rulesVisible: types.optional(types.boolean, false),\n distanceGuidesVisible: types.optional(types.boolean, false),\n openedSidePanel: types.optional(types.string, ''),\n previousOpenedSidePanel: types.optional(types.string, ''),\n custom: types.optional(types.frozen(), {}),\n tool: types.optional(types.string, 'selection'),\n selectedElementsIds: types.optional(types.array(types.string), []),\n history: types.optional(History, {}),\n _activePageId: types.optional(types.string, ''),\n _selectedPagesIds: types.optional(types.array(types.string), []),\n _elementsPixelRatio: types.optional(types.number, 1),\n })\n .volatile(() => ({\n _stageRef: null,\n _listeners: new Map(),\n _key: '',\n _showCredit: false,\n currentTime: 0,\n isPlaying: false,\n _toolbarPanel: null, // null | { type: 'effects'|'mask', elementId: string }\n _fontVersion: 0, // incremented after each font load to trigger canvas re-render\n _pendingInputFields: [], // elements awaiting user input after loadJSON\n }))\n .views((self) => ({\n get _idsMap() {\n const map = {};\n self.pages.forEach((page) => {\n page.children.forEach((child) => {\n forEveryChild(child, (el) => {\n map[el.id] = el;\n });\n });\n });\n return map;\n },\n get selectedElements() {\n const map = self._idsMap;\n return self.selectedElementsIds\n .map((id) => map[id])\n .filter(Boolean);\n },\n get selectedShapes() {\n return self.selectedElements;\n },\n get children() {\n return self.pages;\n },\n get activePage() {\n if (self._activePageId) {\n const page = self.pages.find((p) => p.id === self._activePageId);\n if (page) return page;\n }\n return self.pages.length > 0 ? self.pages[0] : undefined;\n },\n get selectedPages() {\n if (self._selectedPagesIds.length > 0) {\n return self._selectedPagesIds\n .map((id) => self.pages.find((p) => p.id === id))\n .filter(Boolean);\n }\n const active = self.activePage;\n return active ? [active] : [];\n },\n get duration() {\n let total = 0;\n self.pages.forEach((page) => {\n total += page.duration;\n });\n return total;\n },\n get inputFields() {\n const fields = [];\n self.pages.forEach((page) => {\n page.children.forEach((el) => {\n forEveryChild(el, (child) => {\n if (child.custom && child.custom.inputField) {\n fields.push(child);\n }\n });\n });\n });\n return fields;\n },\n get _hasCroppedImages() {\n for (const page of self.pages) {\n for (const child of page.children) {\n if (\n child.type === 'image' &&\n (child.cropX !== 0 ||\n child.cropY !== 0 ||\n child.cropWidth !== 1 ||\n child.cropHeight !== 1)\n ) {\n return true;\n }\n }\n }\n return false;\n },\n }))\n .actions((self) => ({\n find(callback) {\n for (const page of self.pages) {\n if (callback(page)) return page;\n for (const child of page.children) {\n if (callback(child)) return child;\n }\n }\n return undefined;\n },\n getElementById(id) {\n return self._idsMap[id];\n },\n }))\n .actions((self) => ({\n requestInputFields() {\n const fields = self.inputFields;\n self._pendingInputFields = fields;\n return fields;\n },\n _resolveInputField(id) {\n self._pendingInputFields = self._pendingInputFields.filter(\n (el) => el.id !== id\n );\n },\n _unresolveInputField(el) {\n // Re-insert at the front so it becomes the next field shown (back navigation)\n const alreadyPending = self._pendingInputFields.some((f) => f.id === el.id);\n if (!alreadyPending) {\n self._pendingInputFields.unshift(el);\n }\n },\n clearPendingInputFields() {\n self._pendingInputFields = [];\n },\n }))\n .actions((self) => ({\n afterCreate() {\n // set initial active page\n if (self.pages.length > 0 && !self._activePageId) {\n self._activePageId = self.pages[0].id;\n }\n },\n set(attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (key in self && !key.startsWith('_')) {\n self[key] = value;\n }\n }\n },\n setUnit({ unit, dpi }) {\n if (unit !== undefined) self.unit = unit;\n if (dpi !== undefined) self.dpi = dpi;\n },\n setRole(role) {\n self.role = role;\n },\n setTool(tool) {\n self.tool = tool;\n },\n setToolOptions(options) {\n // placeholder for tool options\n },\n addPage(attrs = {}) {\n const pageData = {\n id: uuidv4(),\n ...attrs,\n };\n self.pages.push(pageData);\n const newPage = self.pages[self.pages.length - 1];\n self._activePageId = newPage.id;\n return newPage;\n },\n selectPage(id) {\n self._activePageId = id;\n self._selectedPagesIds.clear();\n },\n selectPages(ids) {\n self._selectedPagesIds.replace(ids);\n if (ids.length > 0) {\n self._activePageId = ids[0];\n }\n },\n selectElements(ids) {\n self.selectedElementsIds.replace(ids);\n // Close toolbar panel if the selected element changes\n if (self._toolbarPanel) {\n const stillSelected = ids.includes(self._toolbarPanel.elementId);\n if (!stillSelected) {\n self._toolbarPanel = null;\n }\n }\n },\n toggleBleed(bleedVisible) {\n self.bleedVisible =\n bleedVisible !== undefined ? bleedVisible : !self.bleedVisible;\n },\n toggleRulers(rulesVisible) {\n self.rulesVisible =\n rulesVisible !== undefined ? rulesVisible : !self.rulesVisible;\n },\n toggleDistanceGuides(distanceGuidesVisible) {\n self.distanceGuidesVisible =\n distanceGuidesVisible !== undefined\n ? distanceGuidesVisible\n : !self.distanceGuidesVisible;\n },\n openSidePanel(panelName) {\n self.previousOpenedSidePanel = self.openedSidePanel;\n self.openedSidePanel = panelName;\n },\n openToolbarPanel(type) {\n const el = self.selectedElements.length === 1 ? self.selectedElements[0] : null;\n if (el) {\n self._toolbarPanel = { type, elementId: el.id };\n }\n },\n closeToolbarPanel() {\n self._toolbarPanel = null;\n },\n setScale(scale) {\n self.scale = scale;\n },\n _setScaleToFit(scale) {\n self.scaleToFit = scale;\n },\n setElementsPixelRatio(ratio) {\n self._elementsPixelRatio = ratio;\n },\n setSize(width, height, useMagic = false) {\n if (width !== undefined) self.width = width;\n if (height !== undefined) self.height = height;\n },\n setPageZIndex(id, zIndex) {\n const idx = self.pages.findIndex((p) => p.id === id);\n if (idx >= 0 && zIndex >= 0 && zIndex < self.pages.length) {\n const snapshot = getSnapshot(self.pages[idx]);\n self.pages.splice(idx, 1);\n self.pages.splice(zIndex, 0, snapshot);\n }\n },\n deletePages(ids) {\n const toRemove = self.pages.filter((p) => ids.includes(p.id));\n toRemove.forEach((page) => {\n destroy(page);\n });\n // ensure at least one page exists\n if (self.pages.length === 0) {\n self.addPage();\n }\n // fix active page if deleted\n if (!self.pages.find((p) => p.id === self._activePageId)) {\n self._activePageId = self.pages[0].id;\n }\n },\n groupElements(ids, attrs = {}) {\n const page = self.activePage;\n if (!page) return null;\n\n const elements = ids\n .map((id) => {\n const idx = page.children.findIndex((c) => c.id === id);\n if (idx >= 0) return { idx, snapshot: getSnapshot(page.children[idx]) };\n return null;\n })\n .filter(Boolean);\n\n if (elements.length < 2) return null;\n\n // Calculate group bounds\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n elements.forEach(({ snapshot }) => {\n minX = Math.min(minX, snapshot.x || 0);\n minY = Math.min(minY, snapshot.y || 0);\n maxX = Math.max(maxX, (snapshot.x || 0) + (snapshot.width || 0));\n maxY = Math.max(maxY, (snapshot.y || 0) + (snapshot.height || 0));\n });\n\n // Remove original elements (in reverse order to preserve indices)\n const sortedIndices = elements.map((e) => e.idx).sort((a, b) => b - a);\n sortedIndices.forEach((idx) => {\n page.children.splice(idx, 1);\n });\n\n // Adjust children positions relative to group\n const groupChildren = elements.map(({ snapshot }) => ({\n ...snapshot,\n id: undefined, // will get new id\n x: (snapshot.x || 0) - minX,\n y: (snapshot.y || 0) - minY,\n }));\n\n const group = page.addElement({\n type: 'group',\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY,\n children: groupChildren,\n ...attrs,\n });\n\n return group;\n },\n ungroupElements(ids) {\n const page = self.activePage;\n if (!page) return;\n\n const newChildIds = [];\n\n ids.forEach((id) => {\n const idx = page.children.findIndex((c) => c.id === id);\n if (idx < 0) return;\n const group = page.children[idx];\n if (group.type !== 'group') return;\n\n const groupSnapshot = getSnapshot(group);\n const groupX = groupSnapshot.x || 0;\n const groupY = groupSnapshot.y || 0;\n\n // Remove group\n page.children.splice(idx, 1);\n\n // Re-add children at group's position\n (groupSnapshot.children || []).forEach((childSnapshot) => {\n const newEl = page.addElement(\n {\n ...childSnapshot,\n id: undefined,\n x: (childSnapshot.x || 0) + groupX,\n y: (childSnapshot.y || 0) + groupY,\n },\n { skipSelect: true }\n );\n if (newEl) newChildIds.push(newEl.id);\n });\n });\n\n // Select the ungrouped children\n if (newChildIds.length > 0) {\n self.selectElements(newChildIds);\n }\n },\n deleteElements(ids) {\n self.pages.forEach((page) => {\n const toRemove = page.children.filter((c) => ids.includes(c.id));\n toRemove.forEach((el) => {\n destroy(el);\n });\n });\n // Remove from selection\n self.selectedElementsIds.replace(\n self.selectedElementsIds.filter((id) => !ids.includes(id))\n );\n },\n on(event, callback) {\n if (!self._listeners.has(event)) {\n self._listeners.set(event, []);\n }\n self._listeners.get(event).push(callback);\n\n // Return disposer\n return () => {\n const listeners = self._listeners.get(event);\n if (listeners) {\n const idx = listeners.indexOf(callback);\n if (idx >= 0) listeners.splice(idx, 1);\n }\n };\n },\n _emit(event, data) {\n const listeners = self._listeners.get(event);\n if (listeners) {\n listeners.forEach((cb) => cb(data));\n }\n },\n _setStageRef(ref) {\n self._stageRef = ref;\n },\n\n async _toCanvas({\n pixelRatio = 1,\n ignoreBackground = false,\n pageId,\n mimeType = 'image/png',\n includeBleed = false,\n _skipTimeout = false,\n quickMode = false,\n } = {}) {\n const stage = self._stageRef;\n if (!stage) {\n throw new Error('Stage ref not set. Make sure <Workspace> is mounted.');\n }\n\n const page = pageId\n ? self.pages.find((p) => p.id === pageId)\n : self.activePage;\n if (!page) {\n throw new Error('No page found for export.');\n }\n\n // The workspace renders content in a Layer with offset/scale for centering.\n // For export we temporarily reset the layer transform to capture just the\n // design at its native resolution.\n const layer = stage.getLayers()[0];\n if (!layer) {\n throw new Error('No layer found in stage for export.');\n }\n\n const prevX = layer.x();\n const prevY = layer.y();\n const prevScaleX = layer.scaleX();\n const prevScaleY = layer.scaleY();\n\n layer.x(0);\n layer.y(0);\n layer.scaleX(1);\n layer.scaleY(1);\n layer.draw();\n\n const canvas = layer.toCanvas({\n pixelRatio,\n x: 0,\n y: 0,\n width: self.width,\n height: self.height,\n });\n\n // Restore\n layer.x(prevX);\n layer.y(prevY);\n layer.scaleX(prevScaleX);\n layer.scaleY(prevScaleY);\n layer.draw();\n\n return canvas;\n },\n\n async toDataURL({\n mimeType = 'image/png',\n quality = 1,\n dpi,\n dpiMetadata,\n ...rest\n } = {}) {\n const canvas = await self._toCanvas({ mimeType, ...rest });\n return canvas.toDataURL(mimeType, quality);\n },\n\n async toBlob({ mimeType = 'image/png', quality = 1, ...rest } = {}) {\n const canvas = await self._toCanvas({ mimeType, ...rest });\n return new Promise((resolve, reject) => {\n canvas.toBlob(\n (blob) => {\n if (blob) {\n resolve(blob);\n } else {\n reject(new Error('Failed to create blob'));\n }\n },\n mimeType,\n quality\n );\n });\n },\n\n async saveAsImage({ fileName = 'design.png', ...exportProps } = {}) {\n const dataURL = await self.toDataURL(exportProps);\n const link = document.createElement('a');\n link.download = fileName;\n link.href = dataURL;\n link.click();\n },\n\n async toPDFDataURL({\n pixelRatio = 2,\n pageId,\n dpi = 300,\n includeBleed = false,\n } = {}) {\n const pages = pageId\n ? [self.pages.find((p) => p.id === pageId)].filter(Boolean)\n : [...self.pages];\n\n if (pages.length === 0) {\n throw new Error('No pages found for PDF export.');\n }\n\n const widthPt = (self.width / 96) * 72;\n const heightPt = (self.height / 96) * 72;\n\n const orientation = widthPt > heightPt ? 'landscape' : 'portrait';\n const pdf = new jsPDF({\n orientation,\n unit: 'pt',\n format: [widthPt, heightPt],\n compress: true,\n });\n\n const prevActivePageId = self._activePageId;\n\n for (let i = 0; i < pages.length; i++) {\n if (i > 0) {\n pdf.addPage([widthPt, heightPt], orientation);\n }\n\n self._activePageId = pages[i].id;\n\n await new Promise((r) => setTimeout(r, 50));\n\n const canvas = await self._toCanvas({\n pixelRatio,\n pageId: pages[i].id,\n mimeType: 'image/jpeg',\n includeBleed,\n });\n\n const imgData = canvas.toDataURL('image/jpeg', 0.95);\n pdf.addImage(imgData, 'JPEG', 0, 0, widthPt, heightPt, undefined, 'FAST');\n }\n\n self._activePageId = prevActivePageId;\n\n return pdf.output('datauristring');\n },\n\n async saveAsPDF({ fileName = 'design.pdf', ...exportProps } = {}) {\n const dataURL = await self.toPDFDataURL(exportProps);\n const link = document.createElement('a');\n link.download = fileName;\n link.href = dataURL;\n link.click();\n },\n\n saveAsJSON({ fileName = 'design.json', stripBase64 = false } = {}) {\n const data = stripBase64 ? stripBase64FromExport(self.toJSON()) : self.toJSON();\n const json = JSON.stringify(data, null, 2);\n const blob = new Blob([json], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.download = fileName;\n link.href = url;\n link.click();\n URL.revokeObjectURL(url);\n },\n\n async waitLoading({ _skipTimeout = false } = {}) {\n // Wait for all images to load\n return new Promise((resolve) => {\n setTimeout(resolve, _skipTimeout ? 0 : 100);\n });\n },\n\n toJSON() {\n return {\n width: self.width,\n height: self.height,\n fonts: self.fonts.map((f) => getSnapshot(f)),\n pages: self.pages.map((p) => p.toJSON()),\n audios: self.audios.map((a) => a.toJSON()),\n unit: self.unit,\n dpi: self.dpi,\n custom: self.custom,\n schemaVersion: self.schemaVersion,\n };\n },\n\n loadJSON(json, keepHistory = false) {\n if (!json) return;\n\n const data = typeof json === 'string' ? JSON.parse(json) : json;\n\n self.history.ignore(() => {\n if (data.width !== undefined) self.width = data.width;\n if (data.height !== undefined) self.height = data.height;\n if (data.unit !== undefined) self.unit = data.unit;\n if (data.dpi !== undefined) self.dpi = data.dpi;\n if (data.custom !== undefined) self.custom = data.custom;\n if (data.schemaVersion !== undefined) self.schemaVersion = data.schemaVersion;\n\n // Load fonts\n if (data.fonts) {\n self.fonts.clear();\n data.fonts.forEach((font) => {\n self.fonts.push(font);\n });\n }\n\n // Load audios\n if (data.audios) {\n self.audios.clear();\n data.audios.forEach((audio) => {\n self.audios.push(audio);\n });\n }\n\n // Load pages\n if (data.pages) {\n self.pages.clear();\n data.pages.forEach((pageData) => {\n self.pages.push(pageData);\n });\n }\n\n // Set active page\n if (self.pages.length > 0) {\n self._activePageId = self.pages[0].id;\n }\n\n // Clear selection\n self.selectedElementsIds.clear();\n });\n\n // Reset scale before saving the initial undo state so that history[0]\n // always records scale=1 (the intended post-load baseline). Without this,\n // history[0] would capture whatever scale was active before loadJSON ran\n // (e.g. the auto-fit of a previous template or a zero-width-container\n // negative value), and the first undo would restore that wrong scale —\n // which, when negative, mirrors the entire canvas.\n self.scale = 1;\n\n if (!keepHistory) {\n self.history.clear();\n self.history.addUndoState();\n }\n\n // Auto-load fonts referenced in text elements\n self._autoLoadFonts(data);\n\n // Auto-populate pending input fields so the dialog triggers\n self.requestInputFields();\n },\n\n clear({ keepHistory = false } = {}) {\n self.pages.clear();\n self.fonts.clear();\n self.audios.clear();\n self.selectedElementsIds.clear();\n self._activePageId = '';\n self.width = 500;\n self.height = 500;\n self.custom = {};\n\n self.addPage();\n\n if (!keepHistory) {\n self.history.clear();\n self.history.addUndoState();\n }\n },\n\n addFont(font) {\n const existing = self.fonts.find((f) => f.fontFamily === font.fontFamily);\n if (!existing) {\n self.fonts.push(font);\n }\n },\n\n removeFont(fontFamily) {\n const idx = self.fonts.findIndex((f) => f.fontFamily === fontFamily);\n if (idx >= 0) {\n self.fonts.splice(idx, 1);\n }\n },\n\n addAudio(data) {\n self.audios.push({ id: uuidv4(), ...data });\n },\n\n removeAudio(audioId) {\n const idx = self.audios.findIndex((a) => a.id === audioId);\n if (idx >= 0) {\n self.audios.splice(idx, 1);\n }\n },\n\n async loadFont(fontFamily, text = '') {\n // Load font via Google Fonts CSS API\n const id = `google-font-${fontFamily.replace(/\\s+/g, '-').toLowerCase()}`;\n\n try {\n if (!document.getElementById(id)) {\n const link = document.createElement('link');\n link.id = id;\n link.href = `https://fonts.googleapis.com/css2?family=${encodeURIComponent(\n fontFamily\n )}:wght@100;200;300;400;500;600;700;800;900&display=swap`;\n link.rel = 'stylesheet';\n\n // Wait for the CSS stylesheet to load so @font-face rules are parsed\n await new Promise((resolve) => {\n link.onload = resolve;\n link.onerror = resolve; // don't block on network errors\n document.head.appendChild(link);\n });\n }\n\n // Now the browser knows about the @font-face, load the actual font files\n await document.fonts.load(`16px \"${fontFamily}\"`);\n await document.fonts.load(`bold 16px \"${fontFamily}\"`);\n await document.fonts.ready;\n\n // Bump version so MobX observers re-render with the real font\n self._fontVersion += 1;\n // Force Konva to redraw all text nodes with the newly loaded font\n if (self._stageRef) {\n self._stageRef.batchDraw();\n }\n } catch (e) {\n console.warn(`Failed to load font: ${fontFamily}`, e);\n }\n },\n\n _autoLoadFonts(data) {\n // Collect all unique fontFamily values from text elements across all pages\n const fonts = new Set();\n const collectFromChildren = (children) => {\n if (!Array.isArray(children)) return;\n children.forEach((el) => {\n if (el.type === 'text' && el.fontFamily) {\n fonts.add(el.fontFamily);\n }\n if (el.children) {\n collectFromChildren(el.children);\n }\n });\n };\n\n if (data.pages) {\n data.pages.forEach((page) => {\n collectFromChildren(page.children);\n });\n }\n\n // Also load fonts from the fonts array in the JSON\n if (data.fonts) {\n data.fonts.forEach((f) => {\n if (f.fontFamily) fonts.add(f.fontFamily);\n });\n }\n\n // Load each unique font\n fonts.forEach((fontFamily) => {\n self.loadFont(fontFamily);\n });\n },\n\n validate(json) {\n const errors = [];\n if (!json) {\n errors.push({ path: '', message: 'JSON is empty' });\n return errors;\n }\n if (typeof json.width !== 'number') {\n errors.push({ path: 'width', message: 'width must be a number' });\n }\n if (typeof json.height !== 'number') {\n errors.push({ path: 'height', message: 'height must be a number' });\n }\n if (!Array.isArray(json.pages)) {\n errors.push({ path: 'pages', message: 'pages must be an array' });\n }\n return errors;\n },\n\n checkActivePage() {\n if (self.pages.length > 0 && !self.activePage) {\n self._activePageId = self.pages[0].id;\n }\n },\n\n setCurrentTime(time) {\n self.currentTime = time;\n },\n\n _togglePlaying(playing = true) {\n self.isPlaying = playing;\n },\n\n play() {\n self._togglePlaying(true);\n },\n\n stop() {\n self._togglePlaying(false);\n },\n\n seek() {\n // placeholder\n },\n _initConfig(key, showCredit) {\n self._key = key;\n self._showCredit = showCredit;\n },\n }));\n\nexport function createStore({ key = '', showCredit = false } = {}) {\n const store = Store.create({});\n store._initConfig(key, showCredit);\n return store;\n}\n\nexport default createStore;\n"],"names":["Node","types","model","id","optional","identifier","uuidv4","type","string","name","opacity","number","custom","frozen","visible","selectable","removable","alwaysOnTop","showInExport","preProcessSnapshot","snapshot","s","_objectSpread","locked","draggable","undefined","resizable","contentEditable","styleEditable","parseFloat","views","self","page","parent","getParent","e","store","getRoot","top","grandParent","arr","zIndex","indexOf","actions","toJSON","json","_i","_Object$keys","Object","keys","length","key","startsWith","clone","attrs","arguments","_ref","_ref$skipSelect","skipSelect","assign","addElement","set","_i2","_Object$entries","entries","_Object$entries$_i","_slicedToArray","value","moveUp","moveElementUp","moveTop","moveElementTop","moveDown","moveElementDown","moveBottom","moveElementBottom","setZIndex","setElementZIndex","beforeDestroy","Animation","delay","duration","enabled","data","ShapeFilter","intensity","Shape","named","props","x","y","width","height","rotation","animations","array","blurEnabled","blurRadius","brightnessEnabled","brightness","sepiaEnabled","grayscaleEnabled","warmEnabled","coldEnabled","filters","map","shadowEnabled","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","shadowOpacity","numericKeys","forEach","boolKeys","setAnimation","existing","find","a","push","setFilter","ImageElement","src","cropX","cropY","cropWidth","cropHeight","cornerRadius","flipX","flipY","clipSrc","borderColor","borderSize","keepRatio","stretchEnabled","_cropModeEnabled","toggleCropMode","flag","TextElement","text","placeholder","fontSize","fontFamily","fontStyle","fontWeight","union","textDecoration","textTransform","fill","align","verticalAlign","strokeWidth","stroke","lineHeight","letterSpacing","backgroundEnabled","backgroundColor","backgroundOpacity","backgroundCornerRadius","backgroundPadding","curveEnabled","curvePower","parts","trim","split","styleWords","weightWords","weightKeywords","p","includes","join","String","_editModeEnabled","toggleEditMode","editing","SVGElement","maskSrc","colorsReplace","replaceColor","oldColor","newColor","FigureElement","subType","dash","pathData","LineElement","color","startHead","endHead","TYPES_MAP","image","svg","figure","line","ElementUnion","dispatcher","GroupElement","children","late","minX","Infinity","minY","maxX","maxY","child","cx","cy","cw","ch","Math","min","max","gx","gy","cj","getSnapshot","forEveryChild","node","cb","Page","literal","background","bleed","_exporting","_rendering","_forceMount","computedWidth","computedHeight","startTime","time","_iterator","_createForOfIteratorHelper","pages","_step","n","done","err","f","_exportingOrRendering","select","selectPage","addPage","elementData","newElement","selectElements","_findChildIndex","findIndex","c","canMoveElementsUp","ids","_iterator2","_step2","idx","moveElementsUp","_iterator3","_step3","splice","canMoveElementsTop","_iterator4","_step4","moveElementsTop","_iterator5","_step5","canMoveElementsDown","_iterator6","_step6","moveElementsDown","_iterator7","_step7","canMoveElementsBottom","_iterator8","_step8","moveElementsBottom","_iterator9","_step9","setSize","_ref2","useMagic","softChange","setPageZIndex","_forEachElementUp","callback","i","_forEachElementDown","play","History","history","undoIdx","targetPath","_isTransacting","_skipSave","_ignoring","canUndo","canRedo","startTransaction","endTransaction","skipSave","addUndoState","ignore","func","transaction","_asyncToGenerator","_regenerator","m","_callee","w","_context","root","stateToSave","scale","scaleToFit","console","warn","_restoreState","state","currentHistory","currentScale","currentScaleToFit","applySnapshot","savedPage","targetIds","currentIds","every","snapById","clear","undo","redo","afterCreate","replaceState","requestAddState","isBase64DataUrl","v","stripBase64FromElement","el","out","isInputField","inputField","Array","isArray","stripBase64FromExport","Font","url","styles","Audio","endTime","volume","Store","role","fonts","audios","unit","dpi","schemaVersion","bleedVisible","rulesVisible","distanceGuidesVisible","openedSidePanel","previousOpenedSidePanel","tool","selectedElementsIds","_activePageId","_selectedPagesIds","_elementsPixelRatio","_stageRef","_listeners","Map","_key","_showCredit","currentTime","isPlaying","_toolbarPanel","_fontVersion","_pendingInputFields","_idsMap","selectedElements","filter","Boolean","selectedShapes","activePage","selectedPages","active","total","inputFields","fields","_hasCroppedImages","getElementById","requestInputFields","_resolveInputField","_unresolveInputField","alreadyPending","some","unshift","clearPendingInputFields","_Object$entries2","_Object$entries2$_i","setUnit","setRole","setTool","setToolOptions","options","pageData","newPage","selectPages","replace","stillSelected","elementId","toggleBleed","toggleRulers","toggleDistanceGuides","openSidePanel","panelName","openToolbarPanel","closeToolbarPanel","setScale","_setScaleToFit","setElementsPixelRatio","ratio","deletePages","toRemove","destroy","groupElements","elements","sortedIndices","sort","b","groupChildren","_ref3","group","ungroupElements","newChildIds","groupSnapshot","groupX","groupY","childSnapshot","newEl","deleteElements","on","event","has","get","listeners","_emit","_setStageRef","ref","_toCanvas","_arguments","_ref4","_ref4$pixelRatio","pixelRatio","pageId","stage","layer","prevX","prevY","prevScaleX","prevScaleY","canvas","ignoreBackground","mimeType","includeBleed","_skipTimeout","quickMode","Error","getLayers","scaleX","scaleY","draw","toCanvas","toDataURL","_arguments2","_callee2","_ref5","_ref5$mimeType","_ref5$quality","quality","rest","_context2","dpiMetadata","_objectWithoutProperties","_excluded","toBlob","_arguments3","_callee3","_ref6","_ref6$mimeType","_ref6$quality","_context3","_excluded2","Promise","resolve","reject","blob","saveAsImage","_arguments4","_callee4","_ref7","_ref7$fileName","fileName","exportProps","dataURL","link","_context4","_excluded3","document","createElement","download","href","click","toPDFDataURL","_arguments5","_callee5","_ref8","_ref8$pixelRatio","_ref8$includeBleed","widthPt","heightPt","orientation","pdf","prevActivePageId","imgData","_context5","_toConsumableArray","jsPDF","format","compress","r","setTimeout","addImage","output","saveAsPDF","_arguments6","_callee6","_ref9","_ref9$fileName","_context6","_excluded4","saveAsJSON","_ref0","_ref0$fileName","_ref0$stripBase","stripBase64","JSON","stringify","Blob","URL","createObjectURL","revokeObjectURL","waitLoading","_arguments7","_callee7","_ref1","_ref1$_skipTimeout","_context7","loadJSON","keepHistory","parse","font","audio","_autoLoadFonts","_ref10","_ref10$keepHistory","addFont","removeFont","addAudio","removeAudio","audioId","loadFont","_callee8","_t","_context8","concat","toLowerCase","encodeURIComponent","rel","onload","onerror","head","appendChild","load","ready","batchDraw","Set","collectFromChildren","add","validate","errors","path","message","checkActivePage","setCurrentTime","_togglePlaying","playing","stop","seek","_initConfig","showCredit","createStore","_ref11","_ref11$key","_ref11$showCredit","create"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,IAAMA,IAAI,GAAGC,KAAK,CACtBC,KAAK,CAAC,MAAM,EAAE;EACbC,EAAE,EAAEF,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACI,UAAU,EAAE,YAAA;IAAA,OAAMC,EAAM,EAAE;EAAA,CAAA,CAAC;EACpDC,IAAI,EAAEN,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EACtCC,IAAI,EAAER,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EACtCE,OAAO,EAAET,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;AACxCC,EAAAA,MAAM,EAAEX,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACY,MAAM,EAAE,EAAE,EAAE,CAAC;EAC1CC,OAAO,EAAEb,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,IAAI,CAAC;EAC5Cc,UAAU,EAAEd,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,IAAI,CAAC;EAC/Ce,SAAS,EAAEf,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,IAAI,CAAC;EAC9CgB,WAAW,EAAEhB,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EACjDiB,YAAY,EAAEjB,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,IAAI;AAClD,CAAC,CAAC,CACDkB,kBAAkB,CAAC,UAACC,QAAQ,EAAK;AAChC,EAAA,IAAI,CAACA,QAAQ,EAAE,OAAOA,QAAQ;AAC9B,EAAA,IAAMC,CAAC,GAAAC,cAAA,CAAA,EAAA,EAAQF,QAAQ,CAAE;;AAEzB;AACA,EAAA,IAAIC,CAAC,CAACE,MAAM,KAAK,IAAI,EAAE;IACrB,IAAIF,CAAC,CAACG,SAAS,KAAKC,SAAS,EAAEJ,CAAC,CAACG,SAAS,GAAG,KAAK;IAClD,IAAIH,CAAC,CAACK,SAAS,KAAKD,SAAS,EAAEJ,CAAC,CAACK,SAAS,GAAG,KAAK;IAClD,IAAIL,CAAC,CAACM,eAAe,KAAKF,SAAS,EAAEJ,CAAC,CAACM,eAAe,GAAG,KAAK;IAC9D,IAAIN,CAAC,CAACO,aAAa,KAAKH,SAAS,EAAEJ,CAAC,CAACO,aAAa,GAAG,KAAK;AAC5D,EAAA;EACA,OAAOP,CAAC,CAACE,MAAM;;AAEf;AACA,EAAA,IAAI,OAAOF,CAAC,CAACX,OAAO,KAAK,QAAQ,EAAE;IACjCW,CAAC,CAACX,OAAO,GAAGmB,UAAU,CAACR,CAAC,CAACX,OAAO,CAAC,IAAI,CAAC;AACxC,EAAA;AAEA,EAAA,OAAOW,CAAC;AACV,CAAC,CAAC,CACDS,KAAK,CAAC,UAACC,IAAI,EAAA;EAAA,OAAM;IAChB,IAAIR,MAAMA,GAAG;AACX,MAAA,OACE,CAACQ,IAAI,CAACP,SAAS,IACf,CAACO,IAAI,CAACL,SAAS,IACf,CAACK,IAAI,CAACJ,eAAe,IACrB,CAACI,IAAI,CAACH,aAAa;IAEvB,CAAC;IACD,IAAII,IAAIA,GAAG;MACT,IAAI;AACF,QAAA,IAAIC,MAAM,GAAGC,SAAS,CAACH,IAAI,CAAC;AAC5B;AACA,QAAA,IAAIE,MAAM,IAAIC,SAAS,CAACD,MAAM,CAAC,EAAE;UAC/B,OAAOC,SAAS,CAACD,MAAM,CAAC;AAC1B,QAAA;MACF,CAAC,CAAC,OAAOE,CAAC,EAAE;AACV;AAAA,MAAA;AAEF,MAAA,OAAOV,SAAS;IAClB,CAAC;IACD,IAAIW,KAAKA,GAAG;MACV,IAAI;QACF,OAAOC,OAAO,CAACN,IAAI,CAAC;MACtB,CAAC,CAAC,OAAOI,CAAC,EAAE;AACV,QAAA,OAAOV,SAAS;AAClB,MAAA;IACF,CAAC;IACD,IAAIa,GAAGA,GAAG;AACR;MACA,IAAI;AACF,QAAA,IAAIL,MAAM,GAAGC,SAAS,CAACH,IAAI,CAAC;AAC5B,QAAA,IAAIE,MAAM,EAAE;AACV,UAAA,IAAIM,WAAW,GAAGL,SAAS,CAACD,MAAM,CAAC;AACnC,UAAA,IAAIM,WAAW,IAAIA,WAAW,CAAChC,IAAI,KAAK,OAAO,EAAE;YAC/C,OAAOgC,WAAW,CAACD,GAAG;AACxB,UAAA;AACF,QAAA;MACF,CAAC,CAAC,OAAOH,CAAC,EAAE;AACV;AAAA,MAAA;AAEF,MAAA,OAAOJ,IAAI;IACb,CAAC;IACD,IAAIE,MAAMA,GAAG;MACX,IAAI;AACF,QAAA,IAAMO,GAAG,GAAGN,SAAS,CAACH,IAAI,CAAC;AAC3B,QAAA,IAAIS,GAAG,EAAE;UACP,OAAON,SAAS,CAACM,GAAG,CAAC;AACvB,QAAA;MACF,CAAC,CAAC,OAAOL,CAAC,EAAE;AACV;AAAA,MAAA;AAEF,MAAA,OAAOV,SAAS;IAClB,CAAC;IACD,IAAIgB,MAAMA,GAAG;MACX,IAAI;AACF,QAAA,IAAMD,GAAG,GAAGN,SAAS,CAACH,IAAI,CAAC;AAC3B,QAAA,IAAIS,GAAG,EAAE;AACP,UAAA,OAAOA,GAAG,CAACE,OAAO,CAACX,IAAI,CAAC;AAC1B,QAAA;MACF,CAAC,CAAC,OAAOI,CAAC,EAAE;AACV;AAAA,MAAA;AAEF,MAAA,OAAO,CAAC;AACV,IAAA;GACD;AAAA,CAAC,CAAC,CACFQ,OAAO,CAAC,UAACZ,IAAI,EAAA;EAAA,OAAM;IAClBa,MAAM,EAAA,SAANA,MAAMA,GAAG;MACP,IAAMC,IAAI,GAAG,EAAE;AACf,MAAA,IAAMzB,QAAQ,GAAAE,cAAA,CAAA,EAAA,EAAQS,IAAI,CAAE;AAC5B,MAAA,KAAA,IAAAe,EAAA,GAAA,CAAA,EAAAC,YAAA,GAAkBC,MAAM,CAACC,IAAI,CAAC7B,QAAQ,CAAC,EAAA0B,EAAA,GAAAC,YAAA,CAAAG,MAAA,EAAAJ,EAAA,EAAA,EAAE;AAApC,QAAA,IAAMK,GAAG,GAAAJ,YAAA,CAAAD,EAAA,CAAA;AACZ,QAAA,IAAIK,GAAG,CAACC,UAAU,CAAC,GAAG,CAAC,EAAE;AACzBP,QAAAA,IAAI,CAACM,GAAG,CAAC,GAAG/B,QAAQ,CAAC+B,GAAG,CAAC;AAC3B,MAAA;AACA,MAAA,OAAON,IAAI;AACb,IAAA;GACD;AAAA,CAAC,CAAC,CACFF,OAAO,CAAC,UAACZ,IAAI,EAAA;EAAA,OAAM;IAClBsB,KAAK,EAAA,SAALA,KAAKA,GAA0C;AAAA,MAAA,IAAzCC,KAAK,GAAAC,SAAA,CAAAL,MAAA,GAAA,CAAA,IAAAK,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,MAAA,IAAAC,IAAA,GAAAD,SAAA,CAAAL,MAAA,GAAA,CAAA,IAAAK,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAA2B,EAAE;QAAAE,eAAA,GAAAD,IAAA,CAAzBE,UAAU;AAAVA,QAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,eAAA;AACpC,MAAA,IAAMZ,IAAI,GAAGd,IAAI,CAACa,MAAM,EAAE;MAC1B,OAAOC,IAAI,CAAC1C,EAAE;AACd6C,MAAAA,MAAM,CAACW,MAAM,CAACd,IAAI,EAAES,KAAK,CAAC;AAC1B,MAAA,IAAMtB,IAAI,GAAGD,IAAI,CAACC,IAAI;AACtB,MAAA,IAAIA,IAAI,EAAE;AACR,QAAA,OAAOA,IAAI,CAAC4B,UAAU,CAACf,IAAI,EAAE;AAAEa,UAAAA,UAAU,EAAVA;AAAW,SAAC,CAAC;AAC9C,MAAA;AACA,MAAA,OAAO,IAAI;IACb,CAAC;AACDG,IAAAA,GAAG,EAAA,SAAHA,GAAGA,CAACP,KAAK,EAAE;AACT,MAAA,KAAA,IAAAQ,GAAA,GAAA,CAAA,EAAAC,eAAA,GAA2Bf,MAAM,CAACgB,OAAO,CAACV,KAAK,CAAC,EAAAQ,GAAA,GAAAC,eAAA,CAAAb,MAAA,EAAAY,GAAA,EAAA,EAAE;AAA7C,QAAA,IAAAG,kBAAA,GAAAC,cAAA,CAAAH,eAAA,CAAAD,GAAA,CAAA,EAAA,CAAA,CAAA;AAAOX,UAAAA,GAAG,GAAAc,kBAAA,CAAA,CAAA,CAAA;AAAEE,UAAAA,KAAK,GAAAF,kBAAA,CAAA,CAAA,CAAA;AACpB,QAAA,IAAId,GAAG,IAAIpB,IAAI,IAAIoB,GAAG,KAAK,IAAI,EAAE;AAC/BpB,UAAAA,IAAI,CAACoB,GAAG,CAAC,GAAGgB,KAAK;AACnB,QAAA;AACF,MAAA;IACF,CAAC;IACDC,MAAM,EAAA,SAANA,MAAMA,GAAG;AACP,MAAA,IAAMpC,IAAI,GAAGD,IAAI,CAACC,IAAI;AACtB,MAAA,IAAIA,IAAI,EAAE;AACRA,QAAAA,IAAI,CAACqC,aAAa,CAACtC,IAAI,CAAC5B,EAAE,CAAC;AAC7B,MAAA;IACF,CAAC;IACDmE,OAAO,EAAA,SAAPA,OAAOA,GAAG;AACR,MAAA,IAAMtC,IAAI,GAAGD,IAAI,CAACC,IAAI;AACtB,MAAA,IAAIA,IAAI,EAAE;AACRA,QAAAA,IAAI,CAACuC,cAAc,CAACxC,IAAI,CAAC5B,EAAE,CAAC;AAC9B,MAAA;IACF,CAAC;IACDqE,QAAQ,EAAA,SAARA,QAAQA,GAAG;AACT,MAAA,IAAMxC,IAAI,GAAGD,IAAI,CAACC,IAAI;AACtB,MAAA,IAAIA,IAAI,EAAE;AACRA,QAAAA,IAAI,CAACyC,eAAe,CAAC1C,IAAI,CAAC5B,EAAE,CAAC;AAC/B,MAAA;IACF,CAAC;IACDuE,UAAU,EAAA,SAAVA,UAAUA,GAAG;AACX,MAAA,IAAM1C,IAAI,GAAGD,IAAI,CAACC,IAAI;AACtB,MAAA,IAAIA,IAAI,EAAE;AACRA,QAAAA,IAAI,CAAC2C,iBAAiB,CAAC5C,IAAI,CAAC5B,EAAE,CAAC;AACjC,MAAA;IACF,CAAC;AACDyE,IAAAA,SAAS,EAAA,SAATA,SAASA,CAACnC,MAAM,EAAE;AAChB,MAAA,IAAMT,IAAI,GAAGD,IAAI,CAACC,IAAI;AACtB,MAAA,IAAIA,IAAI,EAAE;QACRA,IAAI,CAAC6C,gBAAgB,CAAC9C,IAAI,CAAC5B,EAAE,EAAEsC,MAAM,CAAC;AACxC,MAAA;IACF,CAAC;IACDqC,aAAa,EAAA,SAAbA,aAAaA,GAAG;AACd;AAAA,IAAA;GAEH;AAAA,CAAC,CAAC;;ACjKL,IAAMC,SAAS,GAAG9E,KAAK,CAACC,KAAK,CAAC,WAAW,EAAE;EACzC8E,KAAK,EAAE/E,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACtCsE,QAAQ,EAAEhF,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACzCuE,OAAO,EAAEjF,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EAC7CM,IAAI,EAAEN,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EACtCC,IAAI,EAAER,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;AACtC2E,EAAAA,IAAI,EAAElF,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACY,MAAM,EAAE,EAAE,EAAE;AACzC,CAAC,CAAC;AAEF,IAAMuE,WAAW,GAAGnF,KAAK,CAACC,KAAK,CAAC,aAAa,EAAE;EAC7CmF,SAAS,EAAEpF,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC;AAC3C,CAAC,CAAC;AAEK,IAAM2E,KAAK,GAAGtF,IAAI,CAACuF,KAAK,CAAC,OAAO,CAAC,CACrCC,KAAK,CAAC;EACLC,CAAC,EAAExF,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAClC+E,CAAC,EAAEzF,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAClCgF,KAAK,EAAE1F,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,GAAG,CAAC;EACxCiF,MAAM,EAAE3F,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,GAAG,CAAC;EACzCkF,QAAQ,EAAE5F,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;AAEzCmF,EAAAA,UAAU,EAAE7F,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAC8F,KAAK,CAAChB,SAAS,CAAC,EAAE,EAAE,CAAC;AAEtD;EACAiB,WAAW,EAAE/F,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EACjDgG,UAAU,EAAEhG,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,EAAE,CAAC;EAC5CuF,iBAAiB,EAAEjG,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EACvDkG,UAAU,EAAElG,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC3CyF,YAAY,EAAEnG,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EAClDoG,gBAAgB,EAAEpG,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EACtDqG,WAAW,EAAErG,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EACjDsG,WAAW,EAAEtG,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;AACjDuG,EAAAA,OAAO,EAAEvG,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACwG,GAAG,CAACrB,WAAW,CAAC,EAAE,EAAE,CAAC;AAEnD;EACAsB,aAAa,EAAEzG,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EACnD0G,UAAU,EAAE1G,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC3CiG,aAAa,EAAE3G,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC9CkG,aAAa,EAAE5G,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC9CmG,WAAW,EAAE7G,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,OAAO,CAAC;EAClDuG,aAAa,EAAE9G,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;AAE9C;EACAa,SAAS,EAAEvB,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,IAAI,CAAC;EAC9CyB,SAAS,EAAEzB,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,IAAI,CAAC;EAC9C0B,eAAe,EAAE1B,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,IAAI,CAAC;EACpD2B,aAAa,EAAE3B,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,IAAI;AACnD,CAAC,CAAC,CACDkB,kBAAkB,CAAC,UAACC,QAAQ,EAAK;AAChC,EAAA,IAAI,CAACA,QAAQ,EAAE,OAAOA,QAAQ;AAC9B,EAAA,IAAMC,CAAC,GAAAC,cAAA,CAAA,EAAA,EAAQF,QAAQ,CAAE;;AAEzB;EACA,IAAM4F,WAAW,GAAG,CAClB,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EACvC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAChE;AACDA,EAAAA,WAAW,CAACC,OAAO,CAAC,UAAC9D,GAAG,EAAK;IAC3B,IAAIA,GAAG,IAAI9B,CAAC,IAAI,OAAOA,CAAC,CAAC8B,GAAG,CAAC,KAAK,QAAQ,EAAE;AAC1C9B,MAAAA,CAAC,CAAC8B,GAAG,CAAC,GAAGtB,UAAU,CAACR,CAAC,CAAC8B,GAAG,CAAC,CAAC,IAAI,CAAC;AAClC,IAAA;AACF,EAAA,CAAC,CAAC;;AAEF;EACA,IAAM+D,QAAQ,GAAG,CACf,aAAa,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EACpG,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,CAC9E;AACDA,EAAAA,QAAQ,CAACD,OAAO,CAAC,UAAC9D,GAAG,EAAK;IACxB,IAAIA,GAAG,IAAI9B,CAAC,IAAI,OAAOA,CAAC,CAAC8B,GAAG,CAAC,KAAK,QAAQ,EAAE;MAC1C9B,CAAC,CAAC8B,GAAG,CAAC,GAAG9B,CAAC,CAAC8B,GAAG,CAAC,KAAK,MAAM;AAC5B,IAAA;AACF,EAAA,CAAC,CAAC;AAEF,EAAA,OAAO9B,CAAC;AACV,CAAC,CAAC,CACDsB,OAAO,CAAC,UAACZ,IAAI,EAAA;EAAA,OAAM;AAClBoF,IAAAA,YAAY,WAAZA,YAAYA,CAAC5G,IAAI,EAAE+C,KAAK,EAAE;MACxB,IAAM8D,QAAQ,GAAGrF,IAAI,CAAC+D,UAAU,CAACuB,IAAI,CAAC,UAACC,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAC/G,IAAI,KAAKA,IAAI;MAAA,CAAA,CAAC;AAC7D,MAAA,IAAI6G,QAAQ,EAAE;AACZpE,QAAAA,MAAM,CAACW,MAAM,CAACyD,QAAQ,EAAE9D,KAAK,CAAC;AAChC,MAAA,CAAC,MAAM;AACLvB,QAAAA,IAAI,CAAC+D,UAAU,CAACyB,IAAI,CAAAjG,cAAA,CAAA;AAAGf,UAAAA,IAAI,EAAJA;SAAI,EAAK+C,KAAK,CAAE,CAAC;AAC1C,MAAA;IACF,CAAC;AACDkE,IAAAA,SAAS,WAATA,SAASA,CAACjH,IAAI,EAAE4D,KAAK,EAAE;AACrBpC,MAAAA,IAAI,CAACyE,OAAO,CAAC3C,GAAG,CAACtD,IAAI,EAAE;AAAE8E,QAAAA,SAAS,EAAElB;AAAM,OAAC,CAAC;AAC9C,IAAA;GACD;AAAA,CAAC,CAAC;;ACzFE,IAAMsD,YAAY,GAAGnC,KAAK,CAACC,KAAK,CAAC,cAAc,CAAC,CACpDC,KAAK,CAAC;EACLjF,IAAI,EAAEN,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,OAAO,CAAC;EAC3CkH,GAAG,EAAEzH,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EACrCmH,KAAK,EAAE1H,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACtCiH,KAAK,EAAE3H,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACtCkH,SAAS,EAAE5H,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC1CmH,UAAU,EAAE7H,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC3CoH,YAAY,EAAE9H,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC7CqH,KAAK,EAAE/H,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EAC3CgI,KAAK,EAAEhI,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EAC3CiI,OAAO,EAAEjI,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EACzC2H,WAAW,EAAElI,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EAC7C4H,UAAU,EAAEnI,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC3C0H,SAAS,EAAEpI,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,IAAI,CAAC;EAC9CqI,cAAc,EAAErI,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK;AACrD,CAAC,CAAC,CACDkB,kBAAkB,CAAC,UAACC,QAAQ,EAAK;AAChC,EAAA,IAAI,CAACA,QAAQ,EAAE,OAAOA,QAAQ;AAC9B,EAAA,IAAMC,CAAC,GAAAC,cAAA,CAAA,EAAA,EAAQF,QAAQ,CAAE;AACzB,EAAA,IAAM4F,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC;AAC/FA,EAAAA,WAAW,CAACC,OAAO,CAAC,UAAC9D,GAAG,EAAK;IAC3B,IAAIA,GAAG,IAAI9B,CAAC,IAAI,OAAOA,CAAC,CAAC8B,GAAG,CAAC,KAAK,QAAQ,EAAE;AAC1C9B,MAAAA,CAAC,CAAC8B,GAAG,CAAC,GAAGtB,UAAU,CAACR,CAAC,CAAC8B,GAAG,CAAC,CAAC,IAAI,CAAC;AAClC,IAAA;AACF,EAAA,CAAC,CAAC;EACF,IAAM+D,QAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC;AAClEA,EAAAA,QAAQ,CAACD,OAAO,CAAC,UAAC9D,GAAG,EAAK;IACxB,IAAIA,GAAG,IAAI9B,CAAC,IAAI,OAAOA,CAAC,CAAC8B,GAAG,CAAC,KAAK,QAAQ,EAAE;MAC1C9B,CAAC,CAAC8B,GAAG,CAAC,GAAG9B,CAAC,CAAC8B,GAAG,CAAC,KAAK,MAAM;AAC5B,IAAA;AACF,EAAA,CAAC,CAAC;AACF,EAAA,OAAO9B,CAAC;AACV,CAAC,CAAC,YACO,CAAC,YAAA;EAAA,OAAO;AACfkH,IAAAA,gBAAgB,EAAE;GACnB;AAAA,CAAC,CAAC,CACF5F,OAAO,CAAC,UAACZ,IAAI,EAAA;EAAA,OAAM;AAClByG,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACC,IAAI,EAAE;AACnB1G,MAAAA,IAAI,CAACwG,gBAAgB,GAAGE,IAAI,KAAKhH,SAAS,GAAGgH,IAAI,GAAG,CAAC1G,IAAI,CAACwG,gBAAgB;AAC5E,IAAA;GACD;AAAA,CAAC,CAAC;;ACzCE,IAAMG,WAAW,GAAGpD,KAAK,CAACC,KAAK,CAAC,aAAa,CAAC,CAClDC,KAAK,CAAC;EACLjF,IAAI,EAAEN,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,MAAM,CAAC;EAC1CmI,IAAI,EAAE1I,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EACtCoI,WAAW,EAAE3I,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EAC7CqI,QAAQ,EAAE5I,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,EAAE,CAAC;EAC1CmI,UAAU,EAAE7I,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,QAAQ,CAAC;EAClDuI,SAAS,EAAE9I,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,QAAQ,CAAC;AACjDwI,EAAAA,UAAU,EAAE/I,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACgJ,KAAK,CAAChJ,KAAK,CAACO,MAAM,EAAEP,KAAK,CAACU,MAAM,CAAC,EAAE,QAAQ,CAAC;EAC7EuI,cAAc,EAAEjJ,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EAChD2I,aAAa,EAAElJ,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EAC/C4I,IAAI,EAAEnJ,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,SAAS,CAAC;EAC7C6I,KAAK,EAAEpJ,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,QAAQ,CAAC;EAC7C8I,aAAa,EAAErJ,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,KAAK,CAAC;EAClD+I,WAAW,EAAEtJ,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC5C6I,MAAM,EAAEvJ,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;AACxCiJ,EAAAA,UAAU,EAAExJ,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACgJ,KAAK,CAAChJ,KAAK,CAACU,MAAM,EAAEV,KAAK,CAACO,MAAM,CAAC,EAAE,GAAG,CAAC;EACxEkJ,aAAa,EAAEzJ,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;AAE9C;EACAgJ,iBAAiB,EAAE1J,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EACvD2J,eAAe,EAAE3J,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,SAAS,CAAC;EACxDqJ,iBAAiB,EAAE5J,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAClDmJ,sBAAsB,EAAE7J,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACvDoJ,iBAAiB,EAAE9J,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;AAElD;EACAqJ,YAAY,EAAE/J,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EAClDgK,UAAU,EAAEhK,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC;AAC5C,CAAC,CAAC,CACDQ,kBAAkB,CAAC,UAACC,QAAQ,EAAK;AAChC,EAAA,IAAI,CAACA,QAAQ,EAAE,OAAOA,QAAQ;AAC9B,EAAA,IAAMC,CAAC,GAAAC,cAAA,CAAA,EAAA,EAAQF,QAAQ,CAAE;;AAEzB;EACA,IAAIC,CAAC,CAAC0H,SAAS,IAAI,OAAO1H,CAAC,CAAC0H,SAAS,KAAK,QAAQ,EAAE;AAClD,IAAA,IAAMmB,KAAK,GAAG7I,CAAC,CAAC0H,SAAS,CAACoB,IAAI,EAAE,CAACC,KAAK,CAAC,KAAK,CAAC;IAC7C,IAAMC,UAAU,GAAG,EAAE;IACrB,IAAMC,WAAW,GAAG,EAAE;AACtB,IAAA,IAAMC,cAAc,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAC3D,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,CAAC;AACxDL,IAAAA,KAAK,CAACjD,OAAO,CAAC,UAACuD,CAAC,EAAK;AACnB,MAAA,IAAID,cAAc,CAACE,QAAQ,CAACD,CAAC,CAAC,EAAE;AAC9BF,QAAAA,WAAW,CAAC/C,IAAI,CAACiD,CAAC,CAAC;AACrB,MAAA,CAAC,MAAM;AACLH,QAAAA,UAAU,CAAC9C,IAAI,CAACiD,CAAC,CAAC;AACpB,MAAA;AACF,IAAA,CAAC,CAAC;IACF,IAAIF,WAAW,CAACpH,MAAM,GAAG,CAAC,IAAI,CAAC7B,CAAC,CAAC2H,UAAU,EAAE;AAC3C3H,MAAAA,CAAC,CAAC2H,UAAU,GAAGsB,WAAW,CAAC,CAAC,CAAC;AAC/B,IAAA,CAAC,MAAM,IAAIA,WAAW,CAACpH,MAAM,GAAG,CAAC,IAAI7B,CAAC,CAAC2H,UAAU,KAAK,QAAQ,EAAE;AAC9D3H,MAAAA,CAAC,CAAC2H,UAAU,GAAGsB,WAAW,CAAC,CAAC,CAAC;AAC/B,IAAA;AACAjJ,IAAAA,CAAC,CAAC0H,SAAS,GAAGsB,UAAU,CAACnH,MAAM,GAAG,CAAC,GAAGmH,UAAU,CAACK,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ;AACvE,EAAA;;AAEA;AACA,EAAA,IAAI,OAAOrJ,CAAC,CAAC2H,UAAU,KAAK,QAAQ,EAAE;IACpC3H,CAAC,CAAC2H,UAAU,GAAG2B,MAAM,CAACtJ,CAAC,CAAC2H,UAAU,CAAC;AACrC,EAAA;;AAEA;AACA,EAAA,IAAMhC,WAAW,GAAG,CAClB,UAAU,EAAE,eAAe,EAAE,aAAa,EAC1C,mBAAmB,EAAE,wBAAwB,EAAE,mBAAmB,EAClE,YAAY,CACb;AACDA,EAAAA,WAAW,CAACC,OAAO,CAAC,UAAC9D,GAAG,EAAK;IAC3B,IAAIA,GAAG,IAAI9B,CAAC,IAAI,OAAOA,CAAC,CAAC8B,GAAG,CAAC,KAAK,QAAQ,EAAE;AAC1C9B,MAAAA,CAAC,CAAC8B,GAAG,CAAC,GAAGtB,UAAU,CAACR,CAAC,CAAC8B,GAAG,CAAC,CAAC,IAAI,CAAC;AAClC,IAAA;AACF,EAAA,CAAC,CAAC;;AAEF;AACA,EAAA,IAAM+D,QAAQ,GAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC;AACtDA,EAAAA,QAAQ,CAACD,OAAO,CAAC,UAAC9D,GAAG,EAAK;IACxB,IAAIA,GAAG,IAAI9B,CAAC,IAAI,OAAOA,CAAC,CAAC8B,GAAG,CAAC,KAAK,QAAQ,EAAE;MAC1C9B,CAAC,CAAC8B,GAAG,CAAC,GAAG9B,CAAC,CAAC8B,GAAG,CAAC,KAAK,MAAM;AAC5B,IAAA;AACF,EAAA,CAAC,CAAC;AAEF,EAAA,OAAO9B,CAAC;AACV,CAAC,CAAC,YACO,CAAC,YAAA;EAAA,OAAO;AACfuJ,IAAAA,gBAAgB,EAAE;GACnB;AAAA,CAAC,CAAC,CACFjI,OAAO,CAAC,UAACZ,IAAI,EAAA;EAAA,OAAM;AAClB8I,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACC,OAAO,EAAE;AACtB/I,MAAAA,IAAI,CAAC6I,gBAAgB,GACnBE,OAAO,KAAKrJ,SAAS,GAAGqJ,OAAO,GAAG,CAAC/I,IAAI,CAAC6I,gBAAgB;AAC5D,IAAA;GACD;AAAA,CAAC,CAAC;;AC3FE,IAAMG,UAAU,GAAGzF,KAAK,CAACC,KAAK,CAAC,YAAY,CAAC,CAChDC,KAAK,CAAC;EACLjF,IAAI,EAAEN,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,KAAK,CAAC;EACzCkH,GAAG,EAAEzH,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EACrCwK,OAAO,EAAE/K,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EACzCmH,KAAK,EAAE1H,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACtCiH,KAAK,EAAE3H,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACtCkH,SAAS,EAAE5H,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC1CmH,UAAU,EAAE7H,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC3C0H,SAAS,EAAEpI,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,IAAI,CAAC;EAC9CqI,cAAc,EAAErI,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EACpD+H,KAAK,EAAE/H,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EAC3CgI,KAAK,EAAEhI,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EAC3CkI,WAAW,EAAElI,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EAC7C4H,UAAU,EAAEnI,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC3CoH,YAAY,EAAE9H,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;AAC7CsK,EAAAA,aAAa,EAAEhL,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACwG,GAAG,CAACxG,KAAK,CAACO,MAAM,CAAC,EAAE,EAAE;AAC3D,CAAC,CAAC,CACDmC,OAAO,CAAC,UAACZ,IAAI,EAAA;EAAA,OAAM;AAClBmJ,IAAAA,YAAY,WAAZA,YAAYA,CAACC,QAAQ,EAAEC,QAAQ,EAAE;MAC/BrJ,IAAI,CAACkJ,aAAa,CAACpH,GAAG,CAACsH,QAAQ,EAAEC,QAAQ,CAAC;AAC5C,IAAA;GACD;AAAA,CAAC,CAAC;;ACtBE,IAAMC,aAAa,GAAG/F,KAAK,CAACC,KAAK,CAAC,eAAe,CAAC,CACtDC,KAAK,CAAC;EACLjF,IAAI,EAAEN,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,QAAQ,CAAC;EAC5C8K,OAAO,EAAErL,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,MAAM,CAAC;EAC7C4I,IAAI,EAAEnJ,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,SAAS,CAAC;AAC7C+K,EAAAA,IAAI,EAAEtL,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAC8F,KAAK,CAAC9F,KAAK,CAACU,MAAM,CAAC,EAAE,EAAE,CAAC;EACnD4I,WAAW,EAAEtJ,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC5C6I,MAAM,EAAEvJ,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EACxCuH,YAAY,EAAE9H,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC7C6K,QAAQ,EAAEvL,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE;AAC3C,CAAC,CAAC,CACDW,kBAAkB,CAAC,UAACC,QAAQ,EAAK;AAChC,EAAA,IAAI,CAACA,QAAQ,EAAE,OAAOA,QAAQ;AAC9B,EAAA,IAAMC,CAAC,GAAAC,cAAA,CAAA,EAAA,EAAQF,QAAQ,CAAE;AACzB,EAAA,IAAM4F,WAAW,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC;AACnDA,EAAAA,WAAW,CAACC,OAAO,CAAC,UAAC9D,GAAG,EAAK;IAC3B,IAAIA,GAAG,IAAI9B,CAAC,IAAI,OAAOA,CAAC,CAAC8B,GAAG,CAAC,KAAK,QAAQ,EAAE;AAC1C9B,MAAAA,CAAC,CAAC8B,GAAG,CAAC,GAAGtB,UAAU,CAACR,CAAC,CAAC8B,GAAG,CAAC,CAAC,IAAI,CAAC;AAClC,IAAA;AACF,EAAA,CAAC,CAAC;AACF,EAAA,OAAO9B,CAAC;AACV,CAAC,CAAC;;ACrBG,IAAMoK,WAAW,GAAGnG,KAAK,CAACC,KAAK,CAAC,aAAa,CAAC,CAClDC,KAAK,CAAC;EACLjF,IAAI,EAAEN,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,MAAM,CAAC;EAC1CkL,KAAK,EAAEzL,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,SAAS,CAAC;AAC9C+K,EAAAA,IAAI,EAAEtL,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAC8F,KAAK,CAAC9F,KAAK,CAACU,MAAM,CAAC,EAAE,EAAE,CAAC;EACnDgL,SAAS,EAAE1L,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EAC3CoL,OAAO,EAAE3L,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE;AAC1C,CAAC,CAAC;;ACFG,IAAMqL,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAErE,YAAY;AACnBkB,EAAAA,IAAI,EAAED,WAAW;AACjBqD,EAAAA,GAAG,EAAEhB,UAAU;AACfiB,EAAAA,MAAM,EAAEX,aAAa;AACrBY,EAAAA,IAAI,EAAER;AACR,CAAC;AAED,IAAMS,YAAY,GAAGjM,KAAK,CAACgJ,KAAK,CAC9B;AACEkD,EAAAA,UAAU,EAAE,SAAZA,UAAUA,CAAG/K,QAAQ,EAAK;IACxB,IAAI,CAACA,QAAQ,IAAI,CAACA,QAAQ,CAACb,IAAI,EAAE,OAAOP,IAAI;AAC5C,IAAA,IAAME,KAAK,GAAG2L,SAAS,CAACzK,QAAQ,CAACb,IAAI,CAAC;IACtC,IAAIL,KAAK,EAAE,OAAOA,KAAK;AACvB;AACA,IAAA,IAAIkB,QAAQ,CAACb,IAAI,KAAK,OAAO,EAAE,OAAO6L,YAAY;AAClD,IAAA,OAAOpM,IAAI;AACb,EAAA;AACF,CAAC,EACDyH,YAAY,EACZiB,WAAW,EACXqC,UAAU,EACVM,aAAa,EACbI,WAAW;AACX;AACAzL,IACF,CAAC;AAEM,IAAMoM,YAAY,GAAGpM,IAAI,CAACuF,KAAK,CAAC,cAAc,CAAC,CACnDC,KAAK,CAAC;EACLjF,IAAI,EAAEN,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,OAAO,CAAC;EAC3CiF,CAAC,EAAExF,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAClC+E,CAAC,EAAEzF,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAClCgF,KAAK,EAAE1F,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACtCiF,MAAM,EAAE3F,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACvCkF,QAAQ,EAAE5F,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACzCa,SAAS,EAAEvB,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,IAAI,CAAC;EAC9CyB,SAAS,EAAEzB,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,IAAI,CAAC;AAC9CoM,EAAAA,QAAQ,EAAEpM,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAC8F,KAAK,CAAC9F,KAAK,CAACqM,IAAI,CAAC,YAAA;AAAA,IAAA,OAAMJ,YAAY;EAAA,CAAA,CAAC,CAAC,EAAE,EAAE;AAC1E,CAAC,CAAC,CACD/K,kBAAkB,CAAC,UAACC,QAAQ,EAAK;AAChC,EAAA,IAAI,CAACA,QAAQ,EAAE,OAAOA,QAAQ;AAC9B,EAAA,IAAMC,CAAC,GAAAC,cAAA,CAAA,EAAA,EAAQF,QAAQ,CAAE;;AAEzB;AACA,EAAA,IAAIC,CAAC,CAACgL,QAAQ,IAAIhL,CAAC,CAACgL,QAAQ,CAACnJ,MAAM,GAAG,CAAC,IAAI,EAAE7B,CAAC,CAACsE,KAAK,GAAG,CAAC,CAAC,EAAE;IACzD,IAAI4G,IAAI,GAAGC,QAAQ;AAAEC,MAAAA,IAAI,GAAGD,QAAQ;MAAEE,IAAI,GAAG,CAACF,QAAQ;MAAEG,IAAI,GAAG,CAACH,QAAQ;AACxEnL,IAAAA,CAAC,CAACgL,QAAQ,CAACpF,OAAO,CAAC,UAAC2F,KAAK,EAAK;AAC5B,MAAA,IAAMC,EAAE,GAAGD,KAAK,CAACnH,CAAC,IAAI,CAAC;AACvB,MAAA,IAAMqH,EAAE,GAAGF,KAAK,CAAClH,CAAC,IAAI,CAAC;AACvB,MAAA,IAAMqH,EAAE,GAAGH,KAAK,CAACjH,KAAK,IAAI,CAAC;AAC3B,MAAA,IAAMqH,EAAE,GAAGJ,KAAK,CAAChH,MAAM,IAAI,CAAC;MAC5B2G,IAAI,GAAGU,IAAI,CAACC,GAAG,CAACX,IAAI,EAAEM,EAAE,CAAC;MACzBJ,IAAI,GAAGQ,IAAI,CAACC,GAAG,CAACT,IAAI,EAAEK,EAAE,CAAC;MACzBJ,IAAI,GAAGO,IAAI,CAACE,GAAG,CAACT,IAAI,EAAEG,EAAE,GAAGE,EAAE,CAAC;MAC9BJ,IAAI,GAAGM,IAAI,CAACE,GAAG,CAACR,IAAI,EAAEG,EAAE,GAAGE,EAAE,CAAC;AAChC,IAAA,CAAC,CAAC;IACF,IAAIT,IAAI,KAAKC,QAAQ,EAAE;MACrBnL,CAAC,CAACoE,CAAC,GAAG8G,IAAI;MACVlL,CAAC,CAACqE,CAAC,GAAG+G,IAAI;AACVpL,MAAAA,CAAC,CAACsE,KAAK,GAAG+G,IAAI,GAAGH,IAAI;AACrBlL,MAAAA,CAAC,CAACuE,MAAM,GAAG+G,IAAI,GAAGF,IAAI;MACtBpL,CAAC,CAACgL,QAAQ,GAAGhL,CAAC,CAACgL,QAAQ,CAAC5F,GAAG,CAAC,UAACmG,KAAK,EAAA;AAAA,QAAA,OAAAtL,cAAA,CAAAA,cAAA,CAAA,EAAA,EAC7BsL,KAAK,CAAA,EAAA,EAAA,EAAA;UACRnH,CAAC,EAAE,CAACmH,KAAK,CAACnH,CAAC,IAAI,CAAC,IAAI8G,IAAI;AACxB7G,UAAAA,CAAC,EAAE,CAACkH,KAAK,CAAClH,CAAC,IAAI,CAAC,IAAI+G;AAAI,SAAA,CAAA;AAAA,MAAA,CACxB,CAAC;AACL,IAAA;AACF,EAAA;AAEA,EAAA,OAAOpL,CAAC;AACV,CAAC,CAAC,CACDsB,OAAO,CAAC,UAACZ,IAAI,EAAA;EAAA,OAAM;IAClBa,MAAM,EAAA,SAANA,MAAMA,GAAG;AACP,MAAA,IAAMwK,EAAE,GAAGrL,IAAI,CAAC0D,CAAC;AACjB,MAAA,IAAM4H,EAAE,GAAGtL,IAAI,CAAC2D,CAAC;MACjB,OAAO;QACLvF,EAAE,EAAE4B,IAAI,CAAC5B,EAAE;QACXI,IAAI,EAAEwB,IAAI,CAACxB,IAAI;QACfE,IAAI,EAAEsB,IAAI,CAACtB,IAAI;QACfC,OAAO,EAAEqB,IAAI,CAACrB,OAAO;QACrBI,OAAO,EAAEiB,IAAI,CAACjB,OAAO;QACrBC,UAAU,EAAEgB,IAAI,CAAChB,UAAU;QAC3BC,SAAS,EAAEe,IAAI,CAACf,SAAS;QACzBC,WAAW,EAAEc,IAAI,CAACd,WAAW;QAC7BC,YAAY,EAAEa,IAAI,CAACb,YAAY;QAC/BmL,QAAQ,EAAEtK,IAAI,CAACsK,QAAQ,CAAC5F,GAAG,CAAC,UAACmG,KAAK,EAAK;AACrC,UAAA,IAAMU,EAAE,GAAGV,KAAK,CAAChK,MAAM,GAAGgK,KAAK,CAAChK,MAAM,EAAE,GAAG2K,WAAW,CAACX,KAAK,CAAC;AAC7D,UAAA,OAAAtL,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAYgM,EAAE,CAAA,EAAA,EAAA,EAAA;YAAE7H,CAAC,EAAE,CAAC6H,EAAE,CAAC7H,CAAC,IAAI,CAAC,IAAI2H,EAAE;AAAE1H,YAAAA,CAAC,EAAE,CAAC4H,EAAE,CAAC5H,CAAC,IAAI,CAAC,IAAI2H;AAAE,WAAA,CAAA;QAC1D,CAAC;OACF;AACH,IAAA;GACD;AAAA,CAAC,CAAC;AAEE,IAAMG,cAAa,GAAG,SAAhBA,aAAaA,CAAIC,IAAI,EAAEC,EAAE,EAAK;EACzCA,EAAE,CAACD,IAAI,CAAC;EACR,IAAIA,IAAI,CAACpB,QAAQ,EAAE;AACjBoB,IAAAA,IAAI,CAACpB,QAAQ,CAACpF,OAAO,CAAC,UAAC2F,KAAK,EAAA;AAAA,MAAA,OAAKY,cAAa,CAACZ,KAAK,EAAEc,EAAE,CAAC;IAAA,CAAA,CAAC;AAC5D,EAAA;AACF,CAAC;;AClGM,IAAMC,IAAI,GAAG1N,KAAK,CACtBC,KAAK,CAAC,MAAM,EAAE;EACbC,EAAE,EAAEF,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACI,UAAU,EAAE,YAAA;IAAA,OAAMC,EAAM,EAAE;EAAA,CAAA,CAAC;AACpD+L,EAAAA,QAAQ,EAAEpM,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAC8F,KAAK,CAAC9F,KAAK,CAACqM,IAAI,CAAC,YAAA;AAAA,IAAA,OAAMJ,YAAY;EAAA,CAAA,CAAC,CAAC,EAAE,EAAE,CAAC;EACzEvG,KAAK,EAAE1F,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACgJ,KAAK,CAAChJ,KAAK,CAACU,MAAM,EAAEV,KAAK,CAAC2N,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC;EAC/EhI,MAAM,EAAE3F,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACgJ,KAAK,CAAChJ,KAAK,CAACU,MAAM,EAAEV,KAAK,CAAC2N,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC;EAChFC,UAAU,EAAE5N,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EAC5CsN,KAAK,EAAE7N,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;AACtCC,EAAAA,MAAM,EAAEX,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACY,MAAM,EAAE,EAAE,EAAE,CAAC;EAC1CoE,QAAQ,EAAEhF,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,IAAI;AAC7C,CAAC,CAAC,YACO,CAAC,YAAA;EAAA,OAAO;AACfoN,IAAAA,UAAU,EAAE,KAAK;AACjBC,IAAAA,UAAU,EAAE,KAAK;AACjBC,IAAAA,WAAW,EAAE;GACd;AAAA,CAAC,CAAC,CACFnM,KAAK,CAAC,UAACC,IAAI,EAAA;EAAA,OAAM;IAChB,IAAIK,KAAKA,GAAG;MACV,IAAI;QACF,OAAOC,OAAO,CAACN,IAAI,CAAC;MACtB,CAAC,CAAC,OAAOI,CAAC,EAAE;AACV,QAAA,OAAOV,SAAS;AAClB,MAAA;IACF,CAAC;IACD,IAAIyM,aAAaA,GAAG;MAClB,IAAInM,IAAI,CAAC4D,KAAK,KAAK,MAAM,EAAE,OAAO5D,IAAI,CAAC4D,KAAK;AAC5C,MAAA,IAAMvD,KAAK,GAAGL,IAAI,CAACK,KAAK;AACxB,MAAA,OAAOA,KAAK,GAAGA,KAAK,CAACuD,KAAK,GAAG,GAAG;IAClC,CAAC;IACD,IAAIwI,cAAcA,GAAG;MACnB,IAAIpM,IAAI,CAAC6D,MAAM,KAAK,MAAM,EAAE,OAAO7D,IAAI,CAAC6D,MAAM;AAC9C,MAAA,IAAMxD,KAAK,GAAGL,IAAI,CAACK,KAAK;AACxB,MAAA,OAAOA,KAAK,GAAGA,KAAK,CAACwD,MAAM,GAAG,GAAG;IACnC,CAAC;IACD,IAAIwI,SAASA,GAAG;AACd,MAAA,IAAMhM,KAAK,GAAGL,IAAI,CAACK,KAAK;AACxB,MAAA,IAAI,CAACA,KAAK,EAAE,OAAO,CAAC;MACpB,IAAIiM,IAAI,GAAG,CAAC;AAAC,MAAA,IAAAC,SAAA,GAAAC,0BAAA,CACMnM,KAAK,CAACoM,KAAK,CAAA;QAAAC,KAAA;AAAA,MAAA,IAAA;QAA9B,KAAAH,SAAA,CAAAjN,CAAA,EAAA,EAAA,CAAA,CAAAoN,KAAA,GAAAH,SAAA,CAAAI,CAAA,EAAA,EAAAC,IAAA,GAAgC;AAAA,UAAA,IAArB3M,IAAI,GAAAyM,KAAA,CAAAtK,KAAA;UACb,IAAInC,IAAI,CAAC7B,EAAE,KAAK4B,IAAI,CAAC5B,EAAE,EAAE,OAAOkO,IAAI;UACpCA,IAAI,IAAIrM,IAAI,CAACiD,QAAQ;AACvB,QAAA;AAAC,MAAA,CAAA,CAAA,OAAA2J,GAAA,EAAA;QAAAN,SAAA,CAAAnM,CAAA,CAAAyM,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAAN,QAAAA,SAAA,CAAAO,CAAA,EAAA;AAAA,MAAA;AACD,MAAA,OAAOR,IAAI;IACb,CAAC;IACD,IAAIS,qBAAqBA,GAAG;AAC1B,MAAA,OAAO/M,IAAI,CAACgM,UAAU,IAAIhM,IAAI,CAACiM,UAAU;AAC3C,IAAA;GACD;AAAA,CAAC,CAAC,CACFrL,OAAO,CAAC,UAACZ,IAAI,EAAA;EAAA,OAAM;IAClBa,MAAM,EAAA,SAANA,MAAMA,GAAG;MACP,OAAO;QACLzC,EAAE,EAAE4B,IAAI,CAAC5B,EAAE;QACXkM,QAAQ,EAAEtK,IAAI,CAACsK,QAAQ,CAAC5F,GAAG,CAAC,UAACmG,KAAK,EAAK;UACrC,IAAIA,KAAK,CAAChK,MAAM,EAAE,OAAOgK,KAAK,CAAChK,MAAM,EAAE;UACvC,OAAO2K,WAAW,CAACX,KAAK,CAAC;AAC3B,QAAA,CAAC,CAAC;QACFjH,KAAK,EAAE5D,IAAI,CAAC4D,KAAK;QACjBC,MAAM,EAAE7D,IAAI,CAAC6D,MAAM;QACnBiI,UAAU,EAAE9L,IAAI,CAAC8L,UAAU;QAC3BC,KAAK,EAAE/L,IAAI,CAAC+L,KAAK;QACjBlN,MAAM,EAAEmB,IAAI,CAACnB,MAAM;QACnBqE,QAAQ,EAAElD,IAAI,CAACkD;OAChB;IACH,CAAC;AACDpB,IAAAA,GAAG,EAAA,SAAHA,GAAGA,CAACP,KAAK,EAAE;AACT,MAAA,KAAA,IAAAR,EAAA,GAAA,CAAA,EAAAiB,eAAA,GAA2Bf,MAAM,CAACgB,OAAO,CAACV,KAAK,CAAC,EAAAR,EAAA,GAAAiB,eAAA,CAAAb,MAAA,EAAAJ,EAAA,EAAA,EAAE;AAA7C,QAAA,IAAAmB,kBAAA,GAAAC,cAAA,CAAAH,eAAA,CAAAjB,EAAA,CAAA,EAAA,CAAA,CAAA;AAAOK,UAAAA,GAAG,GAAAc,kBAAA,CAAA,CAAA,CAAA;AAAEE,UAAAA,KAAK,GAAAF,kBAAA,CAAA,CAAA,CAAA;AACpB,QAAA,IAAId,GAAG,IAAIpB,IAAI,IAAIoB,GAAG,KAAK,IAAI,EAAE;AAC/BpB,UAAAA,IAAI,CAACoB,GAAG,CAAC,GAAGgB,KAAK;AACnB,QAAA;AACF,MAAA;IACF,CAAC;IACD4K,MAAM,EAAA,SAANA,MAAMA,GAAG;AACP,MAAA,IAAM3M,KAAK,GAAGL,IAAI,CAACK,KAAK;AACxB,MAAA,IAAIA,KAAK,EAAE;AACTA,QAAAA,KAAK,CAAC4M,UAAU,CAACjN,IAAI,CAAC5B,EAAE,CAAC;AAC3B,MAAA;IACF,CAAC;IACDkD,KAAK,EAAA,SAALA,KAAKA,GAAa;AAAA,MAAA,IAAZC,KAAK,GAAAC,SAAA,CAAAL,MAAA,GAAA,CAAA,IAAAK,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACd,MAAA,IAAMV,IAAI,GAAGd,IAAI,CAACa,MAAM,EAAE;MAC1B,OAAOC,IAAI,CAAC1C,EAAE;AACd6C,MAAAA,MAAM,CAACW,MAAM,CAACd,IAAI,EAAES,KAAK,CAAC;AAC1B,MAAA,IAAMlB,KAAK,GAAGL,IAAI,CAACK,KAAK;AACxB,MAAA,IAAIA,KAAK,EAAE;AACT,QAAA,OAAOA,KAAK,CAAC6M,OAAO,CAACpM,IAAI,CAAC;AAC5B,MAAA;AACA,MAAA,OAAO,IAAI;IACb,CAAC;AACDe,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAACN,KAAK,EAA+B;AAAA,MAAA,IAAAE,IAAA,GAAAD,SAAA,CAAAL,MAAA,GAAA,CAAA,IAAAK,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAAJ,EAAE;QAAAE,eAAA,GAAAD,IAAA,CAAzBE,UAAU;AAAVA,QAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,eAAA;AACpC,MAAaH,KAAK,CAAC/C;MACnB,IAAM2O,WAAW,GAAA5N,cAAA,CAAA;QACfnB,EAAE,EAAEG,EAAM;AAAE,OAAA,EACTgD,KAAK,CACT;AAEDvB,MAAAA,IAAI,CAACsK,QAAQ,CAAC9E,IAAI,CAAC2H,WAAW,CAAC;AAC/B,MAAA,IAAMC,UAAU,GAAGpN,IAAI,CAACsK,QAAQ,CAACtK,IAAI,CAACsK,QAAQ,CAACnJ,MAAM,GAAG,CAAC,CAAC;MAE1D,IAAI,CAACQ,UAAU,EAAE;AACf,QAAA,IAAMtB,KAAK,GAAGL,IAAI,CAACK,KAAK;AACxB,QAAA,IAAIA,KAAK,EAAE;UACTA,KAAK,CAACgN,cAAc,CAAC,CAACD,UAAU,CAAChP,EAAE,CAAC,CAAC;AACvC,QAAA;AACF,MAAA;AAEA,MAAA,OAAOgP,UAAU;IACnB,CAAC;AAED;AACAE,IAAAA,eAAe,EAAA,SAAfA,eAAeA,CAAClP,EAAE,EAAE;AAClB,MAAA,OAAO4B,IAAI,CAACsK,QAAQ,CAACiD,SAAS,CAAC,UAACC,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAACpP,EAAE,KAAKA,EAAE;MAAA,CAAA,CAAC;IACpD,CAAC;AAEDqP,IAAAA,iBAAiB,EAAA,SAAjBA,iBAAiBA,CAACC,GAAG,EAAE;AAAA,MAAA,IAAAC,UAAA,GAAAnB,0BAAA,CACJkB,GAAG,CAAA;QAAAE,MAAA;AAAA,MAAA,IAAA;QAApB,KAAAD,UAAA,CAAArO,CAAA,EAAA,EAAA,CAAA,CAAAsO,MAAA,GAAAD,UAAA,CAAAhB,CAAA,EAAA,EAAAC,IAAA,GAAsB;AAAA,UAAA,IAAXxO,EAAE,GAAAwP,MAAA,CAAAxL,KAAA;AACX,UAAA,IAAMyL,GAAG,GAAG7N,IAAI,CAACsN,eAAe,CAAClP,EAAE,CAAC;UACpC,IAAIyP,GAAG,GAAG7N,IAAI,CAACsK,QAAQ,CAACnJ,MAAM,GAAG,CAAC,EAAE,OAAO,IAAI;AACjD,QAAA;AAAC,MAAA,CAAA,CAAA,OAAA0L,GAAA,EAAA;QAAAc,UAAA,CAAAvN,CAAA,CAAAyM,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAAc,QAAAA,UAAA,CAAAb,CAAA,EAAA;AAAA,MAAA;AACD,MAAA,OAAO,KAAK;IACd,CAAC;AACDgB,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACJ,GAAG,EAAE;AAAA,MAAA,IAAAK,UAAA,GAAAvB,0BAAA,CACDkB,GAAG,CAAA;QAAAM,MAAA;AAAA,MAAA,IAAA;QAApB,KAAAD,UAAA,CAAAzO,CAAA,EAAA,EAAA,CAAA,CAAA0O,MAAA,GAAAD,UAAA,CAAApB,CAAA,EAAA,EAAAC,IAAA,GAAsB;AAAA,UAAA,IAAXxO,EAAE,GAAA4P,MAAA,CAAA5L,KAAA;AACXpC,UAAAA,IAAI,CAACsC,aAAa,CAAClE,EAAE,CAAC;AACxB,QAAA;AAAC,MAAA,CAAA,CAAA,OAAAyO,GAAA,EAAA;QAAAkB,UAAA,CAAA3N,CAAA,CAAAyM,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAAkB,QAAAA,UAAA,CAAAjB,CAAA,EAAA;AAAA,MAAA;IACH,CAAC;AACDxK,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAAClE,EAAE,EAAE;AAChB,MAAA,IAAMyP,GAAG,GAAG7N,IAAI,CAACsN,eAAe,CAAClP,EAAE,CAAC;AACpC,MAAA,IAAIyP,GAAG,IAAI,CAAC,IAAIA,GAAG,GAAG7N,IAAI,CAACsK,QAAQ,CAACnJ,MAAM,GAAG,CAAC,EAAE;QAC9C,IAAM9B,QAAQ,GAAGmM,WAAW,CAACxL,IAAI,CAACsK,QAAQ,CAACuD,GAAG,CAAC,CAAC;QAChD7N,IAAI,CAACsK,QAAQ,CAAC2D,MAAM,CAACJ,GAAG,EAAE,CAAC,CAAC;AAC5B7N,QAAAA,IAAI,CAACsK,QAAQ,CAAC2D,MAAM,CAACJ,GAAG,GAAG,CAAC,EAAE,CAAC,EAAExO,QAAQ,CAAC;AAC5C,MAAA;IACF,CAAC;AAED6O,IAAAA,kBAAkB,EAAA,SAAlBA,kBAAkBA,CAACR,GAAG,EAAE;AAAA,MAAA,IAAAS,UAAA,GAAA3B,0BAAA,CACLkB,GAAG,CAAA;QAAAU,MAAA;AAAA,MAAA,IAAA;QAApB,KAAAD,UAAA,CAAA7O,CAAA,EAAA,EAAA,CAAA,CAAA8O,MAAA,GAAAD,UAAA,CAAAxB,CAAA,EAAA,EAAAC,IAAA,GAAsB;AAAA,UAAA,IAAXxO,EAAE,GAAAgQ,MAAA,CAAAhM,KAAA;AACX,UAAA,IAAMyL,GAAG,GAAG7N,IAAI,CAACsN,eAAe,CAAClP,EAAE,CAAC;UACpC,IAAIyP,GAAG,GAAG7N,IAAI,CAACsK,QAAQ,CAACnJ,MAAM,GAAG,CAAC,EAAE,OAAO,IAAI;AACjD,QAAA;AAAC,MAAA,CAAA,CAAA,OAAA0L,GAAA,EAAA;QAAAsB,UAAA,CAAA/N,CAAA,CAAAyM,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAAsB,QAAAA,UAAA,CAAArB,CAAA,EAAA;AAAA,MAAA;AACD,MAAA,OAAO,KAAK;IACd,CAAC;AACDuB,IAAAA,eAAe,EAAA,SAAfA,eAAeA,CAACX,GAAG,EAAE;AAAA,MAAA,IAAAY,UAAA,GAAA9B,0BAAA,CACFkB,GAAG,CAAA;QAAAa,MAAA;AAAA,MAAA,IAAA;QAApB,KAAAD,UAAA,CAAAhP,CAAA,EAAA,EAAA,CAAA,CAAAiP,MAAA,GAAAD,UAAA,CAAA3B,CAAA,EAAA,EAAAC,IAAA,GAAsB;AAAA,UAAA,IAAXxO,EAAE,GAAAmQ,MAAA,CAAAnM,KAAA;AACXpC,UAAAA,IAAI,CAACwC,cAAc,CAACpE,EAAE,CAAC;AACzB,QAAA;AAAC,MAAA,CAAA,CAAA,OAAAyO,GAAA,EAAA;QAAAyB,UAAA,CAAAlO,CAAA,CAAAyM,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAAyB,QAAAA,UAAA,CAAAxB,CAAA,EAAA;AAAA,MAAA;IACH,CAAC;AACDtK,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACpE,EAAE,EAAE;AACjB,MAAA,IAAMyP,GAAG,GAAG7N,IAAI,CAACsN,eAAe,CAAClP,EAAE,CAAC;AACpC,MAAA,IAAIyP,GAAG,IAAI,CAAC,IAAIA,GAAG,GAAG7N,IAAI,CAACsK,QAAQ,CAACnJ,MAAM,GAAG,CAAC,EAAE;QAC9C,IAAM9B,QAAQ,GAAGmM,WAAW,CAACxL,IAAI,CAACsK,QAAQ,CAACuD,GAAG,CAAC,CAAC;QAChD7N,IAAI,CAACsK,QAAQ,CAAC2D,MAAM,CAACJ,GAAG,EAAE,CAAC,CAAC;AAC5B7N,QAAAA,IAAI,CAACsK,QAAQ,CAAC9E,IAAI,CAACnG,QAAQ,CAAC;AAC9B,MAAA;IACF,CAAC;AAEDmP,IAAAA,mBAAmB,EAAA,SAAnBA,mBAAmBA,CAACd,GAAG,EAAE;AAAA,MAAA,IAAAe,UAAA,GAAAjC,0BAAA,CACNkB,GAAG,CAAA;QAAAgB,MAAA;AAAA,MAAA,IAAA;QAApB,KAAAD,UAAA,CAAAnP,CAAA,EAAA,EAAA,CAAA,CAAAoP,MAAA,GAAAD,UAAA,CAAA9B,CAAA,EAAA,EAAAC,IAAA,GAAsB;AAAA,UAAA,IAAXxO,EAAE,GAAAsQ,MAAA,CAAAtM,KAAA;AACX,UAAA,IAAMyL,GAAG,GAAG7N,IAAI,CAACsN,eAAe,CAAClP,EAAE,CAAC;AACpC,UAAA,IAAIyP,GAAG,GAAG,CAAC,EAAE,OAAO,IAAI;AAC1B,QAAA;AAAC,MAAA,CAAA,CAAA,OAAAhB,GAAA,EAAA;QAAA4B,UAAA,CAAArO,CAAA,CAAAyM,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAA4B,QAAAA,UAAA,CAAA3B,CAAA,EAAA;AAAA,MAAA;AACD,MAAA,OAAO,KAAK;IACd,CAAC;AACD6B,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAACjB,GAAG,EAAE;AAAA,MAAA,IAAAkB,UAAA,GAAApC,0BAAA,CACHkB,GAAG,CAAA;QAAAmB,MAAA;AAAA,MAAA,IAAA;QAApB,KAAAD,UAAA,CAAAtP,CAAA,EAAA,EAAA,CAAA,CAAAuP,MAAA,GAAAD,UAAA,CAAAjC,CAAA,EAAA,EAAAC,IAAA,GAAsB;AAAA,UAAA,IAAXxO,EAAE,GAAAyQ,MAAA,CAAAzM,KAAA;AACXpC,UAAAA,IAAI,CAAC0C,eAAe,CAACtE,EAAE,CAAC;AAC1B,QAAA;AAAC,MAAA,CAAA,CAAA,OAAAyO,GAAA,EAAA;QAAA+B,UAAA,CAAAxO,CAAA,CAAAyM,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAA+B,QAAAA,UAAA,CAAA9B,CAAA,EAAA;AAAA,MAAA;IACH,CAAC;AACDpK,IAAAA,eAAe,EAAA,SAAfA,eAAeA,CAACtE,EAAE,EAAE;AAClB,MAAA,IAAMyP,GAAG,GAAG7N,IAAI,CAACsN,eAAe,CAAClP,EAAE,CAAC;MACpC,IAAIyP,GAAG,GAAG,CAAC,EAAE;QACX,IAAMxO,QAAQ,GAAGmM,WAAW,CAACxL,IAAI,CAACsK,QAAQ,CAACuD,GAAG,CAAC,CAAC;QAChD7N,IAAI,CAACsK,QAAQ,CAAC2D,MAAM,CAACJ,GAAG,EAAE,CAAC,CAAC;AAC5B7N,QAAAA,IAAI,CAACsK,QAAQ,CAAC2D,MAAM,CAACJ,GAAG,GAAG,CAAC,EAAE,CAAC,EAAExO,QAAQ,CAAC;AAC5C,MAAA;IACF,CAAC;AAEDyP,IAAAA,qBAAqB,EAAA,SAArBA,qBAAqBA,CAACpB,GAAG,EAAE;AAAA,MAAA,IAAAqB,UAAA,GAAAvC,0BAAA,CACRkB,GAAG,CAAA;QAAAsB,MAAA;AAAA,MAAA,IAAA;QAApB,KAAAD,UAAA,CAAAzP,CAAA,EAAA,EAAA,CAAA,CAAA0P,MAAA,GAAAD,UAAA,CAAApC,CAAA,EAAA,EAAAC,IAAA,GAAsB;AAAA,UAAA,IAAXxO,EAAE,GAAA4Q,MAAA,CAAA5M,KAAA;AACX,UAAA,IAAMyL,GAAG,GAAG7N,IAAI,CAACsN,eAAe,CAAClP,EAAE,CAAC;AACpC,UAAA,IAAIyP,GAAG,GAAG,CAAC,EAAE,OAAO,IAAI;AAC1B,QAAA;AAAC,MAAA,CAAA,CAAA,OAAAhB,GAAA,EAAA;QAAAkC,UAAA,CAAA3O,CAAA,CAAAyM,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAAkC,QAAAA,UAAA,CAAAjC,CAAA,EAAA;AAAA,MAAA;AACD,MAAA,OAAO,KAAK;IACd,CAAC;AACDmC,IAAAA,kBAAkB,EAAA,SAAlBA,kBAAkBA,CAACvB,GAAG,EAAE;AAAA,MAAA,IAAAwB,UAAA,GAAA1C,0BAAA,CACLkB,GAAG,CAAA;QAAAyB,MAAA;AAAA,MAAA,IAAA;QAApB,KAAAD,UAAA,CAAA5P,CAAA,EAAA,EAAA,CAAA,CAAA6P,MAAA,GAAAD,UAAA,CAAAvC,CAAA,EAAA,EAAAC,IAAA,GAAsB;AAAA,UAAA,IAAXxO,EAAE,GAAA+Q,MAAA,CAAA/M,KAAA;AACXpC,UAAAA,IAAI,CAAC4C,iBAAiB,CAACxE,EAAE,CAAC;AAC5B,QAAA;AAAC,MAAA,CAAA,CAAA,OAAAyO,GAAA,EAAA;QAAAqC,UAAA,CAAA9O,CAAA,CAAAyM,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAAqC,QAAAA,UAAA,CAAApC,CAAA,EAAA;AAAA,MAAA;IACH,CAAC;AACDlK,IAAAA,iBAAiB,EAAA,SAAjBA,iBAAiBA,CAACxE,EAAE,EAAE;AACpB,MAAA,IAAMyP,GAAG,GAAG7N,IAAI,CAACsN,eAAe,CAAClP,EAAE,CAAC;MACpC,IAAIyP,GAAG,GAAG,CAAC,EAAE;QACX,IAAMxO,QAAQ,GAAGmM,WAAW,CAACxL,IAAI,CAACsK,QAAQ,CAACuD,GAAG,CAAC,CAAC;QAChD7N,IAAI,CAACsK,QAAQ,CAAC2D,MAAM,CAACJ,GAAG,EAAE,CAAC,CAAC;QAC5B7N,IAAI,CAACsK,QAAQ,CAAC2D,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE5O,QAAQ,CAAC;AACtC,MAAA;IACF,CAAC;AAEDyD,IAAAA,gBAAgB,WAAhBA,gBAAgBA,CAAC1E,EAAE,EAAEsC,MAAM,EAAE;AAC3B,MAAA,IAAMmN,GAAG,GAAG7N,IAAI,CAACsN,eAAe,CAAClP,EAAE,CAAC;AACpC,MAAA,IAAIyP,GAAG,IAAI,CAAC,IAAInN,MAAM,IAAI,CAAC,IAAIA,MAAM,GAAGV,IAAI,CAACsK,QAAQ,CAACnJ,MAAM,EAAE;QAC5D,IAAM9B,QAAQ,GAAGmM,WAAW,CAACxL,IAAI,CAACsK,QAAQ,CAACuD,GAAG,CAAC,CAAC;QAChD7N,IAAI,CAACsK,QAAQ,CAAC2D,MAAM,CAACJ,GAAG,EAAE,CAAC,CAAC;QAC5B7N,IAAI,CAACsK,QAAQ,CAAC2D,MAAM,CAACvN,MAAM,EAAE,CAAC,EAAErB,QAAQ,CAAC;AAC3C,MAAA;IACF,CAAC;AAED+P,IAAAA,OAAO,EAAA,SAAPA,OAAOA,CAAAC,KAAA,EAA0D;AAAA,MAAA,IAAvDzL,KAAK,GAAAyL,KAAA,CAALzL,KAAK;QAAEC,MAAM,GAAAwL,KAAA,CAANxL,MAAM;QAAAwL,KAAA,CAAEC,QAAQ;AAARA,QAAgBD,KAAA,CAAEE,UAAU;MACnD,IAAI3L,KAAK,KAAKlE,SAAS,EAAEM,IAAI,CAAC4D,KAAK,GAAGA,KAAK;MAC3C,IAAIC,MAAM,KAAKnE,SAAS,EAAEM,IAAI,CAAC6D,MAAM,GAAGA,MAAM;IAChD,CAAC;AAEDhB,IAAAA,SAAS,EAAA,SAATA,SAASA,CAACnC,MAAM,EAAE;AAChB,MAAA,IAAML,KAAK,GAAGL,IAAI,CAACK,KAAK;AACxB,MAAA,IAAIA,KAAK,EAAE;QACTA,KAAK,CAACmP,aAAa,CAACxP,IAAI,CAAC5B,EAAE,EAAEsC,MAAM,CAAC;AACtC,MAAA;IACF,CAAC;AAED+O,IAAAA,iBAAiB,WAAjBA,iBAAiBA,CAAC/B,GAAG,EAAEgC,QAAQ,EAAE;AAC/B,MAAA,KAAK,IAAIC,CAAC,GAAG3P,IAAI,CAACsK,QAAQ,CAACnJ,MAAM,GAAG,CAAC,EAAEwO,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;AAClD,QAAA,IAAM9E,KAAK,GAAG7K,IAAI,CAACsK,QAAQ,CAACqF,CAAC,CAAC;QAC9B,IAAIjC,GAAG,CAAChF,QAAQ,CAACmC,KAAK,CAACzM,EAAE,CAAC,EAAE;UAC1BsR,QAAQ,CAAC7E,KAAK,CAAC;AACjB,QAAA;AACF,MAAA;IACF,CAAC;AAED+E,IAAAA,mBAAmB,WAAnBA,mBAAmBA,CAAClC,GAAG,EAAEgC,QAAQ,EAAE;AACjC,MAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG3P,IAAI,CAACsK,QAAQ,CAACnJ,MAAM,EAAEwO,CAAC,EAAE,EAAE;AAC7C,QAAA,IAAM9E,KAAK,GAAG7K,IAAI,CAACsK,QAAQ,CAACqF,CAAC,CAAC;QAC9B,IAAIjC,GAAG,CAAChF,QAAQ,CAACmC,KAAK,CAACzM,EAAE,CAAC,EAAE;UAC1BsR,QAAQ,CAAC7E,KAAK,CAAC;AACjB,QAAA;AACF,MAAA;AACA,MAAA,OAAO,KAAK;IACd,CAAC;IAEDgF,IAAI,EAAA,SAAJA,IAAIA,GAAG;AACL;AAAA,IAAA;GAEH;AAAA,CAAC,CAAC;;ACtPE,IAAMC,OAAO,GAAG5R,KAAK,CACzBC,KAAK,CAAC,SAAS,EAAE;AAChB4R,EAAAA,OAAO,EAAE7R,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAC8F,KAAK,CAAC9F,KAAK,CAACY,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;EACxDkR,OAAO,EAAE9R,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,EAAE,CAAC;EACzCqR,UAAU,EAAE/R,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE;AAC7C,CAAC,CAAC,YACO,CAAC,YAAA;EAAA,OAAO;AACfyR,IAAAA,cAAc,EAAE,KAAK;AACrBC,IAAAA,SAAS,EAAE,KAAK;AAChBC,IAAAA,SAAS,EAAE;GACZ;AAAA,CAAC,CAAC,CACFrQ,KAAK,CAAC,UAACC,IAAI,EAAA;EAAA,OAAM;IAChB,IAAIqQ,OAAOA,GAAG;AACZ,MAAA,OAAOrQ,IAAI,CAACgQ,OAAO,GAAG,CAAC;IACzB,CAAC;IACD,IAAIM,OAAOA,GAAG;MACZ,OAAOtQ,IAAI,CAACgQ,OAAO,GAAGhQ,IAAI,CAAC+P,OAAO,CAAC5O,MAAM,GAAG,CAAC;AAC/C,IAAA;GACD;AAAA,CAAC,CAAC,CACFP,OAAO,CAAC,UAACZ,IAAI,EAAK;EAGjB,OAAO;IACLuQ,gBAAgB,EAAA,SAAhBA,gBAAgBA,GAAG;MACjBvQ,IAAI,CAACkQ,cAAc,GAAG,IAAI;IAC5B,CAAC;IACDM,cAAc,EAAA,SAAdA,cAAcA,GAAmB;AAAA,MAAA,IAAlBC,QAAQ,GAAAjP,SAAA,CAAAL,MAAA,GAAA,CAAA,IAAAK,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAAG,KAAK;MAC7BxB,IAAI,CAACkQ,cAAc,GAAG,KAAK;MAC3B,IAAI,CAACO,QAAQ,EAAE;QACbzQ,IAAI,CAAC0Q,YAAY,EAAE;AACrB,MAAA;IACF,CAAC;AACDC,IAAAA,MAAM,EAAA,SAANA,MAAMA,CAACC,IAAI,EAAE;MACX5Q,IAAI,CAACoQ,SAAS,GAAG,IAAI;MACrB,IAAI;AACFQ,QAAAA,IAAI,EAAE;AACR,MAAA,CAAC,SAAS;QACR5Q,IAAI,CAACoQ,SAAS,GAAG,KAAK;AACxB,MAAA;IACF,CAAC;AACKS,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACD,IAAI,EAAE;AAAA,MAAA,OAAAE,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,UAAAC,OAAAA,GAAA;AAAA,QAAA,OAAAF,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAA1I,CAAA,GAAA0I,QAAA,CAAAxE,CAAA;AAAA,YAAA,KAAA,CAAA;cACtB3M,IAAI,CAACuQ,gBAAgB,EAAE;AAACY,cAAAA,QAAA,CAAA1I,CAAA,GAAA,CAAA;AAAA0I,cAAAA,QAAA,CAAAxE,CAAA,GAAA,CAAA;cAAA,OAEhBiE,IAAI,EAAE;AAAA,YAAA,KAAA,CAAA;AAAAO,cAAAA,QAAA,CAAA1I,CAAA,GAAA,CAAA;cAEZzI,IAAI,CAACwQ,cAAc,EAAE;cAAC,OAAAW,QAAA,CAAArE,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cAAA,OAAAqE,QAAA,CAAA5L,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA0L,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA,EAAA;IAE1B,CAAC;IACDP,YAAY,EAAA,SAAZA,YAAYA,GAAG;MACb,IAAI1Q,IAAI,CAACoQ,SAAS,EAAE;MACpB,IAAI;AACF,QAAA,IAAMgB,IAAI,GAAG9Q,OAAO,CAACN,IAAI,CAAC;AAC1B,QAAA,IAAMX,QAAQ,GAAGmM,WAAW,CAAC4F,IAAI,CAAC;AAClC;AACA;AACA,QAAA,IAAMC,WAAW,GAAA9R,cAAA,CAAA,EAAA,EAAQF,QAAQ,CAAE;QACnC,OAAOgS,WAAW,CAACtB,OAAO;QAC1B,OAAOsB,WAAW,CAACC,KAAK;QACxB,OAAOD,WAAW,CAACE,UAAU;;AAE7B;QACA,IAAIvR,IAAI,CAACgQ,OAAO,GAAGhQ,IAAI,CAAC+P,OAAO,CAAC5O,MAAM,GAAG,CAAC,EAAE;UAC1CnB,IAAI,CAAC+P,OAAO,CAAC9B,MAAM,CAACjO,IAAI,CAACgQ,OAAO,GAAG,CAAC,CAAC;AACvC,QAAA;AAEAhQ,QAAAA,IAAI,CAAC+P,OAAO,CAACvK,IAAI,CAAC6L,WAAW,CAAC;QAC9BrR,IAAI,CAACgQ,OAAO,GAAGhQ,IAAI,CAAC+P,OAAO,CAAC5O,MAAM,GAAG,CAAC;;AAEtC;AACA,QAAA,IAAInB,IAAI,CAAC+P,OAAO,CAAC5O,MAAM,GAAG,GAAG,EAAE;AAC7BnB,UAAAA,IAAI,CAAC+P,OAAO,CAAC9B,MAAM,CAAC,CAAC,EAAEjO,IAAI,CAAC+P,OAAO,CAAC5O,MAAM,GAAG,GAAG,CAAC;UACjDnB,IAAI,CAACgQ,OAAO,GAAGhQ,IAAI,CAAC+P,OAAO,CAAC5O,MAAM,GAAG,CAAC;AACxC,QAAA;MACF,CAAC,CAAC,OAAOf,CAAC,EAAE;AACVoR,QAAAA,OAAO,CAACC,IAAI,CAAC,+BAA+B,EAAErR,CAAC,CAAC;AAClD,MAAA;IACF,CAAC;AACDsR,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAACC,KAAK,EAAE;MACnB,IAAI,CAACA,KAAK,EAAE;MACZ3R,IAAI,CAACoQ,SAAS,GAAG,IAAI;MACrB,IAAI;AACF,QAAA,IAAMgB,IAAI,GAAG9Q,OAAO,CAACN,IAAI,CAAC;AAC1B,QAAA,IAAM4R,cAAc,GAAGpG,WAAW,CAACxL,IAAI,CAAC;;AAExC;AACA;AACA,QAAA,IAAM6R,YAAY,GAAGT,IAAI,CAACE,KAAK;AAC/B,QAAA,IAAMQ,iBAAiB,GAAGV,IAAI,CAACG,UAAU;;AAEzC;AACAQ,QAAAA,aAAa,CAACX,IAAI,EAAA7R,cAAA,CAAAA,cAAA,KACboS,KAAK,CAAA,EAAA,EAAA,EAAA;AACR5B,UAAAA,OAAO,EAAE6B,cAAc;AACvBN,UAAAA,KAAK,EAAEO,YAAY;AACnBN,UAAAA,UAAU,EAAEO;AAAiB,SAAA,CAC9B,CAAC;;AAEF;AACA;AACA;QACA,IAAIH,KAAK,CAAClF,KAAK,EAAE;AACfkF,UAAAA,KAAK,CAAClF,KAAK,CAACvH,OAAO,CAAC,UAAC8M,SAAS,EAAK;YACjC,IAAM/R,IAAI,GAAGmR,IAAI,CAAC3E,KAAK,CAACnH,IAAI,CAAC,UAACmD,CAAC,EAAA;AAAA,cAAA,OAAKA,CAAC,CAACrK,EAAE,KAAK4T,SAAS,CAAC5T,EAAE;YAAA,CAAA,CAAC;AAC1D,YAAA,IAAI,CAAC6B,IAAI,IAAI,CAAC+R,SAAS,CAAC1H,QAAQ,IAAI,CAAC0H,SAAS,CAAC1H,QAAQ,CAACnJ,MAAM,EAAE;YAChE,IAAM8Q,SAAS,GAAGD,SAAS,CAAC1H,QAAQ,CAAC5F,GAAG,CAAC,UAAC8I,CAAC,EAAA;cAAA,OAAKA,CAAC,CAACpP,EAAE;YAAA,CAAA,CAAC;YACrD,IAAM8T,UAAU,GAAGjS,IAAI,CAACqK,QAAQ,CAAC5F,GAAG,CAAC,UAAC8I,CAAC,EAAA;cAAA,OAAKA,CAAC,CAACpP,EAAE;YAAA,CAAA,CAAC;AACjD;AACA,YAAA,IAAI6T,SAAS,CAAC9Q,MAAM,KAAK+Q,UAAU,CAAC/Q,MAAM,IACtC8Q,SAAS,CAACE,KAAK,CAAC,UAAC/T,EAAE,EAAEuR,CAAC,EAAA;AAAA,cAAA,OAAKvR,EAAE,KAAK8T,UAAU,CAACvC,CAAC,CAAC;AAAA,YAAA,CAAA,CAAC,EAAE;YACtD,IAAMyC,QAAQ,GAAG,EAAE;AACnBnS,YAAAA,IAAI,CAACqK,QAAQ,CAACpF,OAAO,CAAC,UAACsI,CAAC,EAAK;cAAE4E,QAAQ,CAAC5E,CAAC,CAACpP,EAAE,CAAC,GAAGoN,WAAW,CAACgC,CAAC,CAAC;AAAE,YAAA,CAAC,CAAC;AAClEvN,YAAAA,IAAI,CAACqK,QAAQ,CAAC+H,KAAK,EAAE;AACrBJ,YAAAA,SAAS,CAAC/M,OAAO,CAAC,UAAC9G,EAAE,EAAK;AACxB,cAAA,IAAIgU,QAAQ,CAAChU,EAAE,CAAC,EAAE6B,IAAI,CAACqK,QAAQ,CAAC9E,IAAI,CAAC4M,QAAQ,CAAChU,EAAE,CAAC,CAAC;AACpD,YAAA,CAAC,CAAC;AACJ,UAAA,CAAC,CAAC;AACJ,QAAA;MACF,CAAC,CAAC,OAAOgC,CAAC,EAAE;AACVoR,QAAAA,OAAO,CAACC,IAAI,CAAC,kCAAkC,EAAErR,CAAC,CAAC;AACrD,MAAA,CAAC,SAAS;QACRJ,IAAI,CAACoQ,SAAS,GAAG,KAAK;AACxB,MAAA;IACF,CAAC;IACDkC,IAAI,EAAA,SAAJA,IAAIA,GAAG;AACL,MAAA,IAAI,CAACtS,IAAI,CAACqQ,OAAO,EAAE;MACnBrQ,IAAI,CAACgQ,OAAO,IAAI,CAAC;MACjBhQ,IAAI,CAAC0R,aAAa,CAAC1R,IAAI,CAAC+P,OAAO,CAAC/P,IAAI,CAACgQ,OAAO,CAAC,CAAC;IAChD,CAAC;IACDuC,IAAI,EAAA,SAAJA,IAAIA,GAAG;AACL,MAAA,IAAI,CAACvS,IAAI,CAACsQ,OAAO,EAAE;MACnBtQ,IAAI,CAACgQ,OAAO,IAAI,CAAC;MACjBhQ,IAAI,CAAC0R,aAAa,CAAC1R,IAAI,CAAC+P,OAAO,CAAC/P,IAAI,CAACgQ,OAAO,CAAC,CAAC;IAChD,CAAC;IACDqC,KAAK,EAAA,SAALA,KAAKA,GAAG;AACNrS,MAAAA,IAAI,CAAC+P,OAAO,CAACsC,KAAK,EAAE;AACpBrS,MAAAA,IAAI,CAACgQ,OAAO,GAAG,EAAE;IACnB,CAAC;IACDwC,WAAW,EAAA,SAAXA,WAAWA,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAAA,CACD;IACDzP,aAAa,EAAA,SAAbA,aAAaA,GAAG;IAKhB,CAAC;IACD0P,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACb;MACA,IAAIzS,IAAI,CAACoQ,SAAS,EAAE;MACpB,IAAI;AACF,QAAA,IAAMgB,IAAI,GAAG9Q,OAAO,CAACN,IAAI,CAAC;AAC1B,QAAA,IAAMX,QAAQ,GAAGmM,WAAW,CAAC4F,IAAI,CAAC;AAClC,QAAA,IAAMC,WAAW,GAAA9R,cAAA,CAAA,EAAA,EAAQF,QAAQ,CAAE;QACnC,OAAOgS,WAAW,CAACtB,OAAO;AAE1B,QAAA,IAAI/P,IAAI,CAACgQ,OAAO,IAAI,CAAC,IAAIhQ,IAAI,CAACgQ,OAAO,GAAGhQ,IAAI,CAAC+P,OAAO,CAAC5O,MAAM,EAAE;UAC3DnB,IAAI,CAAC+P,OAAO,CAAC/P,IAAI,CAACgQ,OAAO,CAAC,GAAGqB,WAAW;AAC1C,QAAA;MACF,CAAC,CAAC,OAAOjR,CAAC,EAAE;AACVoR,QAAAA,OAAO,CAACC,IAAI,CAAC,kCAAkC,EAAErR,CAAC,CAAC;AACrD,MAAA;IACF,CAAC;IACDsS,eAAe,EAAA,SAAfA,eAAeA,GAAG;AAChB;MACA1S,IAAI,CAAC0Q,YAAY,EAAE;AACrB,IAAA;GACD;AACH,CAAC,CAAC;;;;;;;ACrLJ;AACA;AACA,IAAMiC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,CAAC,EAAA;AAAA,EAAA,OACxB,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,CAACvR,UAAU,CAAC,OAAO,CAAC,IAAIuR,CAAC,CAAClK,QAAQ,CAAC,UAAU,CAAC;AAAA,CAAA;;AAE1E;AACA;AACA;AACA;AACA,IAAMmK,uBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIC,EAAE,EAAK;AACrC,EAAA,IAAMC,GAAG,GAAAxT,cAAA,CAAA,EAAA,EAAQuT,EAAE,CAAE;EACrB,IAAME,YAAY,GAAGD,GAAG,CAAClU,MAAM,IAAIkU,GAAG,CAAClU,MAAM,CAACoU,UAAU;AACxD,EAAA,IAAID,YAAY,EAAE;IAChB,IAAIL,eAAe,CAACI,GAAG,CAACpN,GAAG,CAAC,EAAEoN,GAAG,CAACpN,GAAG,GAAG,EAAE;IAC1C,IAAIgN,eAAe,CAACI,GAAG,CAAC5M,OAAO,CAAC,EAAE4M,GAAG,CAAC5M,OAAO,GAAG,EAAE;AACpD,EAAA;EACA,IAAI+M,KAAK,CAACC,OAAO,CAACJ,GAAG,CAACzI,QAAQ,CAAC,EAAE;IAC/ByI,GAAG,CAACzI,QAAQ,GAAGyI,GAAG,CAACzI,QAAQ,CAAC5F,GAAG,CAACmO,uBAAsB,CAAC;AACzD,EAAA;AACA,EAAA,OAAOE,GAAG;AACZ,CAAC;AAED,IAAMK,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIhQ,IAAI,EAAA;AAAA,EAAA,OAAA7D,cAAA,CAAAA,cAAA,CAAA,EAAA,EAC9B6D,IAAI,CAAA,EAAA,EAAA,EAAA;IACPqJ,KAAK,EAAE,CAACrJ,IAAI,CAACqJ,KAAK,IAAI,EAAE,EAAE/H,GAAG,CAAC,UAACzE,IAAI,EAAA;AAAA,MAAA,OAAAV,cAAA,CAAAA,cAAA,CAAA,EAAA,EAC9BU,IAAI,CAAA,EAAA,EAAA,EAAA;QACPqK,QAAQ,EAAE,CAACrK,IAAI,CAACqK,QAAQ,IAAI,EAAE,EAAE5F,GAAG,CAACmO,uBAAsB;AAAC,OAAA,CAAA;IAAA,CAC3D;AAAC,GAAA,CAAA;AAAA,CACH;AAEF,IAAMQ,IAAI,GAAGnV,KAAK,CAACC,KAAK,CAAC,MAAM,EAAE;EAC/B4I,UAAU,EAAE7I,KAAK,CAACO,MAAM;EACxB6U,GAAG,EAAEpV,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EACrC8U,MAAM,EAAErV,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACY,MAAM,EAAE,EAAE,EAAE;AAC3C,CAAC,CAAC;AAEF,IAAM0U,KAAK,GAAGtV,KAAK,CAChBC,KAAK,CAAC,OAAO,EAAE;EACdC,EAAE,EAAEF,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACI,UAAU,EAAE,YAAA;IAAA,OAAMC,EAAM,EAAE;EAAA,CAAA,CAAC;EACpDoH,GAAG,EAAEzH,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EACrCyE,QAAQ,EAAEhF,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACzCyN,SAAS,EAAEnO,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC1C6U,OAAO,EAAEvV,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACxC8U,MAAM,EAAExV,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACvCqE,KAAK,EAAE/E,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;AACtCC,EAAAA,MAAM,EAAEX,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACY,MAAM,EAAE,EAAE,EAAE;AAC3C,CAAC,CAAC,CACD8B,OAAO,CAAC,UAACZ,IAAI,EAAA;EAAA,OAAM;IAClBa,MAAM,EAAA,SAANA,MAAMA,GAAG;MACP,OAAO;QACLzC,EAAE,EAAE4B,IAAI,CAAC5B,EAAE;QACXuH,GAAG,EAAE3F,IAAI,CAAC2F,GAAG;QACbzC,QAAQ,EAAElD,IAAI,CAACkD,QAAQ;QACvBmJ,SAAS,EAAErM,IAAI,CAACqM,SAAS;QACzBoH,OAAO,EAAEzT,IAAI,CAACyT,OAAO;QACrBC,MAAM,EAAE1T,IAAI,CAAC0T,MAAM;QACnBzQ,KAAK,EAAEjD,IAAI,CAACiD,KAAK;QACjBpE,MAAM,EAAEmB,IAAI,CAACnB;OACd;IACH,CAAC;AACDiD,IAAAA,GAAG,EAAA,SAAHA,GAAGA,CAACP,KAAK,EAAE;AACT,MAAA,KAAA,IAAAR,EAAA,GAAA,CAAA,EAAAiB,eAAA,GAA2Bf,MAAM,CAACgB,OAAO,CAACV,KAAK,CAAC,EAAAR,EAAA,GAAAiB,eAAA,CAAAb,MAAA,EAAAJ,EAAA,EAAA,EAAE;AAA7C,QAAA,IAAAmB,kBAAA,GAAAC,cAAA,CAAAH,eAAA,CAAAjB,EAAA,CAAA,EAAA,CAAA,CAAA;AAAOK,UAAAA,GAAG,GAAAc,kBAAA,CAAA,CAAA,CAAA;AAAEE,UAAAA,KAAK,GAAAF,kBAAA,CAAA,CAAA,CAAA;AACpB,QAAA,IAAId,GAAG,IAAIpB,IAAI,IAAIoB,GAAG,KAAK,IAAI,EAAE;AAC/BpB,UAAAA,IAAI,CAACoB,GAAG,CAAC,GAAGgB,KAAK;AACnB,QAAA;AACF,MAAA;AACF,IAAA;GACD;AAAA,CAAC,CAAC;AAEE,IAAMuR,KAAK,GAAGzV,KAAK,CACvBC,KAAK,CAAC,OAAO,EAAE;EACdyV,IAAI,EAAE1V,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,QAAQ,CAAC;AAC5CgO,EAAAA,KAAK,EAAEvO,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAC8F,KAAK,CAAC4H,IAAI,CAAC,EAAE,EAAE,CAAC;AAC5CiI,EAAAA,KAAK,EAAE3V,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAC8F,KAAK,CAACqP,IAAI,CAAC,EAAE,EAAE,CAAC;AAC5CS,EAAAA,MAAM,EAAE5V,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAC8F,KAAK,CAACwP,KAAK,CAAC,EAAE,EAAE,CAAC;EAC9C5P,KAAK,EAAE1F,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,GAAG,CAAC;EACxCiF,MAAM,EAAE3F,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,GAAG,CAAC;EACzC0S,KAAK,EAAEpT,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EACtC2S,UAAU,EAAErT,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC3CmV,IAAI,EAAE7V,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,IAAI,CAAC;EACxCuV,GAAG,EAAE9V,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,EAAE,CAAC;EACrCqV,aAAa,EAAE/V,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC,CAAC;EAC9CsV,YAAY,EAAEhW,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EAClDiW,YAAY,EAAEjW,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EAClDkW,qBAAqB,EAAElW,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAA,SAAA,CAAQ,EAAE,KAAK,CAAC;EAC3DmW,eAAe,EAAEnW,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;EACjD6V,uBAAuB,EAAEpW,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;AACzDI,EAAAA,MAAM,EAAEX,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACY,MAAM,EAAE,EAAE,EAAE,CAAC;EAC1CyV,IAAI,EAAErW,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,WAAW,CAAC;AAC/C+V,EAAAA,mBAAmB,EAAEtW,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAC8F,KAAK,CAAC9F,KAAK,CAACO,MAAM,CAAC,EAAE,EAAE,CAAC;EAClEsR,OAAO,EAAE7R,KAAK,CAACG,QAAQ,CAACyR,OAAO,EAAE,EAAE,CAAC;EACpC2E,aAAa,EAAEvW,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACO,MAAM,EAAE,EAAE,CAAC;AAC/CiW,EAAAA,iBAAiB,EAAExW,KAAK,CAACG,QAAQ,CAACH,KAAK,CAAC8F,KAAK,CAAC9F,KAAK,CAACO,MAAM,CAAC,EAAE,EAAE,CAAC;EAChEkW,mBAAmB,EAAEzW,KAAK,CAACG,QAAQ,CAACH,KAAK,CAACU,MAAM,EAAE,CAAC;AACrD,CAAC,CAAC,YACO,CAAC,YAAA;EAAA,OAAO;AACfgW,IAAAA,SAAS,EAAE,IAAI;AACfC,IAAAA,UAAU,EAAE,IAAIC,GAAG,EAAE;AACrBC,IAAAA,IAAI,EAAE,EAAE;AACRC,IAAAA,WAAW,EAAE,KAAK;AAClBC,IAAAA,WAAW,EAAE,CAAC;AACdC,IAAAA,SAAS,EAAE,KAAK;AAChBC,IAAAA,aAAa,EAAE,IAAI;AAAE;AACrBC,IAAAA,YAAY,EAAE,CAAC;AAAK;IACpBC,mBAAmB,EAAE,EAAE;GACxB;AAAA,CAAC,CAAC,CACFtV,KAAK,CAAC,UAACC,IAAI,EAAA;EAAA,OAAM;IAChB,IAAIsV,OAAOA,GAAG;MACZ,IAAM5Q,GAAG,GAAG,EAAE;AACd1E,MAAAA,IAAI,CAACyM,KAAK,CAACvH,OAAO,CAAC,UAACjF,IAAI,EAAK;AAC3BA,QAAAA,IAAI,CAACqK,QAAQ,CAACpF,OAAO,CAAC,UAAC2F,KAAK,EAAK;AAC/BY,UAAAA,cAAa,CAACZ,KAAK,EAAE,UAACiI,EAAE,EAAK;AAC3BpO,YAAAA,GAAG,CAACoO,EAAE,CAAC1U,EAAE,CAAC,GAAG0U,EAAE;AACjB,UAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AACJ,MAAA,CAAC,CAAC;AACF,MAAA,OAAOpO,GAAG;IACZ,CAAC;IACD,IAAI6Q,gBAAgBA,GAAG;AACrB,MAAA,IAAM7Q,GAAG,GAAG1E,IAAI,CAACsV,OAAO;AACxB,MAAA,OAAOtV,IAAI,CAACwU,mBAAmB,CAC5B9P,GAAG,CAAC,UAACtG,EAAE,EAAA;QAAA,OAAKsG,GAAG,CAACtG,EAAE,CAAC;AAAA,MAAA,CAAA,CAAC,CACpBoX,MAAM,CAACC,OAAO,CAAC;IACpB,CAAC;IACD,IAAIC,cAAcA,GAAG;MACnB,OAAO1V,IAAI,CAACuV,gBAAgB;IAC9B,CAAC;IACD,IAAIjL,QAAQA,GAAG;MACb,OAAOtK,IAAI,CAACyM,KAAK;IACnB,CAAC;IACD,IAAIkJ,UAAUA,GAAG;MACf,IAAI3V,IAAI,CAACyU,aAAa,EAAE;QACtB,IAAMxU,IAAI,GAAGD,IAAI,CAACyM,KAAK,CAACnH,IAAI,CAAC,UAACmD,CAAC,EAAA;AAAA,UAAA,OAAKA,CAAC,CAACrK,EAAE,KAAK4B,IAAI,CAACyU,aAAa;QAAA,CAAA,CAAC;QAChE,IAAIxU,IAAI,EAAE,OAAOA,IAAI;AACvB,MAAA;AACA,MAAA,OAAOD,IAAI,CAACyM,KAAK,CAACtL,MAAM,GAAG,CAAC,GAAGnB,IAAI,CAACyM,KAAK,CAAC,CAAC,CAAC,GAAG/M,SAAS;IAC1D,CAAC;IACD,IAAIkW,aAAaA,GAAG;AAClB,MAAA,IAAI5V,IAAI,CAAC0U,iBAAiB,CAACvT,MAAM,GAAG,CAAC,EAAE;AACrC,QAAA,OAAOnB,IAAI,CAAC0U,iBAAiB,CAC1BhQ,GAAG,CAAC,UAACtG,EAAE,EAAA;AAAA,UAAA,OAAK4B,IAAI,CAACyM,KAAK,CAACnH,IAAI,CAAC,UAACmD,CAAC,EAAA;AAAA,YAAA,OAAKA,CAAC,CAACrK,EAAE,KAAKA,EAAE;UAAA,CAAA,CAAC;AAAA,QAAA,CAAA,CAAC,CAChDoX,MAAM,CAACC,OAAO,CAAC;AACpB,MAAA;AACA,MAAA,IAAMI,MAAM,GAAG7V,IAAI,CAAC2V,UAAU;AAC9B,MAAA,OAAOE,MAAM,GAAG,CAACA,MAAM,CAAC,GAAG,EAAE;IAC/B,CAAC;IACD,IAAI3S,QAAQA,GAAG;MACb,IAAI4S,KAAK,GAAG,CAAC;AACb9V,MAAAA,IAAI,CAACyM,KAAK,CAACvH,OAAO,CAAC,UAACjF,IAAI,EAAK;QAC3B6V,KAAK,IAAI7V,IAAI,CAACiD,QAAQ;AACxB,MAAA,CAAC,CAAC;AACF,MAAA,OAAO4S,KAAK;IACd,CAAC;IACD,IAAIC,WAAWA,GAAG;MAChB,IAAMC,MAAM,GAAG,EAAE;AACjBhW,MAAAA,IAAI,CAACyM,KAAK,CAACvH,OAAO,CAAC,UAACjF,IAAI,EAAK;AAC3BA,QAAAA,IAAI,CAACqK,QAAQ,CAACpF,OAAO,CAAC,UAAC4N,EAAE,EAAK;AAC5BrH,UAAAA,cAAa,CAACqH,EAAE,EAAE,UAACjI,KAAK,EAAK;YAC3B,IAAIA,KAAK,CAAChM,MAAM,IAAIgM,KAAK,CAAChM,MAAM,CAACoU,UAAU,EAAE;AAC3C+C,cAAAA,MAAM,CAACxQ,IAAI,CAACqF,KAAK,CAAC;AACpB,YAAA;AACF,UAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AACJ,MAAA,CAAC,CAAC;AACF,MAAA,OAAOmL,MAAM;IACf,CAAC;IACD,IAAIC,iBAAiBA,GAAG;AAAA,MAAA,IAAA1J,SAAA,GAAAC,0BAAA,CACHxM,IAAI,CAACyM,KAAK,CAAA;QAAAC,KAAA;AAAA,MAAA,IAAA;QAA7B,KAAAH,SAAA,CAAAjN,CAAA,EAAA,EAAA,CAAA,CAAAoN,KAAA,GAAAH,SAAA,CAAAI,CAAA,EAAA,EAAAC,IAAA,GAA+B;AAAA,UAAA,IAApB3M,IAAI,GAAAyM,KAAA,CAAAtK,KAAA;AAAA,UAAA,IAAAuL,UAAA,GAAAnB,0BAAA,CACOvM,IAAI,CAACqK,QAAQ,CAAA;YAAAsD,MAAA;AAAA,UAAA,IAAA;YAAjC,KAAAD,UAAA,CAAArO,CAAA,EAAA,EAAA,CAAA,CAAAsO,MAAA,GAAAD,UAAA,CAAAhB,CAAA,EAAA,EAAAC,IAAA,GAAmC;AAAA,cAAA,IAAxB/B,KAAK,GAAA+C,MAAA,CAAAxL,KAAA;AACd,cAAA,IACEyI,KAAK,CAACrM,IAAI,KAAK,OAAO,KACrBqM,KAAK,CAACjF,KAAK,KAAK,CAAC,IAChBiF,KAAK,CAAChF,KAAK,KAAK,CAAC,IACjBgF,KAAK,CAAC/E,SAAS,KAAK,CAAC,IACrB+E,KAAK,CAAC9E,UAAU,KAAK,CAAC,CAAC,EACzB;AACA,gBAAA,OAAO,IAAI;AACb,cAAA;AACF,YAAA;AAAC,UAAA,CAAA,CAAA,OAAA8G,GAAA,EAAA;YAAAc,UAAA,CAAAvN,CAAA,CAAAyM,GAAA,CAAA;AAAA,UAAA,CAAA,SAAA;AAAAc,YAAAA,UAAA,CAAAb,CAAA,EAAA;AAAA,UAAA;AACH,QAAA;AAAC,MAAA,CAAA,CAAA,OAAAD,GAAA,EAAA;QAAAN,SAAA,CAAAnM,CAAA,CAAAyM,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAAN,QAAAA,SAAA,CAAAO,CAAA,EAAA;AAAA,MAAA;AACD,MAAA,OAAO,KAAK;AACd,IAAA;GACD;AAAA,CAAC,CAAC,CACFlM,OAAO,CAAC,UAACZ,IAAI,EAAA;EAAA,OAAM;AAClBsF,IAAAA,IAAI,EAAA,SAAJA,IAAIA,CAACoK,QAAQ,EAAE;AAAA,MAAA,IAAA3B,UAAA,GAAAvB,0BAAA,CACMxM,IAAI,CAACyM,KAAK,CAAA;QAAAuB,MAAA;AAAA,MAAA,IAAA;QAA7B,KAAAD,UAAA,CAAAzO,CAAA,EAAA,EAAA,CAAA,CAAA0O,MAAA,GAAAD,UAAA,CAAApB,CAAA,EAAA,EAAAC,IAAA,GAA+B;AAAA,UAAA,IAApB3M,IAAI,GAAA+N,MAAA,CAAA5L,KAAA;AACb,UAAA,IAAIsN,QAAQ,CAACzP,IAAI,CAAC,EAAE,OAAOA,IAAI;AAAC,UAAA,IAAAkO,UAAA,GAAA3B,0BAAA,CACZvM,IAAI,CAACqK,QAAQ,CAAA;YAAA8D,MAAA;AAAA,UAAA,IAAA;YAAjC,KAAAD,UAAA,CAAA7O,CAAA,EAAA,EAAA,CAAA,CAAA8O,MAAA,GAAAD,UAAA,CAAAxB,CAAA,EAAA,EAAAC,IAAA,GAAmC;AAAA,cAAA,IAAxB/B,KAAK,GAAAuD,MAAA,CAAAhM,KAAA;AACd,cAAA,IAAIsN,QAAQ,CAAC7E,KAAK,CAAC,EAAE,OAAOA,KAAK;AACnC,YAAA;AAAC,UAAA,CAAA,CAAA,OAAAgC,GAAA,EAAA;YAAAsB,UAAA,CAAA/N,CAAA,CAAAyM,GAAA,CAAA;AAAA,UAAA,CAAA,SAAA;AAAAsB,YAAAA,UAAA,CAAArB,CAAA,EAAA;AAAA,UAAA;AACH,QAAA;AAAC,MAAA,CAAA,CAAA,OAAAD,GAAA,EAAA;QAAAkB,UAAA,CAAA3N,CAAA,CAAAyM,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAAkB,QAAAA,UAAA,CAAAjB,CAAA,EAAA;AAAA,MAAA;AACD,MAAA,OAAOpN,SAAS;IAClB,CAAC;AACDwW,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAC9X,EAAE,EAAE;AACjB,MAAA,OAAO4B,IAAI,CAACsV,OAAO,CAAClX,EAAE,CAAC;AACzB,IAAA;GACD;AAAA,CAAC,CAAC,CACFwC,OAAO,CAAC,UAACZ,IAAI,EAAA;EAAA,OAAM;IAClBmW,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AACnB,MAAA,IAAMH,MAAM,GAAGhW,IAAI,CAAC+V,WAAW;MAC/B/V,IAAI,CAACqV,mBAAmB,GAAGW,MAAM;AACjC,MAAA,OAAOA,MAAM;IACf,CAAC;AACDI,IAAAA,kBAAkB,EAAA,SAAlBA,kBAAkBA,CAAChY,EAAE,EAAE;MACrB4B,IAAI,CAACqV,mBAAmB,GAAGrV,IAAI,CAACqV,mBAAmB,CAACG,MAAM,CACxD,UAAC1C,EAAE,EAAA;AAAA,QAAA,OAAKA,EAAE,CAAC1U,EAAE,KAAKA,EAAE;AAAA,MAAA,CACtB,CAAC;IACH,CAAC;AACDiY,IAAAA,oBAAoB,EAAA,SAApBA,oBAAoBA,CAACvD,EAAE,EAAE;AACvB;MACA,IAAMwD,cAAc,GAAGtW,IAAI,CAACqV,mBAAmB,CAACkB,IAAI,CAAC,UAACzJ,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAC1O,EAAE,KAAK0U,EAAE,CAAC1U,EAAE;MAAA,CAAA,CAAC;MAC3E,IAAI,CAACkY,cAAc,EAAE;AACnBtW,QAAAA,IAAI,CAACqV,mBAAmB,CAACmB,OAAO,CAAC1D,EAAE,CAAC;AACtC,MAAA;IACF,CAAC;IACD2D,uBAAuB,EAAA,SAAvBA,uBAAuBA,GAAG;MACxBzW,IAAI,CAACqV,mBAAmB,GAAG,EAAE;AAC/B,IAAA;GACD;AAAA,CAAC,CAAC,CACFzU,OAAO,CAAC,UAACZ,IAAI,EAAA;EAAA,OAAM;IAClBwS,WAAW,EAAA,SAAXA,WAAWA,GAAG;AACZ;AACA,MAAA,IAAIxS,IAAI,CAACyM,KAAK,CAACtL,MAAM,GAAG,CAAC,IAAI,CAACnB,IAAI,CAACyU,aAAa,EAAE;QAChDzU,IAAI,CAACyU,aAAa,GAAGzU,IAAI,CAACyM,KAAK,CAAC,CAAC,CAAC,CAACrO,EAAE;AACvC,MAAA;IACF,CAAC;AACD0D,IAAAA,GAAG,EAAA,SAAHA,GAAGA,CAACP,KAAK,EAAE;AACT,MAAA,KAAA,IAAAQ,GAAA,GAAA,CAAA,EAAA2U,gBAAA,GAA2BzV,MAAM,CAACgB,OAAO,CAACV,KAAK,CAAC,EAAAQ,GAAA,GAAA2U,gBAAA,CAAAvV,MAAA,EAAAY,GAAA,EAAA,EAAE;AAA7C,QAAA,IAAA4U,mBAAA,GAAAxU,cAAA,CAAAuU,gBAAA,CAAA3U,GAAA,CAAA,EAAA,CAAA,CAAA;AAAOX,UAAAA,GAAG,GAAAuV,mBAAA,CAAA,CAAA,CAAA;AAAEvU,UAAAA,KAAK,GAAAuU,mBAAA,CAAA,CAAA,CAAA;QACpB,IAAIvV,GAAG,IAAIpB,IAAI,IAAI,CAACoB,GAAG,CAACC,UAAU,CAAC,GAAG,CAAC,EAAE;AACvCrB,UAAAA,IAAI,CAACoB,GAAG,CAAC,GAAGgB,KAAK;AACnB,QAAA;AACF,MAAA;IACF,CAAC;AACDwU,IAAAA,OAAO,EAAA,SAAPA,OAAOA,CAAAnV,IAAA,EAAgB;AAAA,MAAA,IAAbsS,IAAI,GAAAtS,IAAA,CAAJsS,IAAI;QAAEC,GAAG,GAAAvS,IAAA,CAAHuS,GAAG;MACjB,IAAID,IAAI,KAAKrU,SAAS,EAAEM,IAAI,CAAC+T,IAAI,GAAGA,IAAI;MACxC,IAAIC,GAAG,KAAKtU,SAAS,EAAEM,IAAI,CAACgU,GAAG,GAAGA,GAAG;IACvC,CAAC;AACD6C,IAAAA,OAAO,EAAA,SAAPA,OAAOA,CAACjD,IAAI,EAAE;MACZ5T,IAAI,CAAC4T,IAAI,GAAGA,IAAI;IAClB,CAAC;AACDkD,IAAAA,OAAO,EAAA,SAAPA,OAAOA,CAACvC,IAAI,EAAE;MACZvU,IAAI,CAACuU,IAAI,GAAGA,IAAI;IAClB,CAAC;AACDwC,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACC,OAAO,EAAE;AACtB;IAAA,CACD;IACD9J,OAAO,EAAA,SAAPA,OAAOA,GAAa;AAAA,MAAA,IAAZ3L,KAAK,GAAAC,SAAA,CAAAL,MAAA,GAAA,CAAA,IAAAK,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;MAChB,IAAMyV,QAAQ,GAAA1X,cAAA,CAAA;QACZnB,EAAE,EAAEG,EAAM;AAAE,OAAA,EACTgD,KAAK,CACT;AACDvB,MAAAA,IAAI,CAACyM,KAAK,CAACjH,IAAI,CAACyR,QAAQ,CAAC;AACzB,MAAA,IAAMC,OAAO,GAAGlX,IAAI,CAACyM,KAAK,CAACzM,IAAI,CAACyM,KAAK,CAACtL,MAAM,GAAG,CAAC,CAAC;AACjDnB,MAAAA,IAAI,CAACyU,aAAa,GAAGyC,OAAO,CAAC9Y,EAAE;AAC/B,MAAA,OAAO8Y,OAAO;IAChB,CAAC;AACDjK,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAAC7O,EAAE,EAAE;MACb4B,IAAI,CAACyU,aAAa,GAAGrW,EAAE;AACvB4B,MAAAA,IAAI,CAAC0U,iBAAiB,CAACrC,KAAK,EAAE;IAChC,CAAC;AACD8E,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACzJ,GAAG,EAAE;AACf1N,MAAAA,IAAI,CAAC0U,iBAAiB,CAAC0C,OAAO,CAAC1J,GAAG,CAAC;AACnC,MAAA,IAAIA,GAAG,CAACvM,MAAM,GAAG,CAAC,EAAE;AAClBnB,QAAAA,IAAI,CAACyU,aAAa,GAAG/G,GAAG,CAAC,CAAC,CAAC;AAC7B,MAAA;IACF,CAAC;AACDL,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACK,GAAG,EAAE;AAClB1N,MAAAA,IAAI,CAACwU,mBAAmB,CAAC4C,OAAO,CAAC1J,GAAG,CAAC;AACrC;MACA,IAAI1N,IAAI,CAACmV,aAAa,EAAE;QACtB,IAAMkC,aAAa,GAAG3J,GAAG,CAAChF,QAAQ,CAAC1I,IAAI,CAACmV,aAAa,CAACmC,SAAS,CAAC;QAChE,IAAI,CAACD,aAAa,EAAE;UAClBrX,IAAI,CAACmV,aAAa,GAAG,IAAI;AAC3B,QAAA;AACF,MAAA;IACF,CAAC;AACDoC,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACrD,YAAY,EAAE;AACxBlU,MAAAA,IAAI,CAACkU,YAAY,GACfA,YAAY,KAAKxU,SAAS,GAAGwU,YAAY,GAAG,CAAClU,IAAI,CAACkU,YAAY;IAClE,CAAC;AACDsD,IAAAA,YAAY,EAAA,SAAZA,YAAYA,CAACrD,YAAY,EAAE;AACzBnU,MAAAA,IAAI,CAACmU,YAAY,GACfA,YAAY,KAAKzU,SAAS,GAAGyU,YAAY,GAAG,CAACnU,IAAI,CAACmU,YAAY;IAClE,CAAC;AACDsD,IAAAA,oBAAoB,EAAA,SAApBA,oBAAoBA,CAACrD,qBAAqB,EAAE;AAC1CpU,MAAAA,IAAI,CAACoU,qBAAqB,GACxBA,qBAAqB,KAAK1U,SAAS,GAC/B0U,qBAAqB,GACrB,CAACpU,IAAI,CAACoU,qBAAqB;IACnC,CAAC;AACDsD,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAACC,SAAS,EAAE;AACvB3X,MAAAA,IAAI,CAACsU,uBAAuB,GAAGtU,IAAI,CAACqU,eAAe;MACnDrU,IAAI,CAACqU,eAAe,GAAGsD,SAAS;IAClC,CAAC;AACDC,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAACpZ,IAAI,EAAE;AACrB,MAAA,IAAMsU,EAAE,GAAG9S,IAAI,CAACuV,gBAAgB,CAACpU,MAAM,KAAK,CAAC,GAAGnB,IAAI,CAACuV,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI;AAC/E,MAAA,IAAIzC,EAAE,EAAE;QACN9S,IAAI,CAACmV,aAAa,GAAG;AAAE3W,UAAAA,IAAI,EAAJA,IAAI;UAAE8Y,SAAS,EAAExE,EAAE,CAAC1U;SAAI;AACjD,MAAA;IACF,CAAC;IACDyZ,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;MAClB7X,IAAI,CAACmV,aAAa,GAAG,IAAI;IAC3B,CAAC;AACD2C,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAACxG,KAAK,EAAE;MACdtR,IAAI,CAACsR,KAAK,GAAGA,KAAK;IACpB,CAAC;AACDyG,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACzG,KAAK,EAAE;MACpBtR,IAAI,CAACuR,UAAU,GAAGD,KAAK;IACzB,CAAC;AACD0G,IAAAA,qBAAqB,EAAA,SAArBA,qBAAqBA,CAACC,KAAK,EAAE;MAC3BjY,IAAI,CAAC2U,mBAAmB,GAAGsD,KAAK;IAClC,CAAC;AACD7I,IAAAA,OAAO,WAAPA,OAAOA,CAACxL,KAAK,EAAEC,MAAM,EAAoB;MACvC,IAAID,KAAK,KAAKlE,SAAS,EAAEM,IAAI,CAAC4D,KAAK,GAAGA,KAAK;MAC3C,IAAIC,MAAM,KAAKnE,SAAS,EAAEM,IAAI,CAAC6D,MAAM,GAAGA,MAAM;IAChD,CAAC;AACD2L,IAAAA,aAAa,WAAbA,aAAaA,CAACpR,EAAE,EAAEsC,MAAM,EAAE;MACxB,IAAMmN,GAAG,GAAG7N,IAAI,CAACyM,KAAK,CAACc,SAAS,CAAC,UAAC9E,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAACrK,EAAE,KAAKA,EAAE;MAAA,CAAA,CAAC;AACpD,MAAA,IAAIyP,GAAG,IAAI,CAAC,IAAInN,MAAM,IAAI,CAAC,IAAIA,MAAM,GAAGV,IAAI,CAACyM,KAAK,CAACtL,MAAM,EAAE;QACzD,IAAM9B,QAAQ,GAAGmM,WAAW,CAACxL,IAAI,CAACyM,KAAK,CAACoB,GAAG,CAAC,CAAC;QAC7C7N,IAAI,CAACyM,KAAK,CAACwB,MAAM,CAACJ,GAAG,EAAE,CAAC,CAAC;QACzB7N,IAAI,CAACyM,KAAK,CAACwB,MAAM,CAACvN,MAAM,EAAE,CAAC,EAAErB,QAAQ,CAAC;AACxC,MAAA;IACF,CAAC;AACD6Y,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACxK,GAAG,EAAE;MACf,IAAMyK,QAAQ,GAAGnY,IAAI,CAACyM,KAAK,CAAC+I,MAAM,CAAC,UAAC/M,CAAC,EAAA;AAAA,QAAA,OAAKiF,GAAG,CAAChF,QAAQ,CAACD,CAAC,CAACrK,EAAE,CAAC;MAAA,CAAA,CAAC;AAC7D+Z,MAAAA,QAAQ,CAACjT,OAAO,CAAC,UAACjF,IAAI,EAAK;QACzBmY,OAAO,CAACnY,IAAI,CAAC;AACf,MAAA,CAAC,CAAC;AACF;AACA,MAAA,IAAID,IAAI,CAACyM,KAAK,CAACtL,MAAM,KAAK,CAAC,EAAE;QAC3BnB,IAAI,CAACkN,OAAO,EAAE;AAChB,MAAA;AACA;MACA,IAAI,CAAClN,IAAI,CAACyM,KAAK,CAACnH,IAAI,CAAC,UAACmD,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAACrK,EAAE,KAAK4B,IAAI,CAACyU,aAAa;AAAA,MAAA,CAAA,CAAC,EAAE;QACxDzU,IAAI,CAACyU,aAAa,GAAGzU,IAAI,CAACyM,KAAK,CAAC,CAAC,CAAC,CAACrO,EAAE;AACvC,MAAA;IACF,CAAC;AACDia,IAAAA,aAAa,EAAA,SAAbA,aAAaA,CAAC3K,GAAG,EAAc;AAAA,MAAA,IAAZnM,KAAK,GAAAC,SAAA,CAAAL,MAAA,GAAA,CAAA,IAAAK,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAC3B,MAAA,IAAMvB,IAAI,GAAGD,IAAI,CAAC2V,UAAU;AAC5B,MAAA,IAAI,CAAC1V,IAAI,EAAE,OAAO,IAAI;MAEtB,IAAMqY,QAAQ,GAAG5K,GAAG,CACjBhJ,GAAG,CAAC,UAACtG,EAAE,EAAK;QACX,IAAMyP,GAAG,GAAG5N,IAAI,CAACqK,QAAQ,CAACiD,SAAS,CAAC,UAACC,CAAC,EAAA;AAAA,UAAA,OAAKA,CAAC,CAACpP,EAAE,KAAKA,EAAE;QAAA,CAAA,CAAC;AACvD,QAAA,IAAIyP,GAAG,IAAI,CAAC,EAAE,OAAO;AAAEA,UAAAA,GAAG,EAAHA,GAAG;UAAExO,QAAQ,EAAEmM,WAAW,CAACvL,IAAI,CAACqK,QAAQ,CAACuD,GAAG,CAAC;SAAG;AACvE,QAAA,OAAO,IAAI;AACb,MAAA,CAAC,CAAC,CACD2H,MAAM,CAACC,OAAO,CAAC;AAElB,MAAA,IAAI6C,QAAQ,CAACnX,MAAM,GAAG,CAAC,EAAE,OAAO,IAAI;;AAEpC;MACA,IAAIqJ,IAAI,GAAGC,QAAQ;AAAEC,QAAAA,IAAI,GAAGD,QAAQ;QAAEE,IAAI,GAAG,CAACF,QAAQ;QAAEG,IAAI,GAAG,CAACH,QAAQ;AACxE6N,MAAAA,QAAQ,CAACpT,OAAO,CAAC,UAAAmK,KAAA,EAAkB;AAAA,QAAA,IAAfhQ,QAAQ,GAAAgQ,KAAA,CAARhQ,QAAQ;AAC1BmL,QAAAA,IAAI,GAAGU,IAAI,CAACC,GAAG,CAACX,IAAI,EAAEnL,QAAQ,CAACqE,CAAC,IAAI,CAAC,CAAC;AACtCgH,QAAAA,IAAI,GAAGQ,IAAI,CAACC,GAAG,CAACT,IAAI,EAAErL,QAAQ,CAACsE,CAAC,IAAI,CAAC,CAAC;QACtCgH,IAAI,GAAGO,IAAI,CAACE,GAAG,CAACT,IAAI,EAAE,CAACtL,QAAQ,CAACqE,CAAC,IAAI,CAAC,KAAKrE,QAAQ,CAACuE,KAAK,IAAI,CAAC,CAAC,CAAC;QAChEgH,IAAI,GAAGM,IAAI,CAACE,GAAG,CAACR,IAAI,EAAE,CAACvL,QAAQ,CAACsE,CAAC,IAAI,CAAC,KAAKtE,QAAQ,CAACwE,MAAM,IAAI,CAAC,CAAC,CAAC;AACnE,MAAA,CAAC,CAAC;;AAEF;AACA,MAAA,IAAM0U,aAAa,GAAGD,QAAQ,CAAC5T,GAAG,CAAC,UAACtE,CAAC,EAAA;QAAA,OAAKA,CAAC,CAACyN,GAAG;AAAA,MAAA,CAAA,CAAC,CAAC2K,IAAI,CAAC,UAACjT,CAAC,EAAEkT,CAAC,EAAA;QAAA,OAAKA,CAAC,GAAGlT,CAAC;MAAA,CAAA,CAAC;AACtEgT,MAAAA,aAAa,CAACrT,OAAO,CAAC,UAAC2I,GAAG,EAAK;QAC7B5N,IAAI,CAACqK,QAAQ,CAAC2D,MAAM,CAACJ,GAAG,EAAE,CAAC,CAAC;AAC9B,MAAA,CAAC,CAAC;;AAEF;AACA,MAAA,IAAM6K,aAAa,GAAGJ,QAAQ,CAAC5T,GAAG,CAAC,UAAAiU,KAAA,EAAA;AAAA,QAAA,IAAGtZ,QAAQ,GAAAsZ,KAAA,CAARtZ,QAAQ;AAAA,QAAA,OAAAE,cAAA,CAAAA,cAAA,CAAA,EAAA,EACzCF,QAAQ,CAAA,EAAA,EAAA,EAAA;AACXjB,UAAAA,EAAE,EAAEsB,SAAS;AAAE;UACfgE,CAAC,EAAE,CAACrE,QAAQ,CAACqE,CAAC,IAAI,CAAC,IAAI8G,IAAI;AAC3B7G,UAAAA,CAAC,EAAE,CAACtE,QAAQ,CAACsE,CAAC,IAAI,CAAC,IAAI+G;AAAI,SAAA,CAAA;AAAA,MAAA,CAC3B,CAAC;AAEH,MAAA,IAAMkO,KAAK,GAAG3Y,IAAI,CAAC4B,UAAU,CAAAtC,cAAA,CAAA;AAC3Bf,QAAAA,IAAI,EAAE,OAAO;AACbkF,QAAAA,CAAC,EAAE8G,IAAI;AACP7G,QAAAA,CAAC,EAAE+G,IAAI;QACP9G,KAAK,EAAE+G,IAAI,GAAGH,IAAI;QAClB3G,MAAM,EAAE+G,IAAI,GAAGF,IAAI;AACnBJ,QAAAA,QAAQ,EAAEoO;OAAa,EACpBnX,KAAK,CACT,CAAC;AAEF,MAAA,OAAOqX,KAAK;IACd,CAAC;AACDC,IAAAA,eAAe,EAAA,SAAfA,eAAeA,CAACnL,GAAG,EAAE;AACnB,MAAA,IAAMzN,IAAI,GAAGD,IAAI,CAAC2V,UAAU;MAC5B,IAAI,CAAC1V,IAAI,EAAE;MAEX,IAAM6Y,WAAW,GAAG,EAAE;AAEtBpL,MAAAA,GAAG,CAACxI,OAAO,CAAC,UAAC9G,EAAE,EAAK;QAClB,IAAMyP,GAAG,GAAG5N,IAAI,CAACqK,QAAQ,CAACiD,SAAS,CAAC,UAACC,CAAC,EAAA;AAAA,UAAA,OAAKA,CAAC,CAACpP,EAAE,KAAKA,EAAE;QAAA,CAAA,CAAC;QACvD,IAAIyP,GAAG,GAAG,CAAC,EAAE;AACb,QAAA,IAAM+K,KAAK,GAAG3Y,IAAI,CAACqK,QAAQ,CAACuD,GAAG,CAAC;AAChC,QAAA,IAAI+K,KAAK,CAACpa,IAAI,KAAK,OAAO,EAAE;AAE5B,QAAA,IAAMua,aAAa,GAAGvN,WAAW,CAACoN,KAAK,CAAC;AACxC,QAAA,IAAMI,MAAM,GAAGD,aAAa,CAACrV,CAAC,IAAI,CAAC;AACnC,QAAA,IAAMuV,MAAM,GAAGF,aAAa,CAACpV,CAAC,IAAI,CAAC;;AAEnC;QACA1D,IAAI,CAACqK,QAAQ,CAAC2D,MAAM,CAACJ,GAAG,EAAE,CAAC,CAAC;;AAE5B;QACA,CAACkL,aAAa,CAACzO,QAAQ,IAAI,EAAE,EAAEpF,OAAO,CAAC,UAACgU,aAAa,EAAK;UACxD,IAAMC,KAAK,GAAGlZ,IAAI,CAAC4B,UAAU,CAAAtC,cAAA,CAAAA,cAAA,CAAA,EAAA,EAEtB2Z,aAAa,CAAA,EAAA,EAAA,EAAA;AAChB9a,YAAAA,EAAE,EAAEsB,SAAS;YACbgE,CAAC,EAAE,CAACwV,aAAa,CAACxV,CAAC,IAAI,CAAC,IAAIsV,MAAM;AAClCrV,YAAAA,CAAC,EAAE,CAACuV,aAAa,CAACvV,CAAC,IAAI,CAAC,IAAIsV;WAAM,CAAA,EAEpC;AAAEtX,YAAAA,UAAU,EAAE;AAAK,WACrB,CAAC;UACD,IAAIwX,KAAK,EAAEL,WAAW,CAACtT,IAAI,CAAC2T,KAAK,CAAC/a,EAAE,CAAC;AACvC,QAAA,CAAC,CAAC;AACJ,MAAA,CAAC,CAAC;;AAEF;AACA,MAAA,IAAI0a,WAAW,CAAC3X,MAAM,GAAG,CAAC,EAAE;AAC1BnB,QAAAA,IAAI,CAACqN,cAAc,CAACyL,WAAW,CAAC;AAClC,MAAA;IACF,CAAC;AACDM,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAC1L,GAAG,EAAE;AAClB1N,MAAAA,IAAI,CAACyM,KAAK,CAACvH,OAAO,CAAC,UAACjF,IAAI,EAAK;QAC3B,IAAMkY,QAAQ,GAAGlY,IAAI,CAACqK,QAAQ,CAACkL,MAAM,CAAC,UAAChI,CAAC,EAAA;AAAA,UAAA,OAAKE,GAAG,CAAChF,QAAQ,CAAC8E,CAAC,CAACpP,EAAE,CAAC;QAAA,CAAA,CAAC;AAChE+Z,QAAAA,QAAQ,CAACjT,OAAO,CAAC,UAAC4N,EAAE,EAAK;UACvBsF,OAAO,CAACtF,EAAE,CAAC;AACb,QAAA,CAAC,CAAC;AACJ,MAAA,CAAC,CAAC;AACF;AACA9S,MAAAA,IAAI,CAACwU,mBAAmB,CAAC4C,OAAO,CAC9BpX,IAAI,CAACwU,mBAAmB,CAACgB,MAAM,CAAC,UAACpX,EAAE,EAAA;AAAA,QAAA,OAAK,CAACsP,GAAG,CAAChF,QAAQ,CAACtK,EAAE,CAAC;AAAA,MAAA,CAAA,CAC3D,CAAC;IACH,CAAC;AACDib,IAAAA,EAAE,WAAFA,EAAEA,CAACC,KAAK,EAAE5J,QAAQ,EAAE;MAClB,IAAI,CAAC1P,IAAI,CAAC6U,UAAU,CAAC0E,GAAG,CAACD,KAAK,CAAC,EAAE;QAC/BtZ,IAAI,CAAC6U,UAAU,CAAC/S,GAAG,CAACwX,KAAK,EAAE,EAAE,CAAC;AAChC,MAAA;MACAtZ,IAAI,CAAC6U,UAAU,CAAC2E,GAAG,CAACF,KAAK,CAAC,CAAC9T,IAAI,CAACkK,QAAQ,CAAC;;AAEzC;AACA,MAAA,OAAO,YAAM;QACX,IAAM+J,SAAS,GAAGzZ,IAAI,CAAC6U,UAAU,CAAC2E,GAAG,CAACF,KAAK,CAAC;AAC5C,QAAA,IAAIG,SAAS,EAAE;AACb,UAAA,IAAM5L,GAAG,GAAG4L,SAAS,CAAC9Y,OAAO,CAAC+O,QAAQ,CAAC;UACvC,IAAI7B,GAAG,IAAI,CAAC,EAAE4L,SAAS,CAACxL,MAAM,CAACJ,GAAG,EAAE,CAAC,CAAC;AACxC,QAAA;MACF,CAAC;IACH,CAAC;AACD6L,IAAAA,KAAK,WAALA,KAAKA,CAACJ,KAAK,EAAElW,IAAI,EAAE;MACjB,IAAMqW,SAAS,GAAGzZ,IAAI,CAAC6U,UAAU,CAAC2E,GAAG,CAACF,KAAK,CAAC;AAC5C,MAAA,IAAIG,SAAS,EAAE;AACbA,QAAAA,SAAS,CAACvU,OAAO,CAAC,UAACyG,EAAE,EAAA;UAAA,OAAKA,EAAE,CAACvI,IAAI,CAAC;QAAA,CAAA,CAAC;AACrC,MAAA;IACF,CAAC;AACDuW,IAAAA,YAAY,EAAA,SAAZA,YAAYA,CAACC,GAAG,EAAE;MAChB5Z,IAAI,CAAC4U,SAAS,GAAGgF,GAAG;IACtB,CAAC;IAEKC,SAAS,EAAA,SAATA,SAASA,GAQP;MAAA,IAAAC,UAAA,GAAAtY,SAAA;AAAA,MAAA,OAAAsP,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,UAAAC,OAAAA,GAAA;AAAA,QAAA,IAAA8I,KAAA,CAAA,CAAAC,gBAAA,EAAAC,UAAA,CAAA,CAAAC,MAAA,CAAA,CAAAC,KAAA,EAAAla,IAAA,CAAA,CAAAma,KAAA,CAAA,CAAAC,KAAA,EAAAC,KAAA,CAAA,CAAAC,UAAA,CAAA,CAAAC,UAAA,EAAAC;AAAA,QAAA,OAAA1J,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAC,QAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAxE,CAAA;AAAA,YAAA,KAAA,CAAA;cAAAoN,KAAA,GAAAD,UAAA,CAAA3Y,MAAA,QAAA2Y,UAAA,CAAA,CAAA,CAAA,KAAApa,SAAA,GAAAoa,UAAA,CAAA,CAAA,CAAA,GAAJ,EAAE,EAAAE,gBAAA,GAAAD,KAAA,CAPJE,UAAU,EAAVA,UAAU,GAAAD,gBAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,gBAAA,EAAAD,KAAA,CACdW,gBAAgB,EAChBR,MAAM,GAAAH,KAAA,CAANG,MAAM,EAAAH,KAAA,CACNY,QAAQ,EAAcZ,KAAA,CACtBa,YAAY,EAAQb,KAAA,CACpBc,YAAY,EAAQd,KAAA,CACpBe,SAAiB;cAEXX,KAAK,GAAGna,IAAI,CAAC4U,SAAS;AAAA,cAAA,IACvBuF,KAAK,EAAA;AAAAhJ,gBAAAA,QAAA,CAAAxE,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAAA,MACF,IAAIoO,KAAK,CAAC,sDAAsD,CAAC;AAAA,YAAA,KAAA,CAAA;cAGnE9a,IAAI,GAAGia,MAAM,GACfla,IAAI,CAACyM,KAAK,CAACnH,IAAI,CAAC,UAACmD,CAAC,EAAA;AAAA,gBAAA,OAAKA,CAAC,CAACrK,EAAE,KAAK8b,MAAM;cAAA,CAAA,CAAC,GACvCla,IAAI,CAAC2V,UAAU;AAAA,cAAA,IACd1V,IAAI,EAAA;AAAAkR,gBAAAA,QAAA,CAAAxE,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAAA,MACD,IAAIoO,KAAK,CAAC,2BAA2B,CAAC;AAAA,YAAA,KAAA,CAAA;AAG9C;AACA;AACA;cACMX,KAAK,GAAGD,KAAK,CAACa,SAAS,EAAE,CAAC,CAAC,CAAC;AAAA,cAAA,IAC7BZ,KAAK,EAAA;AAAAjJ,gBAAAA,QAAA,CAAAxE,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAAA,MACF,IAAIoO,KAAK,CAAC,qCAAqC,CAAC;AAAA,YAAA,KAAA,CAAA;AAGlDV,cAAAA,KAAK,GAAGD,KAAK,CAAC1W,CAAC,EAAE;AACjB4W,cAAAA,KAAK,GAAGF,KAAK,CAACzW,CAAC,EAAE;AACjB4W,cAAAA,UAAU,GAAGH,KAAK,CAACa,MAAM,EAAE;AAC3BT,cAAAA,UAAU,GAAGJ,KAAK,CAACc,MAAM,EAAE;AAEjCd,cAAAA,KAAK,CAAC1W,CAAC,CAAC,CAAC,CAAC;AACV0W,cAAAA,KAAK,CAACzW,CAAC,CAAC,CAAC,CAAC;AACVyW,cAAAA,KAAK,CAACa,MAAM,CAAC,CAAC,CAAC;AACfb,cAAAA,KAAK,CAACc,MAAM,CAAC,CAAC,CAAC;cACfd,KAAK,CAACe,IAAI,EAAE;AAENV,cAAAA,MAAM,GAAGL,KAAK,CAACgB,QAAQ,CAAC;AAC5BnB,gBAAAA,UAAU,EAAVA,UAAU;AACVvW,gBAAAA,CAAC,EAAE,CAAC;AACJC,gBAAAA,CAAC,EAAE,CAAC;gBACJC,KAAK,EAAE5D,IAAI,CAAC4D,KAAK;gBACjBC,MAAM,EAAE7D,IAAI,CAAC6D;AACf,eAAC,CAAC,CAAA;AAGFuW,cAAAA,KAAK,CAAC1W,CAAC,CAAC2W,KAAK,CAAC;AACdD,cAAAA,KAAK,CAACzW,CAAC,CAAC2W,KAAK,CAAC;AACdF,cAAAA,KAAK,CAACa,MAAM,CAACV,UAAU,CAAC;AACxBH,cAAAA,KAAK,CAACc,MAAM,CAACV,UAAU,CAAC;cACxBJ,KAAK,CAACe,IAAI,EAAE;AAAC,cAAA,OAAAhK,QAAA,CAAA5L,CAAA,CAAA,CAAA,EAENkV,MAAM,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAxJ,OAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA,EAAA;IACf,CAAC;IAEKoK,SAAS,EAAA,SAATA,SAASA,GAMP;MAAA,IAAAC,WAAA,GAAA9Z,SAAA;AAAA,MAAA,OAAAsP,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,UAAAuK,QAAAA,GAAA;AAAA,QAAA,IAAAC,KAAA,CAAA,CAAAC,cAAA,CAAA,CAAAd,QAAA,EAAAe,aAAA,CAAA,CAAAC,OAAA,CAAA,CAAAC,IAAA,EAAAnB;AAAA,QAAA,OAAA1J,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA2K,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAlP,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA6O,cAAAA,KAAA,GAAAF,WAAA,CAAAna,MAAA,GAAA,CAAA,IAAAma,WAAA,CAAA,CAAA,CAAA,KAAA5b,SAAA,GAAA4b,WAAA,CAAA,CAAA,CAAA,GAAJ,EAAE,EAAAG,cAAA,GAAAD,KAAA,CALJb,QAAQ,EAARA,QAAQ,GAAAc,cAAA,KAAA,MAAA,GAAG,WAAW,GAAAA,cAAA,EAAAC,aAAA,GAAAF,KAAA,CACtBG,OAAO,EAAPA,OAAO,GAAAD,aAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,aAAA,EACRF,KAAA,CAAHxH,GAAG,EACQwH,KAAA,CAAXM,WAAW,EACRF,IAAI,GAAAG,wBAAA,CAAAP,KAAA,EAAAQ,SAAA,CAAA;AAAAH,cAAAA,SAAA,CAAAlP,CAAA,GAAA,CAAA;AAAA,cAAA,OAEc3M,IAAI,CAAC6Z,SAAS,CAAAta,cAAA,CAAA;AAAGob,gBAAAA,QAAQ,EAARA;eAAQ,EAAKiB,IAAI,CAAE,CAAC;AAAA,YAAA,KAAA,CAAA;cAApDnB,MAAM,GAAAoB,SAAA,CAAAjJ,CAAA;cAAA,OAAAiJ,SAAA,CAAAtW,CAAA,CAAA,CAAA,EACLkV,MAAM,CAACY,SAAS,CAACV,QAAQ,EAAEgB,OAAO,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAJ,QAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA,EAAA;IAC5C,CAAC;IAEKU,MAAM,EAAA,SAANA,MAAMA,GAAwD;MAAA,IAAAC,WAAA,GAAA1a,SAAA;AAAA,MAAA,OAAAsP,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,UAAAmL,QAAAA,GAAA;AAAA,QAAA,IAAAC,KAAA,EAAAC,cAAA,EAAA1B,QAAA,EAAA2B,aAAA,EAAAX,OAAA,EAAAC,IAAA,EAAAnB,MAAA;AAAA,QAAA,OAAA1J,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAqL,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA5P,CAAA;AAAA,YAAA,KAAA,CAAA;cAAAyP,KAAA,GAAAF,WAAA,CAAA/a,MAAA,QAAA+a,WAAA,CAAA,CAAA,CAAA,KAAAxc,SAAA,GAAAwc,WAAA,CAAA,CAAA,CAAA,GAAJ,EAAE,EAAAG,cAAA,GAAAD,KAAA,CAAnDzB,QAAQ,EAARA,QAAQ,GAAA0B,cAAA,KAAA,MAAA,GAAG,WAAW,GAAAA,cAAA,EAAAC,aAAA,GAAAF,KAAA,CAAET,OAAO,EAAPA,OAAO,GAAAW,aAAA,cAAG,CAAC,GAAAA,aAAA,EAAKV,IAAI,GAAAG,wBAAA,CAAAK,KAAA,EAAAI,UAAA,CAAA;AAAAD,cAAAA,SAAA,CAAA5P,CAAA,GAAA,CAAA;AAAA,cAAA,OACpC3M,IAAI,CAAC6Z,SAAS,CAAAta,cAAA,CAAA;AAAGob,gBAAAA,QAAQ,EAARA;eAAQ,EAAKiB,IAAI,CAAE,CAAC;AAAA,YAAA,KAAA,CAAA;cAApDnB,MAAM,GAAA8B,SAAA,CAAA3J,CAAA;cAAA,OAAA2J,SAAA,CAAAhX,CAAA,CAAA,CAAA,EACL,IAAIkX,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAK;AACtClC,gBAAAA,MAAM,CAACwB,MAAM,CACX,UAACW,IAAI,EAAK;AACR,kBAAA,IAAIA,IAAI,EAAE;oBACRF,OAAO,CAACE,IAAI,CAAC;AACf,kBAAA,CAAC,MAAM;AACLD,oBAAAA,MAAM,CAAC,IAAI5B,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAC5C,kBAAA;AACF,gBAAA,CAAC,EACDJ,QAAQ,EACRgB,OACF,CAAC;AACH,cAAA,CAAC,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAQ,QAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA,EAAA;IACJ,CAAC;IAEKU,WAAW,EAAA,SAAXA,WAAWA,GAAmD;MAAA,IAAAC,WAAA,GAAAtb,SAAA;AAAA,MAAA,OAAAsP,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,UAAA+L,QAAAA,GAAA;QAAA,IAAAC,KAAA,EAAAC,cAAA,EAAAC,QAAA,EAAAC,WAAA,EAAAC,OAAA,EAAAC,IAAA;AAAA,QAAA,OAAAtM,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoM,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3Q,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAqQ,cAAAA,KAAA,GAAAF,WAAA,CAAA3b,MAAA,QAAA2b,WAAA,CAAA,CAAA,CAAA,KAAApd,SAAA,GAAAod,WAAA,CAAA,CAAA,CAAA,GAAJ,EAAE,EAAAG,cAAA,GAAAD,KAAA,CAA9CE,QAAQ,EAARA,QAAQ,GAAAD,cAAA,cAAG,YAAY,GAAAA,cAAA,EAAKE,WAAW,GAAApB,wBAAA,CAAAiB,KAAA,EAAAO,UAAA,CAAA;AAAAD,cAAAA,SAAA,CAAA3Q,CAAA,GAAA,CAAA;AAAA,cAAA,OACnC3M,IAAI,CAACqb,SAAS,CAAC8B,WAAW,CAAC;AAAA,YAAA,KAAA,CAAA;cAA3CC,OAAO,GAAAE,SAAA,CAAA1K,CAAA;AACPyK,cAAAA,IAAI,GAAGG,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;cACxCJ,IAAI,CAACK,QAAQ,GAAGR,QAAQ;cACxBG,IAAI,CAACM,IAAI,GAAGP,OAAO;cACnBC,IAAI,CAACO,KAAK,EAAE;AAAC,YAAA,KAAA,CAAA;cAAA,OAAAN,SAAA,CAAA/X,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAwX,QAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA,EAAA;IACf,CAAC;IAEKc,YAAY,EAAA,SAAZA,YAAYA,GAKV;MAAA,IAAAC,WAAA,GAAAtc,SAAA;AAAA,MAAA,OAAAsP,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,UAAA+M,QAAAA,GAAA;AAAA,QAAA,IAAAC,KAAA,CAAA,CAAAC,gBAAA,CAAA,CAAAhE,UAAA,CAAA,CAAAC,MAAA,CAAA,CAAAgE,kBAAA,EAAAtD,YAAA,CAAA,CAAAnO,KAAA,CAAA,CAAA0R,OAAA,CAAA,CAAAC,QAAA,CAAA,CAAAC,WAAA,CAAA,CAAAC,GAAA,CAAA,CAAAC,gBAAA,CAAA,CAAA5O,CAAA,CAAA,CAAA8K,MAAA,EAAA+D;AAAA,QAAA,OAAAzN,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuN,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA9R,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAqR,cAAAA,KAAA,GAAAF,WAAA,CAAA3c,MAAA,GAAA,CAAA,IAAA2c,WAAA,CAAA,CAAA,CAAA,KAAApe,SAAA,GAAAoe,WAAA,CAAA,CAAA,CAAA,GAAJ,EAAE,EAAAG,gBAAA,GAAAD,KAAA,CAJJ/D,UAAU,EAAVA,UAAU,GAAAgE,gBAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,gBAAA,EACd/D,MAAM,GAAA8D,KAAA,CAAN9D,MAAM,EAAA8D,KAAA,CACNhK,GAAG,EAAMkK,kBAAA,GAAAF,KAAA,CACTpD,YAAY,EAAZA,YAAY,GAAAsD,kBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,kBAAA;cAEdzR,KAAK,GAAGyN,MAAM,GAChB,CAACla,IAAI,CAACyM,KAAK,CAACnH,IAAI,CAAC,UAACmD,CAAC,EAAA;AAAA,gBAAA,OAAKA,CAAC,CAACrK,EAAE,KAAK8b,MAAM;AAAA,cAAA,CAAA,CAAC,CAAC,CAAC1E,MAAM,CAACC,OAAO,CAAC,GAAAiJ,kBAAA,CACrD1e,IAAI,CAACyM,KAAK,CAAC;AAAA,cAAA,IAAA,EAEfA,KAAK,CAACtL,MAAM,KAAK,CAAC,CAAA,EAAA;AAAAsd,gBAAAA,SAAA,CAAA9R,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAAA,MACd,IAAIoO,KAAK,CAAC,gCAAgC,CAAC;AAAA,YAAA,KAAA,CAAA;AAG7CoD,cAAAA,OAAO,GAAIne,IAAI,CAAC4D,KAAK,GAAG,EAAE,GAAI,EAAE;AAChCwa,cAAAA,QAAQ,GAAIpe,IAAI,CAAC6D,MAAM,GAAG,EAAE,GAAI,EAAE;AAElCwa,cAAAA,WAAW,GAAGF,OAAO,GAAGC,QAAQ,GAAG,WAAW,GAAG,UAAU;cAC3DE,GAAG,GAAG,IAAIK,KAAK,CAAC;AACpBN,gBAAAA,WAAW,EAAXA,WAAW;AACXtK,gBAAAA,IAAI,EAAE,IAAI;AACV6K,gBAAAA,MAAM,EAAE,CAACT,OAAO,EAAEC,QAAQ,CAAC;AAC3BS,gBAAAA,QAAQ,EAAE;AACZ,eAAC,CAAC;cAEIN,gBAAgB,GAAGve,IAAI,CAACyU,aAAa;AAElC9E,cAAAA,CAAC,GAAG,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,EAAEA,CAAC,GAAGlD,KAAK,CAACtL,MAAM,CAAA,EAAA;AAAAsd,gBAAAA,SAAA,CAAA9R,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;cAC9B,IAAIgD,CAAC,GAAG,CAAC,EAAE;gBACT2O,GAAG,CAACpR,OAAO,CAAC,CAACiR,OAAO,EAAEC,QAAQ,CAAC,EAAEC,WAAW,CAAC;AAC/C,cAAA;cAEAre,IAAI,CAACyU,aAAa,GAAGhI,KAAK,CAACkD,CAAC,CAAC,CAACvR,EAAE;AAACqgB,cAAAA,SAAA,CAAA9R,CAAA,GAAA,CAAA;AAAA,cAAA,OAE3B,IAAI8P,OAAO,CAAC,UAACqC,CAAC,EAAA;AAAA,gBAAA,OAAKC,UAAU,CAACD,CAAC,EAAE,EAAE,CAAC;cAAA,CAAA,CAAC;AAAA,YAAA,KAAA,CAAA;AAAAL,cAAAA,SAAA,CAAA9R,CAAA,GAAA,CAAA;cAAA,OAEtB3M,IAAI,CAAC6Z,SAAS,CAAC;AAClCI,gBAAAA,UAAU,EAAVA,UAAU;AACVC,gBAAAA,MAAM,EAAEzN,KAAK,CAACkD,CAAC,CAAC,CAACvR,EAAE;AACnBuc,gBAAAA,QAAQ,EAAE,YAAY;AACtBC,gBAAAA,YAAY,EAAZA;AACF,eAAC,CAAC;AAAA,YAAA,KAAA,CAAA;cALIH,MAAM,GAAAgE,SAAA,CAAA7L,CAAA;cAON4L,OAAO,GAAG/D,MAAM,CAACY,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC;AACpDiD,cAAAA,GAAG,CAACU,QAAQ,CAACR,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAEL,OAAO,EAAEC,QAAQ,EAAE1e,SAAS,EAAE,MAAM,CAAC;AAAC,YAAA,KAAA,CAAA;AAjB1CiQ,cAAAA,CAAC,EAAE;AAAA8O,cAAAA,SAAA,CAAA9R,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,CAAA;cAoBrC3M,IAAI,CAACyU,aAAa,GAAG8J,gBAAgB;cAAC,OAAAE,SAAA,CAAAlZ,CAAA,CAAA,CAAA,EAE/B+Y,GAAG,CAACW,MAAM,CAAC,eAAe,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAlB,QAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA,EAAA;IACpC,CAAC;IAEKmB,SAAS,EAAA,SAATA,SAASA,GAAmD;MAAA,IAAAC,WAAA,GAAA3d,SAAA;AAAA,MAAA,OAAAsP,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,UAAAoO,QAAAA,GAAA;QAAA,IAAAC,KAAA,EAAAC,cAAA,EAAApC,QAAA,EAAAC,WAAA,EAAAC,OAAA,EAAAC,IAAA;AAAA,QAAA,OAAAtM,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAqO,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA5S,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA0S,cAAAA,KAAA,GAAAF,WAAA,CAAAhe,MAAA,QAAAge,WAAA,CAAA,CAAA,CAAA,KAAAzf,SAAA,GAAAyf,WAAA,CAAA,CAAA,CAAA,GAAJ,EAAE,EAAAG,cAAA,GAAAD,KAAA,CAA9CnC,QAAQ,EAARA,QAAQ,GAAAoC,cAAA,cAAG,YAAY,GAAAA,cAAA,EAAKnC,WAAW,GAAApB,wBAAA,CAAAsD,KAAA,EAAAG,UAAA,CAAA;AAAAD,cAAAA,SAAA,CAAA5S,CAAA,GAAA,CAAA;AAAA,cAAA,OACjC3M,IAAI,CAAC6d,YAAY,CAACV,WAAW,CAAC;AAAA,YAAA,KAAA,CAAA;cAA9CC,OAAO,GAAAmC,SAAA,CAAA3M,CAAA;AACPyK,cAAAA,IAAI,GAAGG,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;cACxCJ,IAAI,CAACK,QAAQ,GAAGR,QAAQ;cACxBG,IAAI,CAACM,IAAI,GAAGP,OAAO;cACnBC,IAAI,CAACO,KAAK,EAAE;AAAC,YAAA,KAAA,CAAA;cAAA,OAAA2B,SAAA,CAAAha,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA6Z,QAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA,EAAA;IACf,CAAC;IAEDK,UAAU,EAAA,SAAVA,UAAUA,GAAyD;AAAA,MAAA,IAAAC,KAAA,GAAAle,SAAA,CAAAL,MAAA,GAAA,CAAA,IAAAK,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAAJ,EAAE;QAAAme,cAAA,GAAAD,KAAA,CAApDxC,QAAQ;AAARA,QAAAA,QAAQ,GAAAyC,cAAA,KAAA,MAAA,GAAG,aAAa,GAAAA,cAAA;QAAAC,eAAA,GAAAF,KAAA,CAAEG,WAAW;AAAXA,QAAAA,WAAW,GAAAD,eAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,eAAA;AACxD,MAAA,IAAMxc,IAAI,GAAGyc,WAAW,GAAGzM,qBAAqB,CAACpT,IAAI,CAACa,MAAM,EAAE,CAAC,GAAGb,IAAI,CAACa,MAAM,EAAE;MAC/E,IAAMC,IAAI,GAAGgf,IAAI,CAACC,SAAS,CAAC3c,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;MAC1C,IAAMwZ,IAAI,GAAG,IAAIoD,IAAI,CAAC,CAAClf,IAAI,CAAC,EAAE;AAAEtC,QAAAA,IAAI,EAAE;AAAmB,OAAC,CAAC;AAC3D,MAAA,IAAM8U,GAAG,GAAG2M,GAAG,CAACC,eAAe,CAACtD,IAAI,CAAC;AACrC,MAAA,IAAMS,IAAI,GAAGG,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;MACxCJ,IAAI,CAACK,QAAQ,GAAGR,QAAQ;MACxBG,IAAI,CAACM,IAAI,GAAGrK,GAAG;MACf+J,IAAI,CAACO,KAAK,EAAE;AACZqC,MAAAA,GAAG,CAACE,eAAe,CAAC7M,GAAG,CAAC;IAC1B,CAAC;IAEK8M,WAAW,EAAA,SAAXA,WAAWA,GAAgC;MAAA,IAAAC,WAAA,GAAA7e,SAAA;AAAA,MAAA,OAAAsP,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,UAAAsP,QAAAA,GAAA;AAAA,QAAA,IAAAC,KAAA,EAAAC,kBAAA,EAAA3F,YAAA;AAAA,QAAA,OAAA9J,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuP,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA9T,CAAA;AAAA,YAAA,KAAA,CAAA;cAAA4T,KAAA,GAAAF,WAAA,CAAAlf,MAAA,GAAA,CAAA,IAAAkf,WAAA,CAAA,CAAA,CAAA,KAAA3gB,SAAA,GAAA2gB,WAAA,CAAA,CAAA,CAAA,GAAJ,EAAE,EAAAG,kBAAA,GAAAD,KAAA,CAA3B1F,YAAY,EAAZA,YAAY,GAAA2F,kBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,kBAAA;cAAA,OAAAC,SAAA,CAAAlb,CAAA,CAAA,CAAA,EAE/B,IAAIkX,OAAO,CAAC,UAACC,OAAO,EAAK;gBAC9BqC,UAAU,CAACrC,OAAO,EAAE7B,YAAY,GAAG,CAAC,GAAG,GAAG,CAAC;AAC7C,cAAA,CAAC,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAyF,QAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA,EAAA;IACJ,CAAC;IAEDzf,MAAM,EAAA,SAANA,MAAMA,GAAG;MACP,OAAO;QACL+C,KAAK,EAAE5D,IAAI,CAAC4D,KAAK;QACjBC,MAAM,EAAE7D,IAAI,CAAC6D,MAAM;QACnBgQ,KAAK,EAAE7T,IAAI,CAAC6T,KAAK,CAACnP,GAAG,CAAC,UAACoI,CAAC,EAAA;UAAA,OAAKtB,WAAW,CAACsB,CAAC,CAAC;QAAA,CAAA,CAAC;QAC5CL,KAAK,EAAEzM,IAAI,CAACyM,KAAK,CAAC/H,GAAG,CAAC,UAAC+D,CAAC,EAAA;AAAA,UAAA,OAAKA,CAAC,CAAC5H,MAAM,EAAE;QAAA,CAAA,CAAC;QACxCiT,MAAM,EAAE9T,IAAI,CAAC8T,MAAM,CAACpP,GAAG,CAAC,UAACa,CAAC,EAAA;AAAA,UAAA,OAAKA,CAAC,CAAC1E,MAAM,EAAE;QAAA,CAAA,CAAC;QAC1CkT,IAAI,EAAE/T,IAAI,CAAC+T,IAAI;QACfC,GAAG,EAAEhU,IAAI,CAACgU,GAAG;QACbnV,MAAM,EAAEmB,IAAI,CAACnB,MAAM;QACnBoV,aAAa,EAAEjU,IAAI,CAACiU;OACrB;IACH,CAAC;AAEDyM,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAAC5f,IAAI,EAAuB;AAAA,MAAA,IAArB6f,WAAW,GAAAnf,SAAA,CAAAL,MAAA,GAAA,CAAA,IAAAK,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAAG,KAAK;MAChC,IAAI,CAACV,IAAI,EAAE;AAEX,MAAA,IAAMsC,IAAI,GAAG,OAAOtC,IAAI,KAAK,QAAQ,GAAGgf,IAAI,CAACc,KAAK,CAAC9f,IAAI,CAAC,GAAGA,IAAI;AAE/Dd,MAAAA,IAAI,CAAC+P,OAAO,CAACY,MAAM,CAAC,YAAM;AACxB,QAAA,IAAIvN,IAAI,CAACQ,KAAK,KAAKlE,SAAS,EAAEM,IAAI,CAAC4D,KAAK,GAAGR,IAAI,CAACQ,KAAK;AACrD,QAAA,IAAIR,IAAI,CAACS,MAAM,KAAKnE,SAAS,EAAEM,IAAI,CAAC6D,MAAM,GAAGT,IAAI,CAACS,MAAM;AACxD,QAAA,IAAIT,IAAI,CAAC2Q,IAAI,KAAKrU,SAAS,EAAEM,IAAI,CAAC+T,IAAI,GAAG3Q,IAAI,CAAC2Q,IAAI;AAClD,QAAA,IAAI3Q,IAAI,CAAC4Q,GAAG,KAAKtU,SAAS,EAAEM,IAAI,CAACgU,GAAG,GAAG5Q,IAAI,CAAC4Q,GAAG;AAC/C,QAAA,IAAI5Q,IAAI,CAACvE,MAAM,KAAKa,SAAS,EAAEM,IAAI,CAACnB,MAAM,GAAGuE,IAAI,CAACvE,MAAM;AACxD,QAAA,IAAIuE,IAAI,CAAC6Q,aAAa,KAAKvU,SAAS,EAAEM,IAAI,CAACiU,aAAa,GAAG7Q,IAAI,CAAC6Q,aAAa;;AAE7E;QACA,IAAI7Q,IAAI,CAACyQ,KAAK,EAAE;AACd7T,UAAAA,IAAI,CAAC6T,KAAK,CAACxB,KAAK,EAAE;AAClBjP,UAAAA,IAAI,CAACyQ,KAAK,CAAC3O,OAAO,CAAC,UAAC2b,IAAI,EAAK;AAC3B7gB,YAAAA,IAAI,CAAC6T,KAAK,CAACrO,IAAI,CAACqb,IAAI,CAAC;AACvB,UAAA,CAAC,CAAC;AACJ,QAAA;;AAEA;QACA,IAAIzd,IAAI,CAAC0Q,MAAM,EAAE;AACf9T,UAAAA,IAAI,CAAC8T,MAAM,CAACzB,KAAK,EAAE;AACnBjP,UAAAA,IAAI,CAAC0Q,MAAM,CAAC5O,OAAO,CAAC,UAAC4b,KAAK,EAAK;AAC7B9gB,YAAAA,IAAI,CAAC8T,MAAM,CAACtO,IAAI,CAACsb,KAAK,CAAC;AACzB,UAAA,CAAC,CAAC;AACJ,QAAA;;AAEA;QACA,IAAI1d,IAAI,CAACqJ,KAAK,EAAE;AACdzM,UAAAA,IAAI,CAACyM,KAAK,CAAC4F,KAAK,EAAE;AAClBjP,UAAAA,IAAI,CAACqJ,KAAK,CAACvH,OAAO,CAAC,UAAC+R,QAAQ,EAAK;AAC/BjX,YAAAA,IAAI,CAACyM,KAAK,CAACjH,IAAI,CAACyR,QAAQ,CAAC;AAC3B,UAAA,CAAC,CAAC;AACJ,QAAA;;AAEA;AACA,QAAA,IAAIjX,IAAI,CAACyM,KAAK,CAACtL,MAAM,GAAG,CAAC,EAAE;UACzBnB,IAAI,CAACyU,aAAa,GAAGzU,IAAI,CAACyM,KAAK,CAAC,CAAC,CAAC,CAACrO,EAAE;AACvC,QAAA;;AAEA;AACA4B,QAAAA,IAAI,CAACwU,mBAAmB,CAACnC,KAAK,EAAE;AAClC,MAAA,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;MACArS,IAAI,CAACsR,KAAK,GAAG,CAAC;MAEd,IAAI,CAACqP,WAAW,EAAE;AAChB3gB,QAAAA,IAAI,CAAC+P,OAAO,CAACsC,KAAK,EAAE;AACpBrS,QAAAA,IAAI,CAAC+P,OAAO,CAACW,YAAY,EAAE;AAC7B,MAAA;;AAEA;AACA1Q,MAAAA,IAAI,CAAC+gB,cAAc,CAAC3d,IAAI,CAAC;;AAEzB;MACApD,IAAI,CAACmW,kBAAkB,EAAE;IAC3B,CAAC;IAED9D,KAAK,EAAA,SAALA,KAAKA,GAA+B;AAAA,MAAA,IAAA2O,MAAA,GAAAxf,SAAA,CAAAL,MAAA,GAAA,CAAA,IAAAK,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAAJ,EAAE;QAAAyf,kBAAA,GAAAD,MAAA,CAA1BL,WAAW;AAAXA,QAAAA,WAAW,GAAAM,kBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,kBAAA;AACzBjhB,MAAAA,IAAI,CAACyM,KAAK,CAAC4F,KAAK,EAAE;AAClBrS,MAAAA,IAAI,CAAC6T,KAAK,CAACxB,KAAK,EAAE;AAClBrS,MAAAA,IAAI,CAAC8T,MAAM,CAACzB,KAAK,EAAE;AACnBrS,MAAAA,IAAI,CAACwU,mBAAmB,CAACnC,KAAK,EAAE;MAChCrS,IAAI,CAACyU,aAAa,GAAG,EAAE;MACvBzU,IAAI,CAAC4D,KAAK,GAAG,GAAG;MAChB5D,IAAI,CAAC6D,MAAM,GAAG,GAAG;AACjB7D,MAAAA,IAAI,CAACnB,MAAM,GAAG,EAAE;MAEhBmB,IAAI,CAACkN,OAAO,EAAE;MAEd,IAAI,CAACyT,WAAW,EAAE;AAChB3gB,QAAAA,IAAI,CAAC+P,OAAO,CAACsC,KAAK,EAAE;AACpBrS,QAAAA,IAAI,CAAC+P,OAAO,CAACW,YAAY,EAAE;AAC7B,MAAA;IACF,CAAC;AAEDwQ,IAAAA,OAAO,EAAA,SAAPA,OAAOA,CAACL,IAAI,EAAE;MACZ,IAAMxb,QAAQ,GAAGrF,IAAI,CAAC6T,KAAK,CAACvO,IAAI,CAAC,UAACwH,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAC/F,UAAU,KAAK8Z,IAAI,CAAC9Z,UAAU;MAAA,CAAA,CAAC;MACzE,IAAI,CAAC1B,QAAQ,EAAE;AACbrF,QAAAA,IAAI,CAAC6T,KAAK,CAACrO,IAAI,CAACqb,IAAI,CAAC;AACvB,MAAA;IACF,CAAC;AAEDM,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAACpa,UAAU,EAAE;MACrB,IAAM8G,GAAG,GAAG7N,IAAI,CAAC6T,KAAK,CAACtG,SAAS,CAAC,UAACT,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAAC/F,UAAU,KAAKA,UAAU;MAAA,CAAA,CAAC;MACpE,IAAI8G,GAAG,IAAI,CAAC,EAAE;QACZ7N,IAAI,CAAC6T,KAAK,CAAC5F,MAAM,CAACJ,GAAG,EAAE,CAAC,CAAC;AAC3B,MAAA;IACF,CAAC;AAEDuT,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAAChe,IAAI,EAAE;AACbpD,MAAAA,IAAI,CAAC8T,MAAM,CAACtO,IAAI,CAAAjG,cAAA,CAAA;QAAGnB,EAAE,EAAEG,EAAM;OAAE,EAAK6E,IAAI,CAAE,CAAC;IAC7C,CAAC;AAEDie,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACC,OAAO,EAAE;MACnB,IAAMzT,GAAG,GAAG7N,IAAI,CAAC8T,MAAM,CAACvG,SAAS,CAAC,UAAChI,CAAC,EAAA;AAAA,QAAA,OAAKA,CAAC,CAACnH,EAAE,KAAKkjB,OAAO;MAAA,CAAA,CAAC;MAC1D,IAAIzT,GAAG,IAAI,CAAC,EAAE;QACZ7N,IAAI,CAAC8T,MAAM,CAAC7F,MAAM,CAACJ,GAAG,EAAE,CAAC,CAAC;AAC5B,MAAA;IACF,CAAC;AAEK0T,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAACxa,UAAU,EAAa;AAAA,MAAA,OAAA+J,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,UAAAwQ,QAAAA,GAAA;AAAA,QAAA,IAAApjB,EAAA,CAAA,CAAAif,IAAA,EAAAoE;AAAA,QAAA,OAAA1Q,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAwQ,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjZ,CAAA,GAAAiZ,SAAA,CAAA/U,CAAA;AAAA,YAAA,KAAA,CAAA;AACpC;AACMvO,cAAAA,EAAE,GAAA,cAAA,CAAAujB,MAAA,CAAkB5a,UAAU,CAACqQ,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAACwK,WAAW,EAAE,CAAA;AAAAF,cAAAA,SAAA,CAAAjZ,CAAA,GAAA,CAAA;AAAA,cAAA,IAGhE+U,QAAQ,CAACtH,cAAc,CAAC9X,EAAE,CAAC,EAAA;AAAAsjB,gBAAAA,SAAA,CAAA/U,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AACxB0Q,cAAAA,IAAI,GAAGG,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;cAC3CJ,IAAI,CAACjf,EAAE,GAAGA,EAAE;cACZif,IAAI,CAACM,IAAI,GAAA,2CAAA,CAAAgE,MAAA,CAA+CE,kBAAkB,CACxE9a,UACF,CAAC,EAAA,wDAAA,CAAwD;cACzDsW,IAAI,CAACyE,GAAG,GAAG,YAAY;;AAEvB;AAAAJ,cAAAA,SAAA,CAAA/U,CAAA,GAAA,CAAA;AAAA,cAAA,OACM,IAAI8P,OAAO,CAAC,UAACC,OAAO,EAAK;gBAC7BW,IAAI,CAAC0E,MAAM,GAAGrF,OAAO;AACrBW,gBAAAA,IAAI,CAAC2E,OAAO,GAAGtF,OAAO,CAAC;AACvBc,gBAAAA,QAAQ,CAACyE,IAAI,CAACC,WAAW,CAAC7E,IAAI,CAAC;AACjC,cAAA,CAAC,CAAC;AAAA,YAAA,KAAA,CAAA;AAAAqE,cAAAA,SAAA,CAAA/U,CAAA,GAAA,CAAA;cAAA,OAIE6Q,QAAQ,CAAC3J,KAAK,CAACsO,IAAI,WAAAR,MAAA,CAAU5a,UAAU,EAAA,IAAA,CAAG,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA2a,cAAAA,SAAA,CAAA/U,CAAA,GAAA,CAAA;cAAA,OAC3C6Q,QAAQ,CAAC3J,KAAK,CAACsO,IAAI,gBAAAR,MAAA,CAAe5a,UAAU,EAAA,IAAA,CAAG,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA2a,cAAAA,SAAA,CAAA/U,CAAA,GAAA,CAAA;AAAA,cAAA,OAChD6Q,QAAQ,CAAC3J,KAAK,CAACuO,KAAK;AAAA,YAAA,KAAA,CAAA;AAE1B;cACApiB,IAAI,CAACoV,YAAY,IAAI,CAAC;AACtB;cACA,IAAIpV,IAAI,CAAC4U,SAAS,EAAE;AAClB5U,gBAAAA,IAAI,CAAC4U,SAAS,CAACyN,SAAS,EAAE;AAC5B,cAAA;AAACX,cAAAA,SAAA,CAAA/U,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,CAAA;AAAA+U,cAAAA,SAAA,CAAAjZ,CAAA,GAAA,CAAA;cAAAgZ,EAAA,GAAAC,SAAA,CAAA9O,CAAA;cAEDpB,OAAO,CAACC,IAAI,CAAA,uBAAA,CAAAkQ,MAAA,CAAyB5a,UAAU,CAAA,EAAA0a,EAAK,CAAC;AAAC,YAAA,KAAA,CAAA;cAAA,OAAAC,SAAA,CAAAnc,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAic,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA,EAAA;IAE1D,CAAC;AAEDT,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAC3d,IAAI,EAAE;AACnB;AACA,MAAA,IAAMyQ,KAAK,GAAG,IAAIyO,GAAG,EAAE;AACvB,MAAA,IAAMC,oBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIjY,QAAQ,EAAK;AACxC,QAAA,IAAI,CAAC4I,KAAK,CAACC,OAAO,CAAC7I,QAAQ,CAAC,EAAE;AAC9BA,QAAAA,QAAQ,CAACpF,OAAO,CAAC,UAAC4N,EAAE,EAAK;UACvB,IAAIA,EAAE,CAACtU,IAAI,KAAK,MAAM,IAAIsU,EAAE,CAAC/L,UAAU,EAAE;AACvC8M,YAAAA,KAAK,CAAC2O,GAAG,CAAC1P,EAAE,CAAC/L,UAAU,CAAC;AAC1B,UAAA;UACA,IAAI+L,EAAE,CAACxI,QAAQ,EAAE;AACfiY,YAAAA,oBAAmB,CAACzP,EAAE,CAACxI,QAAQ,CAAC;AAClC,UAAA;AACF,QAAA,CAAC,CAAC;MACJ,CAAC;MAED,IAAIlH,IAAI,CAACqJ,KAAK,EAAE;AACdrJ,QAAAA,IAAI,CAACqJ,KAAK,CAACvH,OAAO,CAAC,UAACjF,IAAI,EAAK;AAC3BsiB,UAAAA,oBAAmB,CAACtiB,IAAI,CAACqK,QAAQ,CAAC;AACpC,QAAA,CAAC,CAAC;AACJ,MAAA;;AAEA;MACA,IAAIlH,IAAI,CAACyQ,KAAK,EAAE;AACdzQ,QAAAA,IAAI,CAACyQ,KAAK,CAAC3O,OAAO,CAAC,UAAC4H,CAAC,EAAK;UACxB,IAAIA,CAAC,CAAC/F,UAAU,EAAE8M,KAAK,CAAC2O,GAAG,CAAC1V,CAAC,CAAC/F,UAAU,CAAC;AAC3C,QAAA,CAAC,CAAC;AACJ,MAAA;;AAEA;AACA8M,MAAAA,KAAK,CAAC3O,OAAO,CAAC,UAAC6B,UAAU,EAAK;AAC5B/G,QAAAA,IAAI,CAACuhB,QAAQ,CAACxa,UAAU,CAAC;AAC3B,MAAA,CAAC,CAAC;IACJ,CAAC;AAED0b,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAAC3hB,IAAI,EAAE;MACb,IAAM4hB,MAAM,GAAG,EAAE;MACjB,IAAI,CAAC5hB,IAAI,EAAE;QACT4hB,MAAM,CAACld,IAAI,CAAC;AAAEmd,UAAAA,IAAI,EAAE,EAAE;AAAEC,UAAAA,OAAO,EAAE;AAAgB,SAAC,CAAC;AACnD,QAAA,OAAOF,MAAM;AACf,MAAA;AACA,MAAA,IAAI,OAAO5hB,IAAI,CAAC8C,KAAK,KAAK,QAAQ,EAAE;QAClC8e,MAAM,CAACld,IAAI,CAAC;AAAEmd,UAAAA,IAAI,EAAE,OAAO;AAAEC,UAAAA,OAAO,EAAE;AAAyB,SAAC,CAAC;AACnE,MAAA;AACA,MAAA,IAAI,OAAO9hB,IAAI,CAAC+C,MAAM,KAAK,QAAQ,EAAE;QACnC6e,MAAM,CAACld,IAAI,CAAC;AAAEmd,UAAAA,IAAI,EAAE,QAAQ;AAAEC,UAAAA,OAAO,EAAE;AAA0B,SAAC,CAAC;AACrE,MAAA;MACA,IAAI,CAAC1P,KAAK,CAACC,OAAO,CAACrS,IAAI,CAAC2L,KAAK,CAAC,EAAE;QAC9BiW,MAAM,CAACld,IAAI,CAAC;AAAEmd,UAAAA,IAAI,EAAE,OAAO;AAAEC,UAAAA,OAAO,EAAE;AAAyB,SAAC,CAAC;AACnE,MAAA;AACA,MAAA,OAAOF,MAAM;IACf,CAAC;IAEDG,eAAe,EAAA,SAAfA,eAAeA,GAAG;AAChB,MAAA,IAAI7iB,IAAI,CAACyM,KAAK,CAACtL,MAAM,GAAG,CAAC,IAAI,CAACnB,IAAI,CAAC2V,UAAU,EAAE;QAC7C3V,IAAI,CAACyU,aAAa,GAAGzU,IAAI,CAACyM,KAAK,CAAC,CAAC,CAAC,CAACrO,EAAE;AACvC,MAAA;IACF,CAAC;AAED0kB,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACxW,IAAI,EAAE;MACnBtM,IAAI,CAACiV,WAAW,GAAG3I,IAAI;IACzB,CAAC;IAEDyW,cAAc,EAAA,SAAdA,cAAcA,GAAiB;AAAA,MAAA,IAAhBC,OAAO,GAAAxhB,SAAA,CAAAL,MAAA,GAAA,CAAA,IAAAK,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI;MAC3BxB,IAAI,CAACkV,SAAS,GAAG8N,OAAO;IAC1B,CAAC;IAEDnT,IAAI,EAAA,SAAJA,IAAIA,GAAG;AACL7P,MAAAA,IAAI,CAAC+iB,cAAc,CAAC,IAAI,CAAC;IAC3B,CAAC;IAEDE,IAAI,EAAA,SAAJA,IAAIA,GAAG;AACLjjB,MAAAA,IAAI,CAAC+iB,cAAc,CAAC,KAAK,CAAC;IAC5B,CAAC;IAEDG,IAAI,EAAA,SAAJA,IAAIA,GAAG;AACL;IAAA,CACD;AACDC,IAAAA,WAAW,WAAXA,WAAWA,CAAC/hB,GAAG,EAAEgiB,UAAU,EAAE;MAC3BpjB,IAAI,CAAC+U,IAAI,GAAG3T,GAAG;MACfpB,IAAI,CAACgV,WAAW,GAAGoO,UAAU;AAC/B,IAAA;GACD;AAAA,CAAC;AAEG,SAASC,WAAWA,GAAwC;AAAA,EAAA,IAAAC,MAAA,GAAA9hB,SAAA,CAAAL,MAAA,GAAA,CAAA,IAAAK,SAAA,CAAA,CAAA,CAAA,KAAA9B,SAAA,GAAA8B,SAAA,CAAA,CAAA,CAAA,GAAJ,EAAE;IAAA+hB,UAAA,GAAAD,MAAA,CAAnCliB,GAAG;AAAHA,IAAAA,GAAG,GAAAmiB,UAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,UAAA;IAAAC,iBAAA,GAAAF,MAAA,CAAEF,UAAU;AAAVA,IAAAA,UAAU,GAAAI,iBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,iBAAA;EACxD,IAAMnjB,KAAK,GAAGsT,KAAK,CAAC8P,MAAM,CAAC,EAAE,CAAC;AAC9BpjB,EAAAA,KAAK,CAAC8iB,WAAW,CAAC/hB,GAAG,EAAEgiB,UAAU,CAAC;AAClC,EAAA,OAAO/iB,KAAK;AACd;;;;"}