@mbler/mcx-core 0.1.2-rc.1 → 0.1.2-rc.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Lexer","Parser","AST_tag","AST_prop","Utils","CompileData.JsCompileData","Utils","CompileData.MCXCompileData","babelErr","path","Utils","config","McxUtils","Comp","config","Comp","config","config","EventComp","UIComp","AppComp"],"sources":["../src/ast/tag.ts","../src/ast/prop.ts","../src/ast/index.ts","../src/compile-mcx/types.ts","../src/compile-mcx/compiler/compileData.ts","../src/compile-mcx/compiler/utils.ts","../src/compile-mcx/compiler/index.ts","../src/transforms/config.ts","../src/utils.ts","../src/transforms/file_id.ts","../src/transforms/utils.ts","../src/transforms/transform/ui.ts","../src/transforms/transform/event.ts","../src/transforms/transform/app.ts","../src/mcx-component/cjsTransform.ts","../src/mcx-component/vm.ts","../src/mcx-component/index.ts","../src/transforms/main.ts","../src/transforms/index.ts","../src/compile-mcx/compiler/main.ts","../src/types.ts","../src/mcx-component/types.ts"],"sourcesContent":["import type {\n BaseToken,\n TagToken,\n TagEndToken,\n ContentToken,\n CommentToken,\n Token,\n ParsedTagNode,\n AttributeMap,\n ParsedTagContentNode,\n ParsedCommentNode,\n MCXLoc,\n MCXPosition,\n TokenType,\n} from './../types.js';\n\nfunction createPos(line: number, column: number): MCXPosition {\n return { line, column };\n}\nclass Tokenizer {\n private text: string;\n\n constructor(text: string) {\n this.text = text;\n }\n *splitTokens(): IterableIterator<Token> {\n const text = this.text;\n let i = 0;\n let line = 1;\n let column = 0;\n const len = text.length;\n\n while (i < len) {\n const ch = text[i];\n\n if (ch === '<') {\n if (text.startsWith('!--', i + 1)) {\n const commentStart = i;\n const tokenStartLine = line;\n const tokenStartColumn = column;\n const endIdx = text.indexOf('-->', i + 4);\n const commentEnd = endIdx === -1 ? len - 1 : endIdx + 2;\n for (let j = i; j <= commentEnd; j++) {\n if (text[j] === '\\n') {\n line++;\n column = 0;\n } else {\n column++;\n }\n }\n const buffer = text.slice(commentStart, commentEnd + 1);\n const tok: Token = {\n data: buffer,\n type: 'Comment' as TokenType,\n start: createPos(tokenStartLine, tokenStartColumn),\n end: createPos(line, column),\n };\n yield tok;\n i = commentEnd + 1;\n if (i < len && text[i] === '>') column++;\n continue;\n }\n const tokenStart = i;\n const tokenStartLine = line;\n const tokenStartColumn = column;\n let j = i + 1;\n let sawGt = false;\n for (; j < len; j++) {\n const c = text[j];\n if (c === '>') {\n sawGt = true;\n break;\n }\n if (c === '\\n') {\n line++;\n column = 0;\n } else {\n column++;\n }\n }\n const buffer = text.slice(tokenStart, sawGt ? j + 1 : len);\n const type: TokenType = buffer.startsWith('</') ? 'TagEnd' : 'Tag';\n const tok: Token = {\n data: buffer,\n type,\n start: createPos(tokenStartLine, tokenStartColumn),\n end: createPos(line, column),\n };\n yield tok;\n i = sawGt ? j + 1 : len;\n if (sawGt) column++;\n } else {\n const contentStart = i;\n const contentStartLine = line;\n const contentStartColumn = column;\n let j = i;\n for (; j < len; j++) {\n const c = text[j];\n if (c === '<') break;\n if (c === '\\n') {\n line++;\n column = 0;\n } else {\n column++;\n }\n }\n const data = text.slice(contentStart, j);\n const n: Token = {\n data,\n type: 'Content',\n start: createPos(contentStartLine, contentStartColumn),\n end: createPos(line, j > contentStart ? column - 1 : column),\n };\n yield n;\n i = j;\n }\n }\n }\n}\n\nclass Lexer {\n private text: string;\n private includeComments: boolean;\n private booleanProxyCache: WeakMap<object, Record<string, boolean>>;\n\n constructor(text: string, includeComments: boolean = false) {\n this.text = text;\n this.includeComments = includeComments;\n this.booleanProxyCache = new WeakMap();\n }\n *tokenStream(): IterableIterator<Token> {\n const tokenizer = new Tokenizer(this.text);\n\n for (const token of tokenizer.splitTokens()) {\n // 如果includeComments为false,跳过注释Token\n if (!this.includeComments && token.type === 'Comment') {\n continue;\n }\n yield token;\n }\n }\n\n /**\n * 生成 Token 迭代器,用于遍历所有结构化 Token\n */\n *tokenIterator(): IterableIterator<Token> {\n yield* this.tokenStream();\n }\n\n get tokens(): Iterable<Token> {\n return {\n [Symbol.iterator]: () => this.tokenIterator(),\n };\n }\n\n /**\n * 创建一个动态布尔属性访问的 Proxy(可选功能)\n */\n getBooleanCheckProxy(): Record<string, boolean> {\n if (!this.booleanProxyCache.has(this)) {\n const charMap = new Map<string, boolean>();\n const proxy = new Proxy(\n {},\n {\n get(_: unknown, prop: string | symbol): boolean {\n if (typeof prop !== 'string') return false;\n return charMap.get(prop) || false;\n },\n set(_: unknown, prop: string | symbol, value: unknown): boolean {\n if (typeof prop !== 'string') return false;\n charMap.set(prop, Boolean(value));\n return true;\n },\n },\n );\n this.booleanProxyCache.set(this, proxy as Record<string, boolean>);\n }\n return this.booleanProxyCache.get(this) as Record<string, boolean>;\n }\n}\n\n/** Parser - 负责将Token流解析为AST */\nclass Parser {\n private lexer: Lexer;\n\n constructor(lexer: Lexer) {\n this.lexer = lexer;\n }\n\n /**\n * 解析标签属性,如:<div id=\"app\" disabled />\n */\n private parseAttributes(tagContent: string): {\n name: string;\n arr: AttributeMap;\n } {\n const attributes: Record<string, string> = {};\n let currentKey = '';\n let currentValue = '';\n let inKey = true;\n let name = '';\n let inValue = false;\n let quoteChar: string | null = null;\n let isTagName = true;\n\n for (let i = 0; i < tagContent.length; i++) {\n const char = tagContent[i];\n\n if (isTagName) {\n if (char === ' ' || char === '>') {\n name = currentKey.trim();\n currentKey = '';\n isTagName = false;\n if (char === '>') break;\n } else {\n currentKey += char;\n }\n continue;\n }\n\n if (inValue) {\n if (\n char === quoteChar &&\n (currentValue.length === 0 ||\n currentValue[currentValue.length - 1] !== '\\\\')\n ) {\n attributes[currentKey.trim()] = currentValue;\n currentKey = '';\n currentValue = '';\n inKey = true;\n inValue = false;\n quoteChar = null;\n } else {\n currentValue += char;\n }\n } else if (char === '=' && inKey) {\n inKey = false;\n inValue = true;\n const nextIndex = i + 1;\n const nextChar =\n nextIndex < tagContent.length ? tagContent[nextIndex] : ' ';\n quoteChar = null;\n } else if (char === ' ' && inKey && currentKey) {\n attributes[currentKey.trim()] = 'true';\n currentKey = '';\n } else if (inKey) {\n currentKey += char;\n }\n }\n\n if (isTagName) {\n name = currentKey.trim();\n } else if (currentKey) {\n attributes[currentKey.trim()] = inValue\n ? currentValue.replace(/^[\"']/, '').replace(/[\"']$/, '')\n : 'true';\n }\n\n return {\n name,\n arr: attributes,\n };\n }\n\n /**\n * 基于stack的解析以支持嵌套,并为ParsedTagNode添加loc: { start, end }\n * Content和Comment改为递归节点数组 (ParsedTagContentNode | ParsedCommentNode | ParsedTagNode)[]\n */\n *parseAST(): IterableIterator<ParsedTagNode> {\n const rawTokens = Array.from(this.lexer.tokenStream());\n const root: (ParsedTagNode | ParsedTagContentNode | ParsedCommentNode)[] =\n [];\n const stack: ParsedTagNode[] = [];\n\n for (let idx = 0; idx < rawTokens.length; idx++) {\n const token = rawTokens[idx];\n if (!token) continue;\n\n if (token.type === 'Content') {\n const contentNode: ParsedTagContentNode = {\n data: token.data,\n type: 'TagContent',\n };\n if (stack.length > 0) {\n const top = stack[stack.length - 1];\n (top as ParsedTagNode).content.push(contentNode);\n } else {\n root.push(contentNode);\n }\n } else if (token.type === 'Comment') {\n const commentNode: ParsedCommentNode = {\n data: token.data,\n type: 'Comment',\n loc: {\n start: { ...token.start },\n end: { ...token.end },\n },\n };\n if (stack.length > 0) {\n const top = stack[stack.length - 1];\n (top as ParsedTagNode).content.push(commentNode);\n } else {\n root.push(commentNode);\n }\n } else if (token.type === 'Tag') {\n const inner = token.data.slice(1, -1).trim();\n // 自闭合 <br/> 或 <img ... /> 也当作单节点(没有 end),这里简单检测末尾 '/'\n const isSelfClosing = inner.endsWith('/');\n const arr = this.parseAttributes(\n isSelfClosing ? inner.slice(0, -1).trim() : inner,\n );\n const node: ParsedTagNode = {\n start: token as TagToken,\n name: arr.name,\n arr: arr.arr as AttributeMap,\n // content 现在是一个数组,包含文本节点、注释节点或子标签\n content: [] as (\n | ParsedTagContentNode\n | ParsedCommentNode\n | ParsedTagNode\n )[],\n end: null,\n type: 'TagNode',\n loc: {\n start: { ...token.start },\n end: { ...token.end },\n } as MCXLoc,\n };\n\n if (isSelfClosing) {\n // self-closing: immediately close and attach to parent or root\n if (stack.length > 0) {\n (stack[stack.length - 1] as ParsedTagNode).content.push(node);\n } else {\n // yield top-level node\n yield node;\n }\n } else {\n stack.push(node);\n }\n } else if (token.type === 'TagEnd') {\n // 从 '</name>' 中提取 name\n const name = token.data\n .replace(/^<\\/\\s*/, '')\n .replace(/\\s*>$/, '')\n .trim();\n // 找到最近的匹配开始标签\n for (let s = stack.length - 1; s >= 0; s--) {\n const candidate = stack[s];\n if (candidate && candidate.name === name) {\n // 设置结束\n candidate.end = token;\n candidate.loc.end = { ...token.end };\n // 从 stack 中移除并附加到父节点或作为顶层节点产出\n stack.splice(s, 1);\n if (stack.length > 0) {\n (stack[stack.length - 1] as ParsedTagNode).content.push(\n candidate,\n );\n } else {\n // yield completed top-level node\n yield candidate;\n }\n break;\n }\n }\n }\n }\n while (stack.length > 0) {\n const node = stack.shift()!;\n if (stack.length > 0) {\n (stack[0] as ParsedTagNode).content.push(node);\n } else {\n yield node;\n }\n }\n }\n\n get ast(): Iterable<ParsedTagNode> {\n return {\n [Symbol.iterator]: () => this.parseAST(),\n };\n }\n}\nexport default class McxAst {\n private text: string;\n private includeComments: boolean;\n\n constructor(text: string, includeComments: boolean = false) {\n this.text = text;\n this.includeComments = includeComments;\n }\n\n private getAST(): ParsedTagNode[] {\n const lexer = new Lexer(this.text, this.includeComments);\n const parser = new Parser(lexer);\n return Array.from(parser.parseAST());\n }\n\n get data(): ParsedTagNode[] {\n return this.getAST();\n }\n\n parseAST(): ParsedTagNode[] {\n return this.getAST();\n }\n\n /**\n * 生成代码字符串\n * @param node 代码的AST节点\n * @returns 代码字符串\n */\n static generateCode(node: ParsedTagNode): string {\n let code = `<${node.name}`;\n // 添加属性\n for (const [key, value] of Object.entries(node.arr || {})) {\n if (value === 'true') {\n code += ` ${key}`;\n } else {\n code += ` ${key}=${String(value)}`;\n }\n }\n code += '>';\n const contentArr = node.content;\n if (Array.isArray(contentArr)) {\n for (const item of contentArr) {\n if ((item as ParsedTagContentNode).type === 'TagContent') {\n code += (item as ParsedTagContentNode).data;\n } else {\n code += McxAst.generateCode(item as ParsedTagNode);\n }\n }\n }\n code += `</${node.name}>`;\n return code;\n }\n}\n\nexport { Tokenizer, Lexer, Parser, MCXUtils };\nclass MCXUtils {\n static isTagNode(node: unknown): node is ParsedTagNode {\n return (\n !!node &&\n typeof node === 'object' &&\n 'start' in (node as object) &&\n 'name' in (node as object) &&\n 'arr' in (node as object) &&\n 'content' in (node as object) &&\n 'end' in (node as object)\n );\n }\n static isTagContentNode(node: unknown): node is ParsedTagContentNode {\n return (\n !!node &&\n typeof node === 'object' &&\n 'data' in (node as object) &&\n 'type' in (node as object) &&\n (node as ParsedTagContentNode).type === 'TagContent'\n );\n }\n static isCommentNode(node: unknown): node is ParsedCommentNode {\n return (\n !!node &&\n typeof node === 'object' &&\n 'data' in (node as object) &&\n 'type' in (node as object) &&\n 'loc' in (node as object) &&\n (node as ParsedCommentNode).type === 'Comment'\n );\n }\n static isAttributeMap(obj: unknown): obj is AttributeMap {\n return !!obj && typeof obj === 'object' && !Array.isArray(obj);\n }\n static isToken(obj: unknown): obj is Token {\n return (\n !!obj &&\n typeof obj === 'object' &&\n 'data' in (obj as object) &&\n 'type' in (obj as object) &&\n 'start' in (obj as object) &&\n 'end' in (obj as object) &&\n ((obj as Token).type === 'Tag' ||\n (obj as Token).type === 'TagEnd' ||\n (obj as Token).type === 'Content' ||\n (obj as Token).type === 'Comment')\n );\n }\n static isTagToken(obj: unknown): obj is TagToken {\n return MCXUtils.isToken(obj) && (obj as Token).type === 'Tag';\n }\n static isTagEndToken(obj: unknown): obj is TagEndToken {\n return MCXUtils.isToken(obj) && (obj as Token).type === 'TagEnd';\n }\n static isContentToken(obj: unknown): obj is ContentToken {\n return MCXUtils.isToken(obj) && (obj as Token).type === 'Content';\n }\n static isCommentToken(obj: unknown): obj is CommentToken {\n return MCXUtils.isToken(obj) && (obj as Token).type === 'Comment';\n }\n static isBaseToken(obj: unknown): obj is BaseToken {\n return (\n !!obj &&\n typeof obj === 'object' &&\n 'data' in (obj as object) &&\n 'type' in (obj as object) &&\n 'start' in (obj as object) &&\n 'end' in (obj as object)\n );\n }\n static isTokenType(value: unknown): value is TokenType {\n return (\n value === 'Tag' ||\n value === 'TagEnd' ||\n value === 'Content' ||\n value === 'Comment'\n );\n }\n static isParseNode(node: unknown): node is ParsedTagNode[] {\n return Array.isArray(node) && (node as unknown[]).every(MCXUtils.isTagNode);\n }\n}\n","import type { PropNode, PropValue } from '../types.js';\n\nconst STATUS = [0, 1]; // 0: key,1: value\n\nexport class Lexer {\n private code: string;\n\n constructor(code: string) {\n this.code = code;\n }\n *tokenize(): IterableIterator<PropNode> {\n let currStatus = STATUS[0]; // 0: key,1: value\n let key = '';\n let value = '';\n let hasEquals = false;\n\n for (const char of this.code) {\n if (/\\s/.test(char)) {\n if (char === '\\n') {\n if (currStatus === STATUS[1] && key && value) {\n const propNode: PropNode = {\n key,\n value: this.HandlerValue(value),\n type: 'PropChar',\n };\n yield propNode;\n } else if (currStatus === STATUS[0] && key) {\n }\n key = '';\n value = '';\n hasEquals = false;\n currStatus = STATUS[0];\n }\n continue; // 跳过所有空白字符\n }\n\n if (char === '=') {\n if (currStatus === STATUS[0]) {\n currStatus = STATUS[1]; // set to value\n hasEquals = true;\n }\n } else {\n if (currStatus === STATUS[0]) {\n key += char; // key\n } else if (currStatus === STATUS[1]) {\n value += char; // value\n }\n }\n }\n if (key && value) {\n const propNode: PropNode = {\n key,\n value: this.HandlerValue(value),\n type: 'PropChar',\n };\n yield propNode;\n }\n }\n HandlerValue(value: string): PropValue {\n const num = Number(value);\n if (!Number.isNaN(num)) return num;\n if (\n ['[', '{'].includes(value.slice(0, 1)) &&\n [']', '}'].includes(value.slice(-1))\n ) {\n return JSON.parse(value);\n }\n return value;\n }\n}\nexport default function PropParser(code: string): PropNode[] {\n const lexer = new Lexer(code);\n return Array.from(lexer.tokenize());\n}\n","import AST_tag from './tag.js';\nimport AST_prop from './prop.js';\nexport default {\n tag: AST_tag,\n prop: AST_prop,\n};\n","import type { ParserOptions } from '@babel/parser';\nimport type {\n ImportDeclaration,\n ExportAllDeclaration,\n ExportDefaultDeclaration,\n ExportNamedDeclaration,\n Expression,\n SpreadElement,\n ArgumentPlaceholder,\n CallExpression,\n} from '@babel/types';\nimport { CompileOpt } from '@mbler/mcx-types';\nimport { ParsedTagNode } from '../types';\ninterface callList {\n source: Expression;\n set: (callEXp: CallExpression) => boolean;\n arguments: Array<SpreadElement | Expression | ArgumentPlaceholder>;\n remove: () => void;\n}\ninterface ImportListImport {\n isAll: boolean;\n import?: string | undefined;\n as: string;\n}\ninterface ImportList {\n source: string;\n imported: ImportListImport[];\n raw?: ImportDeclaration;\n}\ninterface BuildCache {\n call: callList[];\n import: ImportList[];\n export: Array<\n ExportNamedDeclaration | ExportAllDeclaration | ExportDefaultDeclaration\n >;\n}\nexport const _MCXstructureLocComponentTypes = {\n items: 'item',\n blocks: 'block',\n entities: 'entity',\n} as const;\ntype MCXstructureLocComponentType =\n (typeof _MCXstructureLocComponentTypes)[keyof typeof _MCXstructureLocComponentTypes];\ninterface MCXstructureLoc {\n script: string;\n Event: {\n on: 'after' | 'before';\n subscribe: Record<string, string>;\n loc: { line: number; column: number };\n isLoad: boolean;\n };\n Component: Record<\n string,\n {\n type: MCXstructureLocComponentType;\n useExpore: string;\n loc: { line: number; column: number };\n }\n >;\n UI: ParsedTagNode | null;\n}\nexport type {\n BuildCache,\n ImportList,\n ImportListImport,\n callList,\n CompileOpt,\n MCXstructureLoc,\n MCXstructureLocComponentType,\n};\n","import * as t from '@babel/types';\nimport { BuildCache, MCXstructureLoc } from '../types';\nimport { ParsedTagNode } from '../../types';\nexport class JsCompileData {\n File: string = '__repl';\n isFile: boolean = false;\n constructor(\n public node: t.Program,\n public BuildCache: BuildCache = {\n export: [],\n import: [],\n call: [],\n },\n ) {}\n setFilePath(dir: string) {\n this.isFile = true;\n this.File = dir;\n }\n}\nexport class MCXCompileData {\n File: string = '';\n isFile: boolean = false;\n constructor(\n public raw: ParsedTagNode[],\n public JSIR: JsCompileData,\n public strLoc: MCXstructureLoc,\n ) {}\n setFilePath(dir: string) {\n this.JSIR.setFilePath(dir);\n this.isFile = true;\n this.File = dir;\n }\n}\n","import { readFile } from 'node:fs/promises';\nimport * as Parser from '@babel/parser';\nimport { ImportList, ImportListImport } from '../types';\nimport * as t from '@babel/types';\nexport default class Utils {\n public static async FileAST(\n fileDir: string,\n parserOpt: Parser.ParserOptions,\n ): Promise<t.Program> {\n if (typeof fileDir !== 'string')\n throw new TypeError(\n '[read file]: compile utils was passed a non-string value',\n );\n const file = await readFile(fileDir, 'utf-8');\n if (typeof file !== 'string')\n throw new Error('[read file]: not found file ' + fileDir);\n try {\n return Parser.parse(file).program;\n } catch (err: any) {\n throw new Error('[compiler]: babel error' + err.stack);\n }\n }\n public static async FileContent(fileDir: string): Promise<string> {\n const file = await readFile(fileDir, 'utf-8');\n return file;\n }\n private static nodeStringValue(node: t.Identifier | t.StringLiteral): string {\n if (node.type == 'StringLiteral') {\n return node.value;\n } else if (node.type == 'Identifier') {\n return node.name;\n }\n throw new TypeError('[read id error]: no way to read string id');\n }\n private static CheckImportNode(\n node: t.ImportDeclaration,\n ir: ImportList,\n ): boolean {\n const newList = Utils.ImportToCache(node);\n // Eliminate common differences\n if (newList.source !== ir.source) return false;\n if (newList.imported.length !== ir.imported.length) return false;\n // in this for, newList.imported and ir.imported is same length\n for (let irIndex = 0; irIndex < newList.imported.length; irIndex++) {\n const newItem = newList.imported[irIndex];\n const oldItem = ir.imported[irIndex];\n if (\n newItem?.import !== oldItem?.import ||\n newItem?.as !== oldItem?.as ||\n newItem?.isAll !== oldItem?.isAll\n )\n return false;\n }\n return true;\n }\n public static CacheToImportNode(ir: ImportList): t.ImportDeclaration {\n if (!ir) throw new TypeError('plase call use right ImportList');\n // first verify ir.raw\n if (ir?.raw && Utils.CheckImportNode(ir?.raw, ir)) return ir.raw;\n const result: Array<\n t.ImportNamespaceSpecifier | t.ImportSpecifier | t.ImportDefaultSpecifier\n > = [];\n for (const ImportIt of ir.imported) {\n if (!ImportIt) continue;\n if (ImportIt.isAll) {\n result.push(t.importNamespaceSpecifier(t.identifier(ImportIt.as)));\n continue;\n }\n if (ImportIt.import == 'default') {\n result.push(t.importDefaultSpecifier(t.identifier(ImportIt.as)));\n continue;\n }\n if (!ImportIt.import)\n throw new TypeError('[compile node]: not found imported');\n result.push(\n t.importSpecifier(\n t.identifier(ImportIt.as),\n t.identifier(ImportIt.import),\n ),\n );\n }\n return t.importDeclaration(result, t.stringLiteral(ir.source));\n }\n public static ImportToCache(node: t.ImportDeclaration): ImportList {\n const result: ImportListImport[] = [];\n for (const item of node.specifiers) {\n const thisName = item.local.name;\n if (item.type == 'ImportNamespaceSpecifier') {\n result.push({\n isAll: true,\n as: thisName,\n });\n } else if (item.type == 'ImportDefaultSpecifier') {\n result.push({\n isAll: false,\n import: 'default',\n as: thisName,\n });\n } else if (item.type == 'ImportSpecifier') {\n result.push({\n isAll: false,\n as: thisName,\n import: Utils.nodeStringValue(item.imported),\n });\n }\n }\n return {\n source: Utils.nodeStringValue(node.source),\n imported: result,\n };\n }\n}\n","import * as t from '@babel/types';\nimport {\n _MCXstructureLocComponentTypes,\n ImportList,\n ImportListImport,\n MCXstructureLoc,\n MCXstructureLocComponentType,\n} from '../types';\nimport * as CompileData from './compileData';\nimport Utils from './utils';\nimport { parse } from '@babel/parser';\nimport { ParsedTagContentNode, ParsedTagNode } from '../../types';\nimport McxAst, { MCXUtils } from '../../ast/tag';\nimport PropParser from '../../ast/prop';\nimport ts from 'typescript';\nexport class CompileError extends Error {\n public loc: { line: number; column: number };\n constructor(message: string, loc: { line: number; column: number }) {\n super(message);\n this.name = 'CompileError';\n this.loc = loc || { line: -1, column: -1 };\n }\n}\n\nfunction extractLoc(node: any): { line: number; column: number } {\n if (!node) return { line: -1, column: -1 };\n // Node with loc.start (Babel or MCX): prefer column\n if (node.loc && node.loc.start) {\n const line =\n typeof node.loc.start.line === 'number' ? node.loc.start.line : -1;\n const column =\n typeof node.loc.start.column === 'number' ? node.loc.start.column : -1;\n return { line, column };\n } else if (node.loc && node.loc.column !== undefined) {\n return {\n line: node.loc.line ?? -1,\n column: node.loc.column,\n };\n }\n // MCX Token with unified position: start: { line, column }\n if (node.start && typeof node.start.line === 'number') {\n return { line: node.start.line, column: node.start.column ?? -1 };\n }\n return { line: -1, column: -1 };\n}\n\nfunction makeError(msg: string, node?: any) {\n return new CompileError(msg, extractLoc(node));\n}\ninterface ImportTemp {\n source: string;\n import?: string | undefined;\n isAll: boolean;\n}\nexport type Context = Record<string, t.Expression | { status: 'wait' }>;\nexport class CompileJS {\n constructor(public node: t.Program) {\n if (!t.isProgram(node))\n throw makeError(\n \"[compile error]: jsCompile can't work in a not program\",\n node,\n );\n this.CompileData = new CompileData.JsCompileData(node);\n this.run();\n this.writeBuildCache();\n }\n public TopContext: Context = {};\n private indexTemp: Record<string, ImportTemp> = {};\n private push(source: ImportList) {\n for (const node of source.imported) {\n this.indexTemp[node.as] = {\n source: source.source,\n import: node.import,\n isAll: node.isAll,\n };\n }\n }\n private writeBuildCache() {\n const build: ImportList[] = [];\n for (const [as, data] of Object.entries(this.indexTemp)) {\n let found = false;\n for (const i of build) {\n if (i.source === data.source) {\n i.imported.push({ as, isAll: data.isAll, import: data.import });\n found = true;\n break;\n }\n }\n if (!found) {\n build.push({\n source: data.source,\n imported: [{ as, import: data.import, isAll: data.isAll }],\n });\n }\n }\n this.CompileData.BuildCache.import = build;\n }\n private CompileData: CompileData.JsCompileData;\n public getCompileData(): CompileData.JsCompileData {\n return this.CompileData;\n }\n\n private tre(node: t.Block, ExtendContext: Context = {}): void {\n if (!t.isBlock(node))\n throw makeError(\"[compile error]: can't for in not block node\", node);\n const isTop: boolean = t.isProgram(node);\n const currenyContext: Context = isTop ? this.TopContext : ExtendContext;\n for (let index = 0; index < node.body.length; index++) {\n const item = node.body[index];\n const remove = () => {\n node.body.splice(index, 1);\n index--;\n };\n if (!item) continue;\n if (item.type == 'ImportDeclaration') {\n if (!isTop)\n throw makeError(\n '[compile node]: import declaration must use in top.',\n item,\n );\n this.push(Utils.ImportToCache(item));\n remove();\n } else if (item.type == 'BlockStatement') {\n this.tre(item, currenyContext);\n } else if (\n item.type == 'BreakStatement' ||\n item.type == 'EmptyStatement' ||\n item.type == 'ContinueStatement' ||\n item.type == 'ThrowStatement' ||\n item.type == 'WithStatement'\n ) {\n continue;\n } else if (item.type == 'TryStatement') {\n this.tre(item.block, currenyContext);\n } else if (item.type == 'IfStatement') {\n const nodes: t.Statement[] = [item.consequent];\n if (item.alternate) nodes.push(item.alternate);\n this.tre(t.blockStatement(nodes), currenyContext);\n } else if (item.type == 'WhileStatement') {\n this.tre(t.blockStatement([item.body]), currenyContext);\n } else if (item.type == 'ClassDeclaration') {\n if (item.superClass) {\n const superClass = item.superClass;\n if (\n superClass.type == 'ArrayExpression' ||\n superClass.type == 'BooleanLiteral' ||\n superClass.type == 'BinaryExpression' ||\n superClass.type == 'ThisExpression' ||\n superClass.type == 'ArrowFunctionExpression' ||\n superClass.type == 'BigIntLiteral' ||\n superClass.type == 'NumericLiteral' ||\n superClass.type == 'NullLiteral' ||\n superClass.type == 'AssignmentExpression' ||\n superClass.type == 'Super' ||\n superClass.type == 'NewExpression' ||\n superClass.type == 'DoExpression' ||\n superClass.type == 'StringLiteral' ||\n superClass.type == 'YieldExpression' ||\n superClass.type == 'RecordExpression' ||\n superClass.type == 'RegExpLiteral' ||\n superClass.type == 'DecimalLiteral' ||\n superClass.type == 'BindExpression'\n )\n throw makeError(\n \"[compilr error]: class can't extends a not constructor or null\",\n superClass,\n );\n }\n } else if (item.type == 'DoWhileStatement') {\n this.tre(t.blockStatement([item.body]));\n } else if (item.type == 'VariableDeclaration') {\n const declaration = item.declarations;\n for (const varDef of declaration) {\n const init = varDef.init;\n const id = varDef.id;\n if (id.type == 'Identifier') {\n if (!init && (item.kind == 'let' || item.kind == 'var'))\n currenyContext[id.name] = {\n status: 'wait',\n };\n if (!init)\n throw makeError(\n \"[compilr node]: 'const' must has a init\",\n varDef,\n );\n currenyContext[id.name] = init;\n if (\n init &&\n t.isCallExpression(init) &&\n t.isIdentifier(init.callee) &&\n init.callee.name === 'require' &&\n init.arguments.length > 0 &&\n t.isStringLiteral(init.arguments[0])\n ) {\n this.indexTemp[id.name] = {\n source: (init.arguments[0] as t.StringLiteral).value,\n import: 'default',\n isAll: false,\n };\n } else if (\n init &&\n t.isCallExpression(init) &&\n t.isImport(init.callee) &&\n init.arguments.length > 0 &&\n t.isStringLiteral(init.arguments[0])\n ) {\n this.indexTemp[id.name] = {\n source: (init.arguments[0] as t.StringLiteral).value,\n import: 'default',\n isAll: false,\n };\n }\n }\n }\n } else if (item.type == 'ReturnStatement') {\n continue;\n } else if (\n item.type == 'ExportAllDeclaration' ||\n item.type == 'ExportDefaultDeclaration' ||\n item.type == 'ExportNamedDeclaration'\n ) {\n if (!isTop) {\n throw makeError(\"[compiler]: export node can't in not top\", item);\n }\n this.CompileData.BuildCache.export.push(item);\n remove();\n } else if (item.type == 'SwitchStatement') {\n for (const caseItem of item.cases) {\n this.tre(t.blockStatement(caseItem.consequent), currenyContext);\n }\n } else if (item.type == 'ExpressionStatement') {\n const expr = item.expression;\n if (\n t.isCallExpression(expr) &&\n t.isIdentifier(expr.callee) &&\n expr.callee.name === 'require' &&\n expr.arguments.length > 0 &&\n t.isStringLiteral(expr.arguments[0])\n ) {\n this.indexTemp[\n `__require_${(expr.arguments[0] as t.StringLiteral).value}`\n ] = {\n source: (expr.arguments[0] as t.StringLiteral).value,\n import: 'default',\n isAll: false,\n };\n } else if (\n t.isCallExpression(expr) &&\n t.isImport(expr.callee) &&\n expr.arguments.length > 0 &&\n t.isStringLiteral(expr.arguments[0])\n ) {\n this.indexTemp[\n `__import_${(expr.arguments[0] as t.StringLiteral).value}`\n ] = {\n source: (expr.arguments[0] as t.StringLiteral).value,\n import: 'default',\n isAll: false,\n };\n }\n } else if (item.type == 'FunctionDeclaration') {\n const funcBody = item.body;\n this.tre(funcBody, currenyContext);\n }\n }\n }\n run() {\n if (!t.isBlock(this.node))\n throw makeError(\"[compile error]: can't for a not block\", this.node);\n this.tre(this.node);\n }\n}\nclass CompileMCX {\n constructor(public code: string) {\n const mcxCode = new McxAst(code).parseAST();\n if (!MCXUtils.isParseNode(mcxCode))\n throw makeError(\n \"[compile error]: mcxCompile can't work in a not mcxNode\",\n );\n this.mcxCode = mcxCode;\n this.structureCheck();\n const JSIR = this.generateJSIR();\n this.CompileData = new CompileData.MCXCompileData(\n mcxCode,\n JSIR,\n this.tempLoc,\n );\n }\n private mcxCode: ParsedTagNode[];\n private tempLoc: MCXstructureLoc = {\n script: '',\n Event: {\n on: 'after',\n subscribe: {},\n loc: { line: -1, column: -1 },\n isLoad: false,\n },\n Component: {},\n UI: null,\n };\n public getCompileData(): CompileData.MCXCompileData {\n return this.CompileData;\n }\n private checkComponentName(\n name: string,\n ): name is MCXstructureLocComponentType {\n return Object.values(_MCXstructureLocComponentTypes).includes(name as any);\n }\n private checkComponentParentName(\n name: string,\n ): name is keyof typeof _MCXstructureLocComponentTypes {\n return Object.keys(_MCXstructureLocComponentTypes).includes(name);\n }\n private commonTagNodeContent(\n node: ParsedTagNode | ParsedTagContentNode,\n ): string {\n if (MCXUtils.isTagContentNode(node)) {\n return node.data;\n }\n if (MCXUtils.isTagNode(node)) {\n return node.content\n .map(sub =>\n sub.type !== 'Comment' ? this.commonTagNodeContent(sub) : '',\n )\n .join('');\n }\n throw makeError('[mcx compile]: internal error: unknown node type', node);\n }\n private getEventOn(node: ParsedTagNode): 'before' | 'after' {\n if (!MCXUtils.isTagNode(node))\n throw makeError('[mcx compile]: internal error: not tag node', node);\n let on: 'before' | 'after' = 'after';\n const isAfter = typeof node.arr['@after'] == 'string';\n const isBefore = typeof node.arr['@before'] == 'string';\n if (isAfter && isBefore)\n throw makeError(\n \"[mcx compile]: Event node can't has both @after and @before\",\n node,\n );\n if (isAfter) on = 'after';\n if (isBefore) on = 'before';\n return on;\n }\n private structureCheck() {\n let component: ParsedTagNode | null = null;\n const temp: {\n script: string;\n ui: ParsedTagNode | null;\n Event: ParsedTagNode | null;\n Component: Record<MCXstructureLocComponentType, ParsedTagNode>;\n } = {\n script: '',\n Event: null,\n ui: null,\n Component: {} as Record<MCXstructureLocComponentType, ParsedTagNode>,\n };\n for (const node of this.mcxCode || []) {\n if (!MCXUtils.isTagNode(node)) continue;\n if (node.name == 'script') {\n if (temp.script)\n throw makeError('[compile error]: duplicate script node', node);\n const scriptNode =\n node.content.length == 0 ? '' : this.commonTagNodeContent(node);\n let code = scriptNode;\n if (node.arr.lang == 'ts') {\n code = ts.transpileModule(scriptNode, {\n compilerOptions: {\n target: ts.ScriptTarget.ES2024,\n module: ts.ModuleKind.ESNext,\n },\n }).outputText;\n }\n temp.script = code;\n } else if (node.name == 'Event') {\n if (temp.Event)\n throw makeError('[compile error]: duplicate Event node', node);\n // if Component already discovered, report error\n if (component)\n throw makeError(\n '[compile error]: Event node cannot appear after Component',\n node,\n );\n temp.Event = node;\n } else if (node.name == 'Component') {\n if (component)\n throw makeError('[compile error]: duplicate Component node', node);\n // if Event already discovered, report error\n if (temp.Event)\n throw makeError(\n '[compile error]: Component node cannot appear after Event',\n node,\n );\n if (temp.ui)\n throw makeError(\n \"[compile error]: Component node can't use with UI node\",\n );\n component = node;\n } else if (node.name == 'Ui') {\n if (component || temp.Event || temp.ui)\n throw makeError(\n \"[compile error]: UI node can't use with component or event or other ui node\",\n node,\n );\n temp.ui = node;\n }\n }\n if (!temp.script) throw makeError('[compile error]: mcx must has a script');\n this.tempLoc.script = temp.script;\n if (temp.Event) {\n const on = this.getEventOn(temp.Event);\n const content = temp.Event.content;\n if (\n content.length == 0 ||\n content.length > 1 ||\n !MCXUtils.isTagContentNode(content[0])\n )\n throw makeError(\n '[compile error]: Event node has invalid content',\n temp.Event,\n );\n const subscribeData = content[0].data.trim();\n this.tempLoc.Event = {\n on: on,\n subscribe: Object.fromEntries(\n PropParser(subscribeData).map(item => [\n item.key,\n item.value.toString(),\n ]),\n ),\n loc: extractLoc(temp.Event),\n isLoad: true,\n };\n }\n if (component) {\n for (const subNode of component.content || []) {\n if (!MCXUtils.isTagNode(subNode)) continue;\n const subName = subNode.name;\n // if is a valid component name\n this.handlerChildComponent(subNode);\n }\n }\n if (temp.ui) {\n this.tempLoc.UI = temp.ui;\n }\n }\n // input: tag node,handler child node(如 items entities)\n private handlerChildComponent(node: ParsedTagNode): void {\n const name = node.name;\n if (!this.checkComponentParentName(name))\n throw makeError(`[compile error]: invalid component name: ${name}`, node);\n const content = node.content;\n if (!content || content.length == 0)\n throw makeError(\n `[compile error]: component ${name} has no content`,\n node,\n );\n for (const subNode of content) {\n if (!MCXUtils.isTagNode(subNode)) continue;\n const subName = subNode.name;\n const _id = subNode.arr.id;\n if (!_id || typeof _id != 'string' || _id.trim() == '') {\n throw makeError(\n `[compile error]: component ${name} child component ${subName} has no id`,\n subNode,\n );\n }\n const id = _id.trim();\n const content = subNode.content;\n if (content.length == 0) {\n throw makeError(\n `[compile error]: component ${name} child component ${subName} has no content`,\n subNode,\n );\n }\n if (!content[0] || !MCXUtils.isTagContentNode(content[0]))\n throw makeError(\n `[compile error]: component ${name} child component ${subName} has invalid content`,\n subNode,\n );\n const useExpore = content[0].data.trim();\n if (subName == _MCXstructureLocComponentTypes[name]) {\n this.tempLoc.Component[`${name}/${id}`] = {\n type: subName,\n useExpore: useExpore,\n loc: extractLoc(subNode),\n };\n }\n }\n }\n private CompileData: CompileData.MCXCompileData;\n private generateJSIR(): CompileData.JsCompileData {\n if (!this.tempLoc.script.trim())\n throw makeError('[compile error]: mcx must has a script');\n const comiler = compileJSFn(this.tempLoc.script);\n return comiler;\n }\n}\nexport const compileJSFn = ((code: string): CompileData.JsCompileData => {\n if (compileJSFn.cache[code]) return compileJSFn.cache[code];\n let parsedCode: t.File;\n try {\n parsedCode = parse(code, {\n sourceType: 'module',\n allowImportExportEverywhere: true,\n errorRecovery: true,\n allowAwaitOutsideFunction: true,\n allowReturnOutsideFunction: true,\n allowSuperOutsideMethod: true,\n });\n } catch (err: unknown) {\n if (err instanceof SyntaxError) {\n const babelErr = err as SyntaxError & {\n loc?: { column: number; line: number };\n };\n const loc = babelErr.loc ?? { column: -1, line: -1 };\n throw makeError(`[babel parse error]: ${err.message}`, {\n loc: { start: loc },\n });\n }\n throw makeError(`[parse error]: ${String(err)}`);\n }\n const comiler = new CompileJS(parsedCode.program);\n comiler.run();\n const data = comiler.getCompileData();\n compileJSFn.cache[code] = data;\n return data;\n}) as ((code: string) => CompileData.JsCompileData) & {\n cache: Record<string, CompileData.JsCompileData>;\n};\nexport const compileMCXFn = ((mcxCode: string): CompileData.MCXCompileData => {\n if (compileMCXFn.cache[mcxCode]) return compileMCXFn.cache[mcxCode];\n const compiler = new CompileMCX(mcxCode);\n const data = compiler.getCompileData();\n compileMCXFn.cache[mcxCode] = data;\n return data;\n}) as ((mcxCode: string) => CompileData.MCXCompileData) & {\n cache: Record<string, CompileData.MCXCompileData>;\n};\ncompileJSFn.cache = {};\ncompileMCXFn.cache = {};\nexport * from './compileData';\nexport { Utils as MCXNodeUtils };\n","export default {\n // script tag compile function name\n scriptCompileFn: '__main',\n // use event tag , import event as\n eventImported: '__mcx__event',\n eventVarName: '__use_event',\n eventExtendsName: 'McxExtendsBy',\n // paramName\n paramCtx: '__mcx__ctx',\n} as const;\n","import * as fs from 'node:fs/promises';\nimport * as path from 'node:path';\nimport type { ReadFileOpt, ParseReadFileOpt, TypeVerifyBody } from './types.js';\n\nexport default class Utils {\n public static async FileExist(path: string): Promise<boolean> {\n try {\n await fs.access(path);\n return true;\n } catch {\n return false;\n }\n }\n public static async readFile(\n filePath: string,\n opt: ReadFileOpt = {},\n ): Promise<object | string> {\n const opts: ParseReadFileOpt = {\n delay: 200,\n maxRetries: 3,\n want: 'string',\n ...opt,\n };\n\n for (let attempt = 0; attempt < opts.maxRetries; attempt++) {\n try {\n const buffer: Buffer = await fs.readFile(filePath);\n let text: string | object;\n if (opts.want === 'string') {\n text = buffer.toString(); // Buffer -> string\n } else if (opts.want === 'object') {\n try {\n text = JSON.parse(buffer.toString()); // Buffer -> string -> object\n } catch {\n text = {};\n }\n } else {\n text = buffer.toString();\n }\n\n return text;\n } catch {\n if (attempt < opts.maxRetries - 1) {\n await Utils.sleep(opts.delay);\n }\n }\n }\n return opts.want === 'object' ? {} : '';\n }\n public static sleep(time: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, time));\n }\n public static TypeVerify<\n T extends Record<string, any>,\n U extends TypeVerifyBody,\n >(\n obj: T,\n types: U,\n ): obj is T & {\n [P in keyof U]: {\n boolean: boolean;\n number: number;\n string: string;\n object: object;\n function: Function;\n bigint: bigint;\n symbol: Symbol;\n }[U[P]];\n } {\n for (const item of Object.entries(types)) {\n const [key, ShouldType]: [string, string] = item;\n if (!(typeof obj[key] === ShouldType)) return false;\n }\n return true;\n }\n public static AbsoluteJoin(baseDir: string, inputPath: string): string {\n return path.isAbsolute(inputPath)\n ? inputPath\n : path.join(baseDir, inputPath);\n }\n}\n","let fileIdCounter = 0;\nexport function generateFileId() {\n return `__file_import_${fileIdCounter++}__`;\n}\n","import * as t from '@babel/types';\nimport { JsCompileData } from '../compile-mcx/compiler/compileData';\nimport Utils from '../compile-mcx/compiler/utils';\nimport { ParsedTagNode, transformCtx } from '../types';\nimport config from './config';\nimport McxUtils from '../utils';\nimport path from 'node:path';\nimport { generateFileId } from './file_id';\n\nfunction extractVarDefIdList(express: t.LVal | t.VoidPattern): string[] {\n const result: string[] = [];\n if (t.isIdentifier(express)) result.push(express.name);\n if (t.isObjectPattern(express))\n express.properties.forEach(prop => {\n // const {xxx:xxx,xxx=Litter} = xxx\n if (t.isObjectProperty(prop))\n return result.push(\n ...extractVarDefIdList(\n prop.value as t.Identifier | t.AssignmentPattern,\n ),\n );\n // const {...restElement} = xx (restElement in this, ,must identifier)\n if (t.isRestElement(prop) && prop.argument.type == 'Identifier')\n result.push(prop.argument.name);\n });\n if (t.isArrayPattern(express)) {\n for (const element of express.elements) {\n if (!element) continue;\n result.push(...extractVarDefIdList(element));\n }\n }\n if (t.isAssignmentPattern(express)) {\n result.push(...extractVarDefIdList(express.left));\n }\n return result;\n}\nfunction extractIdList(expression: t.Declaration): string[] {\n if (t.isFunctionDeclaration(expression)) {\n return [expression.id?.name || ''];\n }\n if (t.isVariableDeclaration(expression)) {\n const result: string[] = [];\n for (const varDef of expression.declarations) {\n result.push(...extractVarDefIdList(varDef.id));\n }\n return result;\n }\n if (t.isClassDeclaration(expression)) {\n // 'export class {}'is not vaild(error: class name is required).\n return [expression.id?.name || ''];\n }\n return [];\n}\nfunction ToExpression(\n s: t.ExportDefaultDeclaration['declaration'],\n): t.Expression {\n if (t.isFunctionDeclaration(s))\n return t.functionExpression(s.id, s.params, s.body, s.generator, s.async);\n if (t.isClassDeclaration(s))\n return t.classExpression(s.id, s.superClass, s.body, s.decorators);\n if (t.isTSDeclareFunction(s)) return t.objectExpression([]);\n return s;\n}\nfunction generateMain(\n code: JsCompileData,\n): [t.Statement[], t.ImportDeclaration[]] {\n const expBody: (t.ObjectProperty | t.SpreadElement)[] = [];\n const impBody: t.ImportDeclaration[] = code.BuildCache.import.map(\n (item): t.ImportDeclaration => {\n return Utils.CacheToImportNode(item);\n },\n );\n const codeBody: t.Statement[] = code.node.body;\n for (const exp of code.BuildCache.export) {\n if (t.isExportNamedDeclaration(exp)) {\n // export {xxx} from \"./xxx\" or export xxx from \"./xxx\"\n if (\n exp.source &&\n exp.specifiers &&\n exp.specifiers.length >= 1 &&\n exp.source.value.length >= 1\n ) {\n impBody.push(\n t.importDeclaration(\n exp.specifiers.map(item => {\n if (t.isExportDefaultSpecifier(item)) {\n expBody.push(t.objectProperty(item.exported, item.exported));\n return t.importDefaultSpecifier(item.exported);\n }\n if (t.isExportSpecifier(item)) {\n expBody.push(t.objectProperty(item.exported, item.exported));\n return t.importSpecifier(item.local, item.exported);\n }\n if (t.isExportNamespaceSpecifier(item)) {\n expBody.push(t.spreadElement(item.exported));\n return t.importNamespaceSpecifier(item.exported);\n }\n // 这也不是那也不是, 你是个登啊(ts也是galgame)\n throw new Error(\n '[build import]: unexpected export specifier type',\n );\n }),\n exp.source,\n ),\n );\n }\n if (exp.declaration) {\n const idList = extractIdList(exp.declaration);\n // be like: const {} = {}; (worthless)\n if (idList.length < 1) continue;\n codeBody.push(exp.declaration);\n expBody.push(\n ...idList.map(id => {\n return t.objectProperty(t.identifier(id), t.identifier(id));\n }),\n );\n }\n // export { xxx }\n if (exp.specifiers && !exp.source) {\n expBody.push(\n ...exp.specifiers.map(item => {\n if (!t.isExportSpecifier(item))\n throw new Error(`[build import]: invalid specifiers`);\n return t.objectProperty(item.exported, item.local);\n }),\n );\n }\n // export * from \"xxx\"\n } else if (t.isExportAllDeclaration(exp)) {\n // xxx.js => xxx_js(id)\n const id = generateFileId();\n impBody.push(\n t.importDeclaration(\n [t.importNamespaceSpecifier(t.identifier(id))],\n exp.source,\n ),\n );\n expBody.push(t.objectProperty(t.identifier(id), t.identifier(id)));\n // export default {} or export default function a(){}\n } else if (t.isExportDefaultDeclaration(exp)) {\n // to expression\n expBody.push(\n t.objectProperty(\n t.identifier('default'),\n ToExpression(exp.declaration),\n ),\n );\n }\n }\n return [\n [...codeBody, t.returnStatement(t.objectExpression(expBody))],\n impBody,\n ];\n}\nasync function generateEventConfig(\n eventTag: ParsedTagNode,\n ctx: transformCtx,\n impBody: t.ImportDeclaration[],\n): Promise<t.ObjectExpression> {\n const prop = ctx.compiledCode.strLoc.Event.subscribe;\n const argm: t.ObjectExpression = t.objectExpression([\n t.objectProperty(\n t.identifier('on'),\n t.stringLiteral(ctx.compiledCode.strLoc.Event.on),\n ),\n ]);\n if (eventTag.arr.tick) {\n const num = parseFloat(eventTag.arr.tick as string);\n if (!Number.isNaN(num))\n argm.properties.push(\n t.objectProperty(t.identifier('tick'), t.numericLiteral(num)),\n );\n }\n // extract event and hanler\n const data: t.ObjectProperty[] = [];\n const extend: t.Expression[] = [];\n for (const [name, handlerName] of Object.entries(prop)) {\n if (name == config.eventExtendsName) {\n const extendsFile = handlerName.split(',');\n for (const extFile of extendsFile) {\n if (\n !(await McxUtils.FileExist(\n path.join(path.dirname(ctx.currentId), extFile),\n ))\n )\n throw new Error(\n \"[transform event]: [ERR: NOT_FOUND]: can't resolve extend file: \" +\n extFile,\n );\n const id = generateFileId();\n impBody.push(\n t.importDeclaration(\n [t.importDefaultSpecifier(t.identifier(id))],\n t.stringLiteral(extFile),\n ),\n );\n extend.push(t.identifier(id));\n }\n } else {\n data.push(\n t.objectProperty(t.identifier(name), t.stringLiteral(handlerName)),\n );\n }\n }\n argm.properties.push(\n t.objectProperty(t.identifier('data'), t.objectExpression(data)),\n t.objectProperty(t.identifier('extends'), t.arrayExpression(extend)),\n );\n return argm;\n}\n/**\n * record enable\n * @returns {(): void} - only call one\n */\nfunction _enable(): (() => void) & {\n prototype: {\n enable: boolean;\n };\n} {\n let success = false;\n const fn = function () {\n if (success) throw new Error(\"[enable]: can't enable again\");\n success = true;\n fn.prototype.enable = success;\n };\n fn.prototype.enable = success;\n return fn;\n}\nfunction _enableWithData<T>(): ((data: T) => void) & {\n prototype: {\n enable: T | null;\n };\n} {\n let d: null | T = null;\n const fn = function (data: T) {\n if (d) throw new Error(\"[enable]: can't enable again\");\n d = data;\n fn.prototype.enable = d;\n };\n fn.prototype.enable = d;\n return fn;\n}\n// export\nexport {\n extractIdList,\n extractVarDefIdList,\n generateEventConfig,\n _enable,\n generateMain,\n _enableWithData,\n};\n","import { MCXstructureLoc } from '../../compile-mcx/types';\nimport { ContentToken, ParsedTagNode, transformParseCtx } from '../../types';\nimport * as t from '@babel/types';\nimport config from '../config';\nexport async function Comp(ctx: transformParseCtx) {\n const internalCtx = ctx.ctx;\n\n ctx.impBody.push(\n t.importDeclaration(\n [t.importSpecifier(t.identifier('__mcx__ui'), t.identifier('ui'))],\n t.stringLiteral('@mbler/mcx'),\n ),\n t.importDeclaration(\n [t.importNamespaceSpecifier(t.identifier('__minecraft__ui'))],\n t.stringLiteral('@minecraft/server-ui'),\n ),\n );\n\n const uiTagNode = ctx.ctx.compiledCode.strLoc.UI;\n if (!uiTagNode || uiTagNode?.name !== 'Ui')\n throw new Error(\"[UI Component]: why didn't parent compeled verify?\");\n let MCXUIType: 'ActionFormData' | 'MessageFormData' | 'ModalFormData' | null =\n null;\n const UITree: {\n arr: Record<string, string | boolean>;\n content: string;\n type: string;\n loc?: ParsedTagNode['loc'];\n }[] = [];\n for (const uiClientTag of uiTagNode.content) {\n if (uiClientTag.type == 'TagNode') {\n // if has client TagNode\n if (uiClientTag.content.some(i => i.type == 'TagNode')) {\n internalCtx.rollupContext.error(\n \"[UI]: can't support ui client element\",\n uiClientTag.loc\n ? {\n column: uiClientTag.loc.start.column,\n line: uiClientTag.loc.start.line,\n }\n : void 0,\n );\n }\n // add to tree\n UITree.push({\n arr: uiClientTag.arr,\n content: uiClientTag.content\n .map(i => (i.type == 'TagContent' && i.data) || '')\n .join(''),\n type: uiClientTag.name,\n loc: uiClientTag.loc,\n });\n }\n // continue TagContentNode\n }\n const parsedObj: t.Expression[] = [];\n function pushToTree(\n name: string,\n params: Record<string, string | boolean>,\n content: string,\n ) {\n parsedObj.push(\n t.objectExpression([\n t.objectProperty(t.identifier('type'), t.stringLiteral(name)),\n t.objectProperty(\n t.identifier('params'),\n t.objectExpression(\n Object.entries(params).map(([key, value]) => {\n const isDynamic = key.startsWith(':');\n const paramName = isDynamic ? key.slice(1) : key;\n return t.objectProperty(\n t.identifier(paramName),\n isDynamic\n ? t.objectExpression([\n t.objectProperty(\n t.identifier('useProp'),\n t.stringLiteral(String(value)),\n ),\n ])\n : typeof value == 'boolean'\n ? t.booleanLiteral(value)\n : t.stringLiteral(value),\n );\n }),\n ),\n ),\n t.objectProperty(\n t.identifier('content'),\n content.startsWith('{{ ') && content.endsWith(' }}')\n ? t.objectExpression([\n t.objectProperty(\n t.identifier('useProp'),\n t.stringLiteral(content.slice(3, content.length - 3).trim()),\n ),\n ])\n : t.stringLiteral(content),\n ),\n ]),\n );\n }\n // generate type and parsed tree\n for (const tp of UITree) {\n const name = tp.type;\n // only ModalFormData Element\n if (['input', 'dropdown', 'submit', 'toggle', 'slider'].includes(name)) {\n // ModalFromData\n if (MCXUIType && MCXUIType !== 'ModalFormData') {\n internalCtx.rollupContext.error(\n \"[UI]: a mcx can't have a ModalFormData Node and other form tag\",\n tp.loc\n ? {\n line: tp.loc.start.line,\n column: tp.loc.start.column,\n }\n : void 0,\n );\n }\n MCXUIType = 'ModalFormData';\n pushToTree(name, tp.arr, tp.content);\n }\n // only MessageFormData Element\n else if (['button-m'].includes(name)) {\n if (MCXUIType && MCXUIType !== 'MessageFormData') {\n internalCtx.rollupContext.error(\n '[UI]: ',\n tp.loc\n ? {\n line: tp.loc.start.line,\n column: tp.loc.start.column,\n }\n : void 0,\n );\n }\n MCXUIType = 'MessageFormData';\n pushToTree(name, tp.arr, tp.content);\n }\n // public\n else if (['body', 'divider', 'title', 'label'].includes(name)) {\n pushToTree(name, tp.arr, tp.content);\n } else if (name == 'button') {\n if (MCXUIType !== 'ActionFormData' && MCXUIType)\n internalCtx.rollupContext.error(\n \"[UI]: don't support use button for messageFormData\",\n tp.loc\n ? {\n line: tp.loc.start.line,\n column: tp.loc.start.column,\n }\n : void 0,\n );\n pushToTree(name, tp.arr, tp.content);\n MCXUIType = 'ActionFormData';\n } else {\n internalCtx.rollupContext.error(\n \"[UI]: don't support tag: \" + name,\n tp.loc\n ? {\n line: tp.loc.start.line,\n column: tp.loc.start.column,\n }\n : void 0,\n );\n }\n }\n if (!MCXUIType) MCXUIType = 'ActionFormData';\n const finallyData = t.objectExpression([\n t.objectProperty(t.identifier('layout'), t.arrayExpression(parsedObj)),\n t.objectProperty(\n t.identifier('use'),\n t.memberExpression(\n t.identifier('__minecraft__ui'),\n t.identifier(MCXUIType),\n ),\n ),\n t.objectProperty(t.identifier('UI'), t.identifier('__minecraft__ui')),\n ]);\n ctx.app([\n t.objectProperty(\n t.identifier('ui'),\n t.newExpression(t.identifier('__mcx__ui'), [\n finallyData,\n t.identifier(config.scriptCompileFn),\n ]),\n ),\n ]);\n}\n","import { ParsedTagNode, transformParseCtx } from '../../types';\nimport * as t from '@babel/types';\nimport { generateEventConfig } from '../utils';\nexport async function Comp(ctx: transformParseCtx) {\n const appData = [\n t.objectProperty(\n t.identifier('event'),\n await generateEventConfig(\n ctx.ctx.compiledCode.raw.find(\n node => node.name === 'Event', // compileMCXFn had verify, don't verify\n ) as ParsedTagNode,\n ctx.ctx,\n ctx.impBody,\n ),\n ),\n ];\n ctx.app(appData);\n}\n","import path from 'node:path';\nimport { transformParseCtx } from '../../types';\nimport * as t from '@babel/types';\nimport { readFile } from 'node:fs/promises';\nimport { compileMCXFn } from '../../compile-mcx/compiler';\nimport config from '../config';\nexport async function Comp(ctx: transformParseCtx) {\n const eventImportIdList: {\n type: 'default' | 'all';\n as: string;\n }[] = [];\n for (const impNode of ctx.ctx.compiledCode.JSIR.BuildCache.import) {\n const source = impNode.source;\n const parsed = path.parse(source);\n if (!parsed.root && !parsed.dir.startsWith('.')) {\n continue;\n }\n // path\n const fPath = path.join(ctx.ctx.currentId, '../', source);\n try {\n // read file\n const code = await readFile(fPath, 'utf-8');\n const compiledCode = compileMCXFn(code);\n // write cache\n ctx.ctx.cache.set(fPath, compiledCode);\n if (compiledCode.strLoc.Event.isLoad) {\n for (const impItem of impNode.imported) {\n let type: 'all' | 'default';\n if (impItem.isAll) type = 'all';\n else if (impItem.import == 'default') type = 'default';\n else {\n throw new Error(\n \"not vaild importDeclartion: Event mcx only resolve default and all import, can't use other import\",\n );\n }\n eventImportIdList.push({\n type,\n as: impItem.as,\n });\n }\n }\n } catch (err) {\n // if error: file not found, file can't write, mcx syntax error\n ctx.ctx.rollupContext.warn(\n `[extract import]: can't resolve file ${fPath} and import by ${ctx.ctx.currentId}\\n- err: ${err instanceof Error ? err.stack : err}`,\n );\n }\n }\n // only have event import\n if (eventImportIdList.length >= 1) {\n const eventMemberNode = t.memberExpression(\n t.identifier(config.paramCtx),\n t.identifier('event'),\n );\n ctx.mainFn.unshift(\n // add declaration\n\n t.variableDeclaration(\n 'var',\n eventImportIdList.map((item, index) => {\n if (item.type == 'all') {\n return t.variableDeclarator(\n t.identifier(item.as),\n t.objectExpression([\n t.objectProperty(\n t.identifier('default'),\n t.memberExpression(\n eventMemberNode,\n t.numericLiteral(index),\n true,\n ),\n ),\n ]),\n );\n } else if (item.type == 'default') {\n return t.variableDeclarator(\n t.identifier(item.as),\n t.memberExpression(\n eventMemberNode,\n t.numericLiteral(index),\n true,\n ),\n );\n }\n // ts galgame\n throw new Error('[javascript error]: why it not in [default, all]');\n }),\n ),\n );\n // app: add event export to runtime framework\n\n const appData = [\n t.objectProperty(\n t.identifier('event'),\n t.arrayExpression(\n eventImportIdList.map(vl => {\n if (vl.type == 'all') {\n return t.memberExpression(\n t.identifier(vl.as),\n t.identifier('default'),\n );\n } else if (vl.type == 'default') {\n return t.identifier(vl.as);\n }\n throw new Error(\"[add prop]: can't format eventImportList\");\n }),\n ),\n ),\n ];\n ctx.app(appData);\n }\n}\n","import { compileJSFn } from '../compile-mcx/compiler';\nimport { ImportList } from '../compile-mcx/types';\nimport * as t from '@babel/types';\nimport { generateFileId } from '../transforms/file_id';\nimport * as generator from '@babel/generator';\n/**\n * ESM => CJS\n */\nfunction transformESMToCJS(\n code: string,\n pluginContext?: Record<string, string | null | boolean | number>,\n hook?: (\n data: t.CallExpression | t.MemberExpression,\n setData?: (newData: t.Expression) => void,\n ) => void,\n): string {\n const compileData = compileJSFn(code);\n const body = compileData.node.body;\n const defines: t.VariableDeclarator[] = [];\n // import transform\n const importDefines = transformImportIRtoRequire(\n compileData.BuildCache.import,\n );\n for (const importDefine of importDefines) {\n const data = importDefine.init as t.CallExpression | t.MemberExpression;\n if (hook) {\n hook(data, newData => {\n importDefine.init = newData;\n });\n }\n defines.push(importDefine);\n }\n // add plugin context\n if (pluginContext) {\n defines.push(\n ...Object.entries(pluginContext).map(\n ([key, value]): t.VariableDeclarator =>\n t.variableDeclarator(\n t.identifier(key),\n typeof value == 'string'\n ? t.stringLiteral(value)\n : typeof value == 'boolean'\n ? t.booleanLiteral(value)\n : typeof value == 'number'\n ? t.numericLiteral(value)\n : t.nullLiteral(),\n ),\n ),\n );\n }\n\n const exportsArr = compileData.BuildCache.export\n .map(i => {\n if (t.isExportAllDeclaration(i)) {\n const fileId = generateFileId();\n defines.push(\n t.variableDeclarator(\n t.identifier(fileId),\n t.callExpression(t.identifier('require'), [i.source]),\n ),\n );\n return t.assignmentExpression(\n '=',\n t.memberExpression(t.identifier('module'), t.identifier('exports')),\n t.objectExpression([\n t.spreadElement(t.identifier(fileId)),\n t.spreadElement(\n t.memberExpression(\n t.identifier('module'),\n t.identifier('exports'),\n ),\n ),\n ]),\n );\n } else if (t.isExportDefaultDeclaration(i)) {\n if (!i.declaration || t.isTSDeclareFunction(i.declaration))\n return void 0;\n if (t.isExpression(i.declaration)) {\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier('default'),\n ),\n i.declaration,\n );\n }\n if (!i.declaration.id)\n i.declaration.id = t.identifier(generateFileId());\n body.push(i.declaration);\n return t.assignmentExpression(\n '=',\n t.memberExpression(t.identifier('exports'), t.identifier('default')),\n i.declaration.id,\n );\n } else if (t.isExportNamedDeclaration(i)) {\n if (i.source && i.specifiers.length >= 1) {\n const id = t.identifier(generateFileId());\n defines.push(\n t.variableDeclarator(\n id,\n t.callExpression(t.identifier('require'), [i.source]),\n ),\n );\n const exportExprs = i.specifiers\n .map(\n (\n specifier:\n | t.ExportNamespaceSpecifier\n | t.ExportDefaultSpecifier\n | t.ExportSpecifier,\n ) => {\n if (t.isExportNamespaceSpecifier(specifier)) {\n const exportedName = t.isIdentifier(specifier.exported)\n ? specifier.exported.name\n : (specifier.exported as any).value;\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier(exportedName),\n ),\n id,\n );\n } else if (t.isExportSpecifier(specifier)) {\n const exportedName = t.isIdentifier(specifier.exported)\n ? specifier.exported.name\n : (specifier.exported as any).value;\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier(exportedName),\n ),\n t.memberExpression(id, t.identifier(specifier.local.name)),\n );\n }\n return null;\n },\n )\n .filter(Boolean) as t.AssignmentExpression[];\n return exportExprs.length === 1\n ? exportExprs[0]\n : t.sequenceExpression(exportExprs);\n } else {\n if (i.declaration) {\n if (\n t.isFunctionDeclaration(i.declaration) ||\n t.isVariableDeclaration(i.declaration)\n ) {\n if (t.isVariableDeclaration(i.declaration)) {\n body.push(i.declaration);\n const assignExprs = i.declaration.declarations.map(decl => {\n const varName = (decl.id as t.Identifier).name;\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier(varName),\n ),\n t.identifier(varName),\n );\n });\n return assignExprs.length === 1\n ? assignExprs[0]\n : t.sequenceExpression(assignExprs);\n } else {\n const functionId =\n i.declaration.id || t.identifier(generateFileId());\n const funcDecl = t.functionDeclaration(\n functionId,\n i.declaration.params,\n i.declaration.body,\n i.declaration.generator,\n i.declaration.async,\n );\n body.push(funcDecl);\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier((functionId as t.Identifier).name),\n ),\n functionId,\n );\n }\n }\n } else {\n // Handle export { item } - simple variable export\n if (i.specifiers.length >= 1) {\n const exportExprs = i.specifiers\n .map(specifier => {\n if (t.isExportSpecifier(specifier)) {\n const exportedName = t.isIdentifier(specifier.exported)\n ? specifier.exported.name\n : (specifier.exported as any).value;\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier(exportedName),\n ),\n t.identifier(specifier.local.name),\n );\n }\n return null;\n })\n .filter(Boolean) as t.AssignmentExpression[];\n return exportExprs.length === 1\n ? exportExprs[0]\n : t.sequenceExpression(exportExprs);\n }\n }\n }\n return null;\n }\n })\n .filter(Boolean) as t.AssignmentExpression[];\n\n body.unshift(t.variableDeclaration('var', defines));\n body.push(...exportsArr.map(i => t.expressionStatement(i)));\n\n return generator.generate(t.program(body)).code;\n}\n\n/**\n * import IR => require\n */\nfunction transformImportIRtoRequire(\n importIR: ImportList[],\n): t.VariableDeclarator[] {\n const define: t.VariableDeclarator[] = [\n t.variableDeclarator(\n t.identifier('__import_default'),\n t.functionExpression(\n null,\n [t.identifier('obj')],\n t.blockStatement([\n t.returnStatement(\n t.conditionalExpression(\n t.memberExpression(\n t.identifier('obj'),\n t.identifier('__esModule'),\n ),\n t.memberExpression(t.identifier('obj'), t.identifier('default')),\n t.identifier('obj'),\n ),\n ),\n ]),\n ),\n ),\n ];\n\n for (const data of importIR) {\n for (const imported of data.imported) {\n let vl: t.CallExpression | t.MemberExpression;\n if (!imported.isAll && imported.import) {\n if (imported.import == 'default') {\n vl = t.callExpression(t.identifier('__import_default'), [\n t.callExpression(t.identifier('require'), [\n t.stringLiteral(data.source),\n ]),\n ]);\n } else {\n vl = t.memberExpression(\n t.callExpression(t.identifier('require'), [\n t.stringLiteral(data.source),\n ]),\n t.identifier(imported.import),\n );\n }\n } else {\n vl = t.callExpression(t.identifier('require'), [\n t.stringLiteral(data.source),\n ]);\n }\n define.push(t.variableDeclarator(t.identifier(imported.as), vl));\n }\n }\n return define;\n}\nexport { transformESMToCJS, transformImportIRtoRequire };\n","import * as Module from 'node:module';\nimport * as vm from 'node:vm';\nimport { Buffer } from 'node:buffer';\nimport * as t from '@babel/types';\nimport { parse } from '@babel/parser';\nimport * as generator from '@babel/generator';\nimport { transformESMToCJS } from './cjsTransform';\nconst BLOCKED_MODULES = new Set([\n 'child_process',\n 'node:child_process',\n 'fs',\n 'node:fs',\n 'node:fs/promises',\n 'worker_threads',\n 'node:worker_threads',\n 'cluster',\n 'node:cluster',\n 'dgram',\n 'node:dgram',\n 'net',\n 'node:net',\n 'tls',\n 'node:tls',\n 'tty',\n 'node:tty',\n 'v8',\n 'node:v8',\n 'vm',\n 'node:vm',\n 'async_hooks',\n 'node:async_hooks',\n 'diagnostics_channel',\n 'node:diagnostics_channel',\n]);\n// Enumerate the methods for converting ESM to CJS\nexport enum execESMMethod {\n transformCjs = 0,\n runInVm = 1,\n importESM = 2,\n}\n\nexport class RunScript {\n private _context;\n private _module;\n private _pluginContext;\n constructor(\n public filePath: string = '<repl>',\n public module: 'esm' | 'cjs' = 'cjs',\n private pluginContext?: Record<string, string | null | boolean | number>,\n ) {\n this._module = new Module.Module(this.filePath);\n this._pluginContext = pluginContext || {};\n this._context = this.getContext(this._pluginContext);\n }\n /**\n * run code in nodejs vm\n * @param code {string} exetuce code\n * @returns code exports\n */\n public async run(\n code: string,\n esmExecMethod: execESMMethod = execESMMethod.transformCjs,\n transformCjsHook?: (\n data: t.CallExpression | t.MemberExpression,\n setData?: (newData: t.Expression) => void,\n ) => void,\n ): Promise<unknown> {\n if (this.module === 'esm') {\n if (esmExecMethod == execESMMethod.importESM) {\n let processedCode = code;\n\n if (this.pluginContext) {\n const ast = parse(code, {\n sourceType: 'module',\n plugins: ['typescript', 'jsx'],\n });\n const contextDefines = Object.entries(this.pluginContext).map(\n ([key, value]): t.VariableDeclarator =>\n t.variableDeclarator(\n t.identifier(key),\n typeof value == 'string'\n ? t.stringLiteral(value)\n : typeof value == 'boolean'\n ? t.booleanLiteral(value)\n : typeof value == 'number'\n ? t.numericLiteral(value)\n : t.nullLiteral(),\n ),\n );\n const contextDeclaration = t.variableDeclaration(\n 'var',\n contextDefines,\n );\n ast.program.body.unshift(contextDeclaration);\n processedCode = generator.generate(ast).code;\n }\n const dataUrl = `data:application/javascript;base64,${Buffer.from(processedCode).toString('base64')}`;\n return await import(dataUrl);\n } else if (esmExecMethod == execESMMethod.transformCjs) {\n const compiledCode = transformESMToCJS(\n code,\n this.pluginContext,\n transformCjsHook,\n );\n const script = new vm.Script(compiledCode, { filename: this.filePath });\n const rel = script.runInContext(this._context);\n return this._context.exports || rel;\n } else if (esmExecMethod == execESMMethod.runInVm) {\n if (typeof vm.SourceTextModule !== 'function') {\n throw new Error('[exec esm]: not support vm.SourceTextModule');\n } else {\n const script = new vm.SourceTextModule(code, {\n context: this._context,\n });\n await script.link(async specifier => {\n return new vm.SourceTextModule(specifier, {\n context: this._context,\n });\n });\n await script.evaluate();\n return script.namespace;\n }\n }\n } else {\n const script = new vm.Script(code, { filename: this.filePath });\n const rel = script.runInContext(this._context);\n return this._context.exports || rel;\n }\n }\n private getContext(pluginContext?: Record<string, unknown>): vm.Context {\n const context: vm.Context = Object.create(pluginContext || null);\n // CJS context setup\n const exports = {};\n const module = {\n exports,\n filename: this.filePath,\n path: this.filePath,\n paths: require.resolve.paths(this.filePath) || [],\n id: this.filePath,\n };\n const originalRequire = Module.createRequire\n ? Module.createRequire(this.filePath)\n : require;\n const restrictedRequire = new Proxy(originalRequire, {\n apply(target, thisArg, args) {\n const id = args[0];\n if (typeof id === 'string' && BLOCKED_MODULES.has(id)) {\n throw new Error(\n `[mcx component]: require('${id}') is not allowed in component scripts`,\n );\n }\n return Reflect.apply(target, thisArg, args);\n },\n });\n Object.assign(context, {\n exports,\n module,\n require: restrictedRequire,\n global: context,\n });\n return vm.createContext(context);\n }\n public static isCanUseEsmRunVm = typeof vm.SourceTextModule == 'function';\n}\nexport { transformESMToCJS };\n","import { cp, mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { MCXCompileData } from '../compile-mcx/compiler/compileData';\nimport { execESMMethod, RunScript } from './vm';\nimport path from 'node:path';\nimport lib from '@mbler/mcx-component';\nimport { MCXstructureLocComponentType } from '../compile-mcx/types';\nimport { transformCtx } from '../types';\nimport * as t from '@babel/types';\nimport type { BaseJson, FilePoint } from './types';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { parse } from '@babel/parser';\nimport { styleText } from 'node:util';\n\n/** Accumulated bind data (e.g. item_texture entries) across all components in a build. */\nlet cachedOption: Record<string, string[] | [string, string][]> = {};\n\n/**\n * Security limits for file I/O operations inside file_edit expressions.\n * Components from @mbler/mcx-core are exempt from these limits.\n */\nconst MAX_FILE_WRITES = 5;\nconst MAX_FILE_READS = 1;\n\n/** Clear all cached bind options (called between builds). */\nexport function clearCachedOptions() {\n cachedOption = {};\n}\n\n/**\n * Resolve a FilePoint to an absolute path on disk.\n *\n * - `base: 'root'` is only allowed when the calling component originates from\n * @mbler/mcx-core (the `sourceIsMcxCore` flag). This prevents third-party\n * components from reading arbitrary filesystem locations.\n * - For `behavior` / `resources`, the file is resolved relative to the\n * corresponding output directory. A path-traversal check ensures the resolved\n * path does not escape the base directory (e.g. via `../`).\n */\nexport function resolveFilePoint(\n point: FilePoint,\n ctx: transformCtx,\n sourceIsMcxCore = false,\n) {\n // \"root\" base: resolve the file path directly against cwd. Only internal\n // mcx-core components are trusted to use this — third-party components\n // would gain unrestricted filesystem access otherwise.\n if (point.base === 'root') {\n if (!sourceIsMcxCore) {\n throw new Error(\n '[mcx component]: \"root\" base is only allowed for components imported from @mbler/mcx-core',\n );\n }\n return path.resolve(point.file);\n }\n let baseDir: string;\n if (point.base === 'behavior') {\n baseDir = ctx.output.behavior;\n } else if (point.base === 'resources') {\n baseDir = ctx.output.resources;\n } else {\n throw new Error('[mcx component]: invalid FilePoint Base');\n }\n const resolved = path.resolve(baseDir, point.file);\n // Path traversal guard: after resolving, the result must still be inside the\n // base directory. If the file contains \"../\" that escapes the root, the\n // startsWith check will fail.\n if (!resolved.startsWith(path.resolve(baseDir))) {\n throw new Error('[mcx component]: Path Traversal detected: ' + point.file);\n }\n return resolved;\n}\n\n/**\n * Maps each locally-bound identifier name to the package it was imported from.\n * Built by walking the AST of the component source code.\n *\n * Example:\n * import { ItemComponent } from '@mbler/mcx-core'\n * → { ItemComponent: '@mbler/mcx-core' }\n *\n * const { SomeHelper } = require('some-lib')\n * → { SomeHelper: 'some-lib' }\n */\ntype ExportSourceMap = Record<string, string>;\n\n/**\n * Walk the component source AST and build a mapping from local variable names\n * to the npm package they were imported/required from.\n *\n * Covers three import patterns:\n * 1. ES module named/default/namespace imports: import { X } from 'pkg'\n * 2. CommonJS direct require: const X = require('pkg')\n * 3. CommonJS destructured require: const { X } = require('pkg')\n * which desugars to a MemberExpression in the AST.\n */\nfunction collectExportSources(code: string): ExportSourceMap {\n const sources: ExportSourceMap = {};\n let ast: ReturnType<typeof parse>;\n try {\n ast = parse(code, {\n sourceType: 'module',\n plugins: ['typescript', 'jsx'],\n });\n } catch {\n // Parse failure is non-fatal — return empty map and skip the check.\n return sources;\n }\n\n function walk(node: t.Node) {\n if (!node) return;\n\n // Pattern 1: ES module import declarations.\n // e.g. import { ItemComponent, EntityComponent as Entity } from '@mbler/mcx-core'\n if (t.isImportDeclaration(node)) {\n const pkg =\n typeof node.source.value === 'string' ? node.source.value : '';\n for (const spec of node.specifiers) {\n if (t.isImportSpecifier(spec)) {\n // Named import — local.name is the locally bound name,\n // imported.name is the original export name.\n const importedName = t.isIdentifier(spec.imported)\n ? spec.imported.name\n : (spec.imported as any).value;\n const localName = spec.local.name;\n sources[localName] = pkg;\n } else if (t.isImportDefaultSpecifier(spec)) {\n // import Default from 'pkg'\n sources[spec.local.name] = pkg;\n } else if (t.isImportNamespaceSpecifier(spec)) {\n // import * as ns from 'pkg'\n sources[spec.local.name] = pkg;\n }\n }\n }\n\n // Patterns 2 & 3: CommonJS require calls inside variable declarations.\n if (t.isVariableDeclaration(node)) {\n for (const decl of node.declarations) {\n // Pattern 2: const X = require('pkg')\n if (\n t.isIdentifier(decl.id) &&\n decl.init &&\n t.isCallExpression(decl.init) &&\n t.isIdentifier(decl.init.callee, { name: 'require' }) &&\n decl.init.arguments.length === 1 &&\n t.isStringLiteral(decl.init.arguments[0])\n ) {\n sources[decl.id.name] = decl.init.arguments[0].value;\n }\n // Pattern 3: const { X } = require('pkg')\n // In the AST this becomes:\n // VariableDeclarator {\n // id: Identifier(X),\n // init: CallExpression {\n // callee: MemberExpression {\n // object: CallExpression { callee: require, arguments: ['pkg'] },\n // property: Identifier(X)\n // }\n // }\n // }\n if (\n t.isIdentifier(decl.id) &&\n decl.init &&\n t.isCallExpression(decl.init) &&\n t.isMemberExpression(decl.init.callee) &&\n t.isCallExpression(decl.init.callee.object) &&\n t.isIdentifier(decl.init.callee.object.callee, { name: 'require' }) &&\n decl.init.callee.object.arguments.length === 1 &&\n t.isStringLiteral(decl.init.callee.object.arguments[0])\n ) {\n sources[decl.id.name] = decl.init.callee.object.arguments[0].value;\n }\n }\n }\n\n // Generic AST traversal using @babel/types VISITOR_KEYS.\n for (const key of t.VISITOR_KEYS[node.type] || []) {\n const child = (node as unknown as Record<string, unknown>)[key];\n if (Array.isArray(child)) {\n for (const item of child) {\n if (item && typeof item === 'object' && (item as t.Node).type) {\n walk(item as t.Node);\n }\n }\n } else if (child && typeof child === 'object' && (child as t.Node).type) {\n walk(child as t.Node);\n }\n }\n }\n walk(ast.program);\n return sources;\n}\n\n/**\n * Validate that the component only imports from @mbler/mcx-core.\n * Non-mcx-core imports are collected and each unique offending package\n * triggers a console warning (once per package per file).\n * Relative imports ('./...', '../...') are silently allowed.\n */\nfunction checkComponentImports(sources: ExportSourceMap, filePath: string) {\n const allowedPackage = '@mbler/mcx-core';\n const warned = new Set<string>();\n for (const [, pkg] of Object.entries(sources)) {\n if (\n pkg &&\n !pkg.startsWith(allowedPackage) &&\n !pkg.startsWith('.') &&\n !warned.has(pkg)\n ) {\n warned.add(pkg);\n console.warn(\n `[${styleText('red', 'mcx component warning')}]: \"${pkg}\" in ${filePath} is not from \"${allowedPackage}\". Only imports/requires from \"${allowedPackage}\" are recommended.`,\n );\n }\n }\n}\n\n/**\n * Execute file_edit operations defined in a component's _meta.\n * Delegates to execEditInternal with a fresh limits counter.\n *\n * @param isMcxCoreSource - when true, the component originates from\n * @mbler/mcx-core and is exempt from file I/O limits and root base\n * restrictions.\n */\nexport async function execEdit(\n option: BaseJson['_meta']['file_edit'],\n ctx: transformCtx,\n isMcxCoreSource = false,\n) {\n if (!option) return;\n // Shared mutable limits object passed through recursive batch calls so that\n // the total write/read count across the entire file_edit tree is enforced.\n const limits = { writeCount: 0, readCount: 0 };\n await execEditInternal(option, ctx, limits, isMcxCoreSource);\n}\n\n/**\n * Internal recursive implementation of execEdit.\n * Handles three editOption types:\n * - batch: recursively processes a nested array of options\n * - copy_assets: copies a file from source to output via FilePoint resolution\n * - edit: evaluates an expression with define vars, then writes to a file or\n * appends to a bind target (e.g. item_texture)\n *\n * File I/O limits (writes ≤ 5, reads ≤ 1) are enforced on the limits object\n * but skipped entirely when isMcxCoreSource is true.\n */\nasync function execEditInternal(\n option: BaseJson['_meta']['file_edit'],\n ctx: transformCtx,\n limits: { writeCount: number; readCount: number },\n isMcxCoreSource: boolean,\n) {\n if (!option) return;\n for (const editOption of option) {\n if (editOption.type == 'batch') {\n // Recurse into nested batch — limits object is shared so counts persist.\n await execEditInternal(editOption.options, ctx, limits, isMcxCoreSource);\n } else {\n if (editOption.type == 'copy_assets') {\n // copy_assets: resolve both source and output paths, then copy.\n await cp(\n resolveFilePoint(editOption.source, ctx, isMcxCoreSource),\n resolveFilePoint(editOption.output, ctx, isMcxCoreSource),\n {\n recursive: true,\n force: true,\n },\n );\n } else if (editOption.type == 'edit') {\n // edit: build the define variables map from the expression config,\n // then run the expression to produce the output content.\n const defineVars = {} as Record<string, string>;\n for (const [key, entry] of Object.entries(\n editOption.expression.define,\n )) {\n const value = entry as\n | { from: 'var'; data: string }\n | { from: 'read_file'; data: FilePoint; default?: string };\n if (value.from == 'var') {\n // Simple variable reference — just pass through the string value.\n defineVars[key] = value.data;\n } else {\n // File read — enforce the read limit for non-mcx-core sources.\n if (!isMcxCoreSource) {\n limits.readCount++;\n if (limits.readCount > MAX_FILE_READS) {\n throw new Error(\n `[mcx component]: File read limit exceeded (max ${MAX_FILE_READS})`,\n );\n }\n }\n const fileContent = await readFile(\n resolveFilePoint(value.data, ctx, isMcxCoreSource),\n 'utf-8',\n );\n defineVars[key] = fileContent || value.default || '';\n }\n }\n const execResult = await editOption.expression.run(defineVars);\n\n // If the target is a file on disk, write the result and enforce write limit.\n if ('file' in editOption.source) {\n if (!isMcxCoreSource) {\n limits.writeCount++;\n if (limits.writeCount > MAX_FILE_WRITES) {\n throw new Error(\n `[mcx component]: File write limit exceeded (max ${MAX_FILE_WRITES})`,\n );\n }\n }\n const filePath = resolveFilePoint(\n editOption.source,\n ctx,\n isMcxCoreSource,\n );\n await writeFile(filePath, execResult.toString());\n }\n\n // If the target is a bind slot (e.g. item_texture), accumulate entries.\n if ('bind' in editOption.source) {\n if (\n editOption.source.bind == 'item_texture' &&\n editOption.source.type == 'append'\n ) {\n if (!Array.isArray(execResult))\n throw new Error(\n '[mcx component]: json._meta.file_edit: error exec result',\n );\n if (!cachedOption['item_texture'])\n cachedOption['item_texture'] = [];\n if (Array.isArray(execResult)) {\n cachedOption['item_texture'] = [\n ...(cachedOption['item_texture'] as [string, string][]),\n ...(execResult as [string, string][]),\n ];\n }\n }\n } else {\n throw new Error(\n '[mcx component]: json._meta.file_edit: unknown output place.',\n );\n }\n }\n }\n }\n}\n\n/**\n * Generate the final textures/item_texture.json from accumulated bind data.\n * Call this in the plugin's buildEnd / onEnd hook.\n * Merges with any existing item_texture.json in the output directory.\n */\nexport async function generateItemTextureJson(output: {\n resources: string;\n}): Promise<void> {\n const entries = cachedOption['item_texture'] as\n | [string, string][]\n | undefined;\n if (!entries || entries.length === 0) return;\n\n const dir = path.join(output.resources, 'textures');\n const filePath = path.join(dir, 'item_texture.json');\n\n const data: {\n resource_pack_name: string;\n texture_name: string;\n texture_data: Record<string, { textures: string }>;\n } = {\n resource_pack_name: 'mcx.pack.v.',\n texture_name: 'atlas.items',\n texture_data: {},\n };\n\n // Merge with existing data if the file already exists from a prior run.\n try {\n const existing = JSON.parse(readFileSync(filePath, 'utf-8'));\n if (existing.texture_data) {\n data.texture_data = existing.texture_data;\n }\n } catch {\n // File doesn't exist yet, use default empty data.\n }\n\n for (const [key, textures] of entries) {\n data.texture_data[key] = { textures };\n }\n\n await mkdir(dir, { recursive: true });\n await writeFile(filePath, JSON.stringify(data, null, 2));\n}\n\n/**\n * Compile a single MCX component: parse its source, validate imports, execute\n * the script in a VM, then iterate over each declared component to produce\n * its JSON output file.\n *\n * Security measures applied before VM execution:\n * 1. collectExportSources — maps each import to its source package\n * 2. checkComponentImports — warns on non-mcx-core dependencies\n *\n * Per-component restrictions (checked after VM execution):\n * - path traversal guard on the output file point\n * - root base: only allowed if the export came from @mbler/mcx-core\n * - file write limit (≤5) and read limit (≤1): only enforced for\n * non-mcx-core components\n */\nexport async function compileComponent(\n compiledCode: MCXCompileData,\n ctx: transformCtx,\n) {\n const component = compiledCode.strLoc.Component;\n const src = compiledCode.strLoc.script;\n\n // Pre-flight: scan imports and build the export → source package map.\n // This is used both for import validation and for per-component restriction\n // decisions later.\n const exportSources = collectExportSources(src);\n checkComponentImports(exportSources, compiledCode.File);\n\n // Execute the component script in a VM. The transformCjsHook rewrites\n // image file requires (e.g. require('./icon.png')) into\n // require('@mbler/mcx-core').PNGImageComponent(require('node:path').join(...))\n // so that image assets are handled by the mcx-core ImageComponent classes.\n const scriptRunResult = (await new RunScript(compiledCode.File, 'esm').run(\n src,\n execESMMethod.transformCjs,\n (data, setData) => {\n if (\n setData &&\n data.type == 'CallExpression' &&\n data.callee.type == 'Identifier' &&\n data.arguments.length == 1 &&\n data.arguments[0]?.type == 'CallExpression' &&\n data.arguments[0].callee.type == 'Identifier' &&\n data.arguments[0].callee.name == 'require'\n ) {\n const callRequire = data.arguments[0];\n const arg = callRequire.arguments[0];\n if (arg && arg.type == 'StringLiteral') {\n if (/^.+?\\.(png|svg|jpg|jpeg|gif)$/.test(arg.value)) {\n const imageComponentRequire = t.memberExpression(\n t.callExpression(t.identifier('require'), [\n t.stringLiteral('@mbler/mcx-core'),\n ]),\n t.identifier(\n {\n png: 'PNGImageComponent',\n svg: 'SVGImageComponent',\n jpg: 'JPGImageComponent',\n jpeg: 'JPGImageComponent',\n gif: 'GIFImageComponent',\n }[path.extname(arg.value).slice(1)] as string,\n ),\n );\n const finishExpression = t.newExpression(imageComponentRequire, [\n t.callExpression(\n t.memberExpression(\n t.callExpression(t.identifier('require'), [\n t.stringLiteral('node:path'),\n ]),\n t.identifier('join'),\n ),\n [t.stringLiteral(path.dirname(compiledCode.File)), arg],\n ),\n ]);\n setData(finishExpression);\n }\n }\n }\n },\n )) as Record<\n string,\n InstanceType<(typeof lib)[MCXstructureLocComponentType]> | undefined\n >;\n if (!component)\n throw new Error(\n '[component internal error]: compile component: mcx is not component: filePath: ' +\n compiledCode.File,\n );\n if (typeof scriptRunResult !== 'object')\n throw new Error(\n '[component compile error]: exec code: mcx export type is not object',\n );\n\n // Iterate over each declared component entry and produce its output JSON.\n for (const i of Object.entries(component)) {\n const filePoint = path.join(ctx.output.behavior, i[0]);\n\n // Path traversal check: the resolved output must stay inside the behavior dir.\n if (!path.relative(filePoint, ctx.output.behavior).startsWith('..'))\n throw new Error('[component]: Path Traversal: path: ' + filePoint);\n\n const pointExport = i[1].useExpore;\n const pointData = scriptRunResult[pointExport] as InstanceType<\n (typeof lib)[keyof typeof lib]\n >;\n if (!pointExport) {\n throw new Error(\n '[component]: compile: check: not found Component class of file: ' +\n compiledCode.File,\n );\n }\n\n // Ensure the output directory exists before writing.\n if (!existsSync(path.dirname(filePoint))) {\n await mkdir(path.dirname(filePoint), {\n recursive: true,\n });\n }\n\n const json = pointData.toJSON() as BaseJson;\n if (\n !json._meta ||\n !json._meta.type ||\n !['item', 'entity'].includes(json._meta.type)\n )\n throw new Error('[mcx component]: not mcx json component: unknown type');\n\n if (json._meta.file_edit) {\n // Determine if THIS specific export comes from @mbler/mcx-core.\n // If yes, the component is trusted and bypasses file I/O limits\n // and root base restrictions. If not, restrictions apply.\n const isMcxCoreSource = (exportSources[pointExport] ?? '').startsWith(\n '@mbler/mcx-core',\n );\n await execEdit(json._meta.file_edit, ctx, isMcxCoreSource);\n }\n\n // Strip the internal _meta field before writing the final JSON.\n delete (json as unknown as Record<string, string>)['_meta'];\n await writeFile(filePoint, JSON.stringify(json, null, 2));\n }\n}\n\nexport * from './vm';\nexport {\n ItemComponent,\n EntityComponent,\n BlockComponent,\n PNGImageComponent,\n SVGImageComponent,\n GIFImageComponent,\n JPGImageComponent,\n} from '@mbler/mcx-component';\n","import { mcxType, transformCtx, transformParseCtx } from '../types';\nimport * as t from '@babel/types';\nimport { generate } from '@babel/generator';\nimport config from './config';\nimport { _enable, _enableWithData, generateMain } from './utils';\nimport { EventComp, UIComp, AppComp } from './transform';\nimport { compileComponent } from '../mcx-component';\nexport async function _transform(ctx: transformCtx): Promise<string> {\n const _temp_main = generateMain(ctx.compiledCode.JSIR);\n const mainFn = (ctx.mainFn.body = _temp_main[0]);\n const prop: t.ObjectProperty[] = [];\n const app = _enableWithData<t.ObjectProperty[]>();\n const params: t.FunctionParameter[] = (ctx.mainFn.param = [\n t.identifier(config.paramCtx),\n ]);\n const parseCtx: transformParseCtx = {\n impBody: _temp_main[1],\n mainFn,\n prop,\n ctx: ctx,\n app,\n };\n let type: mcxType = 'app';\n\n // enable setup fn: use to generate setup\n const enableSetup = _enable();\n if (ctx.compiledCode.strLoc.Event.isLoad) {\n // handler event type mcx\n type = 'event';\n // enable export setup\n enableSetup();\n await EventComp(parseCtx);\n }\n if (ctx.compiledCode.strLoc.UI) {\n type = 'ui'; // ui mcx\n enableSetup();\n await UIComp(parseCtx);\n }\n if (\n Object.getOwnPropertyNames(ctx.compiledCode.strLoc.Component).length >= 1\n ) {\n type = 'component';\n await compileComponent(ctx.compiledCode, ctx);\n return `export default {type:'component',setup:null,app:{}}`;\n }\n if (type == 'app') {\n // enable setup export\n enableSetup();\n // find event mcx import\n await AppComp(parseCtx);\n }\n // add default export: type\n prop.push(t.objectProperty(t.identifier('type'), t.stringLiteral(type)));\n if (enableSetup.prototype.enable) {\n prop.push(\n t.objectProperty(\n t.identifier('setup'),\n t.identifier(config.scriptCompileFn),\n ),\n );\n }\n if (app.prototype.enable) {\n prop.push(\n t.objectProperty(\n t.identifier('app'),\n t.objectExpression(app.prototype.enable),\n ),\n );\n }\n // generate code\n const code = generate(\n // create program\n t.program([\n ...parseCtx.impBody,\n t.functionDeclaration(\n t.identifier(config.scriptCompileFn),\n params,\n t.blockStatement(mainFn),\n false,\n false,\n ),\n t.exportDefaultDeclaration(t.objectExpression(prop)),\n ]),\n ).code;\n return code;\n}\n","import type { TransformPluginContext } from 'rollup';\nimport { MCXCompileData } from '../compile-mcx/compiler/compileData';\nimport { CompileOpt } from '@mbler/mcx-types';\nimport { transformCtx } from '../types';\nimport { _transform } from './main';\nimport { program } from '@babel/types';\nimport type { RollupError } from 'rolldown';\nfunction createErrorProxy(err: unknown, id: string): RollupError {\n if (err instanceof Error) {\n return {\n ...err,\n message: `${err.message} (At ${id})`,\n };\n } else {\n return { message: String(err) };\n }\n}\nexport async function transform(\n code: MCXCompileData,\n cache: Map<string, MCXCompileData>,\n id: string,\n context: TransformPluginContext,\n opt: CompileOpt,\n output: transformCtx['output'],\n): Promise<string> {\n try {\n const scriptTag = code.raw.find(node => {\n return node.name == 'script';\n });\n if (!scriptTag)\n throw new Error('[transform check]: not found mcx script tag');\n const transformContext: transformCtx = {\n rollupContext: context,\n impAST: [],\n currentAST: program([]),\n opt,\n currentId: id,\n compiledCode: code,\n cache,\n scriptTag: scriptTag,\n mainFn: {\n param: [],\n body: [],\n },\n output,\n };\n const result = await _transform(transformContext);\n return result;\n } catch (err) {\n context.error(createErrorProxy(err, id));\n }\n}\n","import type { Plugin, TransformResult } from 'rollup';\nimport type { Plugin as RolldownPlugin } from 'rolldown';\nimport { CompileOpt } from '../types';\nimport { extname, isAbsolute, join } from 'node:path';\nimport { CompileError, compileMCXFn } from '.';\nimport { transform } from '../../transforms';\nimport type { MCXCompileData } from './compileData';\nimport { readFile, rm } from 'node:fs/promises';\nimport MagicString from 'magic-string';\nimport path from 'node:path';\nimport { transformCtx } from '../../types';\nimport ts from 'typescript';\nimport { readFileSync } from 'node:fs';\nimport {\n generateItemTextureJson,\n clearCachedOptions,\n} from '../../mcx-component';\nfunction createMcxPlugin(opt: CompileOpt, output: transformCtx['output']) {\n let cache: Map<string, MCXCompileData> = new Map();\n let tsconfig: ts.ParsedCommandLine;\n try {\n const configResult = ts.readConfigFile(opt.tsconfigPath, path => {\n try {\n return readFileSync(path, 'utf-8');\n } catch (error) {\n throw new Error(\n `Failed to read TypeScript config file at ${path}: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n });\n\n if (configResult.error) {\n throw new Error(\n `TypeScript configuration error: ${configResult.error.messageText}`,\n );\n }\n\n if (!configResult.config) {\n throw new Error(\n `Empty TypeScript configuration file at ${opt.tsconfigPath}`,\n );\n }\n\n // Parse the configuration with proper path resolution\n const parsedConfig = ts.parseJsonConfigFileContent(\n configResult.config,\n ts.sys,\n path.dirname(opt.tsconfigPath),\n undefined,\n opt.tsconfigPath,\n );\n\n if (parsedConfig.errors.length > 0) {\n const errorMessages = parsedConfig.errors\n .map(err => err.messageText)\n .join('\\n');\n throw new Error(\n `TypeScript configuration parsing errors:\\n${errorMessages}`,\n );\n }\n\n tsconfig = parsedConfig;\n } catch (error) {\n // Fallback to default configuration if reading fails\n console.warn(\n `Failed to load TypeScript config from ${opt.tsconfigPath}: ${error instanceof Error ? error.message : String(error)}`,\n );\n console.warn('Using default TypeScript configuration');\n tsconfig = {\n options: {},\n fileNames: [],\n errors: [],\n };\n }\n const resolveExtensions = ['', '.ts', '.mts', '.cts', '.js', '.mjs', '.cjs'];\n const indexExtensions = resolveExtensions.map(ext => '/index' + ext);\n\n async function tryResolvePath(filePath: string): Promise<string | null> {\n for (const idxExt of indexExtensions) {\n try {\n const fullPath = filePath + idxExt;\n await readFile(fullPath, 'utf-8');\n return fullPath;\n } catch {}\n }\n for (const ext of resolveExtensions) {\n try {\n const fullPath = filePath + ext;\n await readFile(fullPath, 'utf-8');\n return fullPath;\n } catch {}\n }\n return null;\n }\n\n async function resolvePackageExports(\n pkgDir: string,\n subPath: string,\n pkgJson: any,\n ): Promise<string | null> {\n const exports = pkgJson.exports;\n if (exports) {\n const subImport = subPath.startsWith('./') ? subPath : `./${subPath}`;\n if (typeof exports === 'object' && exports !== null) {\n if (exports[subImport]) {\n const target = exports[subImport];\n if (typeof target === 'string') {\n return path.join(pkgDir, target);\n } else if (typeof target === 'object' && target !== null) {\n if (target.import) {\n return path.join(pkgDir, target.import);\n }\n return path.join(\n pkgDir,\n target.default || (Object.values(target)[0] as string),\n );\n }\n }\n if (subImport.endsWith('/') || subImport.endsWith('/*')) {\n const dirMapping = subImport.slice(0, -1);\n for (const [key, value] of Object.entries(exports)) {\n if (key.startsWith(dirMapping) && key !== dirMapping) {\n const target = value as string;\n return path.join(pkgDir, target);\n }\n }\n }\n } else if (typeof exports === 'string') {\n return path.join(pkgDir, exports);\n }\n }\n return null;\n }\n\n return {\n name: 'mbler-mcx-core',\n async resolveId(id, imp) {\n const i = path.parse(id);\n if (i.dir.startsWith('.') || i.root) {\n if (imp) {\n const baseDir = path.dirname(imp);\n const resolved = await tryResolvePath(path.join(baseDir, id));\n if (resolved) return resolved;\n }\n return null;\n } else {\n const isScopedPackage = id.startsWith('@');\n const parts = id.split('/');\n const pkgName = isScopedPackage\n ? `${parts[0]}/${parts[1]}`\n : (parts[0] as string);\n const subPath = isScopedPackage\n ? parts.slice(2).join('/')\n : parts.slice(1).join('/');\n const d = path.join(opt.moduleDir, pkgName);\n let pkgJson: any;\n try {\n pkgJson = JSON.parse(\n await readFile(path.join(d, 'package.json'), 'utf-8'),\n );\n } catch (err: unknown) {\n const nodeErr = err as { code?: string; message?: string };\n if (!nodeErr.code || nodeErr.code === 'ENOENT') {\n throw new Error(\n `[mcx resolveId]: package.json not found for '${id}' at '${d}'`,\n );\n } else {\n throw new Error(\n `[mcx resolveId]: invalid package.json for '${id}': ${nodeErr.message}`,\n );\n }\n }\n if (subPath) {\n const fromExports = await resolvePackageExports(d, subPath, pkgJson);\n if (fromExports) return fromExports;\n const fromDist = await tryResolvePath(\n path.join(d, './dist', subPath),\n );\n if (fromDist) return fromDist;\n const fromRoot = await tryResolvePath(path.join(d, subPath));\n if (fromRoot) return fromRoot;\n return null;\n }\n return path.join(d, pkgJson.main);\n }\n },\n transform: async function (\n code: string,\n id: string,\n ): Promise<TransformResult> {\n const magic = new MagicString(code);\n const ext = extname(id).slice(1);\n const tsRegex = /^.+?\\.(ts|mts|cts)$/;\n if (ext == 'mcx') {\n let compileData: MCXCompileData;\n try {\n compileData = cache.has(id)\n ? (cache.get(id) as MCXCompileData)\n : compileMCXFn(code);\n cache.set(id, compileData);\n } catch (err: unknown) {\n if (err instanceof CompileError) {\n const error: CompileError = err;\n this.error(error.message, {\n column: error.loc.column,\n line: error.loc.line,\n });\n }\n this.error(\n err instanceof Error\n ? `${err.message} : ${err.stack}`\n : String(err),\n );\n return;\n }\n compileData.setFilePath(id);\n const compiledCode = await transform(\n compileData,\n cache,\n id,\n this,\n opt,\n output,\n );\n return {\n code: compiledCode,\n map: opt.sourcemap\n ? magic.generateMap({ hires: true, source: id })\n : void 0,\n };\n } else if (tsRegex.test(id)) {\n // Use the parsed TypeScript configuration\n const compiledCode = ts.transpileModule(code, {\n compilerOptions: tsconfig.options,\n fileName: id,\n }).outputText;\n return {\n code: compiledCode,\n map: opt.sourcemap\n ? magic.generateMap({ hires: true, source: id })\n : void 0,\n };\n }\n return null;\n },\n async buildEnd() {\n cache.clear();\n await generateItemTextureJson(output);\n clearCachedOptions();\n },\n buildStart() {\n cache = new Map();\n },\n } satisfies Plugin;\n}\n\nexport function rollupPlugin(\n opt: CompileOpt,\n output: transformCtx['output'],\n): Plugin {\n return createMcxPlugin(opt, output);\n}\n\nexport function rolldownPlugin(\n opt: CompileOpt,\n output: transformCtx['output'],\n): RolldownPlugin {\n return createMcxPlugin(opt, output) as unknown as RolldownPlugin;\n}\n","import type { TransformPluginContext } from 'rollup';\nimport type { MCXCompileData } from './compile-mcx/compiler/compileData';\nimport { CompileOpt } from '@mbler/mcx-types';\nimport * as t from '@babel/types';\ninterface BaseToken {\n data: string;\n type: TokenType;\n start: MCXPosition;\n end: MCXPosition;\n}\ninterface TagToken extends BaseToken {\n type: 'Tag';\n}\ninterface TagEndToken extends BaseToken {\n type: 'TagEnd';\n}\ninterface ContentToken extends BaseToken {\n type: 'Content';\n}\ninterface CommentToken extends BaseToken {\n type: 'Comment';\n}\ntype Token = TagToken | TagEndToken | ContentToken | CommentToken;\ntype AttributeMap = Record<string, string | boolean>;\n/** 统一的位置信息结构 */\ninterface MCXPosition {\n line: number;\n column: number;\n}\n\ninterface MCXLoc {\n start: MCXPosition;\n end: MCXPosition;\n}\ninterface ParsedTagNode {\n start: TagToken;\n name: string;\n arr: AttributeMap;\n content: (ParsedTagContentNode | ParsedTagNode | ParsedCommentNode)[];\n end: TagEndToken | null;\n loc: MCXLoc;\n type: 'TagNode';\n}\ninterface ParsedTagContentNode {\n data: string;\n type: 'TagContent';\n}\ninterface ParsedCommentNode {\n data: string;\n type: 'Comment';\n loc?: MCXLoc;\n}\ntype TokenType = 'Tag' | 'TagEnd' | 'Content' | 'Comment';\ntype PropValue = number | string | object;\ninterface PropNode {\n key: string;\n value: PropValue;\n type: 'PropChar' | 'PropObject';\n}\ntype JsType =\n | 'boolean'\n | 'number'\n | 'string'\n | 'object'\n | 'function'\n | 'bigint'\n | 'symbol';\ninterface TypeVerifyBody {\n [key: string]: JsType;\n}\nexport interface ParseReadFileOpt {\n delay: number;\n maxRetries: number;\n want: 'string' | 'object';\n}\nexport type ReadFileOpt = Partial<ParseReadFileOpt>;\nexport type mcxType = 'component' | 'event' | 'app' | 'ui';\nexport type {\n Token,\n ContentToken,\n TagEndToken,\n TagToken,\n CommentToken,\n BaseToken,\n AttributeMap,\n PropValue,\n TokenType,\n ParsedTagContentNode,\n ParsedCommentNode,\n TypeVerifyBody,\n JsType,\n PropNode,\n ParsedTagNode,\n MCXLoc,\n MCXPosition,\n};\nexport interface transformCtx {\n rollupContext: TransformPluginContext;\n compiledCode: MCXCompileData;\n cache: Map<string, MCXCompileData>;\n currentId: string;\n scriptTag: ParsedTagNode;\n currentAST: t.Program;\n mainFn: {\n param: t.FunctionParameter[];\n body: t.Statement[];\n };\n impAST: t.ImportDeclaration[];\n opt: CompileOpt;\n output: {\n dist: string;\n behavior: string;\n resources: string;\n };\n}\nexport interface transformParseCtx {\n prop: t.ObjectProperty[];\n impBody: t.ImportDeclaration[];\n mainFn: t.Statement[];\n ctx: transformCtx;\n app: ((data: t.ObjectProperty[]) => void) & {\n prototype: { enable: t.ObjectProperty[] | null };\n };\n}\n","import type { ParticleType, SoundEvent, EnchantableSlot, Rarity, ItemComponentOptions, ItemJson, FoodEffect, EntityComponentOptions, EntityJson } from '@mbler/mcx-component';\n\nexport interface FilePoint {\n base: 'behavior' | 'resources' | 'root';\n file: string;\n}\n\nexport interface FileBindSource {\n bind: 'item_texture';\n type: 'append' | 'all_replace';\n}\n\nexport type DefineEntry =\n | {\n from: 'var';\n data: string;\n }\n | {\n from: 'read_file';\n data: FilePoint;\n default?: string;\n };\n\nexport type FileEditExpression<\n T extends Record<string, DefineEntry> = Record<string, DefineEntry>,\n> = {\n define: T;\n run: (define: { [K in keyof T]: string }) => Promise<\n string | string[] | [string, string][]\n >;\n};\n\nexport function createFileEdit<\n T extends Record<string, DefineEntry>,\n>(expression: {\n define: T;\n run: (define: { [K in keyof T]: string }) => Promise<\n string | string[] | [string, string][]\n >;\n}): FileEditExpression<T> {\n return expression;\n}\n\nexport type FileEditOption =\n | {\n type: 'edit';\n id?: string;\n source: FilePoint | FileBindSource;\n expression: FileEditExpression<any>;\n }\n | {\n type: 'copy_assets';\n id?: string;\n source: FilePoint;\n output: FilePoint;\n };\n\nexport interface BaseJson {\n format_version: string;\n _meta: {\n type: 'item' | 'entity';\n file_edit?: (\n | FileEditOption\n | {\n type: 'batch';\n options: FileEditOption[];\n id?: string;\n }\n )[];\n };\n}\n\nexport type { Rarity, ItemComponentOptions, ItemJson, FoodEffect, EntityComponentOptions, EntityJson };\nexport type { ParticleType, SoundEvent, EnchantableSlot } from '@mbler/mcx-component';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["exports","parser","exhaustiveCheck","NodeTypes","interpNode","AST_tag","AST_prop","Utils","CompileData.JsCompileData","Utils","CompileData.MCXCompileData","babelErr","Utils","config","McxUtils","Comp","config","Comp","config","Buffer","config","EventComp","UIComp","AppComp"],"sources":["../../../node_modules/.pnpm/@vue+shared@3.5.39/node_modules/@vue/shared/dist/shared.cjs.prod.js","../../../node_modules/.pnpm/@vue+shared@3.5.39/node_modules/@vue/shared/dist/shared.cjs.js","../../../node_modules/.pnpm/@vue+shared@3.5.39/node_modules/@vue/shared/index.js","../../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/decode-codepoint.js","../../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/internal/decode-shared.js","../../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/generated/decode-data-html.js","../../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/generated/decode-data-xml.js","../../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js","../../../node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/commonjs/decode.js","../../../node_modules/.pnpm/estree-walker@2.0.2/node_modules/estree-walker/dist/umd/estree-walker.js","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/lib/base64.js","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/lib/base64-vlq.js","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/lib/util.js","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/lib/array-set.js","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/lib/mapping-list.js","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/lib/source-map-generator.js","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/lib/binary-search.js","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/lib/quick-sort.js","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/lib/source-map-consumer.js","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/lib/source-node.js","../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/source-map.js","../../../node_modules/.pnpm/@vue+compiler-core@3.5.39/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js","../../../node_modules/.pnpm/@vue+compiler-core@3.5.39/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js","../../../node_modules/.pnpm/@vue+compiler-core@3.5.39/node_modules/@vue/compiler-core/index.js","../src/ast/tag.ts","../src/ast/prop.ts","../src/ast/index.ts","../src/compile-mcx/types.ts","../src/compile-mcx/compiler/compileData.ts","../src/compile-mcx/compiler/utils.ts","../src/compile-mcx/compiler/index.ts","../src/transforms/config.ts","../src/utils.ts","../src/transforms/file_id.ts","../src/transforms/utils.ts","../src/transforms/transform/ui.ts","../src/transforms/transform/event.ts","../src/transforms/transform/app.ts","../src/mcx-component/cjsTransform.ts","../src/mcx-component/vm.ts","../src/mcx-component/index.ts","../src/transforms/main.ts","../src/transforms/index.ts","../src/compile-mcx/compiler/main.ts","../src/types.ts","../src/mcx-component/types.ts"],"sourcesContent":["/**\n* @vue/shared v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = {};\nconst EMPTY_ARR = [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \"&quot;\";\n break;\n case 38:\n escaped = \"&amp;\";\n break;\n case 39:\n escaped = \"&#39;\";\n break;\n case 60:\n escaped = \"&lt;\";\n break;\n case 62:\n escaped = \"&gt;\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\nconst cssVarNameEscapeSymbolsRE = /[ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n return String(value);\n}\n\nexports.EMPTY_ARR = EMPTY_ARR;\nexports.EMPTY_OBJ = EMPTY_OBJ;\nexports.NO = NO;\nexports.NOOP = NOOP;\nexports.PatchFlagNames = PatchFlagNames;\nexports.PatchFlags = PatchFlags;\nexports.ShapeFlags = ShapeFlags;\nexports.SlotFlags = SlotFlags;\nexports.camelize = camelize;\nexports.capitalize = capitalize;\nexports.cssVarNameEscapeSymbolsRE = cssVarNameEscapeSymbolsRE;\nexports.def = def;\nexports.escapeHtml = escapeHtml;\nexports.escapeHtmlComment = escapeHtmlComment;\nexports.extend = extend;\nexports.genCacheKey = genCacheKey;\nexports.genPropsAccessExp = genPropsAccessExp;\nexports.generateCodeFrame = generateCodeFrame;\nexports.getEscapedCssVarName = getEscapedCssVarName;\nexports.getGlobalThis = getGlobalThis;\nexports.hasChanged = hasChanged;\nexports.hasOwn = hasOwn;\nexports.hyphenate = hyphenate;\nexports.includeBooleanAttr = includeBooleanAttr;\nexports.invokeArrayFns = invokeArrayFns;\nexports.isArray = isArray;\nexports.isBooleanAttr = isBooleanAttr;\nexports.isBuiltInDirective = isBuiltInDirective;\nexports.isDate = isDate;\nexports.isFunction = isFunction;\nexports.isGloballyAllowed = isGloballyAllowed;\nexports.isGloballyWhitelisted = isGloballyWhitelisted;\nexports.isHTMLTag = isHTMLTag;\nexports.isIntegerKey = isIntegerKey;\nexports.isKnownHtmlAttr = isKnownHtmlAttr;\nexports.isKnownMathMLAttr = isKnownMathMLAttr;\nexports.isKnownSvgAttr = isKnownSvgAttr;\nexports.isMap = isMap;\nexports.isMathMLTag = isMathMLTag;\nexports.isModelListener = isModelListener;\nexports.isObject = isObject;\nexports.isOn = isOn;\nexports.isPlainObject = isPlainObject;\nexports.isPromise = isPromise;\nexports.isRegExp = isRegExp;\nexports.isRenderableAttrValue = isRenderableAttrValue;\nexports.isReservedProp = isReservedProp;\nexports.isSSRSafeAttrName = isSSRSafeAttrName;\nexports.isSVGTag = isSVGTag;\nexports.isSet = isSet;\nexports.isSpecialBooleanAttr = isSpecialBooleanAttr;\nexports.isString = isString;\nexports.isSymbol = isSymbol;\nexports.isVoidTag = isVoidTag;\nexports.looseEqual = looseEqual;\nexports.looseIndexOf = looseIndexOf;\nexports.looseToNumber = looseToNumber;\nexports.makeMap = makeMap;\nexports.normalizeClass = normalizeClass;\nexports.normalizeCssVarValue = normalizeCssVarValue;\nexports.normalizeProps = normalizeProps;\nexports.normalizeStyle = normalizeStyle;\nexports.objectToString = objectToString;\nexports.parseStringStyle = parseStringStyle;\nexports.propsToAttrMap = propsToAttrMap;\nexports.remove = remove;\nexports.slotFlagsText = slotFlagsText;\nexports.stringifyStyle = stringifyStyle;\nexports.toDisplayString = toDisplayString;\nexports.toHandlerKey = toHandlerKey;\nexports.toNumber = toNumber;\nexports.toRawType = toRawType;\nexports.toTypeString = toTypeString;\n","/**\n* @vue/shared v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = Object.freeze({}) ;\nconst EMPTY_ARR = Object.freeze([]) ;\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \"&quot;\";\n break;\n case 38:\n escaped = \"&amp;\";\n break;\n case 39:\n escaped = \"&#39;\";\n break;\n case 60:\n escaped = \"&lt;\";\n break;\n case 62:\n escaped = \"&gt;\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\nconst cssVarNameEscapeSymbolsRE = /[ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexports.EMPTY_ARR = EMPTY_ARR;\nexports.EMPTY_OBJ = EMPTY_OBJ;\nexports.NO = NO;\nexports.NOOP = NOOP;\nexports.PatchFlagNames = PatchFlagNames;\nexports.PatchFlags = PatchFlags;\nexports.ShapeFlags = ShapeFlags;\nexports.SlotFlags = SlotFlags;\nexports.camelize = camelize;\nexports.capitalize = capitalize;\nexports.cssVarNameEscapeSymbolsRE = cssVarNameEscapeSymbolsRE;\nexports.def = def;\nexports.escapeHtml = escapeHtml;\nexports.escapeHtmlComment = escapeHtmlComment;\nexports.extend = extend;\nexports.genCacheKey = genCacheKey;\nexports.genPropsAccessExp = genPropsAccessExp;\nexports.generateCodeFrame = generateCodeFrame;\nexports.getEscapedCssVarName = getEscapedCssVarName;\nexports.getGlobalThis = getGlobalThis;\nexports.hasChanged = hasChanged;\nexports.hasOwn = hasOwn;\nexports.hyphenate = hyphenate;\nexports.includeBooleanAttr = includeBooleanAttr;\nexports.invokeArrayFns = invokeArrayFns;\nexports.isArray = isArray;\nexports.isBooleanAttr = isBooleanAttr;\nexports.isBuiltInDirective = isBuiltInDirective;\nexports.isDate = isDate;\nexports.isFunction = isFunction;\nexports.isGloballyAllowed = isGloballyAllowed;\nexports.isGloballyWhitelisted = isGloballyWhitelisted;\nexports.isHTMLTag = isHTMLTag;\nexports.isIntegerKey = isIntegerKey;\nexports.isKnownHtmlAttr = isKnownHtmlAttr;\nexports.isKnownMathMLAttr = isKnownMathMLAttr;\nexports.isKnownSvgAttr = isKnownSvgAttr;\nexports.isMap = isMap;\nexports.isMathMLTag = isMathMLTag;\nexports.isModelListener = isModelListener;\nexports.isObject = isObject;\nexports.isOn = isOn;\nexports.isPlainObject = isPlainObject;\nexports.isPromise = isPromise;\nexports.isRegExp = isRegExp;\nexports.isRenderableAttrValue = isRenderableAttrValue;\nexports.isReservedProp = isReservedProp;\nexports.isSSRSafeAttrName = isSSRSafeAttrName;\nexports.isSVGTag = isSVGTag;\nexports.isSet = isSet;\nexports.isSpecialBooleanAttr = isSpecialBooleanAttr;\nexports.isString = isString;\nexports.isSymbol = isSymbol;\nexports.isVoidTag = isVoidTag;\nexports.looseEqual = looseEqual;\nexports.looseIndexOf = looseIndexOf;\nexports.looseToNumber = looseToNumber;\nexports.makeMap = makeMap;\nexports.normalizeClass = normalizeClass;\nexports.normalizeCssVarValue = normalizeCssVarValue;\nexports.normalizeProps = normalizeProps;\nexports.normalizeStyle = normalizeStyle;\nexports.objectToString = objectToString;\nexports.parseStringStyle = parseStringStyle;\nexports.propsToAttrMap = propsToAttrMap;\nexports.remove = remove;\nexports.slotFlagsText = slotFlagsText;\nexports.stringifyStyle = stringifyStyle;\nexports.toDisplayString = toDisplayString;\nexports.toHandlerKey = toHandlerKey;\nexports.toNumber = toNumber;\nexports.toRawType = toRawType;\nexports.toTypeString = toTypeString;\n","'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./dist/shared.cjs.prod.js')\n} else {\n module.exports = require('./dist/shared.cjs.js')\n}\n","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromCodePoint = void 0;\nexports.replaceCodePoint = replaceCodePoint;\nexports.decodeCodePoint = decodeCodePoint;\nconst decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : ((codePoint) => {\n let output = \"\";\n if (codePoint > 65535) {\n codePoint -= 65536;\n output += String.fromCharCode(((codePoint >>> 10) & 1023) | 55296);\n codePoint = 56320 | (codePoint & 1023);\n }\n output += String.fromCharCode(codePoint);\n return output;\n});\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 55296 && codePoint <= 57343) ||\n codePoint > 1114111) {\n return 65533;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode-codepoint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeBase64 = decodeBase64;\n/*\n * Shared base64 decode helper for generated decode data.\n * Assumes global atob is available.\n */\nfunction decodeBase64(input) {\n const binary = \n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n typeof atob === \"function\"\n ? // Browser (and Node >=16)\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n atob(input)\n : // Older Node versions (<16)\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n typeof Buffer.from === \"function\"\n ? // eslint-disable-next-line n/no-unsupported-features/node-builtins\n Buffer.from(input, \"base64\").toString(\"binary\")\n : // eslint-disable-next-line unicorn/no-new-buffer, n/no-deprecated-api\n new Buffer(input, \"base64\").toString(\"binary\");\n const evenLength = binary.length & ~1; // Round down to even length\n const out = new Uint16Array(evenLength / 2);\n for (let index = 0, outIndex = 0; index < evenLength; index += 2) {\n const lo = binary.charCodeAt(index);\n const hi = binary.charCodeAt(index + 1);\n out[outIndex++] = lo | (hi << 8);\n }\n return out;\n}\n//# sourceMappingURL=decode-shared.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.htmlDecodeTree = void 0;\nconst decode_shared_js_1 = require(\"../internal/decode-shared.js\");\nexports.htmlDecodeTree = (0, decode_shared_js_1.decodeBase64)(\"QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg\");\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.xmlDecodeTree = void 0;\nconst decode_shared_js_1 = require(\"../internal/decode-shared.js\");\nexports.xmlDecodeTree = (0, decode_shared_js_1.decodeBase64)(\"AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg\");\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BinTrieFlags = void 0;\n/**\n * Bit flags & masks for the binary trie encoding used for entity decoding.\n *\n * Bit layout (16 bits total):\n * 15..14 VALUE_LENGTH (+1 encoding; 0 => no value)\n * 13 FLAG13. If valueLength>0: semicolon required flag (implicit ';').\n * If valueLength==0: compact run flag.\n * 12..7 BRANCH_LENGTH Branch length (0 => single branch in 6..0 if jumpOffset==char) OR run length (when compact run)\n * 6..0 JUMP_TABLE Jump offset (jump table) OR single-branch char code OR first run char\n */\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"FLAG13\"] = 8192] = \"FLAG13\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 8064] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (exports.BinTrieFlags = BinTrieFlags = {}));\n//# sourceMappingURL=bin-trie-flags.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.xmlDecodeTree = exports.htmlDecodeTree = exports.replaceCodePoint = exports.fromCodePoint = exports.decodeCodePoint = exports.EntityDecoder = exports.DecodingMode = void 0;\nexports.determineBranch = determineBranch;\nexports.decodeHTML = decodeHTML;\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\nexports.decodeHTMLStrict = decodeHTMLStrict;\nexports.decodeXML = decodeXML;\nconst decode_codepoint_js_1 = require(\"./decode-codepoint.js\");\nconst decode_data_html_js_1 = require(\"./generated/decode-data-html.js\");\nconst decode_data_xml_js_1 = require(\"./generated/decode-data-xml.js\");\nconst bin_trie_flags_js_1 = require(\"./internal/bin-trie-flags.js\");\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 32;\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (exports.DecodingMode = DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nclass EntityDecoder {\n constructor(\n /** The tree used to decode entities. */\n // biome-ignore lint/correctness/noUnusedPrivateClassMembers: False positive\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n /** The number of characters that have been consumed in the current run. */\n this.runConsumed = 0;\n }\n /** Resets the instance to make it reusable. */\n startEntity(decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n this.runConsumed = 0;\n }\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n write(input, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (input.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(input, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(input, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(input, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(input, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(input, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(input, offset);\n }\n }\n }\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericStart(input, offset) {\n if (offset >= input.length) {\n return -1;\n }\n if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(input, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(input, offset);\n }\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericHex(input, offset) {\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n // Convert hex digit to value (0-15); 'a'/'A' -> 10.\n const digit = char <= CharCodes.NINE\n ? char - CharCodes.ZERO\n : (char | TO_LOWER_BIT) - CharCodes.LOWER_A + 10;\n this.result = this.result * 16 + digit;\n this.consumed++;\n offset++;\n }\n else {\n return this.emitNumericEntity(char, 3);\n }\n }\n return -1; // Incomplete entity\n }\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericDecimal(input, offset) {\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char)) {\n this.result = this.result * 10 + (char - CharCodes.ZERO);\n this.consumed++;\n offset++;\n }\n else {\n return this.emitNumericEntity(char, 2);\n }\n }\n return -1; // Incomplete entity\n }\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n emitNumericEntity(lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n }\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNamedEntity(input, offset) {\n const { decodeTree } = this;\n let current = decodeTree[this.treeIndex];\n // The length is the number of bytes of the value, including the current byte.\n let valueLength = (current & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;\n while (offset < input.length) {\n // Handle compact runs (possibly inline): valueLength == 0 and SEMI_REQUIRED bit set.\n if (valueLength === 0 && (current & bin_trie_flags_js_1.BinTrieFlags.FLAG13) !== 0) {\n const runLength = (current & bin_trie_flags_js_1.BinTrieFlags.BRANCH_LENGTH) >> 7; /* 2..63 */\n // If we are starting a run, check the first char.\n if (this.runConsumed === 0) {\n const firstChar = current & bin_trie_flags_js_1.BinTrieFlags.JUMP_TABLE;\n if (input.charCodeAt(offset) !== firstChar) {\n return this.result === 0\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n offset++;\n this.excess++;\n this.runConsumed++;\n }\n // Check remaining characters in the run.\n while (this.runConsumed < runLength) {\n if (offset >= input.length) {\n return -1;\n }\n const charIndexInPacked = this.runConsumed - 1;\n const packedWord = decodeTree[this.treeIndex + 1 + (charIndexInPacked >> 1)];\n const expectedChar = charIndexInPacked % 2 === 0\n ? packedWord & 0xff\n : (packedWord >> 8) & 0xff;\n if (input.charCodeAt(offset) !== expectedChar) {\n this.runConsumed = 0;\n return this.result === 0\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n offset++;\n this.excess++;\n this.runConsumed++;\n }\n this.runConsumed = 0;\n this.treeIndex += 1 + (runLength >> 1);\n current = decodeTree[this.treeIndex];\n valueLength = (current & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;\n }\n if (offset >= input.length)\n break;\n const char = input.charCodeAt(offset);\n /*\n * Implicit semicolon handling for nodes that require a semicolon but\n * don't have an explicit ';' branch stored in the trie. If we have\n * a value on the current node, it requires a semicolon, and the\n * current input character is a semicolon, emit the entity using the\n * current node (without descending further).\n */\n if (char === CharCodes.SEMI &&\n valueLength !== 0 &&\n (current & bin_trie_flags_js_1.BinTrieFlags.FLAG13) !== 0) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict &&\n (current & bin_trie_flags_js_1.BinTrieFlags.FLAG13) === 0) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n // Increment offset & excess for next iteration\n offset++;\n this.excess++;\n }\n return -1;\n }\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n emitNotTerminatedNamedEntity() {\n var _a;\n const { result, decodeTree } = this;\n const valueLength = (decodeTree[result] & bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n }\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n emitNamedEntityData(result, valueLength, consumed) {\n const { decodeTree } = this;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] &\n ~(bin_trie_flags_js_1.BinTrieFlags.VALUE_LENGTH | bin_trie_flags_js_1.BinTrieFlags.FLAG13)\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n }\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n end() {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n }\n}\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n let returnValue = \"\";\n const decoder = new EntityDecoder(decodeTree, (data) => (returnValue += (0, decode_codepoint_js_1.fromCodePoint)(data)));\n return function decodeWithTrie(input, decodeMode) {\n let lastIndex = 0;\n let offset = 0;\n while ((offset = input.indexOf(\"&\", offset)) >= 0) {\n returnValue += input.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n const length = decoder.write(input, \n // Skip the \"&\"\n offset + 1);\n if (length < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + length;\n // If `length` is 0, skip the current `&` and continue.\n offset = length === 0 ? lastIndex + 1 : lastIndex;\n }\n const result = returnValue + input.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n returnValue = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIndex, char) {\n const branchCount = (current & bin_trie_flags_js_1.BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & bin_trie_flags_js_1.BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIndex + value] - 1;\n }\n // Case 3: Multiple branches encoded in packed dictionary (two keys per uint16)\n const packedKeySlots = (branchCount + 1) >> 1;\n /*\n * Treat packed keys as a virtual sorted array of length `branchCount`.\n * Key(i) = low byte for even i, high byte for odd i in slot i>>1.\n */\n let lo = 0;\n let hi = branchCount - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const slot = mid >> 1;\n const packed = decodeTree[nodeIndex + slot];\n const midKey = (packed >> ((mid & 1) * 8)) & 0xff;\n if (midKey < char) {\n lo = mid + 1;\n }\n else if (midKey > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[nodeIndex + packedKeySlots + mid];\n }\n }\n return -1;\n}\nconst htmlDecoder = /* #__PURE__ */ getDecoder(decode_data_html_js_1.htmlDecodeTree);\nconst xmlDecoder = /* #__PURE__ */ getDecoder(decode_data_xml_js_1.xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param htmlString The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(htmlString, mode = DecodingMode.Legacy) {\n return htmlDecoder(htmlString, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param htmlAttribute The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(htmlAttribute) {\n return htmlDecoder(htmlAttribute, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param htmlString The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(htmlString) {\n return htmlDecoder(htmlString, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param xmlString The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(xmlString) {\n return xmlDecoder(xmlString, DecodingMode.Strict);\n}\nvar decode_codepoint_js_2 = require(\"./decode-codepoint.js\");\nObject.defineProperty(exports, \"decodeCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.decodeCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\n// Re-export for use by eg. htmlparser2\nvar decode_data_html_js_2 = require(\"./generated/decode-data-html.js\");\nObject.defineProperty(exports, \"htmlDecodeTree\", { enumerable: true, get: function () { return decode_data_html_js_2.htmlDecodeTree; } });\nvar decode_data_xml_js_2 = require(\"./generated/decode-data-xml.js\");\nObject.defineProperty(exports, \"xmlDecodeTree\", { enumerable: true, get: function () { return decode_data_xml_js_2.xmlDecodeTree; } });\n//# sourceMappingURL=decode.js.map","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(global = global || self, factory(global.estreeWalker = {}));\n}(this, (function (exports) { 'use strict';\n\n\t// @ts-check\n\t/** @typedef { import('estree').BaseNode} BaseNode */\n\n\t/** @typedef {{\n\t\tskip: () => void;\n\t\tremove: () => void;\n\t\treplace: (node: BaseNode) => void;\n\t}} WalkerContext */\n\n\tclass WalkerBase {\n\t\tconstructor() {\n\t\t\t/** @type {boolean} */\n\t\t\tthis.should_skip = false;\n\n\t\t\t/** @type {boolean} */\n\t\t\tthis.should_remove = false;\n\n\t\t\t/** @type {BaseNode | null} */\n\t\t\tthis.replacement = null;\n\n\t\t\t/** @type {WalkerContext} */\n\t\t\tthis.context = {\n\t\t\t\tskip: () => (this.should_skip = true),\n\t\t\t\tremove: () => (this.should_remove = true),\n\t\t\t\treplace: (node) => (this.replacement = node)\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t *\n\t\t * @param {any} parent\n\t\t * @param {string} prop\n\t\t * @param {number} index\n\t\t * @param {BaseNode} node\n\t\t */\n\t\treplace(parent, prop, index, node) {\n\t\t\tif (parent) {\n\t\t\t\tif (index !== null) {\n\t\t\t\t\tparent[prop][index] = node;\n\t\t\t\t} else {\n\t\t\t\t\tparent[prop] = node;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t *\n\t\t * @param {any} parent\n\t\t * @param {string} prop\n\t\t * @param {number} index\n\t\t */\n\t\tremove(parent, prop, index) {\n\t\t\tif (parent) {\n\t\t\t\tif (index !== null) {\n\t\t\t\t\tparent[prop].splice(index, 1);\n\t\t\t\t} else {\n\t\t\t\t\tdelete parent[prop];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// @ts-check\n\n\t/** @typedef { import('estree').BaseNode} BaseNode */\n\t/** @typedef { import('./walker.js').WalkerContext} WalkerContext */\n\n\t/** @typedef {(\n\t * this: WalkerContext,\n\t * node: BaseNode,\n\t * parent: BaseNode,\n\t * key: string,\n\t * index: number\n\t * ) => void} SyncHandler */\n\n\tclass SyncWalker extends WalkerBase {\n\t\t/**\n\t\t *\n\t\t * @param {SyncHandler} enter\n\t\t * @param {SyncHandler} leave\n\t\t */\n\t\tconstructor(enter, leave) {\n\t\t\tsuper();\n\n\t\t\t/** @type {SyncHandler} */\n\t\t\tthis.enter = enter;\n\n\t\t\t/** @type {SyncHandler} */\n\t\t\tthis.leave = leave;\n\t\t}\n\n\t\t/**\n\t\t *\n\t\t * @param {BaseNode} node\n\t\t * @param {BaseNode} parent\n\t\t * @param {string} [prop]\n\t\t * @param {number} [index]\n\t\t * @returns {BaseNode}\n\t\t */\n\t\tvisit(node, parent, prop, index) {\n\t\t\tif (node) {\n\t\t\t\tif (this.enter) {\n\t\t\t\t\tconst _should_skip = this.should_skip;\n\t\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\t\tthis.should_skip = false;\n\t\t\t\t\tthis.should_remove = false;\n\t\t\t\t\tthis.replacement = null;\n\n\t\t\t\t\tthis.enter.call(this.context, node, parent, prop, index);\n\n\t\t\t\t\tif (this.replacement) {\n\t\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.should_remove) {\n\t\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst skipped = this.should_skip;\n\t\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\t\tthis.should_skip = _should_skip;\n\t\t\t\t\tthis.should_remove = _should_remove;\n\t\t\t\t\tthis.replacement = _replacement;\n\n\t\t\t\t\tif (skipped) return node;\n\t\t\t\t\tif (removed) return null;\n\t\t\t\t}\n\n\t\t\t\tfor (const key in node) {\n\t\t\t\t\tconst value = node[key];\n\n\t\t\t\t\tif (typeof value !== \"object\") {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (Array.isArray(value)) {\n\t\t\t\t\t\tfor (let i = 0; i < value.length; i += 1) {\n\t\t\t\t\t\t\tif (value[i] !== null && typeof value[i].type === 'string') {\n\t\t\t\t\t\t\t\tif (!this.visit(value[i], node, key, i)) {\n\t\t\t\t\t\t\t\t\t// removed\n\t\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (value !== null && typeof value.type === \"string\") {\n\t\t\t\t\t\tthis.visit(value, node, key, null);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.leave) {\n\t\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\t\tthis.replacement = null;\n\t\t\t\t\tthis.should_remove = false;\n\n\t\t\t\t\tthis.leave.call(this.context, node, parent, prop, index);\n\n\t\t\t\t\tif (this.replacement) {\n\t\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.should_remove) {\n\t\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\t\tthis.replacement = _replacement;\n\t\t\t\t\tthis.should_remove = _should_remove;\n\n\t\t\t\t\tif (removed) return null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn node;\n\t\t}\n\t}\n\n\t// @ts-check\n\n\t/** @typedef { import('estree').BaseNode} BaseNode */\n\t/** @typedef { import('./walker').WalkerContext} WalkerContext */\n\n\t/** @typedef {(\n\t * this: WalkerContext,\n\t * node: BaseNode,\n\t * parent: BaseNode,\n\t * key: string,\n\t * index: number\n\t * ) => Promise<void>} AsyncHandler */\n\n\tclass AsyncWalker extends WalkerBase {\n\t\t/**\n\t\t *\n\t\t * @param {AsyncHandler} enter\n\t\t * @param {AsyncHandler} leave\n\t\t */\n\t\tconstructor(enter, leave) {\n\t\t\tsuper();\n\n\t\t\t/** @type {AsyncHandler} */\n\t\t\tthis.enter = enter;\n\n\t\t\t/** @type {AsyncHandler} */\n\t\t\tthis.leave = leave;\n\t\t}\n\n\t\t/**\n\t\t *\n\t\t * @param {BaseNode} node\n\t\t * @param {BaseNode} parent\n\t\t * @param {string} [prop]\n\t\t * @param {number} [index]\n\t\t * @returns {Promise<BaseNode>}\n\t\t */\n\t\tasync visit(node, parent, prop, index) {\n\t\t\tif (node) {\n\t\t\t\tif (this.enter) {\n\t\t\t\t\tconst _should_skip = this.should_skip;\n\t\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\t\tthis.should_skip = false;\n\t\t\t\t\tthis.should_remove = false;\n\t\t\t\t\tthis.replacement = null;\n\n\t\t\t\t\tawait this.enter.call(this.context, node, parent, prop, index);\n\n\t\t\t\t\tif (this.replacement) {\n\t\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.should_remove) {\n\t\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst skipped = this.should_skip;\n\t\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\t\tthis.should_skip = _should_skip;\n\t\t\t\t\tthis.should_remove = _should_remove;\n\t\t\t\t\tthis.replacement = _replacement;\n\n\t\t\t\t\tif (skipped) return node;\n\t\t\t\t\tif (removed) return null;\n\t\t\t\t}\n\n\t\t\t\tfor (const key in node) {\n\t\t\t\t\tconst value = node[key];\n\n\t\t\t\t\tif (typeof value !== \"object\") {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (Array.isArray(value)) {\n\t\t\t\t\t\tfor (let i = 0; i < value.length; i += 1) {\n\t\t\t\t\t\t\tif (value[i] !== null && typeof value[i].type === 'string') {\n\t\t\t\t\t\t\t\tif (!(await this.visit(value[i], node, key, i))) {\n\t\t\t\t\t\t\t\t\t// removed\n\t\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (value !== null && typeof value.type === \"string\") {\n\t\t\t\t\t\tawait this.visit(value, node, key, null);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.leave) {\n\t\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\t\tthis.replacement = null;\n\t\t\t\t\tthis.should_remove = false;\n\n\t\t\t\t\tawait this.leave.call(this.context, node, parent, prop, index);\n\n\t\t\t\t\tif (this.replacement) {\n\t\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.should_remove) {\n\t\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\t\tthis.replacement = _replacement;\n\t\t\t\t\tthis.should_remove = _should_remove;\n\n\t\t\t\t\tif (removed) return null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn node;\n\t\t}\n\t}\n\n\t// @ts-check\n\n\t/** @typedef { import('estree').BaseNode} BaseNode */\n\t/** @typedef { import('./sync.js').SyncHandler} SyncHandler */\n\t/** @typedef { import('./async.js').AsyncHandler} AsyncHandler */\n\n\t/**\n\t *\n\t * @param {BaseNode} ast\n\t * @param {{\n\t * enter?: SyncHandler\n\t * leave?: SyncHandler\n\t * }} walker\n\t * @returns {BaseNode}\n\t */\n\tfunction walk(ast, { enter, leave }) {\n\t\tconst instance = new SyncWalker(enter, leave);\n\t\treturn instance.visit(ast, null);\n\t}\n\n\t/**\n\t *\n\t * @param {BaseNode} ast\n\t * @param {{\n\t * enter?: AsyncHandler\n\t * leave?: AsyncHandler\n\t * }} walker\n\t * @returns {Promise<BaseNode>}\n\t */\n\tasync function asyncWalk(ast, { enter, leave }) {\n\t\tconst instance = new AsyncWalker(enter, leave);\n\t\treturn await instance.visit(ast, null);\n\t}\n\n\texports.asyncWalk = asyncWalk;\n\texports.walk = walk;\n\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\nvar MAX_CACHED_INPUTS = 32;\n\n/**\n * Takes some function `f(input) -> result` and returns a memoized version of\n * `f`.\n *\n * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The\n * memoization is a dumb-simple, linear least-recently-used cache.\n */\nfunction lruMemoize(f) {\n var cache = [];\n\n return function(input) {\n for (var i = 0; i < cache.length; i++) {\n if (cache[i].input === input) {\n var temp = cache[0];\n cache[0] = cache[i];\n cache[i] = temp;\n return cache[0].result;\n }\n }\n\n var result = f(input);\n\n cache.unshift({\n input,\n result,\n });\n\n if (cache.length > MAX_CACHED_INPUTS) {\n cache.pop();\n }\n\n return result;\n };\n}\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nvar normalize = lruMemoize(function normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n // Split the path into parts between `/` characters. This is much faster than\n // using `.split(/\\/+/g)`.\n var parts = [];\n var start = 0;\n var i = 0;\n while (true) {\n start = i;\n i = path.indexOf(\"/\", start);\n if (i === -1) {\n parts.push(path.slice(start));\n break;\n } else {\n parts.push(path.slice(start, i));\n while (i < path.length && path[i] === \"/\") {\n i++;\n }\n }\n }\n\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n});\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\nfunction compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) {\n var cmp\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // “sources” entry. This value is prepended to the individual\n // entries in the “source” field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // “sourceRoot”, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._ignoreInvalidMapping = util.getArg(aArgs, 'ignoreInvalidMapping', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator(Object.assign(generatorOps || {}, {\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n }));\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n if (this._validateMapping(generated, original, source, name) === false) {\n return;\n }\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n var message = 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n\n if (this._ignoreInvalidMapping) {\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message);\n }\n return false;\n } else {\n throw new Error(message);\n }\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n var message = 'Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n });\n\n if (this._ignoreInvalidMapping) {\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message);\n }\n return false;\n } else {\n throw new Error(message)\n }\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\nfunction SortTemplate(comparator) {\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot, false) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n return doQuickSort;\n}\n\nfunction cloneSort(comparator) {\n let template = SortTemplate.toString();\n let templateFn = new Function(`return ${template}`)();\n return templateFn(comparator);\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\n\nlet sortCache = new WeakMap();\nexports.quickSort = function (ary, comparator, start = 0) {\n let doQuickSort = sortCache.get(comparator);\n if (doQuickSort === void 0) {\n doQuickSort = cloneSort(comparator);\n sortCache.set(comparator, doQuickSort);\n }\n doQuickSort(ary, comparator, start, ary.length - 1);\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n var boundCallback = aCallback.bind(context);\n var names = this._names;\n var sources = this._sources;\n var sourceMapURL = this._sourceMapURL;\n\n for (var i = 0, n = mappings.length; i < n; i++) {\n var mapping = mappings[i];\n var source = mapping.source === null ? null : sources.at(mapping.source);\n if(source !== null) {\n source = util.computeSourceURL(sourceRoot, source, sourceMapURL);\n }\n boundCallback({\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : names.at(mapping.name)\n });\n }\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\n\nconst compareGenerated = util.compareByGeneratedPositionsDeflatedNoLine;\nfunction sortGenerated(array, start) {\n let l = array.length;\n let n = array.length - start;\n if (n <= 1) {\n return;\n } else if (n == 2) {\n let a = array[start];\n let b = array[start + 1];\n if (compareGenerated(a, b) > 0) {\n array[start] = b;\n array[start + 1] = a;\n }\n } else if (n < 20) {\n for (let i = start; i < l; i++) {\n for (let j = i; j > start; j--) {\n let a = array[j - 1];\n let b = array[j];\n if (compareGenerated(a, b) <= 0) {\n break;\n }\n array[j - 1] = b;\n array[j] = a;\n }\n }\n } else {\n quickSort(array, compareGenerated, start);\n }\n}\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n let subarrayStart = 0;\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n\n sortGenerated(generatedMappings, subarrayStart);\n subarrayStart = generatedMappings.length;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n let currentSource = mapping.source;\n while (originalMappings.length <= currentSource) {\n originalMappings.push(null);\n }\n if (originalMappings[currentSource] === null) {\n originalMappings[currentSource] = [];\n }\n originalMappings[currentSource].push(mapping);\n }\n }\n }\n\n sortGenerated(generatedMappings, subarrayStart);\n this.__generatedMappings = generatedMappings;\n\n for (var i = 0; i < originalMappings.length; i++) {\n if (originalMappings[i] != null) {\n quickSort(originalMappings[i], util.compareByOriginalPositionsNoSource);\n }\n }\n this.__originalMappings = [].concat(...originalMappings);\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content || content === '') {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n if(source !== null) {\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n }\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n","/**\n* @vue/compiler-core v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar shared = require('@vue/shared');\nvar decode = require('entities/decode');\nvar parser = require('@babel/parser');\nvar estreeWalker = require('estree-walker');\nvar sourceMapJs = require('source-map-js');\n\nconst FRAGMENT = /* @__PURE__ */ Symbol(``);\nconst TELEPORT = /* @__PURE__ */ Symbol(``);\nconst SUSPENSE = /* @__PURE__ */ Symbol(``);\nconst KEEP_ALIVE = /* @__PURE__ */ Symbol(``);\nconst BASE_TRANSITION = /* @__PURE__ */ Symbol(\n ``\n);\nconst OPEN_BLOCK = /* @__PURE__ */ Symbol(``);\nconst CREATE_BLOCK = /* @__PURE__ */ Symbol(``);\nconst CREATE_ELEMENT_BLOCK = /* @__PURE__ */ Symbol(\n ``\n);\nconst CREATE_VNODE = /* @__PURE__ */ Symbol(``);\nconst CREATE_ELEMENT_VNODE = /* @__PURE__ */ Symbol(\n ``\n);\nconst CREATE_COMMENT = /* @__PURE__ */ Symbol(\n ``\n);\nconst CREATE_TEXT = /* @__PURE__ */ Symbol(\n ``\n);\nconst CREATE_STATIC = /* @__PURE__ */ Symbol(\n ``\n);\nconst RESOLVE_COMPONENT = /* @__PURE__ */ Symbol(\n ``\n);\nconst RESOLVE_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol(\n ``\n);\nconst RESOLVE_DIRECTIVE = /* @__PURE__ */ Symbol(\n ``\n);\nconst RESOLVE_FILTER = /* @__PURE__ */ Symbol(\n ``\n);\nconst WITH_DIRECTIVES = /* @__PURE__ */ Symbol(\n ``\n);\nconst RENDER_LIST = /* @__PURE__ */ Symbol(``);\nconst RENDER_SLOT = /* @__PURE__ */ Symbol(``);\nconst CREATE_SLOTS = /* @__PURE__ */ Symbol(``);\nconst TO_DISPLAY_STRING = /* @__PURE__ */ Symbol(\n ``\n);\nconst MERGE_PROPS = /* @__PURE__ */ Symbol(``);\nconst NORMALIZE_CLASS = /* @__PURE__ */ Symbol(\n ``\n);\nconst NORMALIZE_STYLE = /* @__PURE__ */ Symbol(\n ``\n);\nconst NORMALIZE_PROPS = /* @__PURE__ */ Symbol(\n ``\n);\nconst GUARD_REACTIVE_PROPS = /* @__PURE__ */ Symbol(\n ``\n);\nconst TO_HANDLERS = /* @__PURE__ */ Symbol(``);\nconst CAMELIZE = /* @__PURE__ */ Symbol(``);\nconst CAPITALIZE = /* @__PURE__ */ Symbol(``);\nconst TO_HANDLER_KEY = /* @__PURE__ */ Symbol(\n ``\n);\nconst SET_BLOCK_TRACKING = /* @__PURE__ */ Symbol(\n ``\n);\nconst PUSH_SCOPE_ID = /* @__PURE__ */ Symbol(``);\nconst POP_SCOPE_ID = /* @__PURE__ */ Symbol(``);\nconst WITH_CTX = /* @__PURE__ */ Symbol(``);\nconst UNREF = /* @__PURE__ */ Symbol(``);\nconst IS_REF = /* @__PURE__ */ Symbol(``);\nconst WITH_MEMO = /* @__PURE__ */ Symbol(``);\nconst IS_MEMO_SAME = /* @__PURE__ */ Symbol(``);\nconst helperNameMap = {\n [FRAGMENT]: `Fragment`,\n [TELEPORT]: `Teleport`,\n [SUSPENSE]: `Suspense`,\n [KEEP_ALIVE]: `KeepAlive`,\n [BASE_TRANSITION]: `BaseTransition`,\n [OPEN_BLOCK]: `openBlock`,\n [CREATE_BLOCK]: `createBlock`,\n [CREATE_ELEMENT_BLOCK]: `createElementBlock`,\n [CREATE_VNODE]: `createVNode`,\n [CREATE_ELEMENT_VNODE]: `createElementVNode`,\n [CREATE_COMMENT]: `createCommentVNode`,\n [CREATE_TEXT]: `createTextVNode`,\n [CREATE_STATIC]: `createStaticVNode`,\n [RESOLVE_COMPONENT]: `resolveComponent`,\n [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`,\n [RESOLVE_DIRECTIVE]: `resolveDirective`,\n [RESOLVE_FILTER]: `resolveFilter`,\n [WITH_DIRECTIVES]: `withDirectives`,\n [RENDER_LIST]: `renderList`,\n [RENDER_SLOT]: `renderSlot`,\n [CREATE_SLOTS]: `createSlots`,\n [TO_DISPLAY_STRING]: `toDisplayString`,\n [MERGE_PROPS]: `mergeProps`,\n [NORMALIZE_CLASS]: `normalizeClass`,\n [NORMALIZE_STYLE]: `normalizeStyle`,\n [NORMALIZE_PROPS]: `normalizeProps`,\n [GUARD_REACTIVE_PROPS]: `guardReactiveProps`,\n [TO_HANDLERS]: `toHandlers`,\n [CAMELIZE]: `camelize`,\n [CAPITALIZE]: `capitalize`,\n [TO_HANDLER_KEY]: `toHandlerKey`,\n [SET_BLOCK_TRACKING]: `setBlockTracking`,\n [PUSH_SCOPE_ID]: `pushScopeId`,\n [POP_SCOPE_ID]: `popScopeId`,\n [WITH_CTX]: `withCtx`,\n [UNREF]: `unref`,\n [IS_REF]: `isRef`,\n [WITH_MEMO]: `withMemo`,\n [IS_MEMO_SAME]: `isMemoSame`\n};\nfunction registerRuntimeHelpers(helpers) {\n Object.getOwnPropertySymbols(helpers).forEach((s) => {\n helperNameMap[s] = helpers[s];\n });\n}\n\nconst Namespaces = {\n \"HTML\": 0,\n \"0\": \"HTML\",\n \"SVG\": 1,\n \"1\": \"SVG\",\n \"MATH_ML\": 2,\n \"2\": \"MATH_ML\"\n};\nconst NodeTypes = {\n \"ROOT\": 0,\n \"0\": \"ROOT\",\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"TEXT\": 2,\n \"2\": \"TEXT\",\n \"COMMENT\": 3,\n \"3\": \"COMMENT\",\n \"SIMPLE_EXPRESSION\": 4,\n \"4\": \"SIMPLE_EXPRESSION\",\n \"INTERPOLATION\": 5,\n \"5\": \"INTERPOLATION\",\n \"ATTRIBUTE\": 6,\n \"6\": \"ATTRIBUTE\",\n \"DIRECTIVE\": 7,\n \"7\": \"DIRECTIVE\",\n \"COMPOUND_EXPRESSION\": 8,\n \"8\": \"COMPOUND_EXPRESSION\",\n \"IF\": 9,\n \"9\": \"IF\",\n \"IF_BRANCH\": 10,\n \"10\": \"IF_BRANCH\",\n \"FOR\": 11,\n \"11\": \"FOR\",\n \"TEXT_CALL\": 12,\n \"12\": \"TEXT_CALL\",\n \"VNODE_CALL\": 13,\n \"13\": \"VNODE_CALL\",\n \"JS_CALL_EXPRESSION\": 14,\n \"14\": \"JS_CALL_EXPRESSION\",\n \"JS_OBJECT_EXPRESSION\": 15,\n \"15\": \"JS_OBJECT_EXPRESSION\",\n \"JS_PROPERTY\": 16,\n \"16\": \"JS_PROPERTY\",\n \"JS_ARRAY_EXPRESSION\": 17,\n \"17\": \"JS_ARRAY_EXPRESSION\",\n \"JS_FUNCTION_EXPRESSION\": 18,\n \"18\": \"JS_FUNCTION_EXPRESSION\",\n \"JS_CONDITIONAL_EXPRESSION\": 19,\n \"19\": \"JS_CONDITIONAL_EXPRESSION\",\n \"JS_CACHE_EXPRESSION\": 20,\n \"20\": \"JS_CACHE_EXPRESSION\",\n \"JS_BLOCK_STATEMENT\": 21,\n \"21\": \"JS_BLOCK_STATEMENT\",\n \"JS_TEMPLATE_LITERAL\": 22,\n \"22\": \"JS_TEMPLATE_LITERAL\",\n \"JS_IF_STATEMENT\": 23,\n \"23\": \"JS_IF_STATEMENT\",\n \"JS_ASSIGNMENT_EXPRESSION\": 24,\n \"24\": \"JS_ASSIGNMENT_EXPRESSION\",\n \"JS_SEQUENCE_EXPRESSION\": 25,\n \"25\": \"JS_SEQUENCE_EXPRESSION\",\n \"JS_RETURN_STATEMENT\": 26,\n \"26\": \"JS_RETURN_STATEMENT\"\n};\nconst ElementTypes = {\n \"ELEMENT\": 0,\n \"0\": \"ELEMENT\",\n \"COMPONENT\": 1,\n \"1\": \"COMPONENT\",\n \"SLOT\": 2,\n \"2\": \"SLOT\",\n \"TEMPLATE\": 3,\n \"3\": \"TEMPLATE\"\n};\nconst ConstantTypes = {\n \"NOT_CONSTANT\": 0,\n \"0\": \"NOT_CONSTANT\",\n \"CAN_SKIP_PATCH\": 1,\n \"1\": \"CAN_SKIP_PATCH\",\n \"CAN_CACHE\": 2,\n \"2\": \"CAN_CACHE\",\n \"CAN_STRINGIFY\": 3,\n \"3\": \"CAN_STRINGIFY\"\n};\nconst locStub = {\n start: { line: 1, column: 1, offset: 0 },\n end: { line: 1, column: 1, offset: 0 },\n source: \"\"\n};\nfunction createRoot(children, source = \"\") {\n return {\n type: 0,\n source,\n children,\n helpers: /* @__PURE__ */ new Set(),\n components: [],\n directives: [],\n hoists: [],\n imports: [],\n cached: [],\n temps: 0,\n codegenNode: void 0,\n loc: locStub\n };\n}\nfunction createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) {\n if (context) {\n if (isBlock) {\n context.helper(OPEN_BLOCK);\n context.helper(getVNodeBlockHelper(context.inSSR, isComponent));\n } else {\n context.helper(getVNodeHelper(context.inSSR, isComponent));\n }\n if (directives) {\n context.helper(WITH_DIRECTIVES);\n }\n }\n return {\n type: 13,\n tag,\n props,\n children,\n patchFlag,\n dynamicProps,\n directives,\n isBlock,\n disableTracking,\n isComponent,\n loc\n };\n}\nfunction createArrayExpression(elements, loc = locStub) {\n return {\n type: 17,\n loc,\n elements\n };\n}\nfunction createObjectExpression(properties, loc = locStub) {\n return {\n type: 15,\n loc,\n properties\n };\n}\nfunction createObjectProperty(key, value) {\n return {\n type: 16,\n loc: locStub,\n key: shared.isString(key) ? createSimpleExpression(key, true) : key,\n value\n };\n}\nfunction createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) {\n return {\n type: 4,\n loc,\n content,\n isStatic,\n constType: isStatic ? 3 : constType\n };\n}\nfunction createInterpolation(content, loc) {\n return {\n type: 5,\n loc,\n content: shared.isString(content) ? createSimpleExpression(content, false, loc) : content\n };\n}\nfunction createCompoundExpression(children, loc = locStub) {\n return {\n type: 8,\n loc,\n children\n };\n}\nfunction createCallExpression(callee, args = [], loc = locStub) {\n return {\n type: 14,\n loc,\n callee,\n arguments: args\n };\n}\nfunction createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) {\n return {\n type: 18,\n params,\n returns,\n newline,\n isSlot,\n loc\n };\n}\nfunction createConditionalExpression(test, consequent, alternate, newline = true) {\n return {\n type: 19,\n test,\n consequent,\n alternate,\n newline,\n loc: locStub\n };\n}\nfunction createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) {\n return {\n type: 20,\n index,\n value,\n needPauseTracking,\n inVOnce,\n needArraySpread: false,\n loc: locStub\n };\n}\nfunction createBlockStatement(body) {\n return {\n type: 21,\n body,\n loc: locStub\n };\n}\nfunction createTemplateLiteral(elements) {\n return {\n type: 22,\n elements,\n loc: locStub\n };\n}\nfunction createIfStatement(test, consequent, alternate) {\n return {\n type: 23,\n test,\n consequent,\n alternate,\n loc: locStub\n };\n}\nfunction createAssignmentExpression(left, right) {\n return {\n type: 24,\n left,\n right,\n loc: locStub\n };\n}\nfunction createSequenceExpression(expressions) {\n return {\n type: 25,\n expressions,\n loc: locStub\n };\n}\nfunction createReturnStatement(returns) {\n return {\n type: 26,\n returns,\n loc: locStub\n };\n}\nfunction getVNodeHelper(ssr, isComponent) {\n return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE;\n}\nfunction getVNodeBlockHelper(ssr, isComponent) {\n return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK;\n}\nfunction convertToBlock(node, { helper, removeHelper, inSSR }) {\n if (!node.isBlock) {\n node.isBlock = true;\n removeHelper(getVNodeHelper(inSSR, node.isComponent));\n helper(OPEN_BLOCK);\n helper(getVNodeBlockHelper(inSSR, node.isComponent));\n }\n}\n\nconst defaultDelimitersOpen = new Uint8Array([123, 123]);\nconst defaultDelimitersClose = new Uint8Array([125, 125]);\nfunction isTagStartChar(c) {\n return c >= 97 && c <= 122 || c >= 65 && c <= 90;\n}\nfunction isWhitespace(c) {\n return c === 32 || c === 10 || c === 9 || c === 12 || c === 13;\n}\nfunction isEndOfTagSection(c) {\n return c === 47 || c === 62 || isWhitespace(c);\n}\nfunction toCharCodes(str) {\n const ret = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n ret[i] = str.charCodeAt(i);\n }\n return ret;\n}\nconst Sequences = {\n Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),\n // CDATA[\n CdataEnd: new Uint8Array([93, 93, 62]),\n // ]]>\n CommentEnd: new Uint8Array([45, 45, 62]),\n // `-->`\n ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),\n // `<\\/script`\n StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),\n // `</style`\n TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]),\n // `</title`\n TextareaEnd: new Uint8Array([\n 60,\n 47,\n 116,\n 101,\n 120,\n 116,\n 97,\n 114,\n 101,\n 97\n ])\n // `</textarea\n};\nclass Tokenizer {\n constructor(stack, cbs) {\n this.stack = stack;\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = 1;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** The start of the last entity. */\n this.entityStart = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = 1;\n /** For special parsing behavior inside of script and style tags. */\n this.inRCDATA = false;\n /** For disabling RCDATA tags handling */\n this.inXML = false;\n /** For disabling interpolation parsing in v-pre */\n this.inVPre = false;\n /** Record newline positions for fast line / column calculation */\n this.newlines = [];\n this.mode = 0;\n this.delimiterOpen = defaultDelimitersOpen;\n this.delimiterClose = defaultDelimitersClose;\n this.delimiterIndex = -1;\n this.currentSequence = void 0;\n this.sequenceIndex = 0;\n {\n this.entityDecoder = new decode.EntityDecoder(\n decode.htmlDecodeTree,\n (cp, consumed) => this.emitCodePoint(cp, consumed)\n );\n }\n }\n get inSFCRoot() {\n return this.mode === 2 && this.stack.length === 0;\n }\n reset() {\n this.state = 1;\n this.mode = 0;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = 1;\n this.inRCDATA = false;\n this.currentSequence = void 0;\n this.newlines.length = 0;\n this.delimiterOpen = defaultDelimitersOpen;\n this.delimiterClose = defaultDelimitersClose;\n }\n /**\n * Generate Position object with line / column information using recorded\n * newline positions. We know the index is always going to be an already\n * processed index, so all the newlines up to this index should have been\n * recorded.\n */\n getPos(index) {\n let line = 1;\n let column = index + 1;\n const length = this.newlines.length;\n let j = -1;\n if (length > 100) {\n let l = -1;\n let r = length;\n while (l + 1 < r) {\n const m = l + r >>> 1;\n this.newlines[m] < index ? l = m : r = m;\n }\n j = l;\n } else {\n for (let i = length - 1; i >= 0; i--) {\n if (index > this.newlines[i]) {\n j = i;\n break;\n }\n }\n }\n if (j >= 0) {\n line = j + 2;\n column = index - this.newlines[j];\n }\n return {\n column,\n line,\n offset: index\n };\n }\n peek() {\n return this.buffer.charCodeAt(this.index + 1);\n }\n stateText(c) {\n if (c === 60) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = 5;\n this.sectionStart = this.index;\n } else if (c === 38) {\n this.startEntity();\n } else if (!this.inVPre && c === this.delimiterOpen[0]) {\n this.state = 2;\n this.delimiterIndex = 0;\n this.stateInterpolationOpen(c);\n }\n }\n stateInterpolationOpen(c) {\n if (c === this.delimiterOpen[this.delimiterIndex]) {\n if (this.delimiterIndex === this.delimiterOpen.length - 1) {\n const start = this.index + 1 - this.delimiterOpen.length;\n if (start > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, start);\n }\n this.state = 3;\n this.sectionStart = start;\n } else {\n this.delimiterIndex++;\n }\n } else if (this.inRCDATA) {\n this.state = 32;\n this.stateInRCDATA(c);\n } else {\n this.state = 1;\n this.stateText(c);\n }\n }\n stateInterpolation(c) {\n if (c === this.delimiterClose[0]) {\n this.state = 4;\n this.delimiterIndex = 0;\n this.stateInterpolationClose(c);\n }\n }\n stateInterpolationClose(c) {\n if (c === this.delimiterClose[this.delimiterIndex]) {\n if (this.delimiterIndex === this.delimiterClose.length - 1) {\n this.cbs.oninterpolation(this.sectionStart, this.index + 1);\n if (this.inRCDATA) {\n this.state = 32;\n } else {\n this.state = 1;\n }\n this.sectionStart = this.index + 1;\n } else {\n this.delimiterIndex++;\n }\n } else {\n this.state = 3;\n this.stateInterpolation(c);\n }\n }\n stateSpecialStartSequence(c) {\n const isEnd = this.sequenceIndex === this.currentSequence.length;\n const isMatch = isEnd ? (\n // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n ) : (\n // Otherwise, do a case-insensitive comparison\n (c | 32) === this.currentSequence[this.sequenceIndex]\n );\n if (!isMatch) {\n this.inRCDATA = false;\n } else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = 6;\n this.stateInTagName(c);\n }\n /** Look for an end tag. For <title> and <textarea>, also decode entities. */\n stateInRCDATA(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === 62 || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.sectionStart = endOfText + 2;\n this.stateInClosingTagName(c);\n this.inRCDATA = false;\n return;\n }\n this.sequenceIndex = 0;\n }\n if ((c | 32) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n } else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) {\n if (c === 38) {\n this.startEntity();\n } else if (!this.inVPre && c === this.delimiterOpen[0]) {\n this.state = 2;\n this.delimiterIndex = 0;\n this.stateInterpolationOpen(c);\n }\n } else if (this.fastForwardTo(60)) {\n this.sequenceIndex = 1;\n }\n } else {\n this.sequenceIndex = Number(c === 60);\n }\n }\n stateCDATASequence(c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = 28;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n } else {\n this.sequenceIndex = 0;\n this.state = 23;\n this.stateInDeclaration(c);\n }\n }\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n fastForwardTo(c) {\n while (++this.index < this.buffer.length) {\n const cc = this.buffer.charCodeAt(this.index);\n if (cc === 10) {\n this.newlines.push(this.index);\n }\n if (cc === c) {\n return true;\n }\n }\n this.index = this.buffer.length - 1;\n return false;\n }\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n stateInCommentLike(c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index - 2);\n } else {\n this.cbs.oncomment(this.sectionStart, this.index - 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = 1;\n }\n } else if (this.sequenceIndex === 0) {\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n } else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n this.sequenceIndex = 0;\n }\n }\n startSpecial(sequence, offset) {\n this.enterRCDATA(sequence, offset);\n this.state = 31;\n }\n enterRCDATA(sequence, offset) {\n this.inRCDATA = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n }\n stateBeforeTagName(c) {\n if (c === 33) {\n this.state = 22;\n this.sectionStart = this.index + 1;\n } else if (c === 63) {\n this.state = 24;\n this.sectionStart = this.index + 1;\n } else if (isTagStartChar(c)) {\n this.sectionStart = this.index;\n if (this.mode === 0) {\n this.state = 6;\n } else if (this.inSFCRoot) {\n this.state = 34;\n } else if (!this.inXML) {\n if (c === 116) {\n this.state = 30;\n } else {\n this.state = c === 115 ? 29 : 6;\n }\n } else {\n this.state = 6;\n }\n } else if (c === 47) {\n this.state = 8;\n } else {\n this.state = 1;\n this.stateText(c);\n }\n }\n stateInTagName(c) {\n if (isEndOfTagSection(c)) {\n this.handleTagName(c);\n }\n }\n stateInSFCRootTagName(c) {\n if (isEndOfTagSection(c)) {\n const tag = this.buffer.slice(this.sectionStart, this.index);\n if (tag !== \"template\") {\n this.enterRCDATA(toCharCodes(`</` + tag), 0);\n }\n this.handleTagName(c);\n }\n }\n handleTagName(c) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = 11;\n this.stateBeforeAttrName(c);\n }\n stateBeforeClosingTagName(c) {\n if (isWhitespace(c)) ; else if (c === 62) {\n {\n this.cbs.onerr(14, this.index);\n }\n this.state = 1;\n this.sectionStart = this.index + 1;\n } else {\n this.state = isTagStartChar(c) ? 9 : 27;\n this.sectionStart = this.index;\n }\n }\n stateInClosingTagName(c) {\n if (c === 62 || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = 10;\n this.stateAfterClosingTagName(c);\n }\n }\n stateAfterClosingTagName(c) {\n if (c === 62) {\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeAttrName(c) {\n if (c === 62) {\n this.cbs.onopentagend(this.index);\n if (this.inRCDATA) {\n this.state = 32;\n } else {\n this.state = 1;\n }\n this.sectionStart = this.index + 1;\n } else if (c === 47) {\n this.state = 7;\n if (this.peek() !== 62) {\n this.cbs.onerr(22, this.index);\n }\n } else if (c === 60 && this.peek() === 47) {\n this.cbs.onopentagend(this.index);\n this.state = 5;\n this.sectionStart = this.index;\n } else if (!isWhitespace(c)) {\n if (c === 61) {\n this.cbs.onerr(\n 19,\n this.index\n );\n }\n this.handleAttrStart(c);\n }\n }\n handleAttrStart(c) {\n if (c === 118 && this.peek() === 45) {\n this.state = 13;\n this.sectionStart = this.index;\n } else if (c === 46 || c === 58 || c === 64 || c === 35) {\n this.cbs.ondirname(this.index, this.index + 1);\n this.state = 14;\n this.sectionStart = this.index + 1;\n } else {\n this.state = 12;\n this.sectionStart = this.index;\n }\n }\n stateInSelfClosingTag(c) {\n if (c === 62) {\n this.cbs.onselfclosingtag(this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n this.inRCDATA = false;\n } else if (!isWhitespace(c)) {\n this.state = 11;\n this.stateBeforeAttrName(c);\n }\n }\n stateInAttrName(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 34 || c === 39 || c === 60) {\n this.cbs.onerr(\n 17,\n this.index\n );\n }\n }\n stateInDirName(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 58) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.state = 14;\n this.sectionStart = this.index + 1;\n } else if (c === 46) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.state = 16;\n this.sectionStart = this.index + 1;\n }\n }\n stateInDirArg(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirarg(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 91) {\n this.state = 15;\n } else if (c === 46) {\n this.cbs.ondirarg(this.sectionStart, this.index);\n this.state = 16;\n this.sectionStart = this.index + 1;\n }\n }\n stateInDynamicDirArg(c) {\n if (c === 93) {\n this.state = 14;\n } else if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirarg(this.sectionStart, this.index + 1);\n this.handleAttrNameEnd(c);\n {\n this.cbs.onerr(\n 27,\n this.index\n );\n }\n }\n }\n stateInDirModifier(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirmodifier(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 46) {\n this.cbs.ondirmodifier(this.sectionStart, this.index);\n this.sectionStart = this.index + 1;\n }\n }\n handleAttrNameEnd(c) {\n this.sectionStart = this.index;\n this.state = 17;\n this.cbs.onattribnameend(this.index);\n this.stateAfterAttrName(c);\n }\n stateAfterAttrName(c) {\n if (c === 61) {\n this.state = 18;\n } else if (c === 47 || c === 62) {\n this.cbs.onattribend(0, this.sectionStart);\n this.sectionStart = -1;\n this.state = 11;\n this.stateBeforeAttrName(c);\n } else if (!isWhitespace(c)) {\n this.cbs.onattribend(0, this.sectionStart);\n this.handleAttrStart(c);\n }\n }\n stateBeforeAttrValue(c) {\n if (c === 34) {\n this.state = 19;\n this.sectionStart = this.index + 1;\n } else if (c === 39) {\n this.state = 20;\n this.sectionStart = this.index + 1;\n } else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = 21;\n this.stateInAttrValueNoQuotes(c);\n }\n }\n handleInAttrValue(c, quote) {\n if (c === quote || false) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(\n quote === 34 ? 3 : 2,\n this.index + 1\n );\n this.state = 11;\n } else if (c === 38) {\n this.startEntity();\n }\n }\n stateInAttrValueDoubleQuotes(c) {\n this.handleInAttrValue(c, 34);\n }\n stateInAttrValueSingleQuotes(c) {\n this.handleInAttrValue(c, 39);\n }\n stateInAttrValueNoQuotes(c) {\n if (isWhitespace(c) || c === 62) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(1, this.index);\n this.state = 11;\n this.stateBeforeAttrName(c);\n } else if (c === 34 || c === 39 || c === 60 || c === 61 || c === 96) {\n this.cbs.onerr(\n 18,\n this.index\n );\n } else if (c === 38) {\n this.startEntity();\n }\n }\n stateBeforeDeclaration(c) {\n if (c === 91) {\n this.state = 26;\n this.sequenceIndex = 0;\n } else {\n this.state = c === 45 ? 25 : 23;\n }\n }\n stateInDeclaration(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateInProcessingInstruction(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeComment(c) {\n if (c === 45) {\n this.state = 28;\n this.currentSequence = Sequences.CommentEnd;\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n } else {\n this.state = 23;\n }\n }\n stateInSpecialComment(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.cbs.oncomment(this.sectionStart, this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeSpecialS(c) {\n if (c === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n } else if (c === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n } else {\n this.state = 6;\n this.stateInTagName(c);\n }\n }\n stateBeforeSpecialT(c) {\n if (c === Sequences.TitleEnd[3]) {\n this.startSpecial(Sequences.TitleEnd, 4);\n } else if (c === Sequences.TextareaEnd[3]) {\n this.startSpecial(Sequences.TextareaEnd, 4);\n } else {\n this.state = 6;\n this.stateInTagName(c);\n }\n }\n startEntity() {\n {\n this.baseState = this.state;\n this.state = 33;\n this.entityStart = this.index;\n this.entityDecoder.startEntity(\n this.baseState === 1 || this.baseState === 32 ? decode.DecodingMode.Legacy : decode.DecodingMode.Attribute\n );\n }\n }\n stateInEntity() {\n {\n const length = this.entityDecoder.write(this.buffer, this.index);\n if (length >= 0) {\n this.state = this.baseState;\n if (length === 0) {\n this.index = this.entityStart;\n }\n } else {\n this.index = this.buffer.length - 1;\n }\n }\n }\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n parse(input) {\n this.buffer = input;\n while (this.index < this.buffer.length) {\n const c = this.buffer.charCodeAt(this.index);\n if (c === 10 && this.state !== 33) {\n this.newlines.push(this.index);\n }\n switch (this.state) {\n case 1: {\n this.stateText(c);\n break;\n }\n case 2: {\n this.stateInterpolationOpen(c);\n break;\n }\n case 3: {\n this.stateInterpolation(c);\n break;\n }\n case 4: {\n this.stateInterpolationClose(c);\n break;\n }\n case 31: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case 32: {\n this.stateInRCDATA(c);\n break;\n }\n case 26: {\n this.stateCDATASequence(c);\n break;\n }\n case 19: {\n this.stateInAttrValueDoubleQuotes(c);\n break;\n }\n case 12: {\n this.stateInAttrName(c);\n break;\n }\n case 13: {\n this.stateInDirName(c);\n break;\n }\n case 14: {\n this.stateInDirArg(c);\n break;\n }\n case 15: {\n this.stateInDynamicDirArg(c);\n break;\n }\n case 16: {\n this.stateInDirModifier(c);\n break;\n }\n case 28: {\n this.stateInCommentLike(c);\n break;\n }\n case 27: {\n this.stateInSpecialComment(c);\n break;\n }\n case 11: {\n this.stateBeforeAttrName(c);\n break;\n }\n case 6: {\n this.stateInTagName(c);\n break;\n }\n case 34: {\n this.stateInSFCRootTagName(c);\n break;\n }\n case 9: {\n this.stateInClosingTagName(c);\n break;\n }\n case 5: {\n this.stateBeforeTagName(c);\n break;\n }\n case 17: {\n this.stateAfterAttrName(c);\n break;\n }\n case 20: {\n this.stateInAttrValueSingleQuotes(c);\n break;\n }\n case 18: {\n this.stateBeforeAttrValue(c);\n break;\n }\n case 8: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case 10: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case 29: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case 30: {\n this.stateBeforeSpecialT(c);\n break;\n }\n case 21: {\n this.stateInAttrValueNoQuotes(c);\n break;\n }\n case 7: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case 23: {\n this.stateInDeclaration(c);\n break;\n }\n case 22: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case 25: {\n this.stateBeforeComment(c);\n break;\n }\n case 24: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case 33: {\n this.stateInEntity();\n break;\n }\n }\n this.index++;\n }\n this.cleanup();\n this.finish();\n }\n /**\n * Remove data that has already been consumed from the buffer.\n */\n cleanup() {\n if (this.sectionStart !== this.index) {\n if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n } else if (this.state === 19 || this.state === 20 || this.state === 21) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n finish() {\n if (this.state === 33) {\n this.entityDecoder.end();\n this.state = this.baseState;\n }\n this.handleTrailingData();\n this.cbs.onend();\n }\n /** Handle any trailing data. */\n handleTrailingData() {\n const endIndex = this.buffer.length;\n if (this.sectionStart >= endIndex) {\n return;\n }\n if (this.state === 28) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex);\n } else {\n this.cbs.oncomment(this.sectionStart, endIndex);\n }\n } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n emitCodePoint(cp, consumed) {\n {\n if (this.baseState !== 1 && this.baseState !== 32) {\n if (this.sectionStart < this.entityStart) {\n this.cbs.onattribdata(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.onattribentity(\n decode.fromCodePoint(cp),\n this.entityStart,\n this.sectionStart\n );\n } else {\n if (this.sectionStart < this.entityStart) {\n this.cbs.ontext(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.ontextentity(\n decode.fromCodePoint(cp),\n this.entityStart,\n this.sectionStart\n );\n }\n }\n }\n}\n\nconst CompilerDeprecationTypes = {\n \"COMPILER_IS_ON_ELEMENT\": \"COMPILER_IS_ON_ELEMENT\",\n \"COMPILER_V_BIND_SYNC\": \"COMPILER_V_BIND_SYNC\",\n \"COMPILER_V_BIND_OBJECT_ORDER\": \"COMPILER_V_BIND_OBJECT_ORDER\",\n \"COMPILER_V_ON_NATIVE\": \"COMPILER_V_ON_NATIVE\",\n \"COMPILER_V_IF_V_FOR_PRECEDENCE\": \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n \"COMPILER_NATIVE_TEMPLATE\": \"COMPILER_NATIVE_TEMPLATE\",\n \"COMPILER_INLINE_TEMPLATE\": \"COMPILER_INLINE_TEMPLATE\",\n \"COMPILER_FILTERS\": \"COMPILER_FILTERS\"\n};\nconst deprecationData = {\n [\"COMPILER_IS_ON_ELEMENT\"]: {\n message: `Platform-native elements with \"is\" prop will no longer be treated as components in Vue 3 unless the \"is\" value is explicitly prefixed with \"vue:\".`,\n link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`\n },\n [\"COMPILER_V_BIND_SYNC\"]: {\n message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \\`v-bind:${key}.sync\\` should be changed to \\`v-model:${key}\\`.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`\n },\n [\"COMPILER_V_BIND_OBJECT_ORDER\"]: {\n message: `v-bind=\"obj\" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`\n },\n [\"COMPILER_V_ON_NATIVE\"]: {\n message: `.native modifier for v-on has been removed as is no longer necessary.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`\n },\n [\"COMPILER_V_IF_V_FOR_PRECEDENCE\"]: {\n message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`\n },\n [\"COMPILER_NATIVE_TEMPLATE\"]: {\n message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.`\n },\n [\"COMPILER_INLINE_TEMPLATE\"]: {\n message: `\"inline-template\" has been removed in Vue 3.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`\n },\n [\"COMPILER_FILTERS\"]: {\n message: `filters have been removed in Vue 3. The \"|\" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`\n }\n};\nfunction getCompatValue(key, { compatConfig }) {\n const value = compatConfig && compatConfig[key];\n if (key === \"MODE\") {\n return value || 3;\n } else {\n return value;\n }\n}\nfunction isCompatEnabled(key, context) {\n const mode = getCompatValue(\"MODE\", context);\n const value = getCompatValue(key, context);\n return mode === 3 ? value === true : value !== false;\n}\nfunction checkCompatEnabled(key, context, loc, ...args) {\n const enabled = isCompatEnabled(key, context);\n return enabled;\n}\nfunction warnDeprecation(key, context, loc, ...args) {\n const val = getCompatValue(key, context);\n if (val === \"suppress-warning\") {\n return;\n }\n const { message, link } = deprecationData[key];\n const msg = `(deprecation ${key}) ${typeof message === \"function\" ? message(...args) : message}${link ? `\n Details: ${link}` : ``}`;\n const err = new SyntaxError(msg);\n err.code = key;\n if (loc) err.loc = loc;\n context.onWarn(err);\n}\n\nfunction defaultOnError(error) {\n throw error;\n}\nfunction defaultOnWarn(msg) {\n}\nfunction createCompilerError(code, loc, messages, additionalMessage) {\n const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ;\n const error = new SyntaxError(String(msg));\n error.code = code;\n error.loc = loc;\n return error;\n}\nconst ErrorCodes = {\n \"ABRUPT_CLOSING_OF_EMPTY_COMMENT\": 0,\n \"0\": \"ABRUPT_CLOSING_OF_EMPTY_COMMENT\",\n \"CDATA_IN_HTML_CONTENT\": 1,\n \"1\": \"CDATA_IN_HTML_CONTENT\",\n \"DUPLICATE_ATTRIBUTE\": 2,\n \"2\": \"DUPLICATE_ATTRIBUTE\",\n \"END_TAG_WITH_ATTRIBUTES\": 3,\n \"3\": \"END_TAG_WITH_ATTRIBUTES\",\n \"END_TAG_WITH_TRAILING_SOLIDUS\": 4,\n \"4\": \"END_TAG_WITH_TRAILING_SOLIDUS\",\n \"EOF_BEFORE_TAG_NAME\": 5,\n \"5\": \"EOF_BEFORE_TAG_NAME\",\n \"EOF_IN_CDATA\": 6,\n \"6\": \"EOF_IN_CDATA\",\n \"EOF_IN_COMMENT\": 7,\n \"7\": \"EOF_IN_COMMENT\",\n \"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT\": 8,\n \"8\": \"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT\",\n \"EOF_IN_TAG\": 9,\n \"9\": \"EOF_IN_TAG\",\n \"INCORRECTLY_CLOSED_COMMENT\": 10,\n \"10\": \"INCORRECTLY_CLOSED_COMMENT\",\n \"INCORRECTLY_OPENED_COMMENT\": 11,\n \"11\": \"INCORRECTLY_OPENED_COMMENT\",\n \"INVALID_FIRST_CHARACTER_OF_TAG_NAME\": 12,\n \"12\": \"INVALID_FIRST_CHARACTER_OF_TAG_NAME\",\n \"MISSING_ATTRIBUTE_VALUE\": 13,\n \"13\": \"MISSING_ATTRIBUTE_VALUE\",\n \"MISSING_END_TAG_NAME\": 14,\n \"14\": \"MISSING_END_TAG_NAME\",\n \"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES\": 15,\n \"15\": \"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES\",\n \"NESTED_COMMENT\": 16,\n \"16\": \"NESTED_COMMENT\",\n \"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME\": 17,\n \"17\": \"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME\",\n \"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE\": 18,\n \"18\": \"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE\",\n \"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME\": 19,\n \"19\": \"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME\",\n \"UNEXPECTED_NULL_CHARACTER\": 20,\n \"20\": \"UNEXPECTED_NULL_CHARACTER\",\n \"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME\": 21,\n \"21\": \"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME\",\n \"UNEXPECTED_SOLIDUS_IN_TAG\": 22,\n \"22\": \"UNEXPECTED_SOLIDUS_IN_TAG\",\n \"X_INVALID_END_TAG\": 23,\n \"23\": \"X_INVALID_END_TAG\",\n \"X_MISSING_END_TAG\": 24,\n \"24\": \"X_MISSING_END_TAG\",\n \"X_MISSING_INTERPOLATION_END\": 25,\n \"25\": \"X_MISSING_INTERPOLATION_END\",\n \"X_MISSING_DIRECTIVE_NAME\": 26,\n \"26\": \"X_MISSING_DIRECTIVE_NAME\",\n \"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END\": 27,\n \"27\": \"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END\",\n \"X_V_IF_NO_EXPRESSION\": 28,\n \"28\": \"X_V_IF_NO_EXPRESSION\",\n \"X_V_IF_SAME_KEY\": 29,\n \"29\": \"X_V_IF_SAME_KEY\",\n \"X_V_ELSE_NO_ADJACENT_IF\": 30,\n \"30\": \"X_V_ELSE_NO_ADJACENT_IF\",\n \"X_V_FOR_NO_EXPRESSION\": 31,\n \"31\": \"X_V_FOR_NO_EXPRESSION\",\n \"X_V_FOR_MALFORMED_EXPRESSION\": 32,\n \"32\": \"X_V_FOR_MALFORMED_EXPRESSION\",\n \"X_V_FOR_TEMPLATE_KEY_PLACEMENT\": 33,\n \"33\": \"X_V_FOR_TEMPLATE_KEY_PLACEMENT\",\n \"X_V_BIND_NO_EXPRESSION\": 34,\n \"34\": \"X_V_BIND_NO_EXPRESSION\",\n \"X_V_ON_NO_EXPRESSION\": 35,\n \"35\": \"X_V_ON_NO_EXPRESSION\",\n \"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET\": 36,\n \"36\": \"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET\",\n \"X_V_SLOT_MIXED_SLOT_USAGE\": 37,\n \"37\": \"X_V_SLOT_MIXED_SLOT_USAGE\",\n \"X_V_SLOT_DUPLICATE_SLOT_NAMES\": 38,\n \"38\": \"X_V_SLOT_DUPLICATE_SLOT_NAMES\",\n \"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN\": 39,\n \"39\": \"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN\",\n \"X_V_SLOT_MISPLACED\": 40,\n \"40\": \"X_V_SLOT_MISPLACED\",\n \"X_V_MODEL_NO_EXPRESSION\": 41,\n \"41\": \"X_V_MODEL_NO_EXPRESSION\",\n \"X_V_MODEL_MALFORMED_EXPRESSION\": 42,\n \"42\": \"X_V_MODEL_MALFORMED_EXPRESSION\",\n \"X_V_MODEL_ON_SCOPE_VARIABLE\": 43,\n \"43\": \"X_V_MODEL_ON_SCOPE_VARIABLE\",\n \"X_V_MODEL_ON_PROPS\": 44,\n \"44\": \"X_V_MODEL_ON_PROPS\",\n \"X_V_MODEL_ON_CONST\": 45,\n \"45\": \"X_V_MODEL_ON_CONST\",\n \"X_INVALID_EXPRESSION\": 46,\n \"46\": \"X_INVALID_EXPRESSION\",\n \"X_KEEP_ALIVE_INVALID_CHILDREN\": 47,\n \"47\": \"X_KEEP_ALIVE_INVALID_CHILDREN\",\n \"X_PREFIX_ID_NOT_SUPPORTED\": 48,\n \"48\": \"X_PREFIX_ID_NOT_SUPPORTED\",\n \"X_MODULE_MODE_NOT_SUPPORTED\": 49,\n \"49\": \"X_MODULE_MODE_NOT_SUPPORTED\",\n \"X_CACHE_HANDLER_NOT_SUPPORTED\": 50,\n \"50\": \"X_CACHE_HANDLER_NOT_SUPPORTED\",\n \"X_SCOPE_ID_NOT_SUPPORTED\": 51,\n \"51\": \"X_SCOPE_ID_NOT_SUPPORTED\",\n \"X_VNODE_HOOKS\": 52,\n \"52\": \"X_VNODE_HOOKS\",\n \"X_V_BIND_INVALID_SAME_NAME_ARGUMENT\": 53,\n \"53\": \"X_V_BIND_INVALID_SAME_NAME_ARGUMENT\",\n \"__EXTEND_POINT__\": 54,\n \"54\": \"__EXTEND_POINT__\"\n};\nconst errorMessages = {\n // parse errors\n [0]: \"Illegal comment.\",\n [1]: \"CDATA section is allowed only in XML context.\",\n [2]: \"Duplicate attribute.\",\n [3]: \"End tag cannot have attributes.\",\n [4]: \"Illegal '/' in tags.\",\n [5]: \"Unexpected EOF in tag.\",\n [6]: \"Unexpected EOF in CDATA section.\",\n [7]: \"Unexpected EOF in comment.\",\n [8]: \"Unexpected EOF in script.\",\n [9]: \"Unexpected EOF in tag.\",\n [10]: \"Incorrectly closed comment.\",\n [11]: \"Incorrectly opened comment.\",\n [12]: \"Illegal tag name. Use '&lt;' to print '<'.\",\n [13]: \"Attribute value was expected.\",\n [14]: \"End tag name was expected.\",\n [15]: \"Whitespace was expected.\",\n [16]: \"Unexpected '<!--' in comment.\",\n [17]: `Attribute name cannot contain U+0022 (\"), U+0027 ('), and U+003C (<).`,\n [18]: \"Unquoted attribute value cannot contain U+0022 (\\\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).\",\n [19]: \"Attribute name cannot start with '='.\",\n [21]: \"'<?' is allowed only in XML context.\",\n [20]: `Unexpected null character.`,\n [22]: \"Illegal '/' in tags.\",\n // Vue-specific parse errors\n [23]: \"Invalid end tag.\",\n [24]: \"Element is missing end tag.\",\n [25]: \"Interpolation end sign was not found.\",\n [27]: \"End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.\",\n [26]: \"Legal directive name was expected.\",\n // transform errors\n [28]: `v-if/v-else-if is missing expression.`,\n [29]: `v-if/else branches must use unique keys.`,\n [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`,\n [31]: `v-for is missing expression.`,\n [32]: `v-for has invalid expression.`,\n [33]: `<template v-for> key should be placed on the <template> tag.`,\n [34]: `v-bind is missing expression.`,\n [53]: `v-bind with same-name shorthand only allows static argument.`,\n [35]: `v-on is missing expression.`,\n [36]: `Unexpected custom directive on <slot> outlet.`,\n [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`,\n [38]: `Duplicate slot names found. `,\n [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`,\n [40]: `v-slot can only be used on components or <template> tags.`,\n [41]: `v-model is missing expression.`,\n [42]: `v-model value must be a valid JavaScript member expression.`,\n [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,\n [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.\nUse a v-bind binding combined with a v-on listener that emits update:x event instead.`,\n [45]: `v-model cannot be used on a const binding because it is not writable.`,\n [46]: `Error parsing JavaScript expression: `,\n [47]: `<KeepAlive> expects exactly one child component.`,\n [52]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`,\n // generic errors\n [48]: `\"prefixIdentifiers\" option is not supported in this build of compiler.`,\n [49]: `ES module mode is not supported in this build of compiler.`,\n [50]: `\"cacheHandlers\" option is only supported when the \"prefixIdentifiers\" option is enabled.`,\n [51]: `\"scopeId\" option is only supported in module mode.`,\n // just to fulfill types\n [54]: ``\n};\n\nfunction walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) {\n const rootExp = root.type === \"Program\" ? root.body[0].type === \"ExpressionStatement\" && root.body[0].expression : root;\n estreeWalker.walk(root, {\n enter(node, parent) {\n parent && parentStack.push(parent);\n if (parent && parent.type.startsWith(\"TS\") && !TS_NODE_TYPES.includes(parent.type)) {\n return this.skip();\n }\n if (node.type === \"Identifier\") {\n const isLocal = !!knownIds[node.name];\n const isRefed = isReferencedIdentifier(node, parent, parentStack);\n if (includeAll || isRefed && !isLocal) {\n onIdentifier(node, parent, parentStack, isRefed, isLocal);\n }\n } else if (node.type === \"ObjectProperty\" && // eslint-disable-next-line no-restricted-syntax\n (parent == null ? void 0 : parent.type) === \"ObjectPattern\") {\n node.inPattern = true;\n } else if (isFunctionType(node)) {\n if (node.scopeIds) {\n node.scopeIds.forEach((id) => markKnownIds(id, knownIds));\n } else {\n walkFunctionParams(\n node,\n (id) => markScopeIdentifier(node, id, knownIds)\n );\n }\n } else if (node.type === \"BlockStatement\") {\n if (node.scopeIds) {\n node.scopeIds.forEach((id) => markKnownIds(id, knownIds));\n } else {\n walkBlockDeclarations(\n node,\n (id) => markScopeIdentifier(node, id, knownIds)\n );\n }\n } else if (node.type === \"SwitchStatement\") {\n if (node.scopeIds) {\n node.scopeIds.forEach((id) => markKnownIds(id, knownIds));\n } else {\n walkSwitchStatement(\n node,\n false,\n (id) => markScopeIdentifier(node, id, knownIds)\n );\n }\n } else if (node.type === \"CatchClause\" && node.param) {\n if (node.scopeIds) {\n node.scopeIds.forEach((id) => markKnownIds(id, knownIds));\n } else {\n for (const id of extractIdentifiers(node.param)) {\n markScopeIdentifier(node, id, knownIds);\n }\n }\n } else if (isForStatement(node)) {\n if (node.scopeIds) {\n node.scopeIds.forEach((id) => markKnownIds(id, knownIds));\n } else {\n walkForStatement(\n node,\n false,\n (id) => markScopeIdentifier(node, id, knownIds)\n );\n }\n }\n },\n leave(node, parent) {\n parent && parentStack.pop();\n if (node !== rootExp && node.scopeIds) {\n for (const id of node.scopeIds) {\n knownIds[id]--;\n if (knownIds[id] === 0) {\n delete knownIds[id];\n }\n }\n }\n }\n });\n}\nfunction isReferencedIdentifier(id, parent, parentStack) {\n if (!parent) {\n return true;\n }\n if (id.name === \"arguments\") {\n return false;\n }\n if (isReferenced(id, parent, parentStack[parentStack.length - 2])) {\n return true;\n }\n switch (parent.type) {\n case \"AssignmentExpression\":\n case \"AssignmentPattern\":\n return true;\n case \"ObjectProperty\":\n return parent.key !== id && isInDestructureAssignment(parent, parentStack);\n case \"ArrayPattern\":\n return isInDestructureAssignment(parent, parentStack);\n }\n return false;\n}\nfunction isInDestructureAssignment(parent, parentStack) {\n if (parent && (parent.type === \"ObjectProperty\" || parent.type === \"ArrayPattern\")) {\n let i = parentStack.length;\n while (i--) {\n const p = parentStack[i];\n if (p.type === \"AssignmentExpression\") {\n return true;\n } else if (p.type !== \"ObjectProperty\" && !p.type.endsWith(\"Pattern\")) {\n break;\n }\n }\n }\n return false;\n}\nfunction isInNewExpression(parentStack) {\n let i = parentStack.length;\n while (i--) {\n const p = parentStack[i];\n if (p.type === \"NewExpression\") {\n return true;\n } else if (p.type !== \"MemberExpression\") {\n break;\n }\n }\n return false;\n}\nfunction walkFunctionParams(node, onIdent) {\n for (const p of node.params) {\n for (const id of extractIdentifiers(p)) {\n onIdent(id);\n }\n }\n}\nfunction walkBlockDeclarations(block, onIdent) {\n const body = block.type === \"SwitchCase\" ? block.consequent : block.body;\n for (const stmt of body) {\n if (stmt.type === \"VariableDeclaration\") {\n if (stmt.declare) continue;\n for (const decl of stmt.declarations) {\n for (const id of extractIdentifiers(decl.id)) {\n onIdent(id);\n }\n }\n } else if (stmt.type === \"FunctionDeclaration\" || stmt.type === \"ClassDeclaration\") {\n if (stmt.declare || !stmt.id) continue;\n onIdent(stmt.id);\n } else if (isForStatement(stmt)) {\n walkForStatement(stmt, true, onIdent);\n } else if (stmt.type === \"SwitchStatement\") {\n walkSwitchStatement(stmt, true, onIdent);\n }\n }\n}\nfunction isForStatement(stmt) {\n return stmt.type === \"ForOfStatement\" || stmt.type === \"ForInStatement\" || stmt.type === \"ForStatement\";\n}\nfunction walkForStatement(stmt, isVar, onIdent) {\n const variable = stmt.type === \"ForStatement\" ? stmt.init : stmt.left;\n if (variable && variable.type === \"VariableDeclaration\" && (variable.kind === \"var\" ? isVar : !isVar)) {\n for (const decl of variable.declarations) {\n for (const id of extractIdentifiers(decl.id)) {\n onIdent(id);\n }\n }\n }\n}\nfunction walkSwitchStatement(stmt, isVar, onIdent) {\n for (const cs of stmt.cases) {\n for (const stmt2 of cs.consequent) {\n if (stmt2.type === \"VariableDeclaration\" && (stmt2.kind === \"var\" ? isVar : !isVar)) {\n for (const decl of stmt2.declarations) {\n for (const id of extractIdentifiers(decl.id)) {\n onIdent(id);\n }\n }\n }\n }\n walkBlockDeclarations(cs, onIdent);\n }\n}\nfunction extractIdentifiers(param, nodes = []) {\n switch (param.type) {\n case \"Identifier\":\n nodes.push(param);\n break;\n case \"MemberExpression\":\n let object = param;\n while (object.type === \"MemberExpression\") {\n object = object.object;\n }\n nodes.push(object);\n break;\n case \"ObjectPattern\":\n for (const prop of param.properties) {\n if (prop.type === \"RestElement\") {\n extractIdentifiers(prop.argument, nodes);\n } else {\n extractIdentifiers(prop.value, nodes);\n }\n }\n break;\n case \"ArrayPattern\":\n param.elements.forEach((element) => {\n if (element) extractIdentifiers(element, nodes);\n });\n break;\n case \"RestElement\":\n extractIdentifiers(param.argument, nodes);\n break;\n case \"AssignmentPattern\":\n extractIdentifiers(param.left, nodes);\n break;\n }\n return nodes;\n}\nfunction markKnownIds(name, knownIds) {\n if (name in knownIds) {\n knownIds[name]++;\n } else {\n knownIds[name] = 1;\n }\n}\nfunction markScopeIdentifier(node, child, knownIds) {\n const { name } = child;\n if (node.scopeIds && node.scopeIds.has(name)) {\n return;\n }\n markKnownIds(name, knownIds);\n (node.scopeIds || (node.scopeIds = /* @__PURE__ */ new Set())).add(name);\n}\nconst isFunctionType = (node) => {\n return /Function(?:Expression|Declaration)$|Method$/.test(node.type);\n};\nconst isStaticProperty = (node) => node && (node.type === \"ObjectProperty\" || node.type === \"ObjectMethod\") && !node.computed;\nconst isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node;\nfunction isReferenced(node, parent, grandparent) {\n switch (parent.type) {\n // yes: PARENT[NODE]\n // yes: NODE.child\n // no: parent.NODE\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n if (parent.property === node) {\n return !!parent.computed;\n }\n return parent.object === node;\n case \"JSXMemberExpression\":\n return parent.object === node;\n // no: let NODE = init;\n // yes: let id = NODE;\n case \"VariableDeclarator\":\n return parent.init === node;\n // yes: () => NODE\n // no: (NODE) => {}\n case \"ArrowFunctionExpression\":\n return parent.body === node;\n // no: class { #NODE; }\n // no: class { get #NODE() {} }\n // no: class { #NODE() {} }\n // no: class { fn() { return this.#NODE; } }\n case \"PrivateName\":\n return false;\n // no: class { NODE() {} }\n // yes: class { [NODE]() {} }\n // no: class { foo(NODE) {} }\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"ObjectMethod\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return false;\n // yes: { [NODE]: \"\" }\n // no: { NODE: \"\" }\n // depends: { NODE }\n // depends: { key: NODE }\n case \"ObjectProperty\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return !grandparent || grandparent.type !== \"ObjectPattern\";\n // no: class { NODE = value; }\n // yes: class { [NODE] = value; }\n // yes: class { key = NODE; }\n case \"ClassProperty\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return true;\n case \"ClassPrivateProperty\":\n return parent.key !== node;\n // no: class NODE {}\n // yes: class Foo extends NODE {}\n case \"ClassDeclaration\":\n case \"ClassExpression\":\n return parent.superClass === node;\n // yes: left = NODE;\n // no: NODE = right;\n case \"AssignmentExpression\":\n return parent.right === node;\n // no: [NODE = foo] = [];\n // yes: [foo = NODE] = [];\n case \"AssignmentPattern\":\n return parent.right === node;\n // no: NODE: for (;;) {}\n case \"LabeledStatement\":\n return false;\n // no: try {} catch (NODE) {}\n case \"CatchClause\":\n return false;\n // no: function foo(...NODE) {}\n case \"RestElement\":\n return false;\n case \"BreakStatement\":\n case \"ContinueStatement\":\n return false;\n // no: function NODE() {}\n // no: function foo(NODE) {}\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n return false;\n // no: export NODE from \"foo\";\n // no: export * as NODE from \"foo\";\n case \"ExportNamespaceSpecifier\":\n case \"ExportDefaultSpecifier\":\n return false;\n // no: export { foo as NODE };\n // yes: export { NODE as foo };\n // no: export { NODE as foo } from \"foo\";\n case \"ExportSpecifier\":\n if (grandparent == null ? void 0 : grandparent.source) {\n return false;\n }\n return parent.local === node;\n // no: import NODE from \"foo\";\n // no: import * as NODE from \"foo\";\n // no: import { NODE as foo } from \"foo\";\n // no: import { foo as NODE } from \"foo\";\n // no: import NODE from \"bar\";\n case \"ImportDefaultSpecifier\":\n case \"ImportNamespaceSpecifier\":\n case \"ImportSpecifier\":\n return false;\n // no: import \"foo\" assert { NODE: \"json\" }\n case \"ImportAttribute\":\n return false;\n // no: <div NODE=\"foo\" />\n case \"JSXAttribute\":\n return false;\n // no: [NODE] = [];\n // no: ({ NODE }) = [];\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n return false;\n // no: new.NODE\n // no: NODE.target\n case \"MetaProperty\":\n return false;\n // yes: type X = { someProperty: NODE }\n // no: type X = { NODE: OtherType }\n case \"ObjectTypeProperty\":\n return parent.key !== node;\n // yes: enum X { Foo = NODE }\n // no: enum X { NODE }\n case \"TSEnumMember\":\n return parent.id !== node;\n // yes: { [NODE]: value }\n // no: { NODE: value }\n case \"TSPropertySignature\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return true;\n }\n return true;\n}\nconst TS_NODE_TYPES = [\n \"TSAsExpression\",\n // foo as number\n \"TSTypeAssertion\",\n // (<number>foo)\n \"TSNonNullExpression\",\n // foo!\n \"TSInstantiationExpression\",\n // foo<string>\n \"TSSatisfiesExpression\"\n // foo satisfies T\n];\nfunction unwrapTSNode(node) {\n if (TS_NODE_TYPES.includes(node.type)) {\n return unwrapTSNode(node.expression);\n } else {\n return node;\n }\n}\n\nconst isStaticExp = (p) => p.type === 4 && p.isStatic;\nfunction isCoreComponent(tag) {\n switch (tag) {\n case \"Teleport\":\n case \"teleport\":\n return TELEPORT;\n case \"Suspense\":\n case \"suspense\":\n return SUSPENSE;\n case \"KeepAlive\":\n case \"keep-alive\":\n return KEEP_ALIVE;\n case \"BaseTransition\":\n case \"base-transition\":\n return BASE_TRANSITION;\n }\n}\nconst nonIdentifierRE = /^$|^\\d|[^\\$\\w\\xA0-\\uFFFF]/;\nconst isSimpleIdentifier = (name) => !nonIdentifierRE.test(name);\nconst validFirstIdentCharRE = /[A-Za-z_$\\xA0-\\uFFFF]/;\nconst validIdentCharRE = /[\\.\\?\\w$\\xA0-\\uFFFF]/;\nconst whitespaceRE = /\\s+[.[]\\s*|\\s*[.[]\\s+/g;\nconst getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source;\nconst isMemberExpressionBrowser = (exp) => {\n const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim());\n let state = 0 /* inMemberExp */;\n let stateStack = [];\n let currentOpenBracketCount = 0;\n let currentOpenParensCount = 0;\n let currentStringType = null;\n for (let i = 0; i < path.length; i++) {\n const char = path.charAt(i);\n switch (state) {\n case 0 /* inMemberExp */:\n if (char === \"[\") {\n stateStack.push(state);\n state = 1 /* inBrackets */;\n currentOpenBracketCount++;\n } else if (char === \"(\") {\n stateStack.push(state);\n state = 2 /* inParens */;\n currentOpenParensCount++;\n } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) {\n return false;\n }\n break;\n case 1 /* inBrackets */:\n if (char === `'` || char === `\"` || char === \"`\") {\n stateStack.push(state);\n state = 3 /* inString */;\n currentStringType = char;\n } else if (char === `[`) {\n currentOpenBracketCount++;\n } else if (char === `]`) {\n if (!--currentOpenBracketCount) {\n state = stateStack.pop();\n }\n }\n break;\n case 2 /* inParens */:\n if (char === `'` || char === `\"` || char === \"`\") {\n stateStack.push(state);\n state = 3 /* inString */;\n currentStringType = char;\n } else if (char === `(`) {\n currentOpenParensCount++;\n } else if (char === `)`) {\n if (i === path.length - 1) {\n return false;\n }\n if (!--currentOpenParensCount) {\n state = stateStack.pop();\n }\n }\n break;\n case 3 /* inString */:\n if (char === currentStringType) {\n state = stateStack.pop();\n currentStringType = null;\n }\n break;\n }\n }\n return !currentOpenBracketCount && !currentOpenParensCount;\n};\nconst isMemberExpressionNode = (exp, context) => {\n try {\n let ret = exp.ast || parser.parseExpression(getExpSource(exp), {\n plugins: context.expressionPlugins ? [...context.expressionPlugins, \"typescript\"] : [\"typescript\"]\n });\n ret = unwrapTSNode(ret);\n return ret.type === \"MemberExpression\" || ret.type === \"OptionalMemberExpression\" || ret.type === \"Identifier\" && ret.name !== \"undefined\";\n } catch (e) {\n return false;\n }\n};\nconst isMemberExpression = isMemberExpressionNode;\nconst fnExpRE = /^\\s*(?:async\\s*)?(?:\\([^)]*?\\)|[\\w$_]+)\\s*(?::[^=]+)?=>|^\\s*(?:async\\s+)?function(?:\\s+[\\w$]+)?\\s*\\(/;\nconst isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp));\nconst isFnExpressionNode = (exp, context) => {\n try {\n let ret = exp.ast || parser.parseExpression(getExpSource(exp), {\n plugins: context.expressionPlugins ? [...context.expressionPlugins, \"typescript\"] : [\"typescript\"]\n });\n if (ret.type === \"Program\") {\n ret = ret.body[0];\n if (ret.type === \"ExpressionStatement\") {\n ret = ret.expression;\n }\n }\n ret = unwrapTSNode(ret);\n return ret.type === \"FunctionExpression\" || ret.type === \"ArrowFunctionExpression\";\n } catch (e) {\n return false;\n }\n};\nconst isFnExpression = isFnExpressionNode;\nfunction advancePositionWithClone(pos, source, numberOfCharacters = source.length) {\n return advancePositionWithMutation(\n {\n offset: pos.offset,\n line: pos.line,\n column: pos.column\n },\n source,\n numberOfCharacters\n );\n}\nfunction advancePositionWithMutation(pos, source, numberOfCharacters = source.length) {\n let linesCount = 0;\n let lastNewLinePos = -1;\n for (let i = 0; i < numberOfCharacters; i++) {\n if (source.charCodeAt(i) === 10) {\n linesCount++;\n lastNewLinePos = i;\n }\n }\n pos.offset += numberOfCharacters;\n pos.line += linesCount;\n pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos;\n return pos;\n}\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || `unexpected compiler condition`);\n }\n}\nfunction findDir(node, name, allowEmpty = false) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && (allowEmpty || p.exp) && (shared.isString(name) ? p.name === name : name.test(p.name))) {\n return p;\n }\n }\n}\nfunction findProp(node, name, dynamicOnly = false, allowEmpty = false) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 6) {\n if (dynamicOnly) continue;\n if (p.name === name && (p.value || allowEmpty)) {\n return p;\n }\n } else if (p.name === \"bind\" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) {\n return p;\n }\n }\n}\nfunction isStaticArgOf(arg, name) {\n return !!(arg && isStaticExp(arg) && arg.content === name);\n}\nfunction hasDynamicKeyVBind(node) {\n return node.props.some(\n (p) => p.type === 7 && p.name === \"bind\" && (!p.arg || // v-bind=\"obj\"\n p.arg.type !== 4 || // v-bind:[_ctx.foo]\n !p.arg.isStatic)\n // v-bind:[foo]\n );\n}\nfunction isText$1(node) {\n return node.type === 5 || node.type === 2;\n}\nfunction isVPre(p) {\n return p.type === 7 && p.name === \"pre\";\n}\nfunction isVSlot(p) {\n return p.type === 7 && p.name === \"slot\";\n}\nfunction isTemplateNode(node) {\n return node.type === 1 && node.tagType === 3;\n}\nfunction isSlotOutlet(node) {\n return node.type === 1 && node.tagType === 2;\n}\nconst propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);\nfunction getUnnormalizedProps(props, callPath = []) {\n if (props && !shared.isString(props) && props.type === 14) {\n const callee = props.callee;\n if (!shared.isString(callee) && propsHelperSet.has(callee)) {\n return getUnnormalizedProps(\n props.arguments[0],\n callPath.concat(props)\n );\n }\n }\n return [props, callPath];\n}\nfunction injectProp(node, prop, context) {\n let propsWithInjection;\n let props = node.type === 13 ? node.props : node.arguments[2];\n let callPath = [];\n let parentCall;\n if (props && !shared.isString(props) && props.type === 14) {\n const ret = getUnnormalizedProps(props);\n props = ret[0];\n callPath = ret[1];\n parentCall = callPath[callPath.length - 1];\n }\n if (props == null || shared.isString(props)) {\n propsWithInjection = createObjectExpression([prop]);\n } else if (props.type === 14) {\n const first = props.arguments[0];\n if (!shared.isString(first) && first.type === 15) {\n if (!hasProp(prop, first)) {\n first.properties.unshift(prop);\n }\n } else {\n if (props.callee === TO_HANDLERS) {\n propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [\n createObjectExpression([prop]),\n props\n ]);\n } else {\n props.arguments.unshift(createObjectExpression([prop]));\n }\n }\n !propsWithInjection && (propsWithInjection = props);\n } else if (props.type === 15) {\n if (!hasProp(prop, props)) {\n props.properties.unshift(prop);\n }\n propsWithInjection = props;\n } else {\n propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [\n createObjectExpression([prop]),\n props\n ]);\n if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) {\n parentCall = callPath[callPath.length - 2];\n }\n }\n if (node.type === 13) {\n if (parentCall) {\n parentCall.arguments[0] = propsWithInjection;\n } else {\n node.props = propsWithInjection;\n }\n } else {\n if (parentCall) {\n parentCall.arguments[0] = propsWithInjection;\n } else {\n node.arguments[2] = propsWithInjection;\n }\n }\n}\nfunction hasProp(prop, props) {\n let result = false;\n if (prop.key.type === 4) {\n const propKeyName = prop.key.content;\n result = props.properties.some(\n (p) => p.key.type === 4 && p.key.content === propKeyName\n );\n }\n return result;\n}\nfunction toValidAssetId(name, type) {\n return `_${type}_${name.replace(/[^\\w]/g, (searchValue, replaceValue) => {\n return searchValue === \"-\" ? \"_\" : name.charCodeAt(replaceValue).toString();\n })}`;\n}\nfunction hasScopeRef(node, ids) {\n if (!node || Object.keys(ids).length === 0) {\n return false;\n }\n switch (node.type) {\n case 1:\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) {\n return true;\n }\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 11:\n if (hasScopeRef(node.source, ids)) {\n return true;\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 9:\n return node.branches.some((b) => hasScopeRef(b, ids));\n case 10:\n if (hasScopeRef(node.condition, ids)) {\n return true;\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 4:\n return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content];\n case 8:\n return node.children.some((c) => shared.isObject(c) && hasScopeRef(c, ids));\n case 5:\n case 12:\n return hasScopeRef(node.content, ids);\n case 2:\n case 3:\n case 20:\n return false;\n default:\n return false;\n }\n}\nfunction getMemoedVNodeCall(node) {\n if (node.type === 14 && node.callee === WITH_MEMO) {\n return node.arguments[1].returns;\n } else {\n return node;\n }\n}\nconst forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+(\\S[\\s\\S]*)/;\nfunction isAllWhitespace(str) {\n for (let i = 0; i < str.length; i++) {\n if (!isWhitespace(str.charCodeAt(i))) {\n return false;\n }\n }\n return true;\n}\nfunction isWhitespaceText(node) {\n return node.type === 2 && isAllWhitespace(node.content) || node.type === 12 && isWhitespaceText(node.content);\n}\nfunction isCommentOrWhitespace(node) {\n return node.type === 3 || isWhitespaceText(node);\n}\n\nconst defaultParserOptions = {\n parseMode: \"base\",\n ns: 0,\n delimiters: [`{{`, `}}`],\n getNamespace: () => 0,\n isVoidTag: shared.NO,\n isPreTag: shared.NO,\n isIgnoreNewlineTag: shared.NO,\n isCustomElement: shared.NO,\n onError: defaultOnError,\n onWarn: defaultOnWarn,\n comments: false,\n prefixIdentifiers: false\n};\nlet currentOptions = defaultParserOptions;\nlet currentRoot = null;\nlet currentInput = \"\";\nlet currentOpenTag = null;\nlet currentProp = null;\nlet currentAttrValue = \"\";\nlet currentAttrStartIndex = -1;\nlet currentAttrEndIndex = -1;\nlet inPre = 0;\nlet inVPre = false;\nlet currentVPreBoundary = null;\nconst stack = [];\nconst tokenizer = new Tokenizer(stack, {\n onerr: emitError,\n ontext(start, end) {\n onText(getSlice(start, end), start, end);\n },\n ontextentity(char, start, end) {\n onText(char, start, end);\n },\n oninterpolation(start, end) {\n if (inVPre) {\n return onText(getSlice(start, end), start, end);\n }\n let innerStart = start + tokenizer.delimiterOpen.length;\n let innerEnd = end - tokenizer.delimiterClose.length;\n while (isWhitespace(currentInput.charCodeAt(innerStart))) {\n innerStart++;\n }\n while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) {\n innerEnd--;\n }\n let exp = getSlice(innerStart, innerEnd);\n if (exp.includes(\"&\")) {\n {\n exp = decode.decodeHTML(exp);\n }\n }\n addNode({\n type: 5,\n content: createExp(exp, false, getLoc(innerStart, innerEnd)),\n loc: getLoc(start, end)\n });\n },\n onopentagname(start, end) {\n const name = getSlice(start, end);\n currentOpenTag = {\n type: 1,\n tag: name,\n ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns),\n tagType: 0,\n // will be refined on tag close\n props: [],\n children: [],\n loc: getLoc(start - 1, end),\n codegenNode: void 0\n };\n },\n onopentagend(end) {\n endOpenTag(end);\n },\n onclosetag(start, end) {\n const name = getSlice(start, end);\n if (!currentOptions.isVoidTag(name)) {\n let found = false;\n for (let i = 0; i < stack.length; i++) {\n const e = stack[i];\n if (e.tag.toLowerCase() === name.toLowerCase()) {\n found = true;\n if (i > 0) {\n emitError(24, stack[0].loc.start.offset);\n }\n for (let j = 0; j <= i; j++) {\n const el = stack.shift();\n onCloseTag(el, end, j < i);\n }\n break;\n }\n }\n if (!found) {\n emitError(23, backTrack(start, 60));\n }\n }\n },\n onselfclosingtag(end) {\n const name = currentOpenTag.tag;\n currentOpenTag.isSelfClosing = true;\n endOpenTag(end);\n if (stack[0] && stack[0].tag === name) {\n onCloseTag(stack.shift(), end);\n }\n },\n onattribname(start, end) {\n currentProp = {\n type: 6,\n name: getSlice(start, end),\n nameLoc: getLoc(start, end),\n value: void 0,\n loc: getLoc(start)\n };\n },\n ondirname(start, end) {\n const raw = getSlice(start, end);\n const name = raw === \".\" || raw === \":\" ? \"bind\" : raw === \"@\" ? \"on\" : raw === \"#\" ? \"slot\" : raw.slice(2);\n if (!inVPre && name === \"\") {\n emitError(26, start);\n }\n if (inVPre || name === \"\") {\n currentProp = {\n type: 6,\n name: raw,\n nameLoc: getLoc(start, end),\n value: void 0,\n loc: getLoc(start)\n };\n } else {\n currentProp = {\n type: 7,\n name,\n rawName: raw,\n exp: void 0,\n arg: void 0,\n modifiers: raw === \".\" ? [createSimpleExpression(\"prop\")] : [],\n loc: getLoc(start)\n };\n if (name === \"pre\") {\n inVPre = tokenizer.inVPre = true;\n currentVPreBoundary = currentOpenTag;\n const props = currentOpenTag.props;\n for (let i = 0; i < props.length; i++) {\n if (props[i].type === 7) {\n props[i] = dirToAttr(props[i]);\n }\n }\n }\n }\n },\n ondirarg(start, end) {\n if (start === end) return;\n const arg = getSlice(start, end);\n if (inVPre && !isVPre(currentProp)) {\n currentProp.name += arg;\n setLocEnd(currentProp.nameLoc, end);\n } else {\n const isStatic = arg[0] !== `[`;\n currentProp.arg = createExp(\n isStatic ? arg : arg.slice(1, -1),\n isStatic,\n getLoc(start, end),\n isStatic ? 3 : 0\n );\n }\n },\n ondirmodifier(start, end) {\n const mod = getSlice(start, end);\n if (inVPre && !isVPre(currentProp)) {\n currentProp.name += \".\" + mod;\n setLocEnd(currentProp.nameLoc, end);\n } else if (currentProp.name === \"slot\") {\n const arg = currentProp.arg;\n if (arg) {\n arg.content += \".\" + mod;\n setLocEnd(arg.loc, end);\n }\n } else {\n const exp = createSimpleExpression(mod, true, getLoc(start, end));\n currentProp.modifiers.push(exp);\n }\n },\n onattribdata(start, end) {\n currentAttrValue += getSlice(start, end);\n if (currentAttrStartIndex < 0) currentAttrStartIndex = start;\n currentAttrEndIndex = end;\n },\n onattribentity(char, start, end) {\n currentAttrValue += char;\n if (currentAttrStartIndex < 0) currentAttrStartIndex = start;\n currentAttrEndIndex = end;\n },\n onattribnameend(end) {\n const start = currentProp.loc.start.offset;\n const name = getSlice(start, end);\n if (currentProp.type === 7) {\n currentProp.rawName = name;\n }\n if (currentOpenTag.props.some(\n (p) => (p.type === 7 ? p.rawName : p.name) === name\n )) {\n emitError(2, start);\n }\n },\n onattribend(quote, end) {\n if (currentOpenTag && currentProp) {\n setLocEnd(currentProp.loc, end);\n if (quote !== 0) {\n if (currentProp.type === 6) {\n if (currentProp.name === \"class\") {\n currentAttrValue = condense(currentAttrValue).trim();\n }\n if (quote === 1 && !currentAttrValue) {\n emitError(13, end);\n }\n currentProp.value = {\n type: 2,\n content: currentAttrValue,\n loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)\n };\n if (tokenizer.inSFCRoot && currentOpenTag.tag === \"template\" && currentProp.name === \"lang\" && currentAttrValue && currentAttrValue !== \"html\") {\n tokenizer.enterRCDATA(toCharCodes(`</template`), 0);\n }\n } else {\n let expParseMode = 0 /* Normal */;\n {\n if (currentProp.name === \"for\") {\n expParseMode = 3 /* Skip */;\n } else if (currentProp.name === \"slot\") {\n expParseMode = 1 /* Params */;\n } else if (currentProp.name === \"on\" && currentAttrValue.includes(\";\")) {\n expParseMode = 2 /* Statements */;\n }\n }\n currentProp.exp = createExp(\n currentAttrValue,\n false,\n getLoc(currentAttrStartIndex, currentAttrEndIndex),\n 0,\n expParseMode\n );\n if (currentProp.name === \"for\") {\n currentProp.forParseResult = parseForExpression(currentProp.exp);\n }\n let syncIndex = -1;\n if (currentProp.name === \"bind\" && (syncIndex = currentProp.modifiers.findIndex(\n (mod) => mod.content === \"sync\"\n )) > -1 && checkCompatEnabled(\n \"COMPILER_V_BIND_SYNC\",\n currentOptions,\n currentProp.loc,\n currentProp.arg.loc.source\n )) {\n currentProp.name = \"model\";\n currentProp.modifiers.splice(syncIndex, 1);\n }\n }\n }\n if (currentProp.type !== 7 || currentProp.name !== \"pre\") {\n currentOpenTag.props.push(currentProp);\n }\n }\n currentAttrValue = \"\";\n currentAttrStartIndex = currentAttrEndIndex = -1;\n },\n oncomment(start, end) {\n if (currentOptions.comments) {\n addNode({\n type: 3,\n content: getSlice(start, end),\n loc: getLoc(start - 4, end + 3)\n });\n }\n },\n onend() {\n const end = currentInput.length;\n if (tokenizer.state !== 1) {\n switch (tokenizer.state) {\n case 5:\n case 8:\n emitError(5, end);\n break;\n case 3:\n case 4:\n emitError(\n 25,\n tokenizer.sectionStart\n );\n break;\n case 28:\n if (tokenizer.currentSequence === Sequences.CdataEnd) {\n emitError(6, end);\n } else {\n emitError(7, end);\n }\n break;\n case 6:\n case 7:\n case 9:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n case 16:\n case 17:\n case 18:\n case 19:\n // \"\n case 20:\n // '\n case 21:\n emitError(9, end);\n break;\n }\n }\n for (let index = 0; index < stack.length; index++) {\n onCloseTag(stack[index], end - 1);\n emitError(24, stack[index].loc.start.offset);\n }\n },\n oncdata(start, end) {\n if ((stack[0] ? stack[0].ns : currentOptions.ns) !== 0) {\n onText(getSlice(start, end), start, end);\n } else {\n emitError(1, start - 9);\n }\n },\n onprocessinginstruction(start) {\n if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) {\n emitError(\n 21,\n start - 1\n );\n }\n }\n});\nconst forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nconst stripParensRE = /^\\(|\\)$/g;\nfunction parseForExpression(input) {\n const loc = input.loc;\n const exp = input.content;\n const inMatch = exp.match(forAliasRE);\n if (!inMatch) return;\n const [, LHS, RHS] = inMatch;\n const createAliasExpression = (content, offset, asParam = false) => {\n const start = loc.start.offset + offset;\n const end = start + content.length;\n return createExp(\n content,\n false,\n getLoc(start, end),\n 0,\n asParam ? 1 /* Params */ : 0 /* Normal */\n );\n };\n const result = {\n source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)),\n value: void 0,\n key: void 0,\n index: void 0,\n finalized: false\n };\n let valueContent = LHS.trim().replace(stripParensRE, \"\").trim();\n const trimmedOffset = LHS.indexOf(valueContent);\n const iteratorMatch = valueContent.match(forIteratorRE);\n if (iteratorMatch) {\n valueContent = valueContent.replace(forIteratorRE, \"\").trim();\n const keyContent = iteratorMatch[1].trim();\n let keyOffset;\n if (keyContent) {\n keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length);\n result.key = createAliasExpression(keyContent, keyOffset, true);\n }\n if (iteratorMatch[2]) {\n const indexContent = iteratorMatch[2].trim();\n if (indexContent) {\n result.index = createAliasExpression(\n indexContent,\n exp.indexOf(\n indexContent,\n result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length\n ),\n true\n );\n }\n }\n }\n if (valueContent) {\n result.value = createAliasExpression(valueContent, trimmedOffset, true);\n }\n return result;\n}\nfunction getSlice(start, end) {\n return currentInput.slice(start, end);\n}\nfunction endOpenTag(end) {\n if (tokenizer.inSFCRoot) {\n currentOpenTag.innerLoc = getLoc(end + 1, end + 1);\n }\n addNode(currentOpenTag);\n const { tag, ns } = currentOpenTag;\n if (ns === 0 && currentOptions.isPreTag(tag)) {\n inPre++;\n }\n if (currentOptions.isVoidTag(tag)) {\n onCloseTag(currentOpenTag, end);\n } else {\n stack.unshift(currentOpenTag);\n if (ns === 1 || ns === 2) {\n tokenizer.inXML = true;\n }\n }\n currentOpenTag = null;\n}\nfunction onText(content, start, end) {\n const parent = stack[0] || currentRoot;\n const lastNode = parent.children[parent.children.length - 1];\n if (lastNode && lastNode.type === 2) {\n lastNode.content += content;\n setLocEnd(lastNode.loc, end);\n } else {\n parent.children.push({\n type: 2,\n content,\n loc: getLoc(start, end)\n });\n }\n}\nfunction onCloseTag(el, end, isImplied = false) {\n if (isImplied) {\n setLocEnd(el.loc, backTrack(end, 60));\n } else {\n setLocEnd(el.loc, lookAhead(end, 62) + 1);\n }\n if (tokenizer.inSFCRoot) {\n if (el.children.length) {\n el.innerLoc.end = shared.extend({}, el.children[el.children.length - 1].loc.end);\n } else {\n el.innerLoc.end = shared.extend({}, el.innerLoc.start);\n }\n el.innerLoc.source = getSlice(\n el.innerLoc.start.offset,\n el.innerLoc.end.offset\n );\n }\n const { tag, ns, children } = el;\n if (!inVPre) {\n if (tag === \"slot\") {\n el.tagType = 2;\n } else if (isFragmentTemplate(el)) {\n el.tagType = 3;\n } else if (isComponent(el)) {\n el.tagType = 1;\n }\n }\n if (!tokenizer.inRCDATA) {\n el.children = condenseWhitespace(children);\n }\n if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) {\n const first = children[0];\n if (first && first.type === 2) {\n first.content = first.content.replace(/^\\r?\\n/, \"\");\n }\n }\n if (ns === 0 && currentOptions.isPreTag(tag)) {\n inPre--;\n }\n if (currentVPreBoundary === el) {\n inVPre = tokenizer.inVPre = false;\n currentVPreBoundary = null;\n }\n if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) {\n tokenizer.inXML = false;\n }\n {\n const props = el.props;\n if (!tokenizer.inSFCRoot && isCompatEnabled(\n \"COMPILER_NATIVE_TEMPLATE\",\n currentOptions\n ) && el.tag === \"template\" && !isFragmentTemplate(el)) {\n const parent = stack[0] || currentRoot;\n const index = parent.children.indexOf(el);\n parent.children.splice(index, 1, ...el.children);\n }\n const inlineTemplateProp = props.find(\n (p) => p.type === 6 && p.name === \"inline-template\"\n );\n if (inlineTemplateProp && checkCompatEnabled(\n \"COMPILER_INLINE_TEMPLATE\",\n currentOptions,\n inlineTemplateProp.loc\n ) && el.children.length) {\n inlineTemplateProp.value = {\n type: 2,\n content: getSlice(\n el.children[0].loc.start.offset,\n el.children[el.children.length - 1].loc.end.offset\n ),\n loc: inlineTemplateProp.loc\n };\n }\n }\n}\nfunction lookAhead(index, c) {\n let i = index;\n while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++;\n return i;\n}\nfunction backTrack(index, c) {\n let i = index;\n while (currentInput.charCodeAt(i) !== c && i >= 0) i--;\n return i;\n}\nconst specialTemplateDir = /* @__PURE__ */ new Set([\"if\", \"else\", \"else-if\", \"for\", \"slot\"]);\nfunction isFragmentTemplate({ tag, props }) {\n if (tag === \"template\") {\n for (let i = 0; i < props.length; i++) {\n if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) {\n return true;\n }\n }\n }\n return false;\n}\nfunction isComponent({ tag, props }) {\n if (currentOptions.isCustomElement(tag)) {\n return false;\n }\n if (tag === \"component\" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) {\n return true;\n }\n for (let i = 0; i < props.length; i++) {\n const p = props[i];\n if (p.type === 6) {\n if (p.name === \"is\" && p.value) {\n if (p.value.content.startsWith(\"vue:\")) {\n return true;\n } else if (checkCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n currentOptions,\n p.loc\n )) {\n return true;\n }\n }\n } else if (// :is on plain element - only treat as component in compat mode\n p.name === \"bind\" && isStaticArgOf(p.arg, \"is\") && checkCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n currentOptions,\n p.loc\n )) {\n return true;\n }\n }\n return false;\n}\nfunction isUpperCase(c) {\n return c > 64 && c < 91;\n}\nconst windowsNewlineRE = /\\r\\n/g;\nfunction condenseWhitespace(nodes) {\n const shouldCondense = currentOptions.whitespace !== \"preserve\";\n let removedWhitespace = false;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (node.type === 2) {\n if (!inPre) {\n if (isAllWhitespace(node.content)) {\n const prev = nodes[i - 1] && nodes[i - 1].type;\n const next = nodes[i + 1] && nodes[i + 1].type;\n if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {\n removedWhitespace = true;\n nodes[i] = null;\n } else {\n node.content = \" \";\n }\n } else if (shouldCondense) {\n node.content = condense(node.content);\n }\n } else {\n node.content = node.content.replace(windowsNewlineRE, \"\\n\");\n }\n }\n }\n return removedWhitespace ? nodes.filter(Boolean) : nodes;\n}\nfunction hasNewlineChar(str) {\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c === 10 || c === 13) {\n return true;\n }\n }\n return false;\n}\nfunction condense(str) {\n let ret = \"\";\n let prevCharIsWhitespace = false;\n for (let i = 0; i < str.length; i++) {\n if (isWhitespace(str.charCodeAt(i))) {\n if (!prevCharIsWhitespace) {\n ret += \" \";\n prevCharIsWhitespace = true;\n }\n } else {\n ret += str[i];\n prevCharIsWhitespace = false;\n }\n }\n return ret;\n}\nfunction addNode(node) {\n (stack[0] || currentRoot).children.push(node);\n}\nfunction getLoc(start, end) {\n return {\n start: tokenizer.getPos(start),\n // @ts-expect-error allow late attachment\n end: end == null ? end : tokenizer.getPos(end),\n // @ts-expect-error allow late attachment\n source: end == null ? end : getSlice(start, end)\n };\n}\nfunction cloneLoc(loc) {\n return getLoc(loc.start.offset, loc.end.offset);\n}\nfunction setLocEnd(loc, end) {\n loc.end = tokenizer.getPos(end);\n loc.source = getSlice(loc.start.offset, end);\n}\nfunction dirToAttr(dir) {\n const attr = {\n type: 6,\n name: dir.rawName,\n nameLoc: getLoc(\n dir.loc.start.offset,\n dir.loc.start.offset + dir.rawName.length\n ),\n value: void 0,\n loc: dir.loc\n };\n if (dir.exp) {\n const loc = dir.exp.loc;\n if (loc.end.offset < dir.loc.end.offset) {\n loc.start.offset--;\n loc.start.column--;\n loc.end.offset++;\n loc.end.column++;\n }\n attr.value = {\n type: 2,\n content: dir.exp.content,\n loc\n };\n }\n return attr;\n}\nfunction createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) {\n const exp = createSimpleExpression(content, isStatic, loc, constType);\n if (!isStatic && currentOptions.prefixIdentifiers && parseMode !== 3 /* Skip */ && content.trim()) {\n if (isSimpleIdentifier(content)) {\n exp.ast = null;\n return exp;\n }\n try {\n const plugins = currentOptions.expressionPlugins;\n const options = {\n plugins: plugins ? [...plugins, \"typescript\"] : [\"typescript\"]\n };\n if (parseMode === 2 /* Statements */) {\n exp.ast = parser.parse(` ${content} `, options).program;\n } else if (parseMode === 1 /* Params */) {\n exp.ast = parser.parseExpression(`(${content})=>{}`, options);\n } else {\n exp.ast = parser.parseExpression(`(${content})`, options);\n }\n } catch (e) {\n exp.ast = false;\n emitError(46, loc.start.offset, e.message);\n }\n }\n return exp;\n}\nfunction emitError(code, index, message) {\n currentOptions.onError(\n createCompilerError(code, getLoc(index, index), void 0, message)\n );\n}\nfunction reset() {\n tokenizer.reset();\n currentOpenTag = null;\n currentProp = null;\n currentAttrValue = \"\";\n currentAttrStartIndex = -1;\n currentAttrEndIndex = -1;\n stack.length = 0;\n}\nfunction baseParse(input, options) {\n reset();\n currentInput = input;\n currentOptions = shared.extend({}, defaultParserOptions);\n if (options) {\n let key;\n for (key in options) {\n if (options[key] != null) {\n currentOptions[key] = options[key];\n }\n }\n }\n tokenizer.mode = currentOptions.parseMode === \"html\" ? 1 : currentOptions.parseMode === \"sfc\" ? 2 : 0;\n tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2;\n const delimiters = options && options.delimiters;\n if (delimiters) {\n tokenizer.delimiterOpen = toCharCodes(delimiters[0]);\n tokenizer.delimiterClose = toCharCodes(delimiters[1]);\n }\n const root = currentRoot = createRoot([], input);\n tokenizer.parse(currentInput);\n root.loc = getLoc(0, input.length);\n root.children = condenseWhitespace(root.children);\n currentRoot = null;\n return root;\n}\n\nfunction cacheStatic(root, context) {\n walk(\n root,\n void 0,\n context,\n // Root node is unfortunately non-hoistable due to potential parent\n // fallthrough attributes.\n !!getSingleElementRoot(root)\n );\n}\nfunction getSingleElementRoot(root) {\n const children = root.children.filter((x) => x.type !== 3);\n return children.length === 1 && children[0].type === 1 && !isSlotOutlet(children[0]) ? children[0] : null;\n}\nfunction walk(node, parent, context, doNotHoistNode = false, inFor = false) {\n const { children } = node;\n const toCache = [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.type === 1 && child.tagType === 0) {\n const constantType = doNotHoistNode ? 0 : getConstantType(child, context);\n if (constantType > 0) {\n if (constantType >= 2) {\n child.codegenNode.patchFlag = -1;\n toCache.push(child);\n continue;\n }\n } else {\n const codegenNode = child.codegenNode;\n if (codegenNode.type === 13) {\n const flag = codegenNode.patchFlag;\n if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) {\n const props = getNodeProps(child);\n if (props) {\n codegenNode.props = context.hoist(props);\n }\n }\n if (codegenNode.dynamicProps) {\n codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps);\n }\n }\n }\n } else if (child.type === 12) {\n const constantType = doNotHoistNode ? 0 : getConstantType(child, context);\n if (constantType >= 2) {\n if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) {\n child.codegenNode.arguments.push(\n -1 + (``)\n );\n }\n toCache.push(child);\n continue;\n }\n }\n if (child.type === 1) {\n const isComponent = child.tagType === 1;\n if (isComponent) {\n context.scopes.vSlot++;\n }\n walk(child, node, context, false, inFor);\n if (isComponent) {\n context.scopes.vSlot--;\n }\n } else if (child.type === 11) {\n walk(child, node, context, child.children.length === 1, true);\n } else if (child.type === 9) {\n for (let i2 = 0; i2 < child.branches.length; i2++) {\n walk(\n child.branches[i2],\n node,\n context,\n child.branches[i2].children.length === 1,\n inFor\n );\n }\n }\n }\n let cachedAsArray = false;\n if (toCache.length === children.length && node.type === 1) {\n if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && shared.isArray(node.codegenNode.children)) {\n node.codegenNode.children = getCacheExpression(\n createArrayExpression(node.codegenNode.children)\n );\n cachedAsArray = true;\n } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !shared.isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) {\n const slot = getSlotNode(node.codegenNode, \"default\");\n if (slot) {\n slot.returns = getCacheExpression(\n createArrayExpression(slot.returns)\n );\n cachedAsArray = true;\n }\n } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !shared.isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) {\n const slotName = findDir(node, \"slot\", true);\n const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg);\n if (slot) {\n slot.returns = getCacheExpression(\n createArrayExpression(slot.returns)\n );\n cachedAsArray = true;\n }\n }\n }\n if (!cachedAsArray) {\n for (const child of toCache) {\n child.codegenNode = context.cache(child.codegenNode);\n }\n }\n function getCacheExpression(value) {\n const exp = context.cache(value);\n exp.needArraySpread = true;\n return exp;\n }\n function getSlotNode(node2, name) {\n if (node2.children && !shared.isArray(node2.children) && node2.children.type === 15) {\n const slot = node2.children.properties.find(\n (p) => p.key === name || p.key.content === name\n );\n return slot && slot.value;\n }\n }\n if (toCache.length && context.transformHoist) {\n context.transformHoist(children, context, node);\n }\n}\nfunction getConstantType(node, context) {\n const { constantCache } = context;\n switch (node.type) {\n case 1:\n if (node.tagType !== 0) {\n return 0;\n }\n const cached = constantCache.get(node);\n if (cached !== void 0) {\n return cached;\n }\n const codegenNode = node.codegenNode;\n if (codegenNode.type !== 13) {\n return 0;\n }\n if (codegenNode.isBlock && node.tag !== \"svg\" && node.tag !== \"foreignObject\" && node.tag !== \"math\") {\n return 0;\n }\n if (codegenNode.patchFlag === void 0) {\n let returnType2 = 3;\n const generatedPropsType = getGeneratedPropsConstantType(node, context);\n if (generatedPropsType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (generatedPropsType < returnType2) {\n returnType2 = generatedPropsType;\n }\n for (let i = 0; i < node.children.length; i++) {\n const childType = getConstantType(node.children[i], context);\n if (childType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (childType < returnType2) {\n returnType2 = childType;\n }\n }\n if (returnType2 > 1) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && p.name === \"bind\" && p.exp) {\n const expType = getConstantType(p.exp, context);\n if (expType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (expType < returnType2) {\n returnType2 = expType;\n }\n }\n }\n }\n if (codegenNode.isBlock) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7) {\n constantCache.set(node, 0);\n return 0;\n }\n }\n context.removeHelper(OPEN_BLOCK);\n context.removeHelper(\n getVNodeBlockHelper(context.inSSR, codegenNode.isComponent)\n );\n codegenNode.isBlock = false;\n context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent));\n }\n constantCache.set(node, returnType2);\n return returnType2;\n } else {\n constantCache.set(node, 0);\n return 0;\n }\n case 2:\n case 3:\n return 3;\n case 9:\n case 11:\n case 10:\n return 0;\n case 5:\n case 12:\n return getConstantType(node.content, context);\n case 4:\n return node.constType;\n case 8:\n let returnType = 3;\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (shared.isString(child) || shared.isSymbol(child)) {\n continue;\n }\n const childType = getConstantType(child, context);\n if (childType === 0) {\n return 0;\n } else if (childType < returnType) {\n returnType = childType;\n }\n }\n return returnType;\n case 20:\n return 2;\n default:\n return 0;\n }\n}\nconst allowHoistedHelperSet = /* @__PURE__ */ new Set([\n NORMALIZE_CLASS,\n NORMALIZE_STYLE,\n NORMALIZE_PROPS,\n GUARD_REACTIVE_PROPS\n]);\nfunction getConstantTypeOfHelperCall(value, context) {\n if (value.type === 14 && !shared.isString(value.callee) && allowHoistedHelperSet.has(value.callee)) {\n const arg = value.arguments[0];\n if (arg.type === 4) {\n return getConstantType(arg, context);\n } else if (arg.type === 14) {\n return getConstantTypeOfHelperCall(arg, context);\n }\n }\n return 0;\n}\nfunction getGeneratedPropsConstantType(node, context) {\n let returnType = 3;\n const props = getNodeProps(node);\n if (props && props.type === 15) {\n const { properties } = props;\n for (let i = 0; i < properties.length; i++) {\n const { key, value } = properties[i];\n const keyType = getConstantType(key, context);\n if (keyType === 0) {\n return keyType;\n }\n if (keyType < returnType) {\n returnType = keyType;\n }\n let valueType;\n if (value.type === 4) {\n valueType = getConstantType(value, context);\n } else if (value.type === 14) {\n valueType = getConstantTypeOfHelperCall(value, context);\n } else {\n valueType = 0;\n }\n if (valueType === 0) {\n return valueType;\n }\n if (valueType < returnType) {\n returnType = valueType;\n }\n }\n }\n return returnType;\n}\nfunction getNodeProps(node) {\n const codegenNode = node.codegenNode;\n if (codegenNode.type === 13) {\n return codegenNode.props;\n }\n}\n\nfunction createTransformContext(root, {\n filename = \"\",\n prefixIdentifiers = false,\n hoistStatic = false,\n hmr = false,\n cacheHandlers = false,\n nodeTransforms = [],\n directiveTransforms = {},\n transformHoist = null,\n isBuiltInComponent = shared.NOOP,\n isCustomElement = shared.NOOP,\n expressionPlugins = [],\n scopeId = null,\n slotted = true,\n ssr = false,\n inSSR = false,\n ssrCssVars = ``,\n bindingMetadata = shared.EMPTY_OBJ,\n inline = false,\n isTS = false,\n onError = defaultOnError,\n onWarn = defaultOnWarn,\n compatConfig\n}) {\n const nameMatch = filename.replace(/\\?.*$/, \"\").match(/([^/\\\\]+)\\.\\w+$/);\n const context = {\n // options\n filename,\n selfName: nameMatch && shared.capitalize(shared.camelize(nameMatch[1])),\n prefixIdentifiers,\n hoistStatic,\n hmr,\n cacheHandlers,\n nodeTransforms,\n directiveTransforms,\n transformHoist,\n isBuiltInComponent,\n isCustomElement,\n expressionPlugins,\n scopeId,\n slotted,\n ssr,\n inSSR,\n ssrCssVars,\n bindingMetadata,\n inline,\n isTS,\n onError,\n onWarn,\n compatConfig,\n // state\n root,\n helpers: /* @__PURE__ */ new Map(),\n components: /* @__PURE__ */ new Set(),\n directives: /* @__PURE__ */ new Set(),\n hoists: [],\n imports: [],\n cached: [],\n constantCache: /* @__PURE__ */ new WeakMap(),\n vForMemoKeyedNodes: /* @__PURE__ */ new WeakSet(),\n temps: 0,\n identifiers: /* @__PURE__ */ Object.create(null),\n scopes: {\n vFor: 0,\n vSlot: 0,\n vPre: 0,\n vOnce: 0\n },\n parent: null,\n grandParent: null,\n currentNode: root,\n childIndex: 0,\n inVOnce: false,\n // methods\n helper(name) {\n const count = context.helpers.get(name) || 0;\n context.helpers.set(name, count + 1);\n return name;\n },\n removeHelper(name) {\n const count = context.helpers.get(name);\n if (count) {\n const currentCount = count - 1;\n if (!currentCount) {\n context.helpers.delete(name);\n } else {\n context.helpers.set(name, currentCount);\n }\n }\n },\n helperString(name) {\n return `_${helperNameMap[context.helper(name)]}`;\n },\n replaceNode(node) {\n context.parent.children[context.childIndex] = context.currentNode = node;\n },\n removeNode(node) {\n const list = context.parent.children;\n const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1;\n if (!node || node === context.currentNode) {\n context.currentNode = null;\n context.onNodeRemoved();\n } else {\n if (context.childIndex > removalIndex) {\n context.childIndex--;\n context.onNodeRemoved();\n }\n }\n context.parent.children.splice(removalIndex, 1);\n },\n onNodeRemoved: shared.NOOP,\n addIdentifiers(exp) {\n {\n if (shared.isString(exp)) {\n addId(exp);\n } else if (exp.identifiers) {\n exp.identifiers.forEach(addId);\n } else if (exp.type === 4) {\n addId(exp.content);\n }\n }\n },\n removeIdentifiers(exp) {\n {\n if (shared.isString(exp)) {\n removeId(exp);\n } else if (exp.identifiers) {\n exp.identifiers.forEach(removeId);\n } else if (exp.type === 4) {\n removeId(exp.content);\n }\n }\n },\n hoist(exp) {\n if (shared.isString(exp)) exp = createSimpleExpression(exp);\n context.hoists.push(exp);\n const identifier = createSimpleExpression(\n `_hoisted_${context.hoists.length}`,\n false,\n exp.loc,\n 2\n );\n identifier.hoisted = exp;\n return identifier;\n },\n cache(exp, isVNode = false, inVOnce = false) {\n const cacheExp = createCacheExpression(\n context.cached.length,\n exp,\n isVNode,\n inVOnce\n );\n context.cached.push(cacheExp);\n return cacheExp;\n }\n };\n {\n context.filters = /* @__PURE__ */ new Set();\n }\n function addId(id) {\n const { identifiers } = context;\n if (identifiers[id] === void 0) {\n identifiers[id] = 0;\n }\n identifiers[id]++;\n }\n function removeId(id) {\n context.identifiers[id]--;\n }\n return context;\n}\nfunction transform(root, options) {\n const context = createTransformContext(root, options);\n traverseNode(root, context);\n if (options.hoistStatic) {\n cacheStatic(root, context);\n }\n if (!options.ssr) {\n createRootCodegen(root, context);\n }\n root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);\n root.components = [...context.components];\n root.directives = [...context.directives];\n root.imports = context.imports;\n root.hoists = context.hoists;\n root.temps = context.temps;\n root.cached = context.cached;\n root.transformed = true;\n {\n root.filters = [...context.filters];\n }\n}\nfunction createRootCodegen(root, context) {\n const { helper } = context;\n const { children } = root;\n if (children.length === 1) {\n const singleElementRootChild = getSingleElementRoot(root);\n if (singleElementRootChild && singleElementRootChild.codegenNode) {\n const codegenNode = singleElementRootChild.codegenNode;\n if (codegenNode.type === 13) {\n convertToBlock(codegenNode, context);\n }\n root.codegenNode = codegenNode;\n } else {\n root.codegenNode = children[0];\n }\n } else if (children.length > 1) {\n let patchFlag = 64;\n root.codegenNode = createVNodeCall(\n context,\n helper(FRAGMENT),\n void 0,\n root.children,\n patchFlag,\n void 0,\n void 0,\n true,\n void 0,\n false\n );\n } else ;\n}\nfunction traverseChildren(parent, context) {\n let i = 0;\n const nodeRemoved = () => {\n i--;\n };\n for (; i < parent.children.length; i++) {\n const child = parent.children[i];\n if (shared.isString(child)) continue;\n context.grandParent = context.parent;\n context.parent = parent;\n context.childIndex = i;\n context.onNodeRemoved = nodeRemoved;\n traverseNode(child, context);\n }\n}\nfunction traverseNode(node, context) {\n context.currentNode = node;\n const { nodeTransforms } = context;\n const exitFns = [];\n for (let i2 = 0; i2 < nodeTransforms.length; i2++) {\n const onExit = nodeTransforms[i2](node, context);\n if (onExit) {\n if (shared.isArray(onExit)) {\n exitFns.push(...onExit);\n } else {\n exitFns.push(onExit);\n }\n }\n if (!context.currentNode) {\n return;\n } else {\n node = context.currentNode;\n }\n }\n switch (node.type) {\n case 3:\n if (!context.ssr) {\n context.helper(CREATE_COMMENT);\n }\n break;\n case 5:\n if (!context.ssr) {\n context.helper(TO_DISPLAY_STRING);\n }\n break;\n // for container types, further traverse downwards\n case 9:\n for (let i2 = 0; i2 < node.branches.length; i2++) {\n traverseNode(node.branches[i2], context);\n }\n break;\n case 10:\n case 11:\n case 1:\n case 0:\n traverseChildren(node, context);\n break;\n }\n context.currentNode = node;\n let i = exitFns.length;\n while (i--) {\n exitFns[i]();\n }\n}\nfunction createStructuralDirectiveTransform(name, fn) {\n const matches = shared.isString(name) ? (n) => n === name : (n) => name.test(n);\n return (node, context) => {\n if (node.type === 1) {\n const { props } = node;\n if (node.tagType === 3 && props.some(isVSlot)) {\n return;\n }\n const exitFns = [];\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (prop.type === 7 && matches(prop.name)) {\n props.splice(i, 1);\n i--;\n const onExit = fn(node, prop, context);\n if (onExit) exitFns.push(onExit);\n }\n }\n return exitFns;\n }\n };\n}\n\nconst PURE_ANNOTATION = `/*@__PURE__*/`;\nconst aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`;\nfunction createCodegenContext(ast, {\n mode = \"function\",\n prefixIdentifiers = mode === \"module\",\n sourceMap = false,\n filename = `template.vue.html`,\n scopeId = null,\n optimizeImports = false,\n runtimeGlobalName = `Vue`,\n runtimeModuleName = `vue`,\n ssrRuntimeModuleName = \"vue/server-renderer\",\n ssr = false,\n isTS = false,\n inSSR = false\n}) {\n const context = {\n mode,\n prefixIdentifiers,\n sourceMap,\n filename,\n scopeId,\n optimizeImports,\n runtimeGlobalName,\n runtimeModuleName,\n ssrRuntimeModuleName,\n ssr,\n isTS,\n inSSR,\n source: ast.source,\n code: ``,\n column: 1,\n line: 1,\n offset: 0,\n indentLevel: 0,\n pure: false,\n map: void 0,\n helper(key) {\n return `_${helperNameMap[key]}`;\n },\n push(code, newlineIndex = -2 /* None */, node) {\n context.code += code;\n if (context.map) {\n if (node) {\n let name;\n if (node.type === 4 && !node.isStatic) {\n const content = node.content.replace(/^_ctx\\./, \"\");\n if (content !== node.content && isSimpleIdentifier(content)) {\n name = content;\n }\n }\n if (node.loc.source) {\n addMapping(node.loc.start, name);\n }\n }\n if (newlineIndex === -3 /* Unknown */) {\n advancePositionWithMutation(context, code);\n } else {\n context.offset += code.length;\n if (newlineIndex === -2 /* None */) {\n context.column += code.length;\n } else {\n if (newlineIndex === -1 /* End */) {\n newlineIndex = code.length - 1;\n }\n context.line++;\n context.column = code.length - newlineIndex;\n }\n }\n if (node && node.loc !== locStub && node.loc.source) {\n addMapping(node.loc.end);\n }\n }\n },\n indent() {\n newline(++context.indentLevel);\n },\n deindent(withoutNewLine = false) {\n if (withoutNewLine) {\n --context.indentLevel;\n } else {\n newline(--context.indentLevel);\n }\n },\n newline() {\n newline(context.indentLevel);\n }\n };\n function newline(n) {\n context.push(\"\\n\" + ` `.repeat(n), 0 /* Start */);\n }\n function addMapping(loc, name = null) {\n const { _names, _mappings } = context.map;\n if (name !== null && !_names.has(name)) _names.add(name);\n _mappings.add({\n originalLine: loc.line,\n originalColumn: loc.column - 1,\n // source-map column is 0 based\n generatedLine: context.line,\n generatedColumn: context.column - 1,\n source: filename,\n name\n });\n }\n if (sourceMap) {\n context.map = new sourceMapJs.SourceMapGenerator();\n context.map.setSourceContent(filename, context.source);\n context.map._sources.add(filename);\n }\n return context;\n}\nfunction generate(ast, options = {}) {\n const context = createCodegenContext(ast, options);\n if (options.onContextCreated) options.onContextCreated(context);\n const {\n mode,\n push,\n prefixIdentifiers,\n indent,\n deindent,\n newline,\n scopeId,\n ssr\n } = context;\n const helpers = Array.from(ast.helpers);\n const hasHelpers = helpers.length > 0;\n const useWithBlock = !prefixIdentifiers && mode !== \"module\";\n const genScopeId = scopeId != null && mode === \"module\";\n const isSetupInlined = !!options.inline;\n const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context;\n if (mode === \"module\") {\n genModulePreamble(ast, preambleContext, genScopeId, isSetupInlined);\n } else {\n genFunctionPreamble(ast, preambleContext);\n }\n const functionName = ssr ? `ssrRender` : `render`;\n const args = ssr ? [\"_ctx\", \"_push\", \"_parent\", \"_attrs\"] : [\"_ctx\", \"_cache\"];\n if (options.bindingMetadata && !options.inline) {\n args.push(\"$props\", \"$setup\", \"$data\", \"$options\");\n }\n const signature = options.isTS ? args.map((arg) => `${arg}: any`).join(\",\") : args.join(\", \");\n if (isSetupInlined) {\n push(`(${signature}) => {`);\n } else {\n push(`function ${functionName}(${signature}) {`);\n }\n indent();\n if (useWithBlock) {\n push(`with (_ctx) {`);\n indent();\n if (hasHelpers) {\n push(\n `const { ${helpers.map(aliasHelper).join(\", \")} } = _Vue\n`,\n -1 /* End */\n );\n newline();\n }\n }\n if (ast.components.length) {\n genAssets(ast.components, \"component\", context);\n if (ast.directives.length || ast.temps > 0) {\n newline();\n }\n }\n if (ast.directives.length) {\n genAssets(ast.directives, \"directive\", context);\n if (ast.temps > 0) {\n newline();\n }\n }\n if (ast.filters && ast.filters.length) {\n newline();\n genAssets(ast.filters, \"filter\", context);\n newline();\n }\n if (ast.temps > 0) {\n push(`let `);\n for (let i = 0; i < ast.temps; i++) {\n push(`${i > 0 ? `, ` : ``}_temp${i}`);\n }\n }\n if (ast.components.length || ast.directives.length || ast.temps) {\n push(`\n`, 0 /* Start */);\n newline();\n }\n if (!ssr) {\n push(`return `);\n }\n if (ast.codegenNode) {\n genNode(ast.codegenNode, context);\n } else {\n push(`null`);\n }\n if (useWithBlock) {\n deindent();\n push(`}`);\n }\n deindent();\n push(`}`);\n return {\n ast,\n code: context.code,\n preamble: isSetupInlined ? preambleContext.code : ``,\n map: context.map ? context.map.toJSON() : void 0\n };\n}\nfunction genFunctionPreamble(ast, context) {\n const {\n ssr,\n prefixIdentifiers,\n push,\n newline,\n runtimeModuleName,\n runtimeGlobalName,\n ssrRuntimeModuleName\n } = context;\n const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;\n const helpers = Array.from(ast.helpers);\n if (helpers.length > 0) {\n if (prefixIdentifiers) {\n push(\n `const { ${helpers.map(aliasHelper).join(\", \")} } = ${VueBinding}\n`,\n -1 /* End */\n );\n } else {\n push(`const _Vue = ${VueBinding}\n`, -1 /* End */);\n if (ast.hoists.length) {\n const staticHelpers = [\n CREATE_VNODE,\n CREATE_ELEMENT_VNODE,\n CREATE_COMMENT,\n CREATE_TEXT,\n CREATE_STATIC\n ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(\", \");\n push(`const { ${staticHelpers} } = _Vue\n`, -1 /* End */);\n }\n }\n }\n if (ast.ssrHelpers && ast.ssrHelpers.length) {\n push(\n `const { ${ast.ssrHelpers.map(aliasHelper).join(\", \")} } = require(\"${ssrRuntimeModuleName}\")\n`,\n -1 /* End */\n );\n }\n genHoists(ast.hoists, context);\n newline();\n push(`return `);\n}\nfunction genModulePreamble(ast, context, genScopeId, inline) {\n const {\n push,\n newline,\n optimizeImports,\n runtimeModuleName,\n ssrRuntimeModuleName\n } = context;\n if (ast.helpers.size) {\n const helpers = Array.from(ast.helpers);\n if (optimizeImports) {\n push(\n `import { ${helpers.map((s) => helperNameMap[s]).join(\", \")} } from ${JSON.stringify(runtimeModuleName)}\n`,\n -1 /* End */\n );\n push(\n `\n// Binding optimization for webpack code-split\nconst ${helpers.map((s) => `_${helperNameMap[s]} = ${helperNameMap[s]}`).join(\", \")}\n`,\n -1 /* End */\n );\n } else {\n push(\n `import { ${helpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(\", \")} } from ${JSON.stringify(runtimeModuleName)}\n`,\n -1 /* End */\n );\n }\n }\n if (ast.ssrHelpers && ast.ssrHelpers.length) {\n push(\n `import { ${ast.ssrHelpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(\", \")} } from \"${ssrRuntimeModuleName}\"\n`,\n -1 /* End */\n );\n }\n if (ast.imports.length) {\n genImports(ast.imports, context);\n newline();\n }\n genHoists(ast.hoists, context);\n newline();\n if (!inline) {\n push(`export `);\n }\n}\nfunction genAssets(assets, type, { helper, push, newline, isTS }) {\n const resolver = helper(\n type === \"filter\" ? RESOLVE_FILTER : type === \"component\" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE\n );\n for (let i = 0; i < assets.length; i++) {\n let id = assets[i];\n const maybeSelfReference = id.endsWith(\"__self\");\n if (maybeSelfReference) {\n id = id.slice(0, -6);\n }\n push(\n `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}`\n );\n if (i < assets.length - 1) {\n newline();\n }\n }\n}\nfunction genHoists(hoists, context) {\n if (!hoists.length) {\n return;\n }\n context.pure = true;\n const { push, newline } = context;\n newline();\n for (let i = 0; i < hoists.length; i++) {\n const exp = hoists[i];\n if (exp) {\n push(`const _hoisted_${i + 1} = `);\n genNode(exp, context);\n newline();\n }\n }\n context.pure = false;\n}\nfunction genImports(importsOptions, context) {\n if (!importsOptions.length) {\n return;\n }\n importsOptions.forEach((imports) => {\n context.push(`import `);\n genNode(imports.exp, context);\n context.push(` from '${imports.path}'`);\n context.newline();\n });\n}\nfunction isText(n) {\n return shared.isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8;\n}\nfunction genNodeListAsArray(nodes, context) {\n const multilines = nodes.length > 3 || nodes.some((n) => shared.isArray(n) || !isText(n));\n context.push(`[`);\n multilines && context.indent();\n genNodeList(nodes, context, multilines);\n multilines && context.deindent();\n context.push(`]`);\n}\nfunction genNodeList(nodes, context, multilines = false, comma = true) {\n const { push, newline } = context;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (shared.isString(node)) {\n push(node, -3 /* Unknown */);\n } else if (shared.isArray(node)) {\n genNodeListAsArray(node, context);\n } else {\n genNode(node, context);\n }\n if (i < nodes.length - 1) {\n if (multilines) {\n comma && push(\",\");\n newline();\n } else {\n comma && push(\", \");\n }\n }\n }\n}\nfunction genNode(node, context) {\n if (shared.isString(node)) {\n context.push(node, -3 /* Unknown */);\n return;\n }\n if (shared.isSymbol(node)) {\n context.push(context.helper(node));\n return;\n }\n switch (node.type) {\n case 1:\n case 9:\n case 11:\n genNode(node.codegenNode, context);\n break;\n case 2:\n genText(node, context);\n break;\n case 4:\n genExpression(node, context);\n break;\n case 5:\n genInterpolation(node, context);\n break;\n case 12:\n genNode(node.codegenNode, context);\n break;\n case 8:\n genCompoundExpression(node, context);\n break;\n case 3:\n genComment(node, context);\n break;\n case 13:\n genVNodeCall(node, context);\n break;\n case 14:\n genCallExpression(node, context);\n break;\n case 15:\n genObjectExpression(node, context);\n break;\n case 17:\n genArrayExpression(node, context);\n break;\n case 18:\n genFunctionExpression(node, context);\n break;\n case 19:\n genConditionalExpression(node, context);\n break;\n case 20:\n genCacheExpression(node, context);\n break;\n case 21:\n genNodeList(node.body, context, true, false);\n break;\n // SSR only types\n case 22:\n genTemplateLiteral(node, context);\n break;\n case 23:\n genIfStatement(node, context);\n break;\n case 24:\n genAssignmentExpression(node, context);\n break;\n case 25:\n genSequenceExpression(node, context);\n break;\n case 26:\n genReturnStatement(node, context);\n break;\n }\n}\nfunction genText(node, context) {\n context.push(JSON.stringify(node.content), -3 /* Unknown */, node);\n}\nfunction genExpression(node, context) {\n const { content, isStatic } = node;\n context.push(\n isStatic ? JSON.stringify(content) : content,\n -3 /* Unknown */,\n node\n );\n}\nfunction genInterpolation(node, context) {\n const { push, helper, pure } = context;\n if (pure) push(PURE_ANNOTATION);\n push(`${helper(TO_DISPLAY_STRING)}(`);\n genNode(node.content, context);\n push(`)`);\n}\nfunction genCompoundExpression(node, context) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (shared.isString(child)) {\n context.push(child, -3 /* Unknown */);\n } else {\n genNode(child, context);\n }\n }\n}\nfunction genExpressionAsPropertyKey(node, context) {\n const { push } = context;\n if (node.type === 8) {\n push(`[`);\n genCompoundExpression(node, context);\n push(`]`);\n } else if (node.isStatic) {\n const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content);\n push(text, -2 /* None */, node);\n } else {\n push(`[${node.content}]`, -3 /* Unknown */, node);\n }\n}\nfunction genComment(node, context) {\n const { push, helper, pure } = context;\n if (pure) {\n push(PURE_ANNOTATION);\n }\n push(\n `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`,\n -3 /* Unknown */,\n node\n );\n}\nfunction genVNodeCall(node, context) {\n const { push, helper, pure } = context;\n const {\n tag,\n props,\n children,\n patchFlag,\n dynamicProps,\n directives,\n isBlock,\n disableTracking,\n isComponent\n } = node;\n let patchFlagString;\n if (patchFlag) {\n {\n patchFlagString = String(patchFlag);\n }\n }\n if (directives) {\n push(helper(WITH_DIRECTIVES) + `(`);\n }\n if (isBlock) {\n push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);\n }\n if (pure) {\n push(PURE_ANNOTATION);\n }\n const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent);\n push(helper(callHelper) + `(`, -2 /* None */, node);\n genNodeList(\n genNullableArgs([tag, props, children, patchFlagString, dynamicProps]),\n context\n );\n push(`)`);\n if (isBlock) {\n push(`)`);\n }\n if (directives) {\n push(`, `);\n genNode(directives, context);\n push(`)`);\n }\n}\nfunction genNullableArgs(args) {\n let i = args.length;\n while (i--) {\n if (args[i] != null) break;\n }\n return args.slice(0, i + 1).map((arg) => arg || `null`);\n}\nfunction genCallExpression(node, context) {\n const { push, helper, pure } = context;\n const callee = shared.isString(node.callee) ? node.callee : helper(node.callee);\n if (pure) {\n push(PURE_ANNOTATION);\n }\n push(callee + `(`, -2 /* None */, node);\n genNodeList(node.arguments, context);\n push(`)`);\n}\nfunction genObjectExpression(node, context) {\n const { push, indent, deindent, newline } = context;\n const { properties } = node;\n if (!properties.length) {\n push(`{}`, -2 /* None */, node);\n return;\n }\n const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4);\n push(multilines ? `{` : `{ `);\n multilines && indent();\n for (let i = 0; i < properties.length; i++) {\n const { key, value } = properties[i];\n genExpressionAsPropertyKey(key, context);\n push(`: `);\n genNode(value, context);\n if (i < properties.length - 1) {\n push(`,`);\n newline();\n }\n }\n multilines && deindent();\n push(multilines ? `}` : ` }`);\n}\nfunction genArrayExpression(node, context) {\n genNodeListAsArray(node.elements, context);\n}\nfunction genFunctionExpression(node, context) {\n const { push, indent, deindent } = context;\n const { params, returns, body, newline, isSlot } = node;\n if (isSlot) {\n push(`_${helperNameMap[WITH_CTX]}(`);\n }\n push(`(`, -2 /* None */, node);\n if (shared.isArray(params)) {\n genNodeList(params, context);\n } else if (params) {\n genNode(params, context);\n }\n push(`) => `);\n if (newline || body) {\n push(`{`);\n indent();\n }\n if (returns) {\n if (newline) {\n push(`return `);\n }\n if (shared.isArray(returns)) {\n genNodeListAsArray(returns, context);\n } else {\n genNode(returns, context);\n }\n } else if (body) {\n genNode(body, context);\n }\n if (newline || body) {\n deindent();\n push(`}`);\n }\n if (isSlot) {\n if (node.isNonScopedSlot) {\n push(`, undefined, true`);\n }\n push(`)`);\n }\n}\nfunction genConditionalExpression(node, context) {\n const { test, consequent, alternate, newline: needNewline } = node;\n const { push, indent, deindent, newline } = context;\n if (test.type === 4) {\n const needsParens = !isSimpleIdentifier(test.content);\n needsParens && push(`(`);\n genExpression(test, context);\n needsParens && push(`)`);\n } else {\n push(`(`);\n genNode(test, context);\n push(`)`);\n }\n needNewline && indent();\n context.indentLevel++;\n needNewline || push(` `);\n push(`? `);\n genNode(consequent, context);\n context.indentLevel--;\n needNewline && newline();\n needNewline || push(` `);\n push(`: `);\n const isNested = alternate.type === 19;\n if (!isNested) {\n context.indentLevel++;\n }\n genNode(alternate, context);\n if (!isNested) {\n context.indentLevel--;\n }\n needNewline && deindent(\n true\n /* without newline */\n );\n}\nfunction genCacheExpression(node, context) {\n const { push, helper, indent, deindent, newline } = context;\n const { needPauseTracking, needArraySpread } = node;\n if (needArraySpread) {\n push(`[...(`);\n }\n push(`_cache[${node.index}] || (`);\n if (needPauseTracking) {\n indent();\n push(`${helper(SET_BLOCK_TRACKING)}(-1`);\n if (node.inVOnce) push(`, true`);\n push(`),`);\n newline();\n push(`(`);\n }\n push(`_cache[${node.index}] = `);\n genNode(node.value, context);\n if (needPauseTracking) {\n push(`).cacheIndex = ${node.index},`);\n newline();\n push(`${helper(SET_BLOCK_TRACKING)}(1),`);\n newline();\n push(`_cache[${node.index}]`);\n deindent();\n }\n push(`)`);\n if (needArraySpread) {\n push(`)]`);\n }\n}\nfunction genTemplateLiteral(node, context) {\n const { push, indent, deindent } = context;\n push(\"`\");\n const l = node.elements.length;\n const multilines = l > 3;\n for (let i = 0; i < l; i++) {\n const e = node.elements[i];\n if (shared.isString(e)) {\n push(e.replace(/(`|\\$|\\\\)/g, \"\\\\$1\"), -3 /* Unknown */);\n } else {\n push(\"${\");\n if (multilines) indent();\n genNode(e, context);\n if (multilines) deindent();\n push(\"}\");\n }\n }\n push(\"`\");\n}\nfunction genIfStatement(node, context) {\n const { push, indent, deindent } = context;\n const { test, consequent, alternate } = node;\n push(`if (`);\n genNode(test, context);\n push(`) {`);\n indent();\n genNode(consequent, context);\n deindent();\n push(`}`);\n if (alternate) {\n push(` else `);\n if (alternate.type === 23) {\n genIfStatement(alternate, context);\n } else {\n push(`{`);\n indent();\n genNode(alternate, context);\n deindent();\n push(`}`);\n }\n }\n}\nfunction genAssignmentExpression(node, context) {\n genNode(node.left, context);\n context.push(` = `);\n genNode(node.right, context);\n}\nfunction genSequenceExpression(node, context) {\n context.push(`(`);\n genNodeList(node.expressions, context);\n context.push(`)`);\n}\nfunction genReturnStatement({ returns }, context) {\n context.push(`return `);\n if (shared.isArray(returns)) {\n genNodeListAsArray(returns, context);\n } else {\n genNode(returns, context);\n }\n}\n\nconst isLiteralWhitelisted = /* @__PURE__ */ shared.makeMap(\"true,false,null,this\");\nconst transformExpression = (node, context) => {\n if (node.type === 5) {\n node.content = processExpression(\n node.content,\n context\n );\n } else if (node.type === 1) {\n const memo = findDir(node, \"memo\");\n for (let i = 0; i < node.props.length; i++) {\n const dir = node.props[i];\n if (dir.type === 7 && dir.name !== \"for\") {\n const exp = dir.exp;\n const arg = dir.arg;\n if (exp && exp.type === 4 && !(dir.name === \"on\" && arg) && // key has been processed in transformFor(vMemo + vFor)\n !(memo && context.vForMemoKeyedNodes.has(node) && arg && arg.type === 4 && arg.content === \"key\")) {\n dir.exp = processExpression(\n exp,\n context,\n // slot args must be processed as function params\n dir.name === \"slot\"\n );\n }\n if (arg && arg.type === 4 && !arg.isStatic) {\n dir.arg = processExpression(arg, context);\n }\n }\n }\n }\n};\nfunction processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) {\n if (!context.prefixIdentifiers || !node.content.trim()) {\n return node;\n }\n const { inline, bindingMetadata } = context;\n const rewriteIdentifier = (raw, parent, id) => {\n const type = shared.hasOwn(bindingMetadata, raw) && bindingMetadata[raw];\n if (inline) {\n const isAssignmentLVal = parent && parent.type === \"AssignmentExpression\" && parent.left === id;\n const isUpdateArg = parent && parent.type === \"UpdateExpression\" && parent.argument === id;\n const isDestructureAssignment = parent && isInDestructureAssignment(parent, parentStack);\n const isNewExpression = parent && isInNewExpression(parentStack);\n const wrapWithUnref = (raw2) => {\n const wrapped = `${context.helperString(UNREF)}(${raw2})`;\n return isNewExpression ? `(${wrapped})` : wrapped;\n };\n if (isConst(type) || type === \"setup-reactive-const\" || localVars[raw]) {\n return raw;\n } else if (type === \"setup-ref\") {\n return `${raw}.value`;\n } else if (type === \"setup-maybe-ref\") {\n return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);\n } else if (type === \"setup-let\") {\n if (isAssignmentLVal) {\n const { right: rVal, operator } = parent;\n const rExp = rawExp.slice(rVal.start - 1, rVal.end - 1);\n const rExpString = stringifyExpression(\n processExpression(\n createSimpleExpression(rExp, false),\n context,\n false,\n false,\n knownIds\n )\n );\n return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;\n } else if (isUpdateArg) {\n id.start = parent.start;\n id.end = parent.end;\n const { prefix: isPrefix, operator } = parent;\n const prefix = isPrefix ? operator : ``;\n const postfix = isPrefix ? `` : operator;\n return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;\n } else if (isDestructureAssignment) {\n return raw;\n } else {\n return wrapWithUnref(raw);\n }\n } else if (type === \"props\") {\n return shared.genPropsAccessExp(raw);\n } else if (type === \"props-aliased\") {\n return shared.genPropsAccessExp(bindingMetadata.__propsAliases[raw]);\n }\n } else {\n if (type && type.startsWith(\"setup\") || type === \"literal-const\") {\n return `$setup.${raw}`;\n } else if (type === \"props-aliased\") {\n return `$props['${bindingMetadata.__propsAliases[raw]}']`;\n } else if (type) {\n return `$${type}.${raw}`;\n }\n }\n return `_ctx.${raw}`;\n };\n const rawExp = node.content;\n let ast = node.ast;\n if (ast === false) {\n return node;\n }\n if (ast === null || !ast && isSimpleIdentifier(rawExp)) {\n const isScopeVarReference = context.identifiers[rawExp];\n const isAllowedGlobal = shared.isGloballyAllowed(rawExp);\n const isLiteral = isLiteralWhitelisted(rawExp);\n if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {\n if (isConst(bindingMetadata[rawExp])) {\n node.constType = 1;\n }\n node.content = rewriteIdentifier(rawExp);\n } else if (!isScopeVarReference) {\n if (isLiteral) {\n node.constType = 3;\n } else {\n node.constType = 2;\n }\n }\n return node;\n }\n if (!ast) {\n const source = asRawStatements ? ` ${rawExp} ` : `(${rawExp})${asParams ? `=>{}` : ``}`;\n try {\n ast = parser.parseExpression(source, {\n sourceType: \"module\",\n plugins: context.expressionPlugins\n });\n } catch (e) {\n context.onError(\n createCompilerError(\n 46,\n node.loc,\n void 0,\n e.message\n )\n );\n return node;\n }\n }\n const ids = [];\n const parentStack = [];\n const knownIds = Object.create(context.identifiers);\n walkIdentifiers(\n ast,\n (node2, parent, _, isReferenced, isLocal) => {\n if (isStaticPropertyKey(node2, parent)) {\n return;\n }\n if (node2.name.startsWith(\"_filter_\")) {\n return;\n }\n const needPrefix = isReferenced && canPrefix(node2);\n if (needPrefix && !isLocal) {\n if (isStaticProperty(parent) && parent.shorthand) {\n node2.prefix = `${node2.name}: `;\n }\n node2.name = rewriteIdentifier(node2.name, parent, node2);\n ids.push(node2);\n } else {\n if (!(needPrefix && isLocal) && (!parent || parent.type !== \"CallExpression\" && parent.type !== \"NewExpression\" && parent.type !== \"MemberExpression\")) {\n node2.isConstant = true;\n }\n ids.push(node2);\n }\n },\n true,\n // invoke on ALL identifiers\n parentStack,\n knownIds\n );\n const children = [];\n ids.sort((a, b) => a.start - b.start);\n ids.forEach((id, i) => {\n const start = id.start - 1;\n const end = id.end - 1;\n const last = ids[i - 1];\n const leadingText = rawExp.slice(last ? last.end - 1 : 0, start);\n if (leadingText.length || id.prefix) {\n children.push(leadingText + (id.prefix || ``));\n }\n const source = rawExp.slice(start, end);\n children.push(\n createSimpleExpression(\n id.name,\n false,\n {\n start: advancePositionWithClone(node.loc.start, source, start),\n end: advancePositionWithClone(node.loc.start, source, end),\n source\n },\n id.isConstant ? 3 : 0\n )\n );\n if (i === ids.length - 1 && end < rawExp.length) {\n children.push(rawExp.slice(end));\n }\n });\n let ret;\n if (children.length) {\n ret = createCompoundExpression(children, node.loc);\n ret.ast = ast;\n } else {\n ret = node;\n ret.constType = 3;\n }\n ret.identifiers = Object.keys(knownIds);\n return ret;\n}\nfunction canPrefix(id) {\n if (shared.isGloballyAllowed(id.name)) {\n return false;\n }\n if (id.name === \"require\") {\n return false;\n }\n return true;\n}\nfunction stringifyExpression(exp) {\n if (shared.isString(exp)) {\n return exp;\n } else if (exp.type === 4) {\n return exp.content;\n } else {\n return exp.children.map(stringifyExpression).join(\"\");\n }\n}\nfunction isConst(type) {\n return type === \"setup-const\" || type === \"literal-const\";\n}\n\nconst transformIf = createStructuralDirectiveTransform(\n /^(?:if|else|else-if)$/,\n (node, dir, context) => {\n return processIf(node, dir, context, (ifNode, branch, isRoot) => {\n const siblings = context.parent.children;\n let i = siblings.indexOf(ifNode);\n let key = 0;\n while (i-- >= 0) {\n const sibling = siblings[i];\n if (sibling && sibling.type === 9) {\n key += sibling.branches.length;\n }\n }\n return () => {\n if (isRoot) {\n ifNode.codegenNode = createCodegenNodeForBranch(\n branch,\n key,\n context\n );\n } else {\n const parentCondition = getParentCondition(ifNode.codegenNode);\n parentCondition.alternate = createCodegenNodeForBranch(\n branch,\n key + ifNode.branches.length - 1,\n context\n );\n }\n };\n });\n }\n);\nfunction processIf(node, dir, context, processCodegen) {\n if (dir.name !== \"else\" && (!dir.exp || !dir.exp.content.trim())) {\n const loc = dir.exp ? dir.exp.loc : node.loc;\n context.onError(\n createCompilerError(28, dir.loc)\n );\n dir.exp = createSimpleExpression(`true`, false, loc);\n }\n if (context.prefixIdentifiers && dir.exp) {\n dir.exp = processExpression(dir.exp, context);\n }\n if (dir.name === \"if\") {\n const branch = createIfBranch(node, dir);\n const ifNode = {\n type: 9,\n loc: cloneLoc(node.loc),\n branches: [branch]\n };\n context.replaceNode(ifNode);\n if (processCodegen) {\n return processCodegen(ifNode, branch, true);\n }\n } else {\n const siblings = context.parent.children;\n let i = siblings.indexOf(node);\n while (i-- >= -1) {\n const sibling = siblings[i];\n if (sibling && isCommentOrWhitespace(sibling)) {\n context.removeNode(sibling);\n continue;\n }\n if (sibling && sibling.type === 9) {\n if ((dir.name === \"else-if\" || dir.name === \"else\") && sibling.branches[sibling.branches.length - 1].condition === void 0) {\n context.onError(\n createCompilerError(30, node.loc)\n );\n }\n context.removeNode();\n const branch = createIfBranch(node, dir);\n {\n const key = branch.userKey;\n if (key) {\n sibling.branches.forEach(({ userKey }) => {\n if (isSameKey(userKey, key)) {\n context.onError(\n createCompilerError(\n 29,\n branch.userKey.loc\n )\n );\n }\n });\n }\n }\n sibling.branches.push(branch);\n const onExit = processCodegen && processCodegen(sibling, branch, false);\n traverseNode(branch, context);\n if (onExit) onExit();\n context.currentNode = null;\n } else {\n context.onError(\n createCompilerError(30, node.loc)\n );\n }\n break;\n }\n }\n}\nfunction createIfBranch(node, dir) {\n const isTemplateIf = node.tagType === 3;\n return {\n type: 10,\n loc: node.loc,\n condition: dir.name === \"else\" ? void 0 : dir.exp,\n children: isTemplateIf && !findDir(node, \"for\") ? node.children : [node],\n userKey: findProp(node, `key`),\n isTemplateIf\n };\n}\nfunction createCodegenNodeForBranch(branch, keyIndex, context) {\n if (branch.condition) {\n return createConditionalExpression(\n branch.condition,\n createChildrenCodegenNode(branch, keyIndex, context),\n // make sure to pass in asBlock: true so that the comment node call\n // closes the current block.\n createCallExpression(context.helper(CREATE_COMMENT), [\n '\"\"',\n \"true\"\n ])\n );\n } else {\n return createChildrenCodegenNode(branch, keyIndex, context);\n }\n}\nfunction createChildrenCodegenNode(branch, keyIndex, context) {\n const { helper } = context;\n const keyProperty = createObjectProperty(\n `key`,\n createSimpleExpression(\n `${keyIndex}`,\n false,\n locStub,\n 2\n )\n );\n const { children } = branch;\n const firstChild = children[0];\n const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1;\n if (needFragmentWrapper) {\n if (children.length === 1 && firstChild.type === 11) {\n const vnodeCall = firstChild.codegenNode;\n injectProp(vnodeCall, keyProperty, context);\n return vnodeCall;\n } else {\n let patchFlag = 64;\n return createVNodeCall(\n context,\n helper(FRAGMENT),\n createObjectExpression([keyProperty]),\n children,\n patchFlag,\n void 0,\n void 0,\n true,\n false,\n false,\n branch.loc\n );\n }\n } else {\n const ret = firstChild.codegenNode;\n const vnodeCall = getMemoedVNodeCall(ret);\n if (vnodeCall.type === 13) {\n convertToBlock(vnodeCall, context);\n }\n injectProp(vnodeCall, keyProperty, context);\n return ret;\n }\n}\nfunction isSameKey(a, b) {\n if (!a || a.type !== b.type) {\n return false;\n }\n if (a.type === 6) {\n if (a.value.content !== b.value.content) {\n return false;\n }\n } else {\n const exp = a.exp;\n const branchExp = b.exp;\n if (exp.type !== branchExp.type) {\n return false;\n }\n if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) {\n return false;\n }\n }\n return true;\n}\nfunction getParentCondition(node) {\n while (true) {\n if (node.type === 19) {\n if (node.alternate.type === 19) {\n node = node.alternate;\n } else {\n return node;\n }\n } else if (node.type === 20) {\n node = node.value;\n }\n }\n}\n\nconst transformFor = createStructuralDirectiveTransform(\n \"for\",\n (node, dir, context) => {\n const { helper, removeHelper } = context;\n return processFor(node, dir, context, (forNode) => {\n const renderExp = createCallExpression(helper(RENDER_LIST), [\n forNode.source\n ]);\n const isTemplate = isTemplateNode(node);\n const memo = findDir(node, \"memo\");\n const keyProp = findProp(node, `key`, false, true);\n const isDirKey = keyProp && keyProp.type === 7;\n let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);\n const keyProperty = keyExp ? createObjectProperty(`key`, keyExp) : null;\n {\n if (isTemplate && memo) {\n memo.exp = processExpression(\n memo.exp,\n context\n );\n }\n if ((isTemplate || memo) && keyProperty && isDirKey) {\n keyExp = keyProp.exp = keyProperty.value = processExpression(\n keyProperty.value,\n context\n );\n if (memo) {\n context.vForMemoKeyedNodes.add(node);\n }\n }\n }\n const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;\n const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;\n forNode.codegenNode = createVNodeCall(\n context,\n helper(FRAGMENT),\n void 0,\n renderExp,\n fragmentFlag,\n void 0,\n void 0,\n true,\n !isStableFragment,\n false,\n node.loc\n );\n return () => {\n let childBlock;\n const { children } = forNode;\n if (isTemplate) {\n node.children.some((c) => {\n if (c.type === 1) {\n const key = findProp(c, \"key\");\n if (key) {\n context.onError(\n createCompilerError(\n 33,\n key.loc\n )\n );\n return true;\n }\n }\n });\n }\n const needFragmentWrapper = children.length !== 1 || children[0].type !== 1;\n const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null;\n if (slotOutlet) {\n childBlock = slotOutlet.codegenNode;\n if (isTemplate && keyProperty) {\n injectProp(childBlock, keyProperty, context);\n }\n } else if (needFragmentWrapper) {\n childBlock = createVNodeCall(\n context,\n helper(FRAGMENT),\n keyProperty ? createObjectExpression([keyProperty]) : void 0,\n node.children,\n 64,\n void 0,\n void 0,\n true,\n void 0,\n false\n );\n } else {\n childBlock = children[0].codegenNode;\n if (isTemplate && keyProperty) {\n injectProp(childBlock, keyProperty, context);\n }\n if (childBlock.isBlock !== !isStableFragment) {\n if (childBlock.isBlock) {\n removeHelper(OPEN_BLOCK);\n removeHelper(\n getVNodeBlockHelper(context.inSSR, childBlock.isComponent)\n );\n } else {\n removeHelper(\n getVNodeHelper(context.inSSR, childBlock.isComponent)\n );\n }\n }\n childBlock.isBlock = !isStableFragment;\n if (childBlock.isBlock) {\n helper(OPEN_BLOCK);\n helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));\n } else {\n helper(getVNodeHelper(context.inSSR, childBlock.isComponent));\n }\n }\n if (memo) {\n const loop = createFunctionExpression(\n createForLoopParams(forNode.parseResult, [\n createSimpleExpression(`_cached`)\n ])\n );\n loop.body = createBlockStatement([\n createCompoundExpression([`const _memo = (`, memo.exp, `)`]),\n createCompoundExpression([\n `if (_cached && _cached.el`,\n ...keyExp ? [` && _cached.key === `, keyExp] : [],\n ` && ${context.helperString(\n IS_MEMO_SAME\n )}(_cached, _memo)) return _cached`\n ]),\n createCompoundExpression([`const _item = `, childBlock]),\n createSimpleExpression(`_item.memo = _memo`),\n createSimpleExpression(`return _item`)\n ]);\n renderExp.arguments.push(\n loop,\n createSimpleExpression(`_cache`),\n createSimpleExpression(String(context.cached.length))\n );\n context.cached.push(null);\n } else {\n renderExp.arguments.push(\n createFunctionExpression(\n createForLoopParams(forNode.parseResult),\n childBlock,\n true\n )\n );\n }\n };\n });\n }\n);\nfunction processFor(node, dir, context, processCodegen) {\n if (!dir.exp) {\n context.onError(\n createCompilerError(31, dir.loc)\n );\n return;\n }\n const parseResult = dir.forParseResult;\n if (!parseResult) {\n context.onError(\n createCompilerError(32, dir.loc)\n );\n return;\n }\n finalizeForParseResult(parseResult, context);\n const { addIdentifiers, removeIdentifiers, scopes } = context;\n const { source, value, key, index } = parseResult;\n const forNode = {\n type: 11,\n loc: dir.loc,\n source,\n valueAlias: value,\n keyAlias: key,\n objectIndexAlias: index,\n parseResult,\n children: isTemplateNode(node) ? node.children : [node]\n };\n context.replaceNode(forNode);\n scopes.vFor++;\n if (context.prefixIdentifiers) {\n value && addIdentifiers(value);\n key && addIdentifiers(key);\n index && addIdentifiers(index);\n }\n const onExit = processCodegen && processCodegen(forNode);\n return () => {\n scopes.vFor--;\n if (context.prefixIdentifiers) {\n value && removeIdentifiers(value);\n key && removeIdentifiers(key);\n index && removeIdentifiers(index);\n }\n if (onExit) onExit();\n };\n}\nfunction finalizeForParseResult(result, context) {\n if (result.finalized) return;\n if (context.prefixIdentifiers) {\n result.source = processExpression(\n result.source,\n context\n );\n if (result.key) {\n result.key = processExpression(\n result.key,\n context,\n true\n );\n }\n if (result.index) {\n result.index = processExpression(\n result.index,\n context,\n true\n );\n }\n if (result.value) {\n result.value = processExpression(\n result.value,\n context,\n true\n );\n }\n }\n result.finalized = true;\n}\nfunction createForLoopParams({ value, key, index }, memoArgs = []) {\n return createParamsList([value, key, index, ...memoArgs]);\n}\nfunction createParamsList(args) {\n let i = args.length;\n while (i--) {\n if (args[i]) break;\n }\n return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false));\n}\n\nconst defaultFallback = createSimpleExpression(`undefined`, false);\nconst trackSlotScopes = (node, context) => {\n if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) {\n const vSlot = findDir(node, \"slot\");\n if (vSlot) {\n const slotProps = vSlot.exp;\n if (context.prefixIdentifiers) {\n slotProps && context.addIdentifiers(slotProps);\n }\n context.scopes.vSlot++;\n return () => {\n if (context.prefixIdentifiers) {\n slotProps && context.removeIdentifiers(slotProps);\n }\n context.scopes.vSlot--;\n };\n }\n }\n};\nconst trackVForSlotScopes = (node, context) => {\n let vFor;\n if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, \"for\"))) {\n const result = vFor.forParseResult;\n if (result) {\n finalizeForParseResult(result, context);\n const { value, key, index } = result;\n const { addIdentifiers, removeIdentifiers } = context;\n value && addIdentifiers(value);\n key && addIdentifiers(key);\n index && addIdentifiers(index);\n return () => {\n value && removeIdentifiers(value);\n key && removeIdentifiers(key);\n index && removeIdentifiers(index);\n };\n }\n }\n};\nconst buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression(\n props,\n children,\n false,\n true,\n children.length ? children[0].loc : loc\n);\nfunction buildSlots(node, context, buildSlotFn = buildClientSlotFn) {\n context.helper(WITH_CTX);\n const { children, loc } = node;\n const slotsProperties = [];\n const dynamicSlots = [];\n let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0;\n if (!context.ssr && context.prefixIdentifiers) {\n hasDynamicSlots = node.props.some(\n (prop) => isVSlot(prop) && (hasScopeRef(prop.arg, context.identifiers) || hasScopeRef(prop.exp, context.identifiers))\n ) || children.some((child) => hasScopeRef(child, context.identifiers));\n }\n const onComponentSlot = findDir(node, \"slot\", true);\n if (onComponentSlot) {\n const { arg, exp } = onComponentSlot;\n if (arg && !isStaticExp(arg)) {\n hasDynamicSlots = true;\n }\n slotsProperties.push(\n createObjectProperty(\n arg || createSimpleExpression(\"default\", true),\n buildSlotFn(exp, void 0, children, loc)\n )\n );\n }\n let hasTemplateSlots = false;\n let hasNamedDefaultSlot = false;\n const implicitDefaultChildren = [];\n const seenSlotNames = /* @__PURE__ */ new Set();\n let conditionalBranchIndex = 0;\n for (let i = 0; i < children.length; i++) {\n const slotElement = children[i];\n let slotDir;\n if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, \"slot\", true))) {\n if (slotElement.type !== 3) {\n implicitDefaultChildren.push(slotElement);\n }\n continue;\n }\n if (onComponentSlot) {\n context.onError(\n createCompilerError(37, slotDir.loc)\n );\n break;\n }\n hasTemplateSlots = true;\n const { children: slotChildren, loc: slotLoc } = slotElement;\n const {\n arg: slotName = createSimpleExpression(`default`, true),\n exp: slotProps,\n loc: dirLoc\n } = slotDir;\n let staticSlotName;\n if (isStaticExp(slotName)) {\n staticSlotName = slotName ? slotName.content : `default`;\n } else {\n hasDynamicSlots = true;\n }\n const vFor = findDir(slotElement, \"for\");\n const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc);\n let vIf;\n let vElse;\n if (vIf = findDir(slotElement, \"if\")) {\n hasDynamicSlots = true;\n dynamicSlots.push(\n createConditionalExpression(\n vIf.exp,\n buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++),\n defaultFallback\n )\n );\n } else if (vElse = findDir(\n slotElement,\n /^else(?:-if)?$/,\n true\n /* allowEmpty */\n )) {\n let j = i;\n let prev;\n while (j--) {\n prev = children[j];\n if (!isCommentOrWhitespace(prev)) {\n break;\n }\n }\n if (prev && isTemplateNode(prev) && findDir(prev, /^(?:else-)?if$/)) {\n let conditional = dynamicSlots[dynamicSlots.length - 1];\n while (conditional.alternate.type === 19) {\n conditional = conditional.alternate;\n }\n conditional.alternate = vElse.exp ? createConditionalExpression(\n vElse.exp,\n buildDynamicSlot(\n slotName,\n slotFunction,\n conditionalBranchIndex++\n ),\n defaultFallback\n ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++);\n } else {\n context.onError(\n createCompilerError(30, vElse.loc)\n );\n }\n } else if (vFor) {\n hasDynamicSlots = true;\n const parseResult = vFor.forParseResult;\n if (parseResult) {\n finalizeForParseResult(parseResult, context);\n dynamicSlots.push(\n createCallExpression(context.helper(RENDER_LIST), [\n parseResult.source,\n createFunctionExpression(\n createForLoopParams(parseResult),\n buildDynamicSlot(slotName, slotFunction),\n true\n )\n ])\n );\n } else {\n context.onError(\n createCompilerError(\n 32,\n vFor.loc\n )\n );\n }\n } else {\n if (staticSlotName) {\n if (seenSlotNames.has(staticSlotName)) {\n context.onError(\n createCompilerError(\n 38,\n dirLoc\n )\n );\n continue;\n }\n seenSlotNames.add(staticSlotName);\n if (staticSlotName === \"default\") {\n hasNamedDefaultSlot = true;\n }\n }\n slotsProperties.push(createObjectProperty(slotName, slotFunction));\n }\n }\n if (!onComponentSlot) {\n const buildDefaultSlotProperty = (props, children2) => {\n const fn = buildSlotFn(props, void 0, children2, loc);\n if (context.compatConfig) {\n fn.isNonScopedSlot = true;\n }\n return createObjectProperty(`default`, fn);\n };\n if (!hasTemplateSlots) {\n slotsProperties.push(buildDefaultSlotProperty(void 0, children));\n } else if (implicitDefaultChildren.length && // #3766\n // with whitespace: 'preserve', whitespaces between slots will end up in\n // implicitDefaultChildren. Ignore if all implicit children are whitespaces.\n !implicitDefaultChildren.every(isWhitespaceText)) {\n if (hasNamedDefaultSlot) {\n context.onError(\n createCompilerError(\n 39,\n implicitDefaultChildren[0].loc\n )\n );\n } else {\n slotsProperties.push(\n buildDefaultSlotProperty(void 0, implicitDefaultChildren)\n );\n }\n }\n }\n const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;\n let slots = createObjectExpression(\n slotsProperties.concat(\n createObjectProperty(\n `_`,\n // 2 = compiled but dynamic = can skip normalization, but must run diff\n // 1 = compiled and static = can skip normalization AND diff as optimized\n createSimpleExpression(\n slotFlag + (``),\n false\n )\n )\n ),\n loc\n );\n if (dynamicSlots.length) {\n slots = createCallExpression(context.helper(CREATE_SLOTS), [\n slots,\n createArrayExpression(dynamicSlots)\n ]);\n }\n return {\n slots,\n hasDynamicSlots\n };\n}\nfunction buildDynamicSlot(name, fn, index) {\n const props = [\n createObjectProperty(`name`, name),\n createObjectProperty(`fn`, fn)\n ];\n if (index != null) {\n props.push(\n createObjectProperty(`key`, createSimpleExpression(String(index), true))\n );\n }\n return createObjectExpression(props);\n}\nfunction hasForwardedSlots(children) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n switch (child.type) {\n case 1:\n if (child.tagType === 2 || hasForwardedSlots(child.children)) {\n return true;\n }\n break;\n case 9:\n if (hasForwardedSlots(child.branches)) return true;\n break;\n case 10:\n case 11:\n if (hasForwardedSlots(child.children)) return true;\n break;\n }\n }\n return false;\n}\n\nconst directiveImportMap = /* @__PURE__ */ new WeakMap();\nconst transformElement = (node, context) => {\n return function postTransformElement() {\n node = context.currentNode;\n if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) {\n return;\n }\n const { tag, props } = node;\n const isComponent = node.tagType === 1;\n let vnodeTag = isComponent ? resolveComponentType(node, context) : `\"${tag}\"`;\n const isDynamicComponent = shared.isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT;\n let vnodeProps;\n let vnodeChildren;\n let patchFlag = 0;\n let vnodeDynamicProps;\n let dynamicPropNames;\n let vnodeDirectives;\n let shouldUseBlock = (\n // dynamic component may resolve to plain elements\n isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block\n // updates inside get proper isSVG flag at runtime. (#639, #643)\n // This is technically web-specific, but splitting the logic out of core\n // leads to too much unnecessary complexity.\n (tag === \"svg\" || tag === \"foreignObject\" || tag === \"math\")\n );\n if (props.length > 0) {\n const propsBuildResult = buildProps(\n node,\n context,\n void 0,\n isComponent,\n isDynamicComponent\n );\n vnodeProps = propsBuildResult.props;\n patchFlag = propsBuildResult.patchFlag;\n dynamicPropNames = propsBuildResult.dynamicPropNames;\n const directives = propsBuildResult.directives;\n vnodeDirectives = directives && directives.length ? createArrayExpression(\n directives.map((dir) => buildDirectiveArgs(dir, context))\n ) : void 0;\n if (propsBuildResult.shouldUseBlock) {\n shouldUseBlock = true;\n }\n }\n if (node.children.length > 0) {\n if (vnodeTag === KEEP_ALIVE) {\n shouldUseBlock = true;\n patchFlag |= 1024;\n }\n const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling\n vnodeTag !== TELEPORT && // explained above.\n vnodeTag !== KEEP_ALIVE;\n if (shouldBuildAsSlots) {\n const { slots, hasDynamicSlots } = buildSlots(node, context);\n vnodeChildren = slots;\n if (hasDynamicSlots) {\n patchFlag |= 1024;\n }\n } else if (node.children.length === 1 && vnodeTag !== TELEPORT) {\n const child = node.children[0];\n const type = child.type;\n const hasDynamicTextChild = type === 5 || type === 8;\n if (hasDynamicTextChild && getConstantType(child, context) === 0) {\n patchFlag |= 1;\n }\n if (hasDynamicTextChild || type === 2) {\n vnodeChildren = child;\n } else {\n vnodeChildren = node.children;\n }\n } else {\n vnodeChildren = node.children;\n }\n }\n if (dynamicPropNames && dynamicPropNames.length) {\n vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);\n }\n node.codegenNode = createVNodeCall(\n context,\n vnodeTag,\n vnodeProps,\n vnodeChildren,\n patchFlag === 0 ? void 0 : patchFlag,\n vnodeDynamicProps,\n vnodeDirectives,\n !!shouldUseBlock,\n false,\n isComponent,\n node.loc\n );\n };\n};\nfunction resolveComponentType(node, context, ssr = false) {\n let { tag } = node;\n const isExplicitDynamic = isComponentTag(tag);\n const isProp = findProp(\n node,\n \"is\",\n false,\n true\n /* allow empty */\n );\n if (isProp) {\n if (isExplicitDynamic || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n )) {\n let exp;\n if (isProp.type === 6) {\n exp = isProp.value && createSimpleExpression(isProp.value.content, true);\n } else {\n exp = isProp.exp;\n if (!exp) {\n exp = createSimpleExpression(`is`, false, isProp.arg.loc);\n {\n exp = isProp.exp = processExpression(exp, context);\n }\n }\n }\n if (exp) {\n return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [\n exp\n ]);\n }\n } else if (isProp.type === 6 && isProp.value.content.startsWith(\"vue:\")) {\n tag = isProp.value.content.slice(4);\n }\n }\n const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag);\n if (builtIn) {\n if (!ssr) context.helper(builtIn);\n return builtIn;\n }\n {\n const fromSetup = resolveSetupReference(tag, context);\n if (fromSetup) {\n return fromSetup;\n }\n const dotIndex = tag.indexOf(\".\");\n if (dotIndex > 0) {\n const ns = resolveSetupReference(tag.slice(0, dotIndex), context);\n if (ns) {\n return ns + tag.slice(dotIndex);\n }\n }\n }\n if (context.selfName && shared.capitalize(shared.camelize(tag)) === context.selfName) {\n context.helper(RESOLVE_COMPONENT);\n context.components.add(tag + `__self`);\n return toValidAssetId(tag, `component`);\n }\n context.helper(RESOLVE_COMPONENT);\n context.components.add(tag);\n return toValidAssetId(tag, `component`);\n}\nfunction resolveSetupReference(name, context) {\n const bindings = context.bindingMetadata;\n if (!bindings || bindings.__isScriptSetup === false) {\n return;\n }\n const camelName = shared.camelize(name);\n const PascalName = shared.capitalize(camelName);\n const checkType = (type) => {\n if (bindings[name] === type) {\n return name;\n }\n if (bindings[camelName] === type) {\n return camelName;\n }\n if (bindings[PascalName] === type) {\n return PascalName;\n }\n };\n const fromConst = checkType(\"setup-const\") || checkType(\"setup-reactive-const\") || checkType(\"literal-const\");\n if (fromConst) {\n return context.inline ? (\n // in inline mode, const setup bindings (e.g. imports) can be used as-is\n fromConst\n ) : `$setup[${JSON.stringify(fromConst)}]`;\n }\n const fromMaybeRef = checkType(\"setup-let\") || checkType(\"setup-ref\") || checkType(\"setup-maybe-ref\");\n if (fromMaybeRef) {\n return context.inline ? (\n // setup scope bindings that may be refs need to be unrefed\n `${context.helperString(UNREF)}(${fromMaybeRef})`\n ) : `$setup[${JSON.stringify(fromMaybeRef)}]`;\n }\n const fromProps = checkType(\"props\");\n if (fromProps) {\n return `${context.helperString(UNREF)}(${context.inline ? \"__props\" : \"$props\"}[${JSON.stringify(fromProps)}])`;\n }\n}\nfunction buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) {\n const { tag, loc: elementLoc, children } = node;\n let properties = [];\n const mergeArgs = [];\n const runtimeDirectives = [];\n const hasChildren = children.length > 0;\n let shouldUseBlock = false;\n let patchFlag = 0;\n let hasRef = false;\n let hasClassBinding = false;\n let hasStyleBinding = false;\n let hasHydrationEventBinding = false;\n let hasDynamicKeys = false;\n let hasVnodeHook = false;\n const dynamicPropNames = [];\n const pushMergeArg = (arg) => {\n if (properties.length) {\n mergeArgs.push(\n createObjectExpression(dedupeProperties(properties), elementLoc)\n );\n properties = [];\n }\n if (arg) mergeArgs.push(arg);\n };\n const pushRefVForMarker = () => {\n if (context.scopes.vFor > 0) {\n properties.push(\n createObjectProperty(\n createSimpleExpression(\"ref_for\", true),\n createSimpleExpression(\"true\")\n )\n );\n }\n };\n const analyzePatchFlag = ({ key, value }) => {\n if (isStaticExp(key)) {\n const name = key.content;\n const isEventHandler = shared.isOn(name);\n if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click\n // dedicated fast path.\n name.toLowerCase() !== \"onclick\" && // omit v-model handlers\n name !== \"onUpdate:modelValue\" && // omit onVnodeXXX hooks\n !shared.isReservedProp(name)) {\n hasHydrationEventBinding = true;\n }\n if (isEventHandler && shared.isReservedProp(name)) {\n hasVnodeHook = true;\n }\n if (isEventHandler && value.type === 14) {\n value = value.arguments[0];\n }\n if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) {\n return;\n }\n if (name === \"ref\") {\n hasRef = true;\n } else if (name === \"class\") {\n hasClassBinding = true;\n } else if (name === \"style\") {\n hasStyleBinding = true;\n } else if (name !== \"key\" && !dynamicPropNames.includes(name)) {\n dynamicPropNames.push(name);\n }\n if (isComponent && (name === \"class\" || name === \"style\") && !dynamicPropNames.includes(name)) {\n dynamicPropNames.push(name);\n }\n } else {\n hasDynamicKeys = true;\n }\n };\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (prop.type === 6) {\n const { loc, name, nameLoc, value } = prop;\n let isStatic = true;\n if (name === \"ref\") {\n hasRef = true;\n pushRefVForMarker();\n if (value && context.inline) {\n const binding = context.bindingMetadata[value.content];\n if (binding === \"setup-let\" || binding === \"setup-ref\" || binding === \"setup-maybe-ref\") {\n isStatic = false;\n properties.push(\n createObjectProperty(\n createSimpleExpression(\"ref_key\", true),\n createSimpleExpression(value.content, true, value.loc)\n )\n );\n }\n }\n }\n if (name === \"is\" && (isComponentTag(tag) || value && value.content.startsWith(\"vue:\") || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n ))) {\n continue;\n }\n properties.push(\n createObjectProperty(\n createSimpleExpression(name, true, nameLoc),\n createSimpleExpression(\n value ? value.content : \"\",\n isStatic,\n value ? value.loc : loc\n )\n )\n );\n } else {\n const { name, arg, exp, loc, modifiers } = prop;\n const isVBind = name === \"bind\";\n const isVOn = name === \"on\";\n if (name === \"slot\") {\n if (!isComponent) {\n context.onError(\n createCompilerError(40, loc)\n );\n }\n continue;\n }\n if (name === \"once\" || name === \"memo\") {\n continue;\n }\n if (name === \"is\" || isVBind && isStaticArgOf(arg, \"is\") && (isComponentTag(tag) || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n ))) {\n continue;\n }\n if (isVOn && ssr) {\n continue;\n }\n if (\n // #938: elements with dynamic keys should be forced into blocks\n isVBind && isStaticArgOf(arg, \"key\") || // inline before-update hooks need to force block so that it is invoked\n // before children\n isVOn && hasChildren && isStaticArgOf(arg, \"vue:before-update\")\n ) {\n shouldUseBlock = true;\n }\n if (isVBind && isStaticArgOf(arg, \"ref\")) {\n pushRefVForMarker();\n }\n if (!arg && (isVBind || isVOn)) {\n hasDynamicKeys = true;\n if (exp) {\n if (isVBind) {\n {\n pushMergeArg();\n if (isCompatEnabled(\n \"COMPILER_V_BIND_OBJECT_ORDER\",\n context\n )) {\n mergeArgs.unshift(exp);\n continue;\n }\n }\n pushRefVForMarker();\n pushMergeArg();\n mergeArgs.push(exp);\n } else {\n pushMergeArg({\n type: 14,\n loc,\n callee: context.helper(TO_HANDLERS),\n arguments: isComponent ? [exp] : [exp, `true`]\n });\n }\n } else {\n context.onError(\n createCompilerError(\n isVBind ? 34 : 35,\n loc\n )\n );\n }\n continue;\n }\n if (isVBind && modifiers.some((mod) => mod.content === \"prop\")) {\n patchFlag |= 32;\n }\n const directiveTransform = context.directiveTransforms[name];\n if (directiveTransform) {\n const { props: props2, needRuntime } = directiveTransform(prop, node, context);\n !ssr && props2.forEach(analyzePatchFlag);\n if (isVOn && arg && !isStaticExp(arg)) {\n pushMergeArg(createObjectExpression(props2, elementLoc));\n } else {\n properties.push(...props2);\n }\n if (needRuntime) {\n runtimeDirectives.push(prop);\n if (shared.isSymbol(needRuntime)) {\n directiveImportMap.set(prop, needRuntime);\n }\n }\n } else if (!shared.isBuiltInDirective(name)) {\n runtimeDirectives.push(prop);\n if (hasChildren) {\n shouldUseBlock = true;\n }\n }\n }\n }\n let propsExpression = void 0;\n if (mergeArgs.length) {\n pushMergeArg();\n if (mergeArgs.length > 1) {\n propsExpression = createCallExpression(\n context.helper(MERGE_PROPS),\n mergeArgs,\n elementLoc\n );\n } else {\n propsExpression = mergeArgs[0];\n }\n } else if (properties.length) {\n propsExpression = createObjectExpression(\n dedupeProperties(properties),\n elementLoc\n );\n }\n if (hasDynamicKeys) {\n patchFlag |= 16;\n } else {\n if (hasClassBinding && !isComponent) {\n patchFlag |= 2;\n }\n if (hasStyleBinding && !isComponent) {\n patchFlag |= 4;\n }\n if (dynamicPropNames.length) {\n patchFlag |= 8;\n }\n if (hasHydrationEventBinding) {\n patchFlag |= 32;\n }\n }\n if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) {\n patchFlag |= 512;\n }\n if (!context.inSSR && propsExpression) {\n switch (propsExpression.type) {\n case 15:\n let classKeyIndex = -1;\n let styleKeyIndex = -1;\n let hasDynamicKey = false;\n for (let i = 0; i < propsExpression.properties.length; i++) {\n const key = propsExpression.properties[i].key;\n if (isStaticExp(key)) {\n if (key.content === \"class\") {\n classKeyIndex = i;\n } else if (key.content === \"style\") {\n styleKeyIndex = i;\n }\n } else if (!key.isHandlerKey) {\n hasDynamicKey = true;\n }\n }\n const classProp = propsExpression.properties[classKeyIndex];\n const styleProp = propsExpression.properties[styleKeyIndex];\n if (!hasDynamicKey) {\n if (classProp && !isStaticExp(classProp.value)) {\n classProp.value = createCallExpression(\n context.helper(NORMALIZE_CLASS),\n [classProp.value]\n );\n }\n if (styleProp && // the static style is compiled into an object,\n // so use `hasStyleBinding` to ensure that it is a dynamic style binding\n (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist,\n // v-bind:style with static literal object\n styleProp.value.type === 17)) {\n styleProp.value = createCallExpression(\n context.helper(NORMALIZE_STYLE),\n [styleProp.value]\n );\n }\n } else {\n propsExpression = createCallExpression(\n context.helper(NORMALIZE_PROPS),\n [propsExpression]\n );\n }\n break;\n case 14:\n break;\n default:\n propsExpression = createCallExpression(\n context.helper(NORMALIZE_PROPS),\n [\n createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [\n propsExpression\n ])\n ]\n );\n break;\n }\n }\n return {\n props: propsExpression,\n directives: runtimeDirectives,\n patchFlag,\n dynamicPropNames,\n shouldUseBlock\n };\n}\nfunction dedupeProperties(properties) {\n const knownProps = /* @__PURE__ */ new Map();\n const deduped = [];\n for (let i = 0; i < properties.length; i++) {\n const prop = properties[i];\n if (prop.key.type === 8 || !prop.key.isStatic) {\n deduped.push(prop);\n continue;\n }\n const name = prop.key.content;\n const existing = knownProps.get(name);\n if (existing) {\n if (name === \"style\" || name === \"class\" || shared.isOn(name)) {\n mergeAsArray(existing, prop);\n }\n } else {\n knownProps.set(name, prop);\n deduped.push(prop);\n }\n }\n return deduped;\n}\nfunction mergeAsArray(existing, incoming) {\n if (existing.value.type === 17) {\n existing.value.elements.push(incoming.value);\n } else {\n existing.value = createArrayExpression(\n [existing.value, incoming.value],\n existing.loc\n );\n }\n}\nfunction buildDirectiveArgs(dir, context) {\n const dirArgs = [];\n const runtime = directiveImportMap.get(dir);\n if (runtime) {\n dirArgs.push(context.helperString(runtime));\n } else {\n const fromSetup = resolveSetupReference(\"v-\" + dir.name, context);\n if (fromSetup) {\n dirArgs.push(fromSetup);\n } else {\n context.helper(RESOLVE_DIRECTIVE);\n context.directives.add(dir.name);\n dirArgs.push(toValidAssetId(dir.name, `directive`));\n }\n }\n const { loc } = dir;\n if (dir.exp) dirArgs.push(dir.exp);\n if (dir.arg) {\n if (!dir.exp) {\n dirArgs.push(`void 0`);\n }\n dirArgs.push(dir.arg);\n }\n if (Object.keys(dir.modifiers).length) {\n if (!dir.arg) {\n if (!dir.exp) {\n dirArgs.push(`void 0`);\n }\n dirArgs.push(`void 0`);\n }\n const trueExpression = createSimpleExpression(`true`, false, loc);\n dirArgs.push(\n createObjectExpression(\n dir.modifiers.map(\n (modifier) => createObjectProperty(modifier, trueExpression)\n ),\n loc\n )\n );\n }\n return createArrayExpression(dirArgs, dir.loc);\n}\nfunction stringifyDynamicPropNames(props) {\n let propsNamesString = `[`;\n for (let i = 0, l = props.length; i < l; i++) {\n propsNamesString += JSON.stringify(props[i]);\n if (i < l - 1) propsNamesString += \", \";\n }\n return propsNamesString + `]`;\n}\nfunction isComponentTag(tag) {\n return tag === \"component\" || tag === \"Component\";\n}\n\nconst transformSlotOutlet = (node, context) => {\n if (isSlotOutlet(node)) {\n const { children, loc } = node;\n const { slotName, slotProps } = processSlotOutlet(node, context);\n const slotArgs = [\n context.prefixIdentifiers ? `_ctx.$slots` : `$slots`,\n slotName,\n \"{}\",\n \"undefined\",\n \"true\"\n ];\n let expectedLen = 2;\n if (slotProps) {\n slotArgs[2] = slotProps;\n expectedLen = 3;\n }\n if (children.length) {\n slotArgs[3] = createFunctionExpression([], children, false, false, loc);\n expectedLen = 4;\n }\n if (context.scopeId && !context.slotted) {\n expectedLen = 5;\n }\n slotArgs.splice(expectedLen);\n node.codegenNode = createCallExpression(\n context.helper(RENDER_SLOT),\n slotArgs,\n loc\n );\n }\n};\nfunction processSlotOutlet(node, context) {\n let slotName = `\"default\"`;\n let slotProps = void 0;\n const nonNameProps = [];\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 6) {\n if (p.value) {\n if (p.name === \"name\") {\n slotName = JSON.stringify(p.value.content);\n } else {\n p.name = shared.camelize(p.name);\n nonNameProps.push(p);\n }\n }\n } else {\n if (p.name === \"bind\" && isStaticArgOf(p.arg, \"name\")) {\n if (p.exp) {\n slotName = p.exp;\n } else if (p.arg && p.arg.type === 4) {\n const name = shared.camelize(p.arg.content);\n slotName = p.exp = createSimpleExpression(name, false, p.arg.loc);\n {\n slotName = p.exp = processExpression(p.exp, context);\n }\n }\n } else {\n if (p.name === \"bind\" && p.arg && isStaticExp(p.arg)) {\n p.arg.content = shared.camelize(p.arg.content);\n }\n nonNameProps.push(p);\n }\n }\n }\n if (nonNameProps.length > 0) {\n const { props, directives } = buildProps(\n node,\n context,\n nonNameProps,\n false,\n false\n );\n slotProps = props;\n if (directives.length) {\n context.onError(\n createCompilerError(\n 36,\n directives[0].loc\n )\n );\n }\n }\n return {\n slotName,\n slotProps\n };\n}\n\nconst transformOn = (dir, node, context, augmentor) => {\n const { loc, modifiers, arg } = dir;\n if (!dir.exp && !modifiers.length) {\n context.onError(createCompilerError(35, loc));\n }\n let eventName;\n if (arg.type === 4) {\n if (arg.isStatic) {\n let rawName = arg.content;\n if (rawName.startsWith(\"vue:\")) {\n rawName = `vnode-${rawName.slice(4)}`;\n }\n const eventString = node.tagType !== 0 || rawName.startsWith(\"vnode\") || !/[A-Z]/.test(rawName) ? (\n // for non-element and vnode lifecycle event listeners, auto convert\n // it to camelCase. See issue #2249\n shared.toHandlerKey(shared.camelize(rawName))\n ) : (\n // preserve case for plain element listeners that have uppercase\n // letters, as these may be custom elements' custom events\n `on:${rawName}`\n );\n eventName = createSimpleExpression(eventString, true, arg.loc);\n } else {\n eventName = createCompoundExpression([\n `${context.helperString(TO_HANDLER_KEY)}(`,\n arg,\n `)`\n ]);\n }\n } else {\n eventName = arg;\n eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);\n eventName.children.push(`)`);\n }\n let exp = dir.exp;\n if (exp && !exp.content.trim()) {\n exp = void 0;\n }\n let shouldCache = context.cacheHandlers && !exp && !context.inVOnce;\n if (exp) {\n const isMemberExp = isMemberExpression(exp, context);\n const isInlineStatement = !(isMemberExp || isFnExpression(exp, context));\n const hasMultipleStatements = exp.content.includes(`;`);\n if (context.prefixIdentifiers) {\n isInlineStatement && context.addIdentifiers(`$event`);\n exp = dir.exp = processExpression(\n exp,\n context,\n false,\n hasMultipleStatements\n );\n isInlineStatement && context.removeIdentifiers(`$event`);\n shouldCache = context.cacheHandlers && // unnecessary to cache inside v-once\n !context.inVOnce && // runtime constants don't need to be cached\n // (this is analyzed by compileScript in SFC <script setup>)\n !(exp.type === 4 && exp.constType > 0) && // #1541 bail if this is a member exp handler passed to a component -\n // we need to use the original function to preserve arity,\n // e.g. <transition> relies on checking cb.length to determine\n // transition end handling. Inline function is ok since its arity\n // is preserved even when cached.\n !(isMemberExp && node.tagType === 1) && // bail if the function references closure variables (v-for, v-slot)\n // it must be passed fresh to avoid stale values.\n !hasScopeRef(exp, context.identifiers);\n if (shouldCache && isMemberExp) {\n if (exp.type === 4) {\n exp.content = `${exp.content} && ${exp.content}(...args)`;\n } else {\n exp.children = [...exp.children, ` && `, ...exp.children, `(...args)`];\n }\n }\n }\n if (isInlineStatement || shouldCache && isMemberExp) {\n exp = createCompoundExpression([\n `${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,\n exp,\n hasMultipleStatements ? `}` : `)`\n ]);\n }\n }\n let ret = {\n props: [\n createObjectProperty(\n eventName,\n exp || createSimpleExpression(`() => {}`, false, loc)\n )\n ]\n };\n if (augmentor) {\n ret = augmentor(ret);\n }\n if (shouldCache) {\n ret.props[0].value = context.cache(ret.props[0].value);\n }\n ret.props.forEach((p) => p.key.isHandlerKey = true);\n return ret;\n};\n\nconst transformBind = (dir, _node, context) => {\n const { modifiers, loc } = dir;\n const arg = dir.arg;\n let { exp } = dir;\n if (exp && exp.type === 4 && !exp.content.trim()) {\n {\n context.onError(\n createCompilerError(34, loc)\n );\n return {\n props: [\n createObjectProperty(arg, createSimpleExpression(\"\", true, loc))\n ]\n };\n }\n }\n if (arg.type !== 4) {\n arg.children.unshift(`(`);\n arg.children.push(`) || \"\"`);\n } else if (!arg.isStatic) {\n arg.content = arg.content ? `${arg.content} || \"\"` : `\"\"`;\n }\n if (modifiers.some((mod) => mod.content === \"camel\")) {\n if (arg.type === 4) {\n if (arg.isStatic) {\n arg.content = shared.camelize(arg.content);\n } else {\n arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;\n }\n } else {\n arg.children.unshift(`${context.helperString(CAMELIZE)}(`);\n arg.children.push(`)`);\n }\n }\n if (!context.inSSR) {\n if (modifiers.some((mod) => mod.content === \"prop\")) {\n injectPrefix(arg, \".\");\n }\n if (modifiers.some((mod) => mod.content === \"attr\")) {\n injectPrefix(arg, \"^\");\n }\n }\n return {\n props: [createObjectProperty(arg, exp)]\n };\n};\nconst injectPrefix = (arg, prefix) => {\n if (arg.type === 4) {\n if (arg.isStatic) {\n arg.content = prefix + arg.content;\n } else {\n arg.content = `\\`${prefix}\\${${arg.content}}\\``;\n }\n } else {\n arg.children.unshift(`'${prefix}' + (`);\n arg.children.push(`)`);\n }\n};\n\nconst transformText = (node, context) => {\n if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) {\n return () => {\n const children = node.children;\n let currentContainer = void 0;\n let hasText = false;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isText$1(child)) {\n hasText = true;\n for (let j = i + 1; j < children.length; j++) {\n const next = children[j];\n if (isText$1(next)) {\n if (!currentContainer) {\n currentContainer = children[i] = createCompoundExpression(\n [child],\n child.loc\n );\n }\n currentContainer.children.push(` + `, next);\n children.splice(j, 1);\n j--;\n } else {\n currentContainer = void 0;\n break;\n }\n }\n }\n }\n if (!hasText || // if this is a plain element with a single text child, leave it\n // as-is since the runtime has dedicated fast path for this by directly\n // setting textContent of the element.\n // for component root it's always normalized anyway.\n children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756\n // custom directives can potentially add DOM elements arbitrarily,\n // we need to avoid setting textContent of the element at runtime\n // to avoid accidentally overwriting the DOM elements added\n // by the user through custom directives.\n !node.props.find(\n (p) => p.type === 7 && !context.directiveTransforms[p.name]\n ) && // in compat mode, <template> tags with no special directives\n // will be rendered as a fragment so its children must be\n // converted into vnodes.\n !(node.tag === \"template\"))) {\n return;\n }\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isText$1(child) || child.type === 8) {\n const callArgs = [];\n if (child.type !== 2 || child.content !== \" \") {\n callArgs.push(child);\n }\n if (!context.ssr && getConstantType(child, context) === 0) {\n callArgs.push(\n 1 + (``)\n );\n }\n children[i] = {\n type: 12,\n content: child,\n loc: child.loc,\n codegenNode: createCallExpression(\n context.helper(CREATE_TEXT),\n callArgs\n )\n };\n }\n }\n };\n }\n};\n\nconst seen$1 = /* @__PURE__ */ new WeakSet();\nconst transformOnce = (node, context) => {\n if (node.type === 1 && findDir(node, \"once\", true)) {\n if (seen$1.has(node) || context.inVOnce || context.inSSR) {\n return;\n }\n seen$1.add(node);\n context.inVOnce = true;\n context.helper(SET_BLOCK_TRACKING);\n return () => {\n context.inVOnce = false;\n const cur = context.currentNode;\n if (cur.codegenNode) {\n cur.codegenNode = context.cache(\n cur.codegenNode,\n true,\n true\n );\n }\n };\n }\n};\n\nconst transformModel = (dir, node, context) => {\n const { exp, arg } = dir;\n if (!exp) {\n context.onError(\n createCompilerError(41, dir.loc)\n );\n return createTransformProps();\n }\n const rawExp = exp.loc.source.trim();\n const expString = exp.type === 4 ? exp.content : rawExp;\n const bindingType = context.bindingMetadata[rawExp];\n if (bindingType === \"props\" || bindingType === \"props-aliased\") {\n context.onError(createCompilerError(44, exp.loc));\n return createTransformProps();\n }\n if (bindingType === \"literal-const\" || bindingType === \"setup-const\") {\n context.onError(createCompilerError(45, exp.loc));\n return createTransformProps();\n }\n const maybeRef = context.inline && (bindingType === \"setup-let\" || bindingType === \"setup-ref\" || bindingType === \"setup-maybe-ref\");\n if (!expString.trim() || !isMemberExpression(exp, context) && !maybeRef) {\n context.onError(\n createCompilerError(42, exp.loc)\n );\n return createTransformProps();\n }\n if (context.prefixIdentifiers && isSimpleIdentifier(expString) && context.identifiers[expString]) {\n context.onError(\n createCompilerError(43, exp.loc)\n );\n return createTransformProps();\n }\n const propName = arg ? arg : createSimpleExpression(\"modelValue\", true);\n const eventName = arg ? isStaticExp(arg) ? `onUpdate:${shared.camelize(arg.content)}` : createCompoundExpression(['\"onUpdate:\" + ', arg]) : `onUpdate:modelValue`;\n let assignmentExp;\n const eventArg = context.isTS ? `($event: any)` : `$event`;\n if (maybeRef) {\n if (bindingType === \"setup-ref\") {\n assignmentExp = createCompoundExpression([\n `${eventArg} => ((`,\n createSimpleExpression(rawExp, false, exp.loc),\n `).value = $event)`\n ]);\n } else {\n const altAssignment = bindingType === \"setup-let\" ? `${rawExp} = $event` : `null`;\n assignmentExp = createCompoundExpression([\n `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,\n createSimpleExpression(rawExp, false, exp.loc),\n `).value = $event : ${altAssignment})`\n ]);\n }\n } else {\n assignmentExp = createCompoundExpression([\n `${eventArg} => ((`,\n exp,\n `) = $event)`\n ]);\n }\n const props = [\n // modelValue: foo\n createObjectProperty(propName, dir.exp),\n // \"onUpdate:modelValue\": $event => (foo = $event)\n createObjectProperty(eventName, assignmentExp)\n ];\n if (context.prefixIdentifiers && !context.inVOnce && context.cacheHandlers && !hasScopeRef(exp, context.identifiers)) {\n props[1].value = context.cache(props[1].value);\n }\n if (dir.modifiers.length && node.tagType === 1) {\n const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `);\n const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + \"Modifiers\"']) : `modelModifiers`;\n props.push(\n createObjectProperty(\n modifiersKey,\n createSimpleExpression(\n `{ ${modifiers} }`,\n false,\n dir.loc,\n 2\n )\n )\n );\n }\n return createTransformProps(props);\n};\nfunction createTransformProps(props = []) {\n return { props };\n}\n\nconst validDivisionCharRE = /[\\w).+\\-_$\\]]/;\nconst transformFilter = (node, context) => {\n if (!isCompatEnabled(\"COMPILER_FILTERS\", context)) {\n return;\n }\n if (node.type === 5) {\n rewriteFilter(node.content, context);\n } else if (node.type === 1) {\n node.props.forEach((prop) => {\n if (prop.type === 7 && prop.name !== \"for\" && prop.exp) {\n rewriteFilter(prop.exp, context);\n }\n });\n }\n};\nfunction rewriteFilter(node, context) {\n if (node.type === 4) {\n parseFilter(node, context);\n } else {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (typeof child !== \"object\") continue;\n if (child.type === 4) {\n parseFilter(child, context);\n } else if (child.type === 8) {\n rewriteFilter(child, context);\n } else if (child.type === 5) {\n rewriteFilter(child.content, context);\n }\n }\n }\n}\nfunction parseFilter(node, context) {\n const exp = node.content;\n let inSingle = false;\n let inDouble = false;\n let inTemplateString = false;\n let inRegex = false;\n let curly = 0;\n let square = 0;\n let paren = 0;\n let lastFilterIndex = 0;\n let c, prev, i, expression, filters = [];\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n if (c === 39 && prev !== 92) inSingle = false;\n } else if (inDouble) {\n if (c === 34 && prev !== 92) inDouble = false;\n } else if (inTemplateString) {\n if (c === 96 && prev !== 92) inTemplateString = false;\n } else if (inRegex) {\n if (c === 47 && prev !== 92) inRegex = false;\n } else if (c === 124 && // pipe\n exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {\n if (expression === void 0) {\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n } else {\n pushFilter();\n }\n } else {\n switch (c) {\n case 34:\n inDouble = true;\n break;\n // \"\n case 39:\n inSingle = true;\n break;\n // '\n case 96:\n inTemplateString = true;\n break;\n // `\n case 40:\n paren++;\n break;\n // (\n case 41:\n paren--;\n break;\n // )\n case 91:\n square++;\n break;\n // [\n case 93:\n square--;\n break;\n // ]\n case 123:\n curly++;\n break;\n // {\n case 125:\n curly--;\n break;\n }\n if (c === 47) {\n let j = i - 1;\n let p;\n for (; j >= 0; j--) {\n p = exp.charAt(j);\n if (p !== \" \") break;\n }\n if (!p || !validDivisionCharRE.test(p)) {\n inRegex = true;\n }\n }\n }\n }\n if (expression === void 0) {\n expression = exp.slice(0, i).trim();\n } else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n function pushFilter() {\n filters.push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n if (filters.length) {\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i], context);\n }\n node.content = expression;\n node.ast = void 0;\n }\n}\nfunction wrapFilter(exp, filter, context) {\n context.helper(RESOLVE_FILTER);\n const i = filter.indexOf(\"(\");\n if (i < 0) {\n context.filters.add(filter);\n return `${toValidAssetId(filter, \"filter\")}(${exp})`;\n } else {\n const name = filter.slice(0, i);\n const args = filter.slice(i + 1);\n context.filters.add(name);\n return `${toValidAssetId(name, \"filter\")}(${exp}${args !== \")\" ? \",\" + args : args}`;\n }\n}\n\nconst seen = /* @__PURE__ */ new WeakSet();\nconst transformMemo = (node, context) => {\n if (node.type === 1) {\n const dir = findDir(node, \"memo\");\n if (!dir || seen.has(node) || context.inSSR) {\n return;\n }\n seen.add(node);\n return () => {\n const codegenNode = node.codegenNode || context.currentNode.codegenNode;\n if (codegenNode && codegenNode.type === 13) {\n if (node.tagType !== 1) {\n convertToBlock(codegenNode, context);\n }\n node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [\n dir.exp,\n createFunctionExpression(void 0, codegenNode),\n `_cache`,\n String(context.cached.length)\n ]);\n context.cached.push(null);\n }\n };\n }\n};\n\nconst transformVBindShorthand = (node, context) => {\n if (node.type === 1) {\n for (const prop of node.props) {\n if (prop.type === 7 && prop.name === \"bind\" && (!prop.exp || // #13930 :foo in in-DOM templates will be parsed into :foo=\"\" by browser\n false) && prop.arg) {\n const arg = prop.arg;\n if (arg.type !== 4 || !arg.isStatic) {\n context.onError(\n createCompilerError(\n 53,\n arg.loc\n )\n );\n prop.exp = createSimpleExpression(\"\", true, arg.loc);\n } else {\n const propName = shared.camelize(arg.content);\n if (validFirstIdentCharRE.test(propName[0]) || // allow hyphen first char for https://github.com/vuejs/language-tools/pull/3424\n propName[0] === \"-\") {\n prop.exp = createSimpleExpression(propName, false, arg.loc);\n }\n }\n }\n }\n }\n};\n\nfunction getBaseTransformPreset(prefixIdentifiers) {\n return [\n [\n transformVBindShorthand,\n transformOnce,\n transformIf,\n transformMemo,\n transformFor,\n ...[transformFilter] ,\n ...prefixIdentifiers ? [\n // order is important\n trackVForSlotScopes,\n transformExpression\n ] : [],\n transformSlotOutlet,\n transformElement,\n trackSlotScopes,\n transformText\n ],\n {\n on: transformOn,\n bind: transformBind,\n model: transformModel\n }\n ];\n}\nfunction baseCompile(source, options = {}) {\n const onError = options.onError || defaultOnError;\n const isModuleMode = options.mode === \"module\";\n const prefixIdentifiers = options.prefixIdentifiers === true || isModuleMode;\n if (!prefixIdentifiers && options.cacheHandlers) {\n onError(createCompilerError(50));\n }\n if (options.scopeId && !isModuleMode) {\n onError(createCompilerError(51));\n }\n const resolvedOptions = shared.extend({}, options, {\n prefixIdentifiers\n });\n const ast = shared.isString(source) ? baseParse(source, resolvedOptions) : source;\n const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(prefixIdentifiers);\n if (options.isTS) {\n const { expressionPlugins } = options;\n if (!expressionPlugins || !expressionPlugins.includes(\"typescript\")) {\n options.expressionPlugins = [...expressionPlugins || [], \"typescript\"];\n }\n }\n transform(\n ast,\n shared.extend({}, resolvedOptions, {\n nodeTransforms: [\n ...nodeTransforms,\n ...options.nodeTransforms || []\n // user transforms\n ],\n directiveTransforms: shared.extend(\n {},\n directiveTransforms,\n options.directiveTransforms || {}\n // user transforms\n )\n })\n );\n return generate(ast, resolvedOptions);\n}\n\nconst BindingTypes = {\n \"DATA\": \"data\",\n \"PROPS\": \"props\",\n \"PROPS_ALIASED\": \"props-aliased\",\n \"SETUP_LET\": \"setup-let\",\n \"SETUP_CONST\": \"setup-const\",\n \"SETUP_REACTIVE_CONST\": \"setup-reactive-const\",\n \"SETUP_MAYBE_REF\": \"setup-maybe-ref\",\n \"SETUP_REF\": \"setup-ref\",\n \"OPTIONS\": \"options\",\n \"LITERAL_CONST\": \"literal-const\"\n};\n\nconst noopDirectiveTransform = () => ({ props: [] });\n\nexports.generateCodeFrame = shared.generateCodeFrame;\nexports.BASE_TRANSITION = BASE_TRANSITION;\nexports.BindingTypes = BindingTypes;\nexports.CAMELIZE = CAMELIZE;\nexports.CAPITALIZE = CAPITALIZE;\nexports.CREATE_BLOCK = CREATE_BLOCK;\nexports.CREATE_COMMENT = CREATE_COMMENT;\nexports.CREATE_ELEMENT_BLOCK = CREATE_ELEMENT_BLOCK;\nexports.CREATE_ELEMENT_VNODE = CREATE_ELEMENT_VNODE;\nexports.CREATE_SLOTS = CREATE_SLOTS;\nexports.CREATE_STATIC = CREATE_STATIC;\nexports.CREATE_TEXT = CREATE_TEXT;\nexports.CREATE_VNODE = CREATE_VNODE;\nexports.CompilerDeprecationTypes = CompilerDeprecationTypes;\nexports.ConstantTypes = ConstantTypes;\nexports.ElementTypes = ElementTypes;\nexports.ErrorCodes = ErrorCodes;\nexports.FRAGMENT = FRAGMENT;\nexports.GUARD_REACTIVE_PROPS = GUARD_REACTIVE_PROPS;\nexports.IS_MEMO_SAME = IS_MEMO_SAME;\nexports.IS_REF = IS_REF;\nexports.KEEP_ALIVE = KEEP_ALIVE;\nexports.MERGE_PROPS = MERGE_PROPS;\nexports.NORMALIZE_CLASS = NORMALIZE_CLASS;\nexports.NORMALIZE_PROPS = NORMALIZE_PROPS;\nexports.NORMALIZE_STYLE = NORMALIZE_STYLE;\nexports.Namespaces = Namespaces;\nexports.NodeTypes = NodeTypes;\nexports.OPEN_BLOCK = OPEN_BLOCK;\nexports.POP_SCOPE_ID = POP_SCOPE_ID;\nexports.PUSH_SCOPE_ID = PUSH_SCOPE_ID;\nexports.RENDER_LIST = RENDER_LIST;\nexports.RENDER_SLOT = RENDER_SLOT;\nexports.RESOLVE_COMPONENT = RESOLVE_COMPONENT;\nexports.RESOLVE_DIRECTIVE = RESOLVE_DIRECTIVE;\nexports.RESOLVE_DYNAMIC_COMPONENT = RESOLVE_DYNAMIC_COMPONENT;\nexports.RESOLVE_FILTER = RESOLVE_FILTER;\nexports.SET_BLOCK_TRACKING = SET_BLOCK_TRACKING;\nexports.SUSPENSE = SUSPENSE;\nexports.TELEPORT = TELEPORT;\nexports.TO_DISPLAY_STRING = TO_DISPLAY_STRING;\nexports.TO_HANDLERS = TO_HANDLERS;\nexports.TO_HANDLER_KEY = TO_HANDLER_KEY;\nexports.TS_NODE_TYPES = TS_NODE_TYPES;\nexports.UNREF = UNREF;\nexports.WITH_CTX = WITH_CTX;\nexports.WITH_DIRECTIVES = WITH_DIRECTIVES;\nexports.WITH_MEMO = WITH_MEMO;\nexports.advancePositionWithClone = advancePositionWithClone;\nexports.advancePositionWithMutation = advancePositionWithMutation;\nexports.assert = assert;\nexports.baseCompile = baseCompile;\nexports.baseParse = baseParse;\nexports.buildDirectiveArgs = buildDirectiveArgs;\nexports.buildProps = buildProps;\nexports.buildSlots = buildSlots;\nexports.checkCompatEnabled = checkCompatEnabled;\nexports.convertToBlock = convertToBlock;\nexports.createArrayExpression = createArrayExpression;\nexports.createAssignmentExpression = createAssignmentExpression;\nexports.createBlockStatement = createBlockStatement;\nexports.createCacheExpression = createCacheExpression;\nexports.createCallExpression = createCallExpression;\nexports.createCompilerError = createCompilerError;\nexports.createCompoundExpression = createCompoundExpression;\nexports.createConditionalExpression = createConditionalExpression;\nexports.createForLoopParams = createForLoopParams;\nexports.createFunctionExpression = createFunctionExpression;\nexports.createIfStatement = createIfStatement;\nexports.createInterpolation = createInterpolation;\nexports.createObjectExpression = createObjectExpression;\nexports.createObjectProperty = createObjectProperty;\nexports.createReturnStatement = createReturnStatement;\nexports.createRoot = createRoot;\nexports.createSequenceExpression = createSequenceExpression;\nexports.createSimpleExpression = createSimpleExpression;\nexports.createStructuralDirectiveTransform = createStructuralDirectiveTransform;\nexports.createTemplateLiteral = createTemplateLiteral;\nexports.createTransformContext = createTransformContext;\nexports.createVNodeCall = createVNodeCall;\nexports.errorMessages = errorMessages;\nexports.extractIdentifiers = extractIdentifiers;\nexports.findDir = findDir;\nexports.findProp = findProp;\nexports.forAliasRE = forAliasRE;\nexports.generate = generate;\nexports.getBaseTransformPreset = getBaseTransformPreset;\nexports.getConstantType = getConstantType;\nexports.getMemoedVNodeCall = getMemoedVNodeCall;\nexports.getVNodeBlockHelper = getVNodeBlockHelper;\nexports.getVNodeHelper = getVNodeHelper;\nexports.hasDynamicKeyVBind = hasDynamicKeyVBind;\nexports.hasScopeRef = hasScopeRef;\nexports.helperNameMap = helperNameMap;\nexports.injectProp = injectProp;\nexports.isAllWhitespace = isAllWhitespace;\nexports.isCommentOrWhitespace = isCommentOrWhitespace;\nexports.isCoreComponent = isCoreComponent;\nexports.isFnExpression = isFnExpression;\nexports.isFnExpressionBrowser = isFnExpressionBrowser;\nexports.isFnExpressionNode = isFnExpressionNode;\nexports.isFunctionType = isFunctionType;\nexports.isInDestructureAssignment = isInDestructureAssignment;\nexports.isInNewExpression = isInNewExpression;\nexports.isMemberExpression = isMemberExpression;\nexports.isMemberExpressionBrowser = isMemberExpressionBrowser;\nexports.isMemberExpressionNode = isMemberExpressionNode;\nexports.isReferencedIdentifier = isReferencedIdentifier;\nexports.isSimpleIdentifier = isSimpleIdentifier;\nexports.isSlotOutlet = isSlotOutlet;\nexports.isStaticArgOf = isStaticArgOf;\nexports.isStaticExp = isStaticExp;\nexports.isStaticProperty = isStaticProperty;\nexports.isStaticPropertyKey = isStaticPropertyKey;\nexports.isTemplateNode = isTemplateNode;\nexports.isText = isText$1;\nexports.isVPre = isVPre;\nexports.isVSlot = isVSlot;\nexports.isWhitespaceText = isWhitespaceText;\nexports.locStub = locStub;\nexports.noopDirectiveTransform = noopDirectiveTransform;\nexports.processExpression = processExpression;\nexports.processFor = processFor;\nexports.processIf = processIf;\nexports.processSlotOutlet = processSlotOutlet;\nexports.registerRuntimeHelpers = registerRuntimeHelpers;\nexports.resolveComponentType = resolveComponentType;\nexports.stringifyExpression = stringifyExpression;\nexports.toValidAssetId = toValidAssetId;\nexports.trackSlotScopes = trackSlotScopes;\nexports.trackVForSlotScopes = trackVForSlotScopes;\nexports.transform = transform;\nexports.transformBind = transformBind;\nexports.transformElement = transformElement;\nexports.transformExpression = transformExpression;\nexports.transformModel = transformModel;\nexports.transformOn = transformOn;\nexports.transformVBindShorthand = transformVBindShorthand;\nexports.traverseNode = traverseNode;\nexports.unwrapTSNode = unwrapTSNode;\nexports.validFirstIdentCharRE = validFirstIdentCharRE;\nexports.walkBlockDeclarations = walkBlockDeclarations;\nexports.walkFunctionParams = walkFunctionParams;\nexports.walkIdentifiers = walkIdentifiers;\nexports.warnDeprecation = warnDeprecation;\n","/**\n* @vue/compiler-core v3.5.39\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar shared = require('@vue/shared');\nvar decode = require('entities/decode');\nvar parser = require('@babel/parser');\nvar estreeWalker = require('estree-walker');\nvar sourceMapJs = require('source-map-js');\n\nconst FRAGMENT = /* @__PURE__ */ Symbol(`Fragment` );\nconst TELEPORT = /* @__PURE__ */ Symbol(`Teleport` );\nconst SUSPENSE = /* @__PURE__ */ Symbol(`Suspense` );\nconst KEEP_ALIVE = /* @__PURE__ */ Symbol(`KeepAlive` );\nconst BASE_TRANSITION = /* @__PURE__ */ Symbol(\n `BaseTransition` \n);\nconst OPEN_BLOCK = /* @__PURE__ */ Symbol(`openBlock` );\nconst CREATE_BLOCK = /* @__PURE__ */ Symbol(`createBlock` );\nconst CREATE_ELEMENT_BLOCK = /* @__PURE__ */ Symbol(\n `createElementBlock` \n);\nconst CREATE_VNODE = /* @__PURE__ */ Symbol(`createVNode` );\nconst CREATE_ELEMENT_VNODE = /* @__PURE__ */ Symbol(\n `createElementVNode` \n);\nconst CREATE_COMMENT = /* @__PURE__ */ Symbol(\n `createCommentVNode` \n);\nconst CREATE_TEXT = /* @__PURE__ */ Symbol(\n `createTextVNode` \n);\nconst CREATE_STATIC = /* @__PURE__ */ Symbol(\n `createStaticVNode` \n);\nconst RESOLVE_COMPONENT = /* @__PURE__ */ Symbol(\n `resolveComponent` \n);\nconst RESOLVE_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol(\n `resolveDynamicComponent` \n);\nconst RESOLVE_DIRECTIVE = /* @__PURE__ */ Symbol(\n `resolveDirective` \n);\nconst RESOLVE_FILTER = /* @__PURE__ */ Symbol(\n `resolveFilter` \n);\nconst WITH_DIRECTIVES = /* @__PURE__ */ Symbol(\n `withDirectives` \n);\nconst RENDER_LIST = /* @__PURE__ */ Symbol(`renderList` );\nconst RENDER_SLOT = /* @__PURE__ */ Symbol(`renderSlot` );\nconst CREATE_SLOTS = /* @__PURE__ */ Symbol(`createSlots` );\nconst TO_DISPLAY_STRING = /* @__PURE__ */ Symbol(\n `toDisplayString` \n);\nconst MERGE_PROPS = /* @__PURE__ */ Symbol(`mergeProps` );\nconst NORMALIZE_CLASS = /* @__PURE__ */ Symbol(\n `normalizeClass` \n);\nconst NORMALIZE_STYLE = /* @__PURE__ */ Symbol(\n `normalizeStyle` \n);\nconst NORMALIZE_PROPS = /* @__PURE__ */ Symbol(\n `normalizeProps` \n);\nconst GUARD_REACTIVE_PROPS = /* @__PURE__ */ Symbol(\n `guardReactiveProps` \n);\nconst TO_HANDLERS = /* @__PURE__ */ Symbol(`toHandlers` );\nconst CAMELIZE = /* @__PURE__ */ Symbol(`camelize` );\nconst CAPITALIZE = /* @__PURE__ */ Symbol(`capitalize` );\nconst TO_HANDLER_KEY = /* @__PURE__ */ Symbol(\n `toHandlerKey` \n);\nconst SET_BLOCK_TRACKING = /* @__PURE__ */ Symbol(\n `setBlockTracking` \n);\nconst PUSH_SCOPE_ID = /* @__PURE__ */ Symbol(`pushScopeId` );\nconst POP_SCOPE_ID = /* @__PURE__ */ Symbol(`popScopeId` );\nconst WITH_CTX = /* @__PURE__ */ Symbol(`withCtx` );\nconst UNREF = /* @__PURE__ */ Symbol(`unref` );\nconst IS_REF = /* @__PURE__ */ Symbol(`isRef` );\nconst WITH_MEMO = /* @__PURE__ */ Symbol(`withMemo` );\nconst IS_MEMO_SAME = /* @__PURE__ */ Symbol(`isMemoSame` );\nconst helperNameMap = {\n [FRAGMENT]: `Fragment`,\n [TELEPORT]: `Teleport`,\n [SUSPENSE]: `Suspense`,\n [KEEP_ALIVE]: `KeepAlive`,\n [BASE_TRANSITION]: `BaseTransition`,\n [OPEN_BLOCK]: `openBlock`,\n [CREATE_BLOCK]: `createBlock`,\n [CREATE_ELEMENT_BLOCK]: `createElementBlock`,\n [CREATE_VNODE]: `createVNode`,\n [CREATE_ELEMENT_VNODE]: `createElementVNode`,\n [CREATE_COMMENT]: `createCommentVNode`,\n [CREATE_TEXT]: `createTextVNode`,\n [CREATE_STATIC]: `createStaticVNode`,\n [RESOLVE_COMPONENT]: `resolveComponent`,\n [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`,\n [RESOLVE_DIRECTIVE]: `resolveDirective`,\n [RESOLVE_FILTER]: `resolveFilter`,\n [WITH_DIRECTIVES]: `withDirectives`,\n [RENDER_LIST]: `renderList`,\n [RENDER_SLOT]: `renderSlot`,\n [CREATE_SLOTS]: `createSlots`,\n [TO_DISPLAY_STRING]: `toDisplayString`,\n [MERGE_PROPS]: `mergeProps`,\n [NORMALIZE_CLASS]: `normalizeClass`,\n [NORMALIZE_STYLE]: `normalizeStyle`,\n [NORMALIZE_PROPS]: `normalizeProps`,\n [GUARD_REACTIVE_PROPS]: `guardReactiveProps`,\n [TO_HANDLERS]: `toHandlers`,\n [CAMELIZE]: `camelize`,\n [CAPITALIZE]: `capitalize`,\n [TO_HANDLER_KEY]: `toHandlerKey`,\n [SET_BLOCK_TRACKING]: `setBlockTracking`,\n [PUSH_SCOPE_ID]: `pushScopeId`,\n [POP_SCOPE_ID]: `popScopeId`,\n [WITH_CTX]: `withCtx`,\n [UNREF]: `unref`,\n [IS_REF]: `isRef`,\n [WITH_MEMO]: `withMemo`,\n [IS_MEMO_SAME]: `isMemoSame`\n};\nfunction registerRuntimeHelpers(helpers) {\n Object.getOwnPropertySymbols(helpers).forEach((s) => {\n helperNameMap[s] = helpers[s];\n });\n}\n\nconst Namespaces = {\n \"HTML\": 0,\n \"0\": \"HTML\",\n \"SVG\": 1,\n \"1\": \"SVG\",\n \"MATH_ML\": 2,\n \"2\": \"MATH_ML\"\n};\nconst NodeTypes = {\n \"ROOT\": 0,\n \"0\": \"ROOT\",\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"TEXT\": 2,\n \"2\": \"TEXT\",\n \"COMMENT\": 3,\n \"3\": \"COMMENT\",\n \"SIMPLE_EXPRESSION\": 4,\n \"4\": \"SIMPLE_EXPRESSION\",\n \"INTERPOLATION\": 5,\n \"5\": \"INTERPOLATION\",\n \"ATTRIBUTE\": 6,\n \"6\": \"ATTRIBUTE\",\n \"DIRECTIVE\": 7,\n \"7\": \"DIRECTIVE\",\n \"COMPOUND_EXPRESSION\": 8,\n \"8\": \"COMPOUND_EXPRESSION\",\n \"IF\": 9,\n \"9\": \"IF\",\n \"IF_BRANCH\": 10,\n \"10\": \"IF_BRANCH\",\n \"FOR\": 11,\n \"11\": \"FOR\",\n \"TEXT_CALL\": 12,\n \"12\": \"TEXT_CALL\",\n \"VNODE_CALL\": 13,\n \"13\": \"VNODE_CALL\",\n \"JS_CALL_EXPRESSION\": 14,\n \"14\": \"JS_CALL_EXPRESSION\",\n \"JS_OBJECT_EXPRESSION\": 15,\n \"15\": \"JS_OBJECT_EXPRESSION\",\n \"JS_PROPERTY\": 16,\n \"16\": \"JS_PROPERTY\",\n \"JS_ARRAY_EXPRESSION\": 17,\n \"17\": \"JS_ARRAY_EXPRESSION\",\n \"JS_FUNCTION_EXPRESSION\": 18,\n \"18\": \"JS_FUNCTION_EXPRESSION\",\n \"JS_CONDITIONAL_EXPRESSION\": 19,\n \"19\": \"JS_CONDITIONAL_EXPRESSION\",\n \"JS_CACHE_EXPRESSION\": 20,\n \"20\": \"JS_CACHE_EXPRESSION\",\n \"JS_BLOCK_STATEMENT\": 21,\n \"21\": \"JS_BLOCK_STATEMENT\",\n \"JS_TEMPLATE_LITERAL\": 22,\n \"22\": \"JS_TEMPLATE_LITERAL\",\n \"JS_IF_STATEMENT\": 23,\n \"23\": \"JS_IF_STATEMENT\",\n \"JS_ASSIGNMENT_EXPRESSION\": 24,\n \"24\": \"JS_ASSIGNMENT_EXPRESSION\",\n \"JS_SEQUENCE_EXPRESSION\": 25,\n \"25\": \"JS_SEQUENCE_EXPRESSION\",\n \"JS_RETURN_STATEMENT\": 26,\n \"26\": \"JS_RETURN_STATEMENT\"\n};\nconst ElementTypes = {\n \"ELEMENT\": 0,\n \"0\": \"ELEMENT\",\n \"COMPONENT\": 1,\n \"1\": \"COMPONENT\",\n \"SLOT\": 2,\n \"2\": \"SLOT\",\n \"TEMPLATE\": 3,\n \"3\": \"TEMPLATE\"\n};\nconst ConstantTypes = {\n \"NOT_CONSTANT\": 0,\n \"0\": \"NOT_CONSTANT\",\n \"CAN_SKIP_PATCH\": 1,\n \"1\": \"CAN_SKIP_PATCH\",\n \"CAN_CACHE\": 2,\n \"2\": \"CAN_CACHE\",\n \"CAN_STRINGIFY\": 3,\n \"3\": \"CAN_STRINGIFY\"\n};\nconst locStub = {\n start: { line: 1, column: 1, offset: 0 },\n end: { line: 1, column: 1, offset: 0 },\n source: \"\"\n};\nfunction createRoot(children, source = \"\") {\n return {\n type: 0,\n source,\n children,\n helpers: /* @__PURE__ */ new Set(),\n components: [],\n directives: [],\n hoists: [],\n imports: [],\n cached: [],\n temps: 0,\n codegenNode: void 0,\n loc: locStub\n };\n}\nfunction createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) {\n if (context) {\n if (isBlock) {\n context.helper(OPEN_BLOCK);\n context.helper(getVNodeBlockHelper(context.inSSR, isComponent));\n } else {\n context.helper(getVNodeHelper(context.inSSR, isComponent));\n }\n if (directives) {\n context.helper(WITH_DIRECTIVES);\n }\n }\n return {\n type: 13,\n tag,\n props,\n children,\n patchFlag,\n dynamicProps,\n directives,\n isBlock,\n disableTracking,\n isComponent,\n loc\n };\n}\nfunction createArrayExpression(elements, loc = locStub) {\n return {\n type: 17,\n loc,\n elements\n };\n}\nfunction createObjectExpression(properties, loc = locStub) {\n return {\n type: 15,\n loc,\n properties\n };\n}\nfunction createObjectProperty(key, value) {\n return {\n type: 16,\n loc: locStub,\n key: shared.isString(key) ? createSimpleExpression(key, true) : key,\n value\n };\n}\nfunction createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) {\n return {\n type: 4,\n loc,\n content,\n isStatic,\n constType: isStatic ? 3 : constType\n };\n}\nfunction createInterpolation(content, loc) {\n return {\n type: 5,\n loc,\n content: shared.isString(content) ? createSimpleExpression(content, false, loc) : content\n };\n}\nfunction createCompoundExpression(children, loc = locStub) {\n return {\n type: 8,\n loc,\n children\n };\n}\nfunction createCallExpression(callee, args = [], loc = locStub) {\n return {\n type: 14,\n loc,\n callee,\n arguments: args\n };\n}\nfunction createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) {\n return {\n type: 18,\n params,\n returns,\n newline,\n isSlot,\n loc\n };\n}\nfunction createConditionalExpression(test, consequent, alternate, newline = true) {\n return {\n type: 19,\n test,\n consequent,\n alternate,\n newline,\n loc: locStub\n };\n}\nfunction createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) {\n return {\n type: 20,\n index,\n value,\n needPauseTracking,\n inVOnce,\n needArraySpread: false,\n loc: locStub\n };\n}\nfunction createBlockStatement(body) {\n return {\n type: 21,\n body,\n loc: locStub\n };\n}\nfunction createTemplateLiteral(elements) {\n return {\n type: 22,\n elements,\n loc: locStub\n };\n}\nfunction createIfStatement(test, consequent, alternate) {\n return {\n type: 23,\n test,\n consequent,\n alternate,\n loc: locStub\n };\n}\nfunction createAssignmentExpression(left, right) {\n return {\n type: 24,\n left,\n right,\n loc: locStub\n };\n}\nfunction createSequenceExpression(expressions) {\n return {\n type: 25,\n expressions,\n loc: locStub\n };\n}\nfunction createReturnStatement(returns) {\n return {\n type: 26,\n returns,\n loc: locStub\n };\n}\nfunction getVNodeHelper(ssr, isComponent) {\n return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE;\n}\nfunction getVNodeBlockHelper(ssr, isComponent) {\n return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK;\n}\nfunction convertToBlock(node, { helper, removeHelper, inSSR }) {\n if (!node.isBlock) {\n node.isBlock = true;\n removeHelper(getVNodeHelper(inSSR, node.isComponent));\n helper(OPEN_BLOCK);\n helper(getVNodeBlockHelper(inSSR, node.isComponent));\n }\n}\n\nconst defaultDelimitersOpen = new Uint8Array([123, 123]);\nconst defaultDelimitersClose = new Uint8Array([125, 125]);\nfunction isTagStartChar(c) {\n return c >= 97 && c <= 122 || c >= 65 && c <= 90;\n}\nfunction isWhitespace(c) {\n return c === 32 || c === 10 || c === 9 || c === 12 || c === 13;\n}\nfunction isEndOfTagSection(c) {\n return c === 47 || c === 62 || isWhitespace(c);\n}\nfunction toCharCodes(str) {\n const ret = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n ret[i] = str.charCodeAt(i);\n }\n return ret;\n}\nconst Sequences = {\n Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),\n // CDATA[\n CdataEnd: new Uint8Array([93, 93, 62]),\n // ]]>\n CommentEnd: new Uint8Array([45, 45, 62]),\n // `-->`\n ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),\n // `<\\/script`\n StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),\n // `</style`\n TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]),\n // `</title`\n TextareaEnd: new Uint8Array([\n 60,\n 47,\n 116,\n 101,\n 120,\n 116,\n 97,\n 114,\n 101,\n 97\n ])\n // `</textarea\n};\nclass Tokenizer {\n constructor(stack, cbs) {\n this.stack = stack;\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = 1;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** The start of the last entity. */\n this.entityStart = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = 1;\n /** For special parsing behavior inside of script and style tags. */\n this.inRCDATA = false;\n /** For disabling RCDATA tags handling */\n this.inXML = false;\n /** For disabling interpolation parsing in v-pre */\n this.inVPre = false;\n /** Record newline positions for fast line / column calculation */\n this.newlines = [];\n this.mode = 0;\n this.delimiterOpen = defaultDelimitersOpen;\n this.delimiterClose = defaultDelimitersClose;\n this.delimiterIndex = -1;\n this.currentSequence = void 0;\n this.sequenceIndex = 0;\n {\n this.entityDecoder = new decode.EntityDecoder(\n decode.htmlDecodeTree,\n (cp, consumed) => this.emitCodePoint(cp, consumed)\n );\n }\n }\n get inSFCRoot() {\n return this.mode === 2 && this.stack.length === 0;\n }\n reset() {\n this.state = 1;\n this.mode = 0;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = 1;\n this.inRCDATA = false;\n this.currentSequence = void 0;\n this.newlines.length = 0;\n this.delimiterOpen = defaultDelimitersOpen;\n this.delimiterClose = defaultDelimitersClose;\n }\n /**\n * Generate Position object with line / column information using recorded\n * newline positions. We know the index is always going to be an already\n * processed index, so all the newlines up to this index should have been\n * recorded.\n */\n getPos(index) {\n let line = 1;\n let column = index + 1;\n const length = this.newlines.length;\n let j = -1;\n if (length > 100) {\n let l = -1;\n let r = length;\n while (l + 1 < r) {\n const m = l + r >>> 1;\n this.newlines[m] < index ? l = m : r = m;\n }\n j = l;\n } else {\n for (let i = length - 1; i >= 0; i--) {\n if (index > this.newlines[i]) {\n j = i;\n break;\n }\n }\n }\n if (j >= 0) {\n line = j + 2;\n column = index - this.newlines[j];\n }\n return {\n column,\n line,\n offset: index\n };\n }\n peek() {\n return this.buffer.charCodeAt(this.index + 1);\n }\n stateText(c) {\n if (c === 60) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = 5;\n this.sectionStart = this.index;\n } else if (c === 38) {\n this.startEntity();\n } else if (!this.inVPre && c === this.delimiterOpen[0]) {\n this.state = 2;\n this.delimiterIndex = 0;\n this.stateInterpolationOpen(c);\n }\n }\n stateInterpolationOpen(c) {\n if (c === this.delimiterOpen[this.delimiterIndex]) {\n if (this.delimiterIndex === this.delimiterOpen.length - 1) {\n const start = this.index + 1 - this.delimiterOpen.length;\n if (start > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, start);\n }\n this.state = 3;\n this.sectionStart = start;\n } else {\n this.delimiterIndex++;\n }\n } else if (this.inRCDATA) {\n this.state = 32;\n this.stateInRCDATA(c);\n } else {\n this.state = 1;\n this.stateText(c);\n }\n }\n stateInterpolation(c) {\n if (c === this.delimiterClose[0]) {\n this.state = 4;\n this.delimiterIndex = 0;\n this.stateInterpolationClose(c);\n }\n }\n stateInterpolationClose(c) {\n if (c === this.delimiterClose[this.delimiterIndex]) {\n if (this.delimiterIndex === this.delimiterClose.length - 1) {\n this.cbs.oninterpolation(this.sectionStart, this.index + 1);\n if (this.inRCDATA) {\n this.state = 32;\n } else {\n this.state = 1;\n }\n this.sectionStart = this.index + 1;\n } else {\n this.delimiterIndex++;\n }\n } else {\n this.state = 3;\n this.stateInterpolation(c);\n }\n }\n stateSpecialStartSequence(c) {\n const isEnd = this.sequenceIndex === this.currentSequence.length;\n const isMatch = isEnd ? (\n // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n ) : (\n // Otherwise, do a case-insensitive comparison\n (c | 32) === this.currentSequence[this.sequenceIndex]\n );\n if (!isMatch) {\n this.inRCDATA = false;\n } else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = 6;\n this.stateInTagName(c);\n }\n /** Look for an end tag. For <title> and <textarea>, also decode entities. */\n stateInRCDATA(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === 62 || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.sectionStart = endOfText + 2;\n this.stateInClosingTagName(c);\n this.inRCDATA = false;\n return;\n }\n this.sequenceIndex = 0;\n }\n if ((c | 32) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n } else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) {\n if (c === 38) {\n this.startEntity();\n } else if (!this.inVPre && c === this.delimiterOpen[0]) {\n this.state = 2;\n this.delimiterIndex = 0;\n this.stateInterpolationOpen(c);\n }\n } else if (this.fastForwardTo(60)) {\n this.sequenceIndex = 1;\n }\n } else {\n this.sequenceIndex = Number(c === 60);\n }\n }\n stateCDATASequence(c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = 28;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n } else {\n this.sequenceIndex = 0;\n this.state = 23;\n this.stateInDeclaration(c);\n }\n }\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n fastForwardTo(c) {\n while (++this.index < this.buffer.length) {\n const cc = this.buffer.charCodeAt(this.index);\n if (cc === 10) {\n this.newlines.push(this.index);\n }\n if (cc === c) {\n return true;\n }\n }\n this.index = this.buffer.length - 1;\n return false;\n }\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n stateInCommentLike(c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index - 2);\n } else {\n this.cbs.oncomment(this.sectionStart, this.index - 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = 1;\n }\n } else if (this.sequenceIndex === 0) {\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n } else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n this.sequenceIndex = 0;\n }\n }\n startSpecial(sequence, offset) {\n this.enterRCDATA(sequence, offset);\n this.state = 31;\n }\n enterRCDATA(sequence, offset) {\n this.inRCDATA = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n }\n stateBeforeTagName(c) {\n if (c === 33) {\n this.state = 22;\n this.sectionStart = this.index + 1;\n } else if (c === 63) {\n this.state = 24;\n this.sectionStart = this.index + 1;\n } else if (isTagStartChar(c)) {\n this.sectionStart = this.index;\n if (this.mode === 0) {\n this.state = 6;\n } else if (this.inSFCRoot) {\n this.state = 34;\n } else if (!this.inXML) {\n if (c === 116) {\n this.state = 30;\n } else {\n this.state = c === 115 ? 29 : 6;\n }\n } else {\n this.state = 6;\n }\n } else if (c === 47) {\n this.state = 8;\n } else {\n this.state = 1;\n this.stateText(c);\n }\n }\n stateInTagName(c) {\n if (isEndOfTagSection(c)) {\n this.handleTagName(c);\n }\n }\n stateInSFCRootTagName(c) {\n if (isEndOfTagSection(c)) {\n const tag = this.buffer.slice(this.sectionStart, this.index);\n if (tag !== \"template\") {\n this.enterRCDATA(toCharCodes(`</` + tag), 0);\n }\n this.handleTagName(c);\n }\n }\n handleTagName(c) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = 11;\n this.stateBeforeAttrName(c);\n }\n stateBeforeClosingTagName(c) {\n if (isWhitespace(c)) ; else if (c === 62) {\n {\n this.cbs.onerr(14, this.index);\n }\n this.state = 1;\n this.sectionStart = this.index + 1;\n } else {\n this.state = isTagStartChar(c) ? 9 : 27;\n this.sectionStart = this.index;\n }\n }\n stateInClosingTagName(c) {\n if (c === 62 || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = 10;\n this.stateAfterClosingTagName(c);\n }\n }\n stateAfterClosingTagName(c) {\n if (c === 62) {\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeAttrName(c) {\n if (c === 62) {\n this.cbs.onopentagend(this.index);\n if (this.inRCDATA) {\n this.state = 32;\n } else {\n this.state = 1;\n }\n this.sectionStart = this.index + 1;\n } else if (c === 47) {\n this.state = 7;\n if (this.peek() !== 62) {\n this.cbs.onerr(22, this.index);\n }\n } else if (c === 60 && this.peek() === 47) {\n this.cbs.onopentagend(this.index);\n this.state = 5;\n this.sectionStart = this.index;\n } else if (!isWhitespace(c)) {\n if (c === 61) {\n this.cbs.onerr(\n 19,\n this.index\n );\n }\n this.handleAttrStart(c);\n }\n }\n handleAttrStart(c) {\n if (c === 118 && this.peek() === 45) {\n this.state = 13;\n this.sectionStart = this.index;\n } else if (c === 46 || c === 58 || c === 64 || c === 35) {\n this.cbs.ondirname(this.index, this.index + 1);\n this.state = 14;\n this.sectionStart = this.index + 1;\n } else {\n this.state = 12;\n this.sectionStart = this.index;\n }\n }\n stateInSelfClosingTag(c) {\n if (c === 62) {\n this.cbs.onselfclosingtag(this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n this.inRCDATA = false;\n } else if (!isWhitespace(c)) {\n this.state = 11;\n this.stateBeforeAttrName(c);\n }\n }\n stateInAttrName(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 34 || c === 39 || c === 60) {\n this.cbs.onerr(\n 17,\n this.index\n );\n }\n }\n stateInDirName(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 58) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.state = 14;\n this.sectionStart = this.index + 1;\n } else if (c === 46) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.state = 16;\n this.sectionStart = this.index + 1;\n }\n }\n stateInDirArg(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirarg(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 91) {\n this.state = 15;\n } else if (c === 46) {\n this.cbs.ondirarg(this.sectionStart, this.index);\n this.state = 16;\n this.sectionStart = this.index + 1;\n }\n }\n stateInDynamicDirArg(c) {\n if (c === 93) {\n this.state = 14;\n } else if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirarg(this.sectionStart, this.index + 1);\n this.handleAttrNameEnd(c);\n {\n this.cbs.onerr(\n 27,\n this.index\n );\n }\n }\n }\n stateInDirModifier(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirmodifier(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 46) {\n this.cbs.ondirmodifier(this.sectionStart, this.index);\n this.sectionStart = this.index + 1;\n }\n }\n handleAttrNameEnd(c) {\n this.sectionStart = this.index;\n this.state = 17;\n this.cbs.onattribnameend(this.index);\n this.stateAfterAttrName(c);\n }\n stateAfterAttrName(c) {\n if (c === 61) {\n this.state = 18;\n } else if (c === 47 || c === 62) {\n this.cbs.onattribend(0, this.sectionStart);\n this.sectionStart = -1;\n this.state = 11;\n this.stateBeforeAttrName(c);\n } else if (!isWhitespace(c)) {\n this.cbs.onattribend(0, this.sectionStart);\n this.handleAttrStart(c);\n }\n }\n stateBeforeAttrValue(c) {\n if (c === 34) {\n this.state = 19;\n this.sectionStart = this.index + 1;\n } else if (c === 39) {\n this.state = 20;\n this.sectionStart = this.index + 1;\n } else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = 21;\n this.stateInAttrValueNoQuotes(c);\n }\n }\n handleInAttrValue(c, quote) {\n if (c === quote || false) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(\n quote === 34 ? 3 : 2,\n this.index + 1\n );\n this.state = 11;\n } else if (c === 38) {\n this.startEntity();\n }\n }\n stateInAttrValueDoubleQuotes(c) {\n this.handleInAttrValue(c, 34);\n }\n stateInAttrValueSingleQuotes(c) {\n this.handleInAttrValue(c, 39);\n }\n stateInAttrValueNoQuotes(c) {\n if (isWhitespace(c) || c === 62) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(1, this.index);\n this.state = 11;\n this.stateBeforeAttrName(c);\n } else if (c === 34 || c === 39 || c === 60 || c === 61 || c === 96) {\n this.cbs.onerr(\n 18,\n this.index\n );\n } else if (c === 38) {\n this.startEntity();\n }\n }\n stateBeforeDeclaration(c) {\n if (c === 91) {\n this.state = 26;\n this.sequenceIndex = 0;\n } else {\n this.state = c === 45 ? 25 : 23;\n }\n }\n stateInDeclaration(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateInProcessingInstruction(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeComment(c) {\n if (c === 45) {\n this.state = 28;\n this.currentSequence = Sequences.CommentEnd;\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n } else {\n this.state = 23;\n }\n }\n stateInSpecialComment(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.cbs.oncomment(this.sectionStart, this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeSpecialS(c) {\n if (c === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n } else if (c === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n } else {\n this.state = 6;\n this.stateInTagName(c);\n }\n }\n stateBeforeSpecialT(c) {\n if (c === Sequences.TitleEnd[3]) {\n this.startSpecial(Sequences.TitleEnd, 4);\n } else if (c === Sequences.TextareaEnd[3]) {\n this.startSpecial(Sequences.TextareaEnd, 4);\n } else {\n this.state = 6;\n this.stateInTagName(c);\n }\n }\n startEntity() {\n {\n this.baseState = this.state;\n this.state = 33;\n this.entityStart = this.index;\n this.entityDecoder.startEntity(\n this.baseState === 1 || this.baseState === 32 ? decode.DecodingMode.Legacy : decode.DecodingMode.Attribute\n );\n }\n }\n stateInEntity() {\n {\n const length = this.entityDecoder.write(this.buffer, this.index);\n if (length >= 0) {\n this.state = this.baseState;\n if (length === 0) {\n this.index = this.entityStart;\n }\n } else {\n this.index = this.buffer.length - 1;\n }\n }\n }\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n parse(input) {\n this.buffer = input;\n while (this.index < this.buffer.length) {\n const c = this.buffer.charCodeAt(this.index);\n if (c === 10 && this.state !== 33) {\n this.newlines.push(this.index);\n }\n switch (this.state) {\n case 1: {\n this.stateText(c);\n break;\n }\n case 2: {\n this.stateInterpolationOpen(c);\n break;\n }\n case 3: {\n this.stateInterpolation(c);\n break;\n }\n case 4: {\n this.stateInterpolationClose(c);\n break;\n }\n case 31: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case 32: {\n this.stateInRCDATA(c);\n break;\n }\n case 26: {\n this.stateCDATASequence(c);\n break;\n }\n case 19: {\n this.stateInAttrValueDoubleQuotes(c);\n break;\n }\n case 12: {\n this.stateInAttrName(c);\n break;\n }\n case 13: {\n this.stateInDirName(c);\n break;\n }\n case 14: {\n this.stateInDirArg(c);\n break;\n }\n case 15: {\n this.stateInDynamicDirArg(c);\n break;\n }\n case 16: {\n this.stateInDirModifier(c);\n break;\n }\n case 28: {\n this.stateInCommentLike(c);\n break;\n }\n case 27: {\n this.stateInSpecialComment(c);\n break;\n }\n case 11: {\n this.stateBeforeAttrName(c);\n break;\n }\n case 6: {\n this.stateInTagName(c);\n break;\n }\n case 34: {\n this.stateInSFCRootTagName(c);\n break;\n }\n case 9: {\n this.stateInClosingTagName(c);\n break;\n }\n case 5: {\n this.stateBeforeTagName(c);\n break;\n }\n case 17: {\n this.stateAfterAttrName(c);\n break;\n }\n case 20: {\n this.stateInAttrValueSingleQuotes(c);\n break;\n }\n case 18: {\n this.stateBeforeAttrValue(c);\n break;\n }\n case 8: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case 10: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case 29: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case 30: {\n this.stateBeforeSpecialT(c);\n break;\n }\n case 21: {\n this.stateInAttrValueNoQuotes(c);\n break;\n }\n case 7: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case 23: {\n this.stateInDeclaration(c);\n break;\n }\n case 22: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case 25: {\n this.stateBeforeComment(c);\n break;\n }\n case 24: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case 33: {\n this.stateInEntity();\n break;\n }\n }\n this.index++;\n }\n this.cleanup();\n this.finish();\n }\n /**\n * Remove data that has already been consumed from the buffer.\n */\n cleanup() {\n if (this.sectionStart !== this.index) {\n if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n } else if (this.state === 19 || this.state === 20 || this.state === 21) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n finish() {\n if (this.state === 33) {\n this.entityDecoder.end();\n this.state = this.baseState;\n }\n this.handleTrailingData();\n this.cbs.onend();\n }\n /** Handle any trailing data. */\n handleTrailingData() {\n const endIndex = this.buffer.length;\n if (this.sectionStart >= endIndex) {\n return;\n }\n if (this.state === 28) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex);\n } else {\n this.cbs.oncomment(this.sectionStart, endIndex);\n }\n } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n emitCodePoint(cp, consumed) {\n {\n if (this.baseState !== 1 && this.baseState !== 32) {\n if (this.sectionStart < this.entityStart) {\n this.cbs.onattribdata(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.onattribentity(\n decode.fromCodePoint(cp),\n this.entityStart,\n this.sectionStart\n );\n } else {\n if (this.sectionStart < this.entityStart) {\n this.cbs.ontext(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.ontextentity(\n decode.fromCodePoint(cp),\n this.entityStart,\n this.sectionStart\n );\n }\n }\n }\n}\n\nconst CompilerDeprecationTypes = {\n \"COMPILER_IS_ON_ELEMENT\": \"COMPILER_IS_ON_ELEMENT\",\n \"COMPILER_V_BIND_SYNC\": \"COMPILER_V_BIND_SYNC\",\n \"COMPILER_V_BIND_OBJECT_ORDER\": \"COMPILER_V_BIND_OBJECT_ORDER\",\n \"COMPILER_V_ON_NATIVE\": \"COMPILER_V_ON_NATIVE\",\n \"COMPILER_V_IF_V_FOR_PRECEDENCE\": \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n \"COMPILER_NATIVE_TEMPLATE\": \"COMPILER_NATIVE_TEMPLATE\",\n \"COMPILER_INLINE_TEMPLATE\": \"COMPILER_INLINE_TEMPLATE\",\n \"COMPILER_FILTERS\": \"COMPILER_FILTERS\"\n};\nconst deprecationData = {\n [\"COMPILER_IS_ON_ELEMENT\"]: {\n message: `Platform-native elements with \"is\" prop will no longer be treated as components in Vue 3 unless the \"is\" value is explicitly prefixed with \"vue:\".`,\n link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`\n },\n [\"COMPILER_V_BIND_SYNC\"]: {\n message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \\`v-bind:${key}.sync\\` should be changed to \\`v-model:${key}\\`.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`\n },\n [\"COMPILER_V_BIND_OBJECT_ORDER\"]: {\n message: `v-bind=\"obj\" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`\n },\n [\"COMPILER_V_ON_NATIVE\"]: {\n message: `.native modifier for v-on has been removed as is no longer necessary.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`\n },\n [\"COMPILER_V_IF_V_FOR_PRECEDENCE\"]: {\n message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`\n },\n [\"COMPILER_NATIVE_TEMPLATE\"]: {\n message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.`\n },\n [\"COMPILER_INLINE_TEMPLATE\"]: {\n message: `\"inline-template\" has been removed in Vue 3.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`\n },\n [\"COMPILER_FILTERS\"]: {\n message: `filters have been removed in Vue 3. The \"|\" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`\n }\n};\nfunction getCompatValue(key, { compatConfig }) {\n const value = compatConfig && compatConfig[key];\n if (key === \"MODE\") {\n return value || 3;\n } else {\n return value;\n }\n}\nfunction isCompatEnabled(key, context) {\n const mode = getCompatValue(\"MODE\", context);\n const value = getCompatValue(key, context);\n return mode === 3 ? value === true : value !== false;\n}\nfunction checkCompatEnabled(key, context, loc, ...args) {\n const enabled = isCompatEnabled(key, context);\n if (enabled) {\n warnDeprecation(key, context, loc, ...args);\n }\n return enabled;\n}\nfunction warnDeprecation(key, context, loc, ...args) {\n const val = getCompatValue(key, context);\n if (val === \"suppress-warning\") {\n return;\n }\n const { message, link } = deprecationData[key];\n const msg = `(deprecation ${key}) ${typeof message === \"function\" ? message(...args) : message}${link ? `\n Details: ${link}` : ``}`;\n const err = new SyntaxError(msg);\n err.code = key;\n if (loc) err.loc = loc;\n context.onWarn(err);\n}\n\nfunction defaultOnError(error) {\n throw error;\n}\nfunction defaultOnWarn(msg) {\n console.warn(`[Vue warn] ${msg.message}`);\n}\nfunction createCompilerError(code, loc, messages, additionalMessage) {\n const msg = (messages || errorMessages)[code] + (additionalMessage || ``) ;\n const error = new SyntaxError(String(msg));\n error.code = code;\n error.loc = loc;\n return error;\n}\nconst ErrorCodes = {\n \"ABRUPT_CLOSING_OF_EMPTY_COMMENT\": 0,\n \"0\": \"ABRUPT_CLOSING_OF_EMPTY_COMMENT\",\n \"CDATA_IN_HTML_CONTENT\": 1,\n \"1\": \"CDATA_IN_HTML_CONTENT\",\n \"DUPLICATE_ATTRIBUTE\": 2,\n \"2\": \"DUPLICATE_ATTRIBUTE\",\n \"END_TAG_WITH_ATTRIBUTES\": 3,\n \"3\": \"END_TAG_WITH_ATTRIBUTES\",\n \"END_TAG_WITH_TRAILING_SOLIDUS\": 4,\n \"4\": \"END_TAG_WITH_TRAILING_SOLIDUS\",\n \"EOF_BEFORE_TAG_NAME\": 5,\n \"5\": \"EOF_BEFORE_TAG_NAME\",\n \"EOF_IN_CDATA\": 6,\n \"6\": \"EOF_IN_CDATA\",\n \"EOF_IN_COMMENT\": 7,\n \"7\": \"EOF_IN_COMMENT\",\n \"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT\": 8,\n \"8\": \"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT\",\n \"EOF_IN_TAG\": 9,\n \"9\": \"EOF_IN_TAG\",\n \"INCORRECTLY_CLOSED_COMMENT\": 10,\n \"10\": \"INCORRECTLY_CLOSED_COMMENT\",\n \"INCORRECTLY_OPENED_COMMENT\": 11,\n \"11\": \"INCORRECTLY_OPENED_COMMENT\",\n \"INVALID_FIRST_CHARACTER_OF_TAG_NAME\": 12,\n \"12\": \"INVALID_FIRST_CHARACTER_OF_TAG_NAME\",\n \"MISSING_ATTRIBUTE_VALUE\": 13,\n \"13\": \"MISSING_ATTRIBUTE_VALUE\",\n \"MISSING_END_TAG_NAME\": 14,\n \"14\": \"MISSING_END_TAG_NAME\",\n \"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES\": 15,\n \"15\": \"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES\",\n \"NESTED_COMMENT\": 16,\n \"16\": \"NESTED_COMMENT\",\n \"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME\": 17,\n \"17\": \"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME\",\n \"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE\": 18,\n \"18\": \"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE\",\n \"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME\": 19,\n \"19\": \"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME\",\n \"UNEXPECTED_NULL_CHARACTER\": 20,\n \"20\": \"UNEXPECTED_NULL_CHARACTER\",\n \"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME\": 21,\n \"21\": \"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME\",\n \"UNEXPECTED_SOLIDUS_IN_TAG\": 22,\n \"22\": \"UNEXPECTED_SOLIDUS_IN_TAG\",\n \"X_INVALID_END_TAG\": 23,\n \"23\": \"X_INVALID_END_TAG\",\n \"X_MISSING_END_TAG\": 24,\n \"24\": \"X_MISSING_END_TAG\",\n \"X_MISSING_INTERPOLATION_END\": 25,\n \"25\": \"X_MISSING_INTERPOLATION_END\",\n \"X_MISSING_DIRECTIVE_NAME\": 26,\n \"26\": \"X_MISSING_DIRECTIVE_NAME\",\n \"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END\": 27,\n \"27\": \"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END\",\n \"X_V_IF_NO_EXPRESSION\": 28,\n \"28\": \"X_V_IF_NO_EXPRESSION\",\n \"X_V_IF_SAME_KEY\": 29,\n \"29\": \"X_V_IF_SAME_KEY\",\n \"X_V_ELSE_NO_ADJACENT_IF\": 30,\n \"30\": \"X_V_ELSE_NO_ADJACENT_IF\",\n \"X_V_FOR_NO_EXPRESSION\": 31,\n \"31\": \"X_V_FOR_NO_EXPRESSION\",\n \"X_V_FOR_MALFORMED_EXPRESSION\": 32,\n \"32\": \"X_V_FOR_MALFORMED_EXPRESSION\",\n \"X_V_FOR_TEMPLATE_KEY_PLACEMENT\": 33,\n \"33\": \"X_V_FOR_TEMPLATE_KEY_PLACEMENT\",\n \"X_V_BIND_NO_EXPRESSION\": 34,\n \"34\": \"X_V_BIND_NO_EXPRESSION\",\n \"X_V_ON_NO_EXPRESSION\": 35,\n \"35\": \"X_V_ON_NO_EXPRESSION\",\n \"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET\": 36,\n \"36\": \"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET\",\n \"X_V_SLOT_MIXED_SLOT_USAGE\": 37,\n \"37\": \"X_V_SLOT_MIXED_SLOT_USAGE\",\n \"X_V_SLOT_DUPLICATE_SLOT_NAMES\": 38,\n \"38\": \"X_V_SLOT_DUPLICATE_SLOT_NAMES\",\n \"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN\": 39,\n \"39\": \"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN\",\n \"X_V_SLOT_MISPLACED\": 40,\n \"40\": \"X_V_SLOT_MISPLACED\",\n \"X_V_MODEL_NO_EXPRESSION\": 41,\n \"41\": \"X_V_MODEL_NO_EXPRESSION\",\n \"X_V_MODEL_MALFORMED_EXPRESSION\": 42,\n \"42\": \"X_V_MODEL_MALFORMED_EXPRESSION\",\n \"X_V_MODEL_ON_SCOPE_VARIABLE\": 43,\n \"43\": \"X_V_MODEL_ON_SCOPE_VARIABLE\",\n \"X_V_MODEL_ON_PROPS\": 44,\n \"44\": \"X_V_MODEL_ON_PROPS\",\n \"X_V_MODEL_ON_CONST\": 45,\n \"45\": \"X_V_MODEL_ON_CONST\",\n \"X_INVALID_EXPRESSION\": 46,\n \"46\": \"X_INVALID_EXPRESSION\",\n \"X_KEEP_ALIVE_INVALID_CHILDREN\": 47,\n \"47\": \"X_KEEP_ALIVE_INVALID_CHILDREN\",\n \"X_PREFIX_ID_NOT_SUPPORTED\": 48,\n \"48\": \"X_PREFIX_ID_NOT_SUPPORTED\",\n \"X_MODULE_MODE_NOT_SUPPORTED\": 49,\n \"49\": \"X_MODULE_MODE_NOT_SUPPORTED\",\n \"X_CACHE_HANDLER_NOT_SUPPORTED\": 50,\n \"50\": \"X_CACHE_HANDLER_NOT_SUPPORTED\",\n \"X_SCOPE_ID_NOT_SUPPORTED\": 51,\n \"51\": \"X_SCOPE_ID_NOT_SUPPORTED\",\n \"X_VNODE_HOOKS\": 52,\n \"52\": \"X_VNODE_HOOKS\",\n \"X_V_BIND_INVALID_SAME_NAME_ARGUMENT\": 53,\n \"53\": \"X_V_BIND_INVALID_SAME_NAME_ARGUMENT\",\n \"__EXTEND_POINT__\": 54,\n \"54\": \"__EXTEND_POINT__\"\n};\nconst errorMessages = {\n // parse errors\n [0]: \"Illegal comment.\",\n [1]: \"CDATA section is allowed only in XML context.\",\n [2]: \"Duplicate attribute.\",\n [3]: \"End tag cannot have attributes.\",\n [4]: \"Illegal '/' in tags.\",\n [5]: \"Unexpected EOF in tag.\",\n [6]: \"Unexpected EOF in CDATA section.\",\n [7]: \"Unexpected EOF in comment.\",\n [8]: \"Unexpected EOF in script.\",\n [9]: \"Unexpected EOF in tag.\",\n [10]: \"Incorrectly closed comment.\",\n [11]: \"Incorrectly opened comment.\",\n [12]: \"Illegal tag name. Use '&lt;' to print '<'.\",\n [13]: \"Attribute value was expected.\",\n [14]: \"End tag name was expected.\",\n [15]: \"Whitespace was expected.\",\n [16]: \"Unexpected '<!--' in comment.\",\n [17]: `Attribute name cannot contain U+0022 (\"), U+0027 ('), and U+003C (<).`,\n [18]: \"Unquoted attribute value cannot contain U+0022 (\\\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).\",\n [19]: \"Attribute name cannot start with '='.\",\n [21]: \"'<?' is allowed only in XML context.\",\n [20]: `Unexpected null character.`,\n [22]: \"Illegal '/' in tags.\",\n // Vue-specific parse errors\n [23]: \"Invalid end tag.\",\n [24]: \"Element is missing end tag.\",\n [25]: \"Interpolation end sign was not found.\",\n [27]: \"End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.\",\n [26]: \"Legal directive name was expected.\",\n // transform errors\n [28]: `v-if/v-else-if is missing expression.`,\n [29]: `v-if/else branches must use unique keys.`,\n [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`,\n [31]: `v-for is missing expression.`,\n [32]: `v-for has invalid expression.`,\n [33]: `<template v-for> key should be placed on the <template> tag.`,\n [34]: `v-bind is missing expression.`,\n [53]: `v-bind with same-name shorthand only allows static argument.`,\n [35]: `v-on is missing expression.`,\n [36]: `Unexpected custom directive on <slot> outlet.`,\n [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`,\n [38]: `Duplicate slot names found. `,\n [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`,\n [40]: `v-slot can only be used on components or <template> tags.`,\n [41]: `v-model is missing expression.`,\n [42]: `v-model value must be a valid JavaScript member expression.`,\n [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,\n [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.\nUse a v-bind binding combined with a v-on listener that emits update:x event instead.`,\n [45]: `v-model cannot be used on a const binding because it is not writable.`,\n [46]: `Error parsing JavaScript expression: `,\n [47]: `<KeepAlive> expects exactly one child component.`,\n [52]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`,\n // generic errors\n [48]: `\"prefixIdentifiers\" option is not supported in this build of compiler.`,\n [49]: `ES module mode is not supported in this build of compiler.`,\n [50]: `\"cacheHandlers\" option is only supported when the \"prefixIdentifiers\" option is enabled.`,\n [51]: `\"scopeId\" option is only supported in module mode.`,\n // just to fulfill types\n [54]: ``\n};\n\nfunction walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) {\n const rootExp = root.type === \"Program\" ? root.body[0].type === \"ExpressionStatement\" && root.body[0].expression : root;\n estreeWalker.walk(root, {\n enter(node, parent) {\n parent && parentStack.push(parent);\n if (parent && parent.type.startsWith(\"TS\") && !TS_NODE_TYPES.includes(parent.type)) {\n return this.skip();\n }\n if (node.type === \"Identifier\") {\n const isLocal = !!knownIds[node.name];\n const isRefed = isReferencedIdentifier(node, parent, parentStack);\n if (includeAll || isRefed && !isLocal) {\n onIdentifier(node, parent, parentStack, isRefed, isLocal);\n }\n } else if (node.type === \"ObjectProperty\" && // eslint-disable-next-line no-restricted-syntax\n (parent == null ? void 0 : parent.type) === \"ObjectPattern\") {\n node.inPattern = true;\n } else if (isFunctionType(node)) {\n if (node.scopeIds) {\n node.scopeIds.forEach((id) => markKnownIds(id, knownIds));\n } else {\n walkFunctionParams(\n node,\n (id) => markScopeIdentifier(node, id, knownIds)\n );\n }\n } else if (node.type === \"BlockStatement\") {\n if (node.scopeIds) {\n node.scopeIds.forEach((id) => markKnownIds(id, knownIds));\n } else {\n walkBlockDeclarations(\n node,\n (id) => markScopeIdentifier(node, id, knownIds)\n );\n }\n } else if (node.type === \"SwitchStatement\") {\n if (node.scopeIds) {\n node.scopeIds.forEach((id) => markKnownIds(id, knownIds));\n } else {\n walkSwitchStatement(\n node,\n false,\n (id) => markScopeIdentifier(node, id, knownIds)\n );\n }\n } else if (node.type === \"CatchClause\" && node.param) {\n if (node.scopeIds) {\n node.scopeIds.forEach((id) => markKnownIds(id, knownIds));\n } else {\n for (const id of extractIdentifiers(node.param)) {\n markScopeIdentifier(node, id, knownIds);\n }\n }\n } else if (isForStatement(node)) {\n if (node.scopeIds) {\n node.scopeIds.forEach((id) => markKnownIds(id, knownIds));\n } else {\n walkForStatement(\n node,\n false,\n (id) => markScopeIdentifier(node, id, knownIds)\n );\n }\n }\n },\n leave(node, parent) {\n parent && parentStack.pop();\n if (node !== rootExp && node.scopeIds) {\n for (const id of node.scopeIds) {\n knownIds[id]--;\n if (knownIds[id] === 0) {\n delete knownIds[id];\n }\n }\n }\n }\n });\n}\nfunction isReferencedIdentifier(id, parent, parentStack) {\n if (!parent) {\n return true;\n }\n if (id.name === \"arguments\") {\n return false;\n }\n if (isReferenced(id, parent, parentStack[parentStack.length - 2])) {\n return true;\n }\n switch (parent.type) {\n case \"AssignmentExpression\":\n case \"AssignmentPattern\":\n return true;\n case \"ObjectProperty\":\n return parent.key !== id && isInDestructureAssignment(parent, parentStack);\n case \"ArrayPattern\":\n return isInDestructureAssignment(parent, parentStack);\n }\n return false;\n}\nfunction isInDestructureAssignment(parent, parentStack) {\n if (parent && (parent.type === \"ObjectProperty\" || parent.type === \"ArrayPattern\")) {\n let i = parentStack.length;\n while (i--) {\n const p = parentStack[i];\n if (p.type === \"AssignmentExpression\") {\n return true;\n } else if (p.type !== \"ObjectProperty\" && !p.type.endsWith(\"Pattern\")) {\n break;\n }\n }\n }\n return false;\n}\nfunction isInNewExpression(parentStack) {\n let i = parentStack.length;\n while (i--) {\n const p = parentStack[i];\n if (p.type === \"NewExpression\") {\n return true;\n } else if (p.type !== \"MemberExpression\") {\n break;\n }\n }\n return false;\n}\nfunction walkFunctionParams(node, onIdent) {\n for (const p of node.params) {\n for (const id of extractIdentifiers(p)) {\n onIdent(id);\n }\n }\n}\nfunction walkBlockDeclarations(block, onIdent) {\n const body = block.type === \"SwitchCase\" ? block.consequent : block.body;\n for (const stmt of body) {\n if (stmt.type === \"VariableDeclaration\") {\n if (stmt.declare) continue;\n for (const decl of stmt.declarations) {\n for (const id of extractIdentifiers(decl.id)) {\n onIdent(id);\n }\n }\n } else if (stmt.type === \"FunctionDeclaration\" || stmt.type === \"ClassDeclaration\") {\n if (stmt.declare || !stmt.id) continue;\n onIdent(stmt.id);\n } else if (isForStatement(stmt)) {\n walkForStatement(stmt, true, onIdent);\n } else if (stmt.type === \"SwitchStatement\") {\n walkSwitchStatement(stmt, true, onIdent);\n }\n }\n}\nfunction isForStatement(stmt) {\n return stmt.type === \"ForOfStatement\" || stmt.type === \"ForInStatement\" || stmt.type === \"ForStatement\";\n}\nfunction walkForStatement(stmt, isVar, onIdent) {\n const variable = stmt.type === \"ForStatement\" ? stmt.init : stmt.left;\n if (variable && variable.type === \"VariableDeclaration\" && (variable.kind === \"var\" ? isVar : !isVar)) {\n for (const decl of variable.declarations) {\n for (const id of extractIdentifiers(decl.id)) {\n onIdent(id);\n }\n }\n }\n}\nfunction walkSwitchStatement(stmt, isVar, onIdent) {\n for (const cs of stmt.cases) {\n for (const stmt2 of cs.consequent) {\n if (stmt2.type === \"VariableDeclaration\" && (stmt2.kind === \"var\" ? isVar : !isVar)) {\n for (const decl of stmt2.declarations) {\n for (const id of extractIdentifiers(decl.id)) {\n onIdent(id);\n }\n }\n }\n }\n walkBlockDeclarations(cs, onIdent);\n }\n}\nfunction extractIdentifiers(param, nodes = []) {\n switch (param.type) {\n case \"Identifier\":\n nodes.push(param);\n break;\n case \"MemberExpression\":\n let object = param;\n while (object.type === \"MemberExpression\") {\n object = object.object;\n }\n nodes.push(object);\n break;\n case \"ObjectPattern\":\n for (const prop of param.properties) {\n if (prop.type === \"RestElement\") {\n extractIdentifiers(prop.argument, nodes);\n } else {\n extractIdentifiers(prop.value, nodes);\n }\n }\n break;\n case \"ArrayPattern\":\n param.elements.forEach((element) => {\n if (element) extractIdentifiers(element, nodes);\n });\n break;\n case \"RestElement\":\n extractIdentifiers(param.argument, nodes);\n break;\n case \"AssignmentPattern\":\n extractIdentifiers(param.left, nodes);\n break;\n }\n return nodes;\n}\nfunction markKnownIds(name, knownIds) {\n if (name in knownIds) {\n knownIds[name]++;\n } else {\n knownIds[name] = 1;\n }\n}\nfunction markScopeIdentifier(node, child, knownIds) {\n const { name } = child;\n if (node.scopeIds && node.scopeIds.has(name)) {\n return;\n }\n markKnownIds(name, knownIds);\n (node.scopeIds || (node.scopeIds = /* @__PURE__ */ new Set())).add(name);\n}\nconst isFunctionType = (node) => {\n return /Function(?:Expression|Declaration)$|Method$/.test(node.type);\n};\nconst isStaticProperty = (node) => node && (node.type === \"ObjectProperty\" || node.type === \"ObjectMethod\") && !node.computed;\nconst isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node;\nfunction isReferenced(node, parent, grandparent) {\n switch (parent.type) {\n // yes: PARENT[NODE]\n // yes: NODE.child\n // no: parent.NODE\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n if (parent.property === node) {\n return !!parent.computed;\n }\n return parent.object === node;\n case \"JSXMemberExpression\":\n return parent.object === node;\n // no: let NODE = init;\n // yes: let id = NODE;\n case \"VariableDeclarator\":\n return parent.init === node;\n // yes: () => NODE\n // no: (NODE) => {}\n case \"ArrowFunctionExpression\":\n return parent.body === node;\n // no: class { #NODE; }\n // no: class { get #NODE() {} }\n // no: class { #NODE() {} }\n // no: class { fn() { return this.#NODE; } }\n case \"PrivateName\":\n return false;\n // no: class { NODE() {} }\n // yes: class { [NODE]() {} }\n // no: class { foo(NODE) {} }\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"ObjectMethod\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return false;\n // yes: { [NODE]: \"\" }\n // no: { NODE: \"\" }\n // depends: { NODE }\n // depends: { key: NODE }\n case \"ObjectProperty\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return !grandparent || grandparent.type !== \"ObjectPattern\";\n // no: class { NODE = value; }\n // yes: class { [NODE] = value; }\n // yes: class { key = NODE; }\n case \"ClassProperty\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return true;\n case \"ClassPrivateProperty\":\n return parent.key !== node;\n // no: class NODE {}\n // yes: class Foo extends NODE {}\n case \"ClassDeclaration\":\n case \"ClassExpression\":\n return parent.superClass === node;\n // yes: left = NODE;\n // no: NODE = right;\n case \"AssignmentExpression\":\n return parent.right === node;\n // no: [NODE = foo] = [];\n // yes: [foo = NODE] = [];\n case \"AssignmentPattern\":\n return parent.right === node;\n // no: NODE: for (;;) {}\n case \"LabeledStatement\":\n return false;\n // no: try {} catch (NODE) {}\n case \"CatchClause\":\n return false;\n // no: function foo(...NODE) {}\n case \"RestElement\":\n return false;\n case \"BreakStatement\":\n case \"ContinueStatement\":\n return false;\n // no: function NODE() {}\n // no: function foo(NODE) {}\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n return false;\n // no: export NODE from \"foo\";\n // no: export * as NODE from \"foo\";\n case \"ExportNamespaceSpecifier\":\n case \"ExportDefaultSpecifier\":\n return false;\n // no: export { foo as NODE };\n // yes: export { NODE as foo };\n // no: export { NODE as foo } from \"foo\";\n case \"ExportSpecifier\":\n if (grandparent == null ? void 0 : grandparent.source) {\n return false;\n }\n return parent.local === node;\n // no: import NODE from \"foo\";\n // no: import * as NODE from \"foo\";\n // no: import { NODE as foo } from \"foo\";\n // no: import { foo as NODE } from \"foo\";\n // no: import NODE from \"bar\";\n case \"ImportDefaultSpecifier\":\n case \"ImportNamespaceSpecifier\":\n case \"ImportSpecifier\":\n return false;\n // no: import \"foo\" assert { NODE: \"json\" }\n case \"ImportAttribute\":\n return false;\n // no: <div NODE=\"foo\" />\n case \"JSXAttribute\":\n return false;\n // no: [NODE] = [];\n // no: ({ NODE }) = [];\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n return false;\n // no: new.NODE\n // no: NODE.target\n case \"MetaProperty\":\n return false;\n // yes: type X = { someProperty: NODE }\n // no: type X = { NODE: OtherType }\n case \"ObjectTypeProperty\":\n return parent.key !== node;\n // yes: enum X { Foo = NODE }\n // no: enum X { NODE }\n case \"TSEnumMember\":\n return parent.id !== node;\n // yes: { [NODE]: value }\n // no: { NODE: value }\n case \"TSPropertySignature\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return true;\n }\n return true;\n}\nconst TS_NODE_TYPES = [\n \"TSAsExpression\",\n // foo as number\n \"TSTypeAssertion\",\n // (<number>foo)\n \"TSNonNullExpression\",\n // foo!\n \"TSInstantiationExpression\",\n // foo<string>\n \"TSSatisfiesExpression\"\n // foo satisfies T\n];\nfunction unwrapTSNode(node) {\n if (TS_NODE_TYPES.includes(node.type)) {\n return unwrapTSNode(node.expression);\n } else {\n return node;\n }\n}\n\nconst isStaticExp = (p) => p.type === 4 && p.isStatic;\nfunction isCoreComponent(tag) {\n switch (tag) {\n case \"Teleport\":\n case \"teleport\":\n return TELEPORT;\n case \"Suspense\":\n case \"suspense\":\n return SUSPENSE;\n case \"KeepAlive\":\n case \"keep-alive\":\n return KEEP_ALIVE;\n case \"BaseTransition\":\n case \"base-transition\":\n return BASE_TRANSITION;\n }\n}\nconst nonIdentifierRE = /^$|^\\d|[^\\$\\w\\xA0-\\uFFFF]/;\nconst isSimpleIdentifier = (name) => !nonIdentifierRE.test(name);\nconst validFirstIdentCharRE = /[A-Za-z_$\\xA0-\\uFFFF]/;\nconst validIdentCharRE = /[\\.\\?\\w$\\xA0-\\uFFFF]/;\nconst whitespaceRE = /\\s+[.[]\\s*|\\s*[.[]\\s+/g;\nconst getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source;\nconst isMemberExpressionBrowser = (exp) => {\n const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim());\n let state = 0 /* inMemberExp */;\n let stateStack = [];\n let currentOpenBracketCount = 0;\n let currentOpenParensCount = 0;\n let currentStringType = null;\n for (let i = 0; i < path.length; i++) {\n const char = path.charAt(i);\n switch (state) {\n case 0 /* inMemberExp */:\n if (char === \"[\") {\n stateStack.push(state);\n state = 1 /* inBrackets */;\n currentOpenBracketCount++;\n } else if (char === \"(\") {\n stateStack.push(state);\n state = 2 /* inParens */;\n currentOpenParensCount++;\n } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) {\n return false;\n }\n break;\n case 1 /* inBrackets */:\n if (char === `'` || char === `\"` || char === \"`\") {\n stateStack.push(state);\n state = 3 /* inString */;\n currentStringType = char;\n } else if (char === `[`) {\n currentOpenBracketCount++;\n } else if (char === `]`) {\n if (!--currentOpenBracketCount) {\n state = stateStack.pop();\n }\n }\n break;\n case 2 /* inParens */:\n if (char === `'` || char === `\"` || char === \"`\") {\n stateStack.push(state);\n state = 3 /* inString */;\n currentStringType = char;\n } else if (char === `(`) {\n currentOpenParensCount++;\n } else if (char === `)`) {\n if (i === path.length - 1) {\n return false;\n }\n if (!--currentOpenParensCount) {\n state = stateStack.pop();\n }\n }\n break;\n case 3 /* inString */:\n if (char === currentStringType) {\n state = stateStack.pop();\n currentStringType = null;\n }\n break;\n }\n }\n return !currentOpenBracketCount && !currentOpenParensCount;\n};\nconst isMemberExpressionNode = (exp, context) => {\n try {\n let ret = exp.ast || parser.parseExpression(getExpSource(exp), {\n plugins: context.expressionPlugins ? [...context.expressionPlugins, \"typescript\"] : [\"typescript\"]\n });\n ret = unwrapTSNode(ret);\n return ret.type === \"MemberExpression\" || ret.type === \"OptionalMemberExpression\" || ret.type === \"Identifier\" && ret.name !== \"undefined\";\n } catch (e) {\n return false;\n }\n};\nconst isMemberExpression = isMemberExpressionNode;\nconst fnExpRE = /^\\s*(?:async\\s*)?(?:\\([^)]*?\\)|[\\w$_]+)\\s*(?::[^=]+)?=>|^\\s*(?:async\\s+)?function(?:\\s+[\\w$]+)?\\s*\\(/;\nconst isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp));\nconst isFnExpressionNode = (exp, context) => {\n try {\n let ret = exp.ast || parser.parseExpression(getExpSource(exp), {\n plugins: context.expressionPlugins ? [...context.expressionPlugins, \"typescript\"] : [\"typescript\"]\n });\n if (ret.type === \"Program\") {\n ret = ret.body[0];\n if (ret.type === \"ExpressionStatement\") {\n ret = ret.expression;\n }\n }\n ret = unwrapTSNode(ret);\n return ret.type === \"FunctionExpression\" || ret.type === \"ArrowFunctionExpression\";\n } catch (e) {\n return false;\n }\n};\nconst isFnExpression = isFnExpressionNode;\nfunction advancePositionWithClone(pos, source, numberOfCharacters = source.length) {\n return advancePositionWithMutation(\n {\n offset: pos.offset,\n line: pos.line,\n column: pos.column\n },\n source,\n numberOfCharacters\n );\n}\nfunction advancePositionWithMutation(pos, source, numberOfCharacters = source.length) {\n let linesCount = 0;\n let lastNewLinePos = -1;\n for (let i = 0; i < numberOfCharacters; i++) {\n if (source.charCodeAt(i) === 10) {\n linesCount++;\n lastNewLinePos = i;\n }\n }\n pos.offset += numberOfCharacters;\n pos.line += linesCount;\n pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos;\n return pos;\n}\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || `unexpected compiler condition`);\n }\n}\nfunction findDir(node, name, allowEmpty = false) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && (allowEmpty || p.exp) && (shared.isString(name) ? p.name === name : name.test(p.name))) {\n return p;\n }\n }\n}\nfunction findProp(node, name, dynamicOnly = false, allowEmpty = false) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 6) {\n if (dynamicOnly) continue;\n if (p.name === name && (p.value || allowEmpty)) {\n return p;\n }\n } else if (p.name === \"bind\" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) {\n return p;\n }\n }\n}\nfunction isStaticArgOf(arg, name) {\n return !!(arg && isStaticExp(arg) && arg.content === name);\n}\nfunction hasDynamicKeyVBind(node) {\n return node.props.some(\n (p) => p.type === 7 && p.name === \"bind\" && (!p.arg || // v-bind=\"obj\"\n p.arg.type !== 4 || // v-bind:[_ctx.foo]\n !p.arg.isStatic)\n // v-bind:[foo]\n );\n}\nfunction isText$1(node) {\n return node.type === 5 || node.type === 2;\n}\nfunction isVPre(p) {\n return p.type === 7 && p.name === \"pre\";\n}\nfunction isVSlot(p) {\n return p.type === 7 && p.name === \"slot\";\n}\nfunction isTemplateNode(node) {\n return node.type === 1 && node.tagType === 3;\n}\nfunction isSlotOutlet(node) {\n return node.type === 1 && node.tagType === 2;\n}\nconst propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);\nfunction getUnnormalizedProps(props, callPath = []) {\n if (props && !shared.isString(props) && props.type === 14) {\n const callee = props.callee;\n if (!shared.isString(callee) && propsHelperSet.has(callee)) {\n return getUnnormalizedProps(\n props.arguments[0],\n callPath.concat(props)\n );\n }\n }\n return [props, callPath];\n}\nfunction injectProp(node, prop, context) {\n let propsWithInjection;\n let props = node.type === 13 ? node.props : node.arguments[2];\n let callPath = [];\n let parentCall;\n if (props && !shared.isString(props) && props.type === 14) {\n const ret = getUnnormalizedProps(props);\n props = ret[0];\n callPath = ret[1];\n parentCall = callPath[callPath.length - 1];\n }\n if (props == null || shared.isString(props)) {\n propsWithInjection = createObjectExpression([prop]);\n } else if (props.type === 14) {\n const first = props.arguments[0];\n if (!shared.isString(first) && first.type === 15) {\n if (!hasProp(prop, first)) {\n first.properties.unshift(prop);\n }\n } else {\n if (props.callee === TO_HANDLERS) {\n propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [\n createObjectExpression([prop]),\n props\n ]);\n } else {\n props.arguments.unshift(createObjectExpression([prop]));\n }\n }\n !propsWithInjection && (propsWithInjection = props);\n } else if (props.type === 15) {\n if (!hasProp(prop, props)) {\n props.properties.unshift(prop);\n }\n propsWithInjection = props;\n } else {\n propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [\n createObjectExpression([prop]),\n props\n ]);\n if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) {\n parentCall = callPath[callPath.length - 2];\n }\n }\n if (node.type === 13) {\n if (parentCall) {\n parentCall.arguments[0] = propsWithInjection;\n } else {\n node.props = propsWithInjection;\n }\n } else {\n if (parentCall) {\n parentCall.arguments[0] = propsWithInjection;\n } else {\n node.arguments[2] = propsWithInjection;\n }\n }\n}\nfunction hasProp(prop, props) {\n let result = false;\n if (prop.key.type === 4) {\n const propKeyName = prop.key.content;\n result = props.properties.some(\n (p) => p.key.type === 4 && p.key.content === propKeyName\n );\n }\n return result;\n}\nfunction toValidAssetId(name, type) {\n return `_${type}_${name.replace(/[^\\w]/g, (searchValue, replaceValue) => {\n return searchValue === \"-\" ? \"_\" : name.charCodeAt(replaceValue).toString();\n })}`;\n}\nfunction hasScopeRef(node, ids) {\n if (!node || Object.keys(ids).length === 0) {\n return false;\n }\n switch (node.type) {\n case 1:\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) {\n return true;\n }\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 11:\n if (hasScopeRef(node.source, ids)) {\n return true;\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 9:\n return node.branches.some((b) => hasScopeRef(b, ids));\n case 10:\n if (hasScopeRef(node.condition, ids)) {\n return true;\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 4:\n return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content];\n case 8:\n return node.children.some((c) => shared.isObject(c) && hasScopeRef(c, ids));\n case 5:\n case 12:\n return hasScopeRef(node.content, ids);\n case 2:\n case 3:\n case 20:\n return false;\n default:\n return false;\n }\n}\nfunction getMemoedVNodeCall(node) {\n if (node.type === 14 && node.callee === WITH_MEMO) {\n return node.arguments[1].returns;\n } else {\n return node;\n }\n}\nconst forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+(\\S[\\s\\S]*)/;\nfunction isAllWhitespace(str) {\n for (let i = 0; i < str.length; i++) {\n if (!isWhitespace(str.charCodeAt(i))) {\n return false;\n }\n }\n return true;\n}\nfunction isWhitespaceText(node) {\n return node.type === 2 && isAllWhitespace(node.content) || node.type === 12 && isWhitespaceText(node.content);\n}\nfunction isCommentOrWhitespace(node) {\n return node.type === 3 || isWhitespaceText(node);\n}\n\nconst defaultParserOptions = {\n parseMode: \"base\",\n ns: 0,\n delimiters: [`{{`, `}}`],\n getNamespace: () => 0,\n isVoidTag: shared.NO,\n isPreTag: shared.NO,\n isIgnoreNewlineTag: shared.NO,\n isCustomElement: shared.NO,\n onError: defaultOnError,\n onWarn: defaultOnWarn,\n comments: true,\n prefixIdentifiers: false\n};\nlet currentOptions = defaultParserOptions;\nlet currentRoot = null;\nlet currentInput = \"\";\nlet currentOpenTag = null;\nlet currentProp = null;\nlet currentAttrValue = \"\";\nlet currentAttrStartIndex = -1;\nlet currentAttrEndIndex = -1;\nlet inPre = 0;\nlet inVPre = false;\nlet currentVPreBoundary = null;\nconst stack = [];\nconst tokenizer = new Tokenizer(stack, {\n onerr: emitError,\n ontext(start, end) {\n onText(getSlice(start, end), start, end);\n },\n ontextentity(char, start, end) {\n onText(char, start, end);\n },\n oninterpolation(start, end) {\n if (inVPre) {\n return onText(getSlice(start, end), start, end);\n }\n let innerStart = start + tokenizer.delimiterOpen.length;\n let innerEnd = end - tokenizer.delimiterClose.length;\n while (isWhitespace(currentInput.charCodeAt(innerStart))) {\n innerStart++;\n }\n while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) {\n innerEnd--;\n }\n let exp = getSlice(innerStart, innerEnd);\n if (exp.includes(\"&\")) {\n {\n exp = decode.decodeHTML(exp);\n }\n }\n addNode({\n type: 5,\n content: createExp(exp, false, getLoc(innerStart, innerEnd)),\n loc: getLoc(start, end)\n });\n },\n onopentagname(start, end) {\n const name = getSlice(start, end);\n currentOpenTag = {\n type: 1,\n tag: name,\n ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns),\n tagType: 0,\n // will be refined on tag close\n props: [],\n children: [],\n loc: getLoc(start - 1, end),\n codegenNode: void 0\n };\n },\n onopentagend(end) {\n endOpenTag(end);\n },\n onclosetag(start, end) {\n const name = getSlice(start, end);\n if (!currentOptions.isVoidTag(name)) {\n let found = false;\n for (let i = 0; i < stack.length; i++) {\n const e = stack[i];\n if (e.tag.toLowerCase() === name.toLowerCase()) {\n found = true;\n if (i > 0) {\n emitError(24, stack[0].loc.start.offset);\n }\n for (let j = 0; j <= i; j++) {\n const el = stack.shift();\n onCloseTag(el, end, j < i);\n }\n break;\n }\n }\n if (!found) {\n emitError(23, backTrack(start, 60));\n }\n }\n },\n onselfclosingtag(end) {\n const name = currentOpenTag.tag;\n currentOpenTag.isSelfClosing = true;\n endOpenTag(end);\n if (stack[0] && stack[0].tag === name) {\n onCloseTag(stack.shift(), end);\n }\n },\n onattribname(start, end) {\n currentProp = {\n type: 6,\n name: getSlice(start, end),\n nameLoc: getLoc(start, end),\n value: void 0,\n loc: getLoc(start)\n };\n },\n ondirname(start, end) {\n const raw = getSlice(start, end);\n const name = raw === \".\" || raw === \":\" ? \"bind\" : raw === \"@\" ? \"on\" : raw === \"#\" ? \"slot\" : raw.slice(2);\n if (!inVPre && name === \"\") {\n emitError(26, start);\n }\n if (inVPre || name === \"\") {\n currentProp = {\n type: 6,\n name: raw,\n nameLoc: getLoc(start, end),\n value: void 0,\n loc: getLoc(start)\n };\n } else {\n currentProp = {\n type: 7,\n name,\n rawName: raw,\n exp: void 0,\n arg: void 0,\n modifiers: raw === \".\" ? [createSimpleExpression(\"prop\")] : [],\n loc: getLoc(start)\n };\n if (name === \"pre\") {\n inVPre = tokenizer.inVPre = true;\n currentVPreBoundary = currentOpenTag;\n const props = currentOpenTag.props;\n for (let i = 0; i < props.length; i++) {\n if (props[i].type === 7) {\n props[i] = dirToAttr(props[i]);\n }\n }\n }\n }\n },\n ondirarg(start, end) {\n if (start === end) return;\n const arg = getSlice(start, end);\n if (inVPre && !isVPre(currentProp)) {\n currentProp.name += arg;\n setLocEnd(currentProp.nameLoc, end);\n } else {\n const isStatic = arg[0] !== `[`;\n currentProp.arg = createExp(\n isStatic ? arg : arg.slice(1, -1),\n isStatic,\n getLoc(start, end),\n isStatic ? 3 : 0\n );\n }\n },\n ondirmodifier(start, end) {\n const mod = getSlice(start, end);\n if (inVPre && !isVPre(currentProp)) {\n currentProp.name += \".\" + mod;\n setLocEnd(currentProp.nameLoc, end);\n } else if (currentProp.name === \"slot\") {\n const arg = currentProp.arg;\n if (arg) {\n arg.content += \".\" + mod;\n setLocEnd(arg.loc, end);\n }\n } else {\n const exp = createSimpleExpression(mod, true, getLoc(start, end));\n currentProp.modifiers.push(exp);\n }\n },\n onattribdata(start, end) {\n currentAttrValue += getSlice(start, end);\n if (currentAttrStartIndex < 0) currentAttrStartIndex = start;\n currentAttrEndIndex = end;\n },\n onattribentity(char, start, end) {\n currentAttrValue += char;\n if (currentAttrStartIndex < 0) currentAttrStartIndex = start;\n currentAttrEndIndex = end;\n },\n onattribnameend(end) {\n const start = currentProp.loc.start.offset;\n const name = getSlice(start, end);\n if (currentProp.type === 7) {\n currentProp.rawName = name;\n }\n if (currentOpenTag.props.some(\n (p) => (p.type === 7 ? p.rawName : p.name) === name\n )) {\n emitError(2, start);\n }\n },\n onattribend(quote, end) {\n if (currentOpenTag && currentProp) {\n setLocEnd(currentProp.loc, end);\n if (quote !== 0) {\n if (currentProp.type === 6) {\n if (currentProp.name === \"class\") {\n currentAttrValue = condense(currentAttrValue).trim();\n }\n if (quote === 1 && !currentAttrValue) {\n emitError(13, end);\n }\n currentProp.value = {\n type: 2,\n content: currentAttrValue,\n loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)\n };\n if (tokenizer.inSFCRoot && currentOpenTag.tag === \"template\" && currentProp.name === \"lang\" && currentAttrValue && currentAttrValue !== \"html\") {\n tokenizer.enterRCDATA(toCharCodes(`</template`), 0);\n }\n } else {\n let expParseMode = 0 /* Normal */;\n {\n if (currentProp.name === \"for\") {\n expParseMode = 3 /* Skip */;\n } else if (currentProp.name === \"slot\") {\n expParseMode = 1 /* Params */;\n } else if (currentProp.name === \"on\" && currentAttrValue.includes(\";\")) {\n expParseMode = 2 /* Statements */;\n }\n }\n currentProp.exp = createExp(\n currentAttrValue,\n false,\n getLoc(currentAttrStartIndex, currentAttrEndIndex),\n 0,\n expParseMode\n );\n if (currentProp.name === \"for\") {\n currentProp.forParseResult = parseForExpression(currentProp.exp);\n }\n let syncIndex = -1;\n if (currentProp.name === \"bind\" && (syncIndex = currentProp.modifiers.findIndex(\n (mod) => mod.content === \"sync\"\n )) > -1 && checkCompatEnabled(\n \"COMPILER_V_BIND_SYNC\",\n currentOptions,\n currentProp.loc,\n currentProp.arg.loc.source\n )) {\n currentProp.name = \"model\";\n currentProp.modifiers.splice(syncIndex, 1);\n }\n }\n }\n if (currentProp.type !== 7 || currentProp.name !== \"pre\") {\n currentOpenTag.props.push(currentProp);\n }\n }\n currentAttrValue = \"\";\n currentAttrStartIndex = currentAttrEndIndex = -1;\n },\n oncomment(start, end) {\n if (currentOptions.comments) {\n addNode({\n type: 3,\n content: getSlice(start, end),\n loc: getLoc(start - 4, end + 3)\n });\n }\n },\n onend() {\n const end = currentInput.length;\n if (tokenizer.state !== 1) {\n switch (tokenizer.state) {\n case 5:\n case 8:\n emitError(5, end);\n break;\n case 3:\n case 4:\n emitError(\n 25,\n tokenizer.sectionStart\n );\n break;\n case 28:\n if (tokenizer.currentSequence === Sequences.CdataEnd) {\n emitError(6, end);\n } else {\n emitError(7, end);\n }\n break;\n case 6:\n case 7:\n case 9:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n case 16:\n case 17:\n case 18:\n case 19:\n // \"\n case 20:\n // '\n case 21:\n emitError(9, end);\n break;\n }\n }\n for (let index = 0; index < stack.length; index++) {\n onCloseTag(stack[index], end - 1);\n emitError(24, stack[index].loc.start.offset);\n }\n },\n oncdata(start, end) {\n if ((stack[0] ? stack[0].ns : currentOptions.ns) !== 0) {\n onText(getSlice(start, end), start, end);\n } else {\n emitError(1, start - 9);\n }\n },\n onprocessinginstruction(start) {\n if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) {\n emitError(\n 21,\n start - 1\n );\n }\n }\n});\nconst forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nconst stripParensRE = /^\\(|\\)$/g;\nfunction parseForExpression(input) {\n const loc = input.loc;\n const exp = input.content;\n const inMatch = exp.match(forAliasRE);\n if (!inMatch) return;\n const [, LHS, RHS] = inMatch;\n const createAliasExpression = (content, offset, asParam = false) => {\n const start = loc.start.offset + offset;\n const end = start + content.length;\n return createExp(\n content,\n false,\n getLoc(start, end),\n 0,\n asParam ? 1 /* Params */ : 0 /* Normal */\n );\n };\n const result = {\n source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)),\n value: void 0,\n key: void 0,\n index: void 0,\n finalized: false\n };\n let valueContent = LHS.trim().replace(stripParensRE, \"\").trim();\n const trimmedOffset = LHS.indexOf(valueContent);\n const iteratorMatch = valueContent.match(forIteratorRE);\n if (iteratorMatch) {\n valueContent = valueContent.replace(forIteratorRE, \"\").trim();\n const keyContent = iteratorMatch[1].trim();\n let keyOffset;\n if (keyContent) {\n keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length);\n result.key = createAliasExpression(keyContent, keyOffset, true);\n }\n if (iteratorMatch[2]) {\n const indexContent = iteratorMatch[2].trim();\n if (indexContent) {\n result.index = createAliasExpression(\n indexContent,\n exp.indexOf(\n indexContent,\n result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length\n ),\n true\n );\n }\n }\n }\n if (valueContent) {\n result.value = createAliasExpression(valueContent, trimmedOffset, true);\n }\n return result;\n}\nfunction getSlice(start, end) {\n return currentInput.slice(start, end);\n}\nfunction endOpenTag(end) {\n if (tokenizer.inSFCRoot) {\n currentOpenTag.innerLoc = getLoc(end + 1, end + 1);\n }\n addNode(currentOpenTag);\n const { tag, ns } = currentOpenTag;\n if (ns === 0 && currentOptions.isPreTag(tag)) {\n inPre++;\n }\n if (currentOptions.isVoidTag(tag)) {\n onCloseTag(currentOpenTag, end);\n } else {\n stack.unshift(currentOpenTag);\n if (ns === 1 || ns === 2) {\n tokenizer.inXML = true;\n }\n }\n currentOpenTag = null;\n}\nfunction onText(content, start, end) {\n const parent = stack[0] || currentRoot;\n const lastNode = parent.children[parent.children.length - 1];\n if (lastNode && lastNode.type === 2) {\n lastNode.content += content;\n setLocEnd(lastNode.loc, end);\n } else {\n parent.children.push({\n type: 2,\n content,\n loc: getLoc(start, end)\n });\n }\n}\nfunction onCloseTag(el, end, isImplied = false) {\n if (isImplied) {\n setLocEnd(el.loc, backTrack(end, 60));\n } else {\n setLocEnd(el.loc, lookAhead(end, 62) + 1);\n }\n if (tokenizer.inSFCRoot) {\n if (el.children.length) {\n el.innerLoc.end = shared.extend({}, el.children[el.children.length - 1].loc.end);\n } else {\n el.innerLoc.end = shared.extend({}, el.innerLoc.start);\n }\n el.innerLoc.source = getSlice(\n el.innerLoc.start.offset,\n el.innerLoc.end.offset\n );\n }\n const { tag, ns, children } = el;\n if (!inVPre) {\n if (tag === \"slot\") {\n el.tagType = 2;\n } else if (isFragmentTemplate(el)) {\n el.tagType = 3;\n } else if (isComponent(el)) {\n el.tagType = 1;\n }\n }\n if (!tokenizer.inRCDATA) {\n el.children = condenseWhitespace(children);\n }\n if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) {\n const first = children[0];\n if (first && first.type === 2) {\n first.content = first.content.replace(/^\\r?\\n/, \"\");\n }\n }\n if (ns === 0 && currentOptions.isPreTag(tag)) {\n inPre--;\n }\n if (currentVPreBoundary === el) {\n inVPre = tokenizer.inVPre = false;\n currentVPreBoundary = null;\n }\n if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) {\n tokenizer.inXML = false;\n }\n {\n const props = el.props;\n if (isCompatEnabled(\n \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n currentOptions\n )) {\n let hasIf = false;\n let hasFor = false;\n for (let i = 0; i < props.length; i++) {\n const p = props[i];\n if (p.type === 7) {\n if (p.name === \"if\") {\n hasIf = true;\n } else if (p.name === \"for\") {\n hasFor = true;\n }\n }\n if (hasIf && hasFor) {\n warnDeprecation(\n \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n currentOptions,\n el.loc\n );\n break;\n }\n }\n }\n if (!tokenizer.inSFCRoot && isCompatEnabled(\n \"COMPILER_NATIVE_TEMPLATE\",\n currentOptions\n ) && el.tag === \"template\" && !isFragmentTemplate(el)) {\n warnDeprecation(\n \"COMPILER_NATIVE_TEMPLATE\",\n currentOptions,\n el.loc\n );\n const parent = stack[0] || currentRoot;\n const index = parent.children.indexOf(el);\n parent.children.splice(index, 1, ...el.children);\n }\n const inlineTemplateProp = props.find(\n (p) => p.type === 6 && p.name === \"inline-template\"\n );\n if (inlineTemplateProp && checkCompatEnabled(\n \"COMPILER_INLINE_TEMPLATE\",\n currentOptions,\n inlineTemplateProp.loc\n ) && el.children.length) {\n inlineTemplateProp.value = {\n type: 2,\n content: getSlice(\n el.children[0].loc.start.offset,\n el.children[el.children.length - 1].loc.end.offset\n ),\n loc: inlineTemplateProp.loc\n };\n }\n }\n}\nfunction lookAhead(index, c) {\n let i = index;\n while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++;\n return i;\n}\nfunction backTrack(index, c) {\n let i = index;\n while (currentInput.charCodeAt(i) !== c && i >= 0) i--;\n return i;\n}\nconst specialTemplateDir = /* @__PURE__ */ new Set([\"if\", \"else\", \"else-if\", \"for\", \"slot\"]);\nfunction isFragmentTemplate({ tag, props }) {\n if (tag === \"template\") {\n for (let i = 0; i < props.length; i++) {\n if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) {\n return true;\n }\n }\n }\n return false;\n}\nfunction isComponent({ tag, props }) {\n if (currentOptions.isCustomElement(tag)) {\n return false;\n }\n if (tag === \"component\" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) {\n return true;\n }\n for (let i = 0; i < props.length; i++) {\n const p = props[i];\n if (p.type === 6) {\n if (p.name === \"is\" && p.value) {\n if (p.value.content.startsWith(\"vue:\")) {\n return true;\n } else if (checkCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n currentOptions,\n p.loc\n )) {\n return true;\n }\n }\n } else if (// :is on plain element - only treat as component in compat mode\n p.name === \"bind\" && isStaticArgOf(p.arg, \"is\") && checkCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n currentOptions,\n p.loc\n )) {\n return true;\n }\n }\n return false;\n}\nfunction isUpperCase(c) {\n return c > 64 && c < 91;\n}\nconst windowsNewlineRE = /\\r\\n/g;\nfunction condenseWhitespace(nodes) {\n const shouldCondense = currentOptions.whitespace !== \"preserve\";\n let removedWhitespace = false;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (node.type === 2) {\n if (!inPre) {\n if (isAllWhitespace(node.content)) {\n const prev = nodes[i - 1] && nodes[i - 1].type;\n const next = nodes[i + 1] && nodes[i + 1].type;\n if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {\n removedWhitespace = true;\n nodes[i] = null;\n } else {\n node.content = \" \";\n }\n } else if (shouldCondense) {\n node.content = condense(node.content);\n }\n } else {\n node.content = node.content.replace(windowsNewlineRE, \"\\n\");\n }\n }\n }\n return removedWhitespace ? nodes.filter(Boolean) : nodes;\n}\nfunction hasNewlineChar(str) {\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c === 10 || c === 13) {\n return true;\n }\n }\n return false;\n}\nfunction condense(str) {\n let ret = \"\";\n let prevCharIsWhitespace = false;\n for (let i = 0; i < str.length; i++) {\n if (isWhitespace(str.charCodeAt(i))) {\n if (!prevCharIsWhitespace) {\n ret += \" \";\n prevCharIsWhitespace = true;\n }\n } else {\n ret += str[i];\n prevCharIsWhitespace = false;\n }\n }\n return ret;\n}\nfunction addNode(node) {\n (stack[0] || currentRoot).children.push(node);\n}\nfunction getLoc(start, end) {\n return {\n start: tokenizer.getPos(start),\n // @ts-expect-error allow late attachment\n end: end == null ? end : tokenizer.getPos(end),\n // @ts-expect-error allow late attachment\n source: end == null ? end : getSlice(start, end)\n };\n}\nfunction cloneLoc(loc) {\n return getLoc(loc.start.offset, loc.end.offset);\n}\nfunction setLocEnd(loc, end) {\n loc.end = tokenizer.getPos(end);\n loc.source = getSlice(loc.start.offset, end);\n}\nfunction dirToAttr(dir) {\n const attr = {\n type: 6,\n name: dir.rawName,\n nameLoc: getLoc(\n dir.loc.start.offset,\n dir.loc.start.offset + dir.rawName.length\n ),\n value: void 0,\n loc: dir.loc\n };\n if (dir.exp) {\n const loc = dir.exp.loc;\n if (loc.end.offset < dir.loc.end.offset) {\n loc.start.offset--;\n loc.start.column--;\n loc.end.offset++;\n loc.end.column++;\n }\n attr.value = {\n type: 2,\n content: dir.exp.content,\n loc\n };\n }\n return attr;\n}\nfunction createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) {\n const exp = createSimpleExpression(content, isStatic, loc, constType);\n if (!isStatic && currentOptions.prefixIdentifiers && parseMode !== 3 /* Skip */ && content.trim()) {\n if (isSimpleIdentifier(content)) {\n exp.ast = null;\n return exp;\n }\n try {\n const plugins = currentOptions.expressionPlugins;\n const options = {\n plugins: plugins ? [...plugins, \"typescript\"] : [\"typescript\"]\n };\n if (parseMode === 2 /* Statements */) {\n exp.ast = parser.parse(` ${content} `, options).program;\n } else if (parseMode === 1 /* Params */) {\n exp.ast = parser.parseExpression(`(${content})=>{}`, options);\n } else {\n exp.ast = parser.parseExpression(`(${content})`, options);\n }\n } catch (e) {\n exp.ast = false;\n emitError(46, loc.start.offset, e.message);\n }\n }\n return exp;\n}\nfunction emitError(code, index, message) {\n currentOptions.onError(\n createCompilerError(code, getLoc(index, index), void 0, message)\n );\n}\nfunction reset() {\n tokenizer.reset();\n currentOpenTag = null;\n currentProp = null;\n currentAttrValue = \"\";\n currentAttrStartIndex = -1;\n currentAttrEndIndex = -1;\n stack.length = 0;\n}\nfunction baseParse(input, options) {\n reset();\n currentInput = input;\n currentOptions = shared.extend({}, defaultParserOptions);\n if (options) {\n let key;\n for (key in options) {\n if (options[key] != null) {\n currentOptions[key] = options[key];\n }\n }\n }\n {\n if (currentOptions.decodeEntities) {\n console.warn(\n `[@vue/compiler-core] decodeEntities option is passed but will be ignored in non-browser builds.`\n );\n }\n }\n tokenizer.mode = currentOptions.parseMode === \"html\" ? 1 : currentOptions.parseMode === \"sfc\" ? 2 : 0;\n tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2;\n const delimiters = options && options.delimiters;\n if (delimiters) {\n tokenizer.delimiterOpen = toCharCodes(delimiters[0]);\n tokenizer.delimiterClose = toCharCodes(delimiters[1]);\n }\n const root = currentRoot = createRoot([], input);\n tokenizer.parse(currentInput);\n root.loc = getLoc(0, input.length);\n root.children = condenseWhitespace(root.children);\n currentRoot = null;\n return root;\n}\n\nfunction cacheStatic(root, context) {\n walk(\n root,\n void 0,\n context,\n // Root node is unfortunately non-hoistable due to potential parent\n // fallthrough attributes.\n !!getSingleElementRoot(root)\n );\n}\nfunction getSingleElementRoot(root) {\n const children = root.children.filter((x) => x.type !== 3);\n return children.length === 1 && children[0].type === 1 && !isSlotOutlet(children[0]) ? children[0] : null;\n}\nfunction walk(node, parent, context, doNotHoistNode = false, inFor = false) {\n const { children } = node;\n const toCache = [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.type === 1 && child.tagType === 0) {\n const constantType = doNotHoistNode ? 0 : getConstantType(child, context);\n if (constantType > 0) {\n if (constantType >= 2) {\n child.codegenNode.patchFlag = -1;\n toCache.push(child);\n continue;\n }\n } else {\n const codegenNode = child.codegenNode;\n if (codegenNode.type === 13) {\n const flag = codegenNode.patchFlag;\n if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) {\n const props = getNodeProps(child);\n if (props) {\n codegenNode.props = context.hoist(props);\n }\n }\n if (codegenNode.dynamicProps) {\n codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps);\n }\n }\n }\n } else if (child.type === 12) {\n const constantType = doNotHoistNode ? 0 : getConstantType(child, context);\n if (constantType >= 2) {\n if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) {\n child.codegenNode.arguments.push(\n -1 + (` /* ${shared.PatchFlagNames[-1]} */` )\n );\n }\n toCache.push(child);\n continue;\n }\n }\n if (child.type === 1) {\n const isComponent = child.tagType === 1;\n if (isComponent) {\n context.scopes.vSlot++;\n }\n walk(child, node, context, false, inFor);\n if (isComponent) {\n context.scopes.vSlot--;\n }\n } else if (child.type === 11) {\n walk(child, node, context, child.children.length === 1, true);\n } else if (child.type === 9) {\n for (let i2 = 0; i2 < child.branches.length; i2++) {\n walk(\n child.branches[i2],\n node,\n context,\n child.branches[i2].children.length === 1,\n inFor\n );\n }\n }\n }\n let cachedAsArray = false;\n if (toCache.length === children.length && node.type === 1) {\n if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && shared.isArray(node.codegenNode.children)) {\n node.codegenNode.children = getCacheExpression(\n createArrayExpression(node.codegenNode.children)\n );\n cachedAsArray = true;\n } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !shared.isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) {\n const slot = getSlotNode(node.codegenNode, \"default\");\n if (slot) {\n slot.returns = getCacheExpression(\n createArrayExpression(slot.returns)\n );\n cachedAsArray = true;\n }\n } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !shared.isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) {\n const slotName = findDir(node, \"slot\", true);\n const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg);\n if (slot) {\n slot.returns = getCacheExpression(\n createArrayExpression(slot.returns)\n );\n cachedAsArray = true;\n }\n }\n }\n if (!cachedAsArray) {\n for (const child of toCache) {\n child.codegenNode = context.cache(child.codegenNode);\n }\n }\n function getCacheExpression(value) {\n const exp = context.cache(value);\n exp.needArraySpread = true;\n return exp;\n }\n function getSlotNode(node2, name) {\n if (node2.children && !shared.isArray(node2.children) && node2.children.type === 15) {\n const slot = node2.children.properties.find(\n (p) => p.key === name || p.key.content === name\n );\n return slot && slot.value;\n }\n }\n if (toCache.length && context.transformHoist) {\n context.transformHoist(children, context, node);\n }\n}\nfunction getConstantType(node, context) {\n const { constantCache } = context;\n switch (node.type) {\n case 1:\n if (node.tagType !== 0) {\n return 0;\n }\n const cached = constantCache.get(node);\n if (cached !== void 0) {\n return cached;\n }\n const codegenNode = node.codegenNode;\n if (codegenNode.type !== 13) {\n return 0;\n }\n if (codegenNode.isBlock && node.tag !== \"svg\" && node.tag !== \"foreignObject\" && node.tag !== \"math\") {\n return 0;\n }\n if (codegenNode.patchFlag === void 0) {\n let returnType2 = 3;\n const generatedPropsType = getGeneratedPropsConstantType(node, context);\n if (generatedPropsType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (generatedPropsType < returnType2) {\n returnType2 = generatedPropsType;\n }\n for (let i = 0; i < node.children.length; i++) {\n const childType = getConstantType(node.children[i], context);\n if (childType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (childType < returnType2) {\n returnType2 = childType;\n }\n }\n if (returnType2 > 1) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && p.name === \"bind\" && p.exp) {\n const expType = getConstantType(p.exp, context);\n if (expType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (expType < returnType2) {\n returnType2 = expType;\n }\n }\n }\n }\n if (codegenNode.isBlock) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7) {\n constantCache.set(node, 0);\n return 0;\n }\n }\n context.removeHelper(OPEN_BLOCK);\n context.removeHelper(\n getVNodeBlockHelper(context.inSSR, codegenNode.isComponent)\n );\n codegenNode.isBlock = false;\n context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent));\n }\n constantCache.set(node, returnType2);\n return returnType2;\n } else {\n constantCache.set(node, 0);\n return 0;\n }\n case 2:\n case 3:\n return 3;\n case 9:\n case 11:\n case 10:\n return 0;\n case 5:\n case 12:\n return getConstantType(node.content, context);\n case 4:\n return node.constType;\n case 8:\n let returnType = 3;\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (shared.isString(child) || shared.isSymbol(child)) {\n continue;\n }\n const childType = getConstantType(child, context);\n if (childType === 0) {\n return 0;\n } else if (childType < returnType) {\n returnType = childType;\n }\n }\n return returnType;\n case 20:\n return 2;\n default:\n return 0;\n }\n}\nconst allowHoistedHelperSet = /* @__PURE__ */ new Set([\n NORMALIZE_CLASS,\n NORMALIZE_STYLE,\n NORMALIZE_PROPS,\n GUARD_REACTIVE_PROPS\n]);\nfunction getConstantTypeOfHelperCall(value, context) {\n if (value.type === 14 && !shared.isString(value.callee) && allowHoistedHelperSet.has(value.callee)) {\n const arg = value.arguments[0];\n if (arg.type === 4) {\n return getConstantType(arg, context);\n } else if (arg.type === 14) {\n return getConstantTypeOfHelperCall(arg, context);\n }\n }\n return 0;\n}\nfunction getGeneratedPropsConstantType(node, context) {\n let returnType = 3;\n const props = getNodeProps(node);\n if (props && props.type === 15) {\n const { properties } = props;\n for (let i = 0; i < properties.length; i++) {\n const { key, value } = properties[i];\n const keyType = getConstantType(key, context);\n if (keyType === 0) {\n return keyType;\n }\n if (keyType < returnType) {\n returnType = keyType;\n }\n let valueType;\n if (value.type === 4) {\n valueType = getConstantType(value, context);\n } else if (value.type === 14) {\n valueType = getConstantTypeOfHelperCall(value, context);\n } else {\n valueType = 0;\n }\n if (valueType === 0) {\n return valueType;\n }\n if (valueType < returnType) {\n returnType = valueType;\n }\n }\n }\n return returnType;\n}\nfunction getNodeProps(node) {\n const codegenNode = node.codegenNode;\n if (codegenNode.type === 13) {\n return codegenNode.props;\n }\n}\n\nfunction createTransformContext(root, {\n filename = \"\",\n prefixIdentifiers = false,\n hoistStatic = false,\n hmr = false,\n cacheHandlers = false,\n nodeTransforms = [],\n directiveTransforms = {},\n transformHoist = null,\n isBuiltInComponent = shared.NOOP,\n isCustomElement = shared.NOOP,\n expressionPlugins = [],\n scopeId = null,\n slotted = true,\n ssr = false,\n inSSR = false,\n ssrCssVars = ``,\n bindingMetadata = shared.EMPTY_OBJ,\n inline = false,\n isTS = false,\n onError = defaultOnError,\n onWarn = defaultOnWarn,\n compatConfig\n}) {\n const nameMatch = filename.replace(/\\?.*$/, \"\").match(/([^/\\\\]+)\\.\\w+$/);\n const context = {\n // options\n filename,\n selfName: nameMatch && shared.capitalize(shared.camelize(nameMatch[1])),\n prefixIdentifiers,\n hoistStatic,\n hmr,\n cacheHandlers,\n nodeTransforms,\n directiveTransforms,\n transformHoist,\n isBuiltInComponent,\n isCustomElement,\n expressionPlugins,\n scopeId,\n slotted,\n ssr,\n inSSR,\n ssrCssVars,\n bindingMetadata,\n inline,\n isTS,\n onError,\n onWarn,\n compatConfig,\n // state\n root,\n helpers: /* @__PURE__ */ new Map(),\n components: /* @__PURE__ */ new Set(),\n directives: /* @__PURE__ */ new Set(),\n hoists: [],\n imports: [],\n cached: [],\n constantCache: /* @__PURE__ */ new WeakMap(),\n vForMemoKeyedNodes: /* @__PURE__ */ new WeakSet(),\n temps: 0,\n identifiers: /* @__PURE__ */ Object.create(null),\n scopes: {\n vFor: 0,\n vSlot: 0,\n vPre: 0,\n vOnce: 0\n },\n parent: null,\n grandParent: null,\n currentNode: root,\n childIndex: 0,\n inVOnce: false,\n // methods\n helper(name) {\n const count = context.helpers.get(name) || 0;\n context.helpers.set(name, count + 1);\n return name;\n },\n removeHelper(name) {\n const count = context.helpers.get(name);\n if (count) {\n const currentCount = count - 1;\n if (!currentCount) {\n context.helpers.delete(name);\n } else {\n context.helpers.set(name, currentCount);\n }\n }\n },\n helperString(name) {\n return `_${helperNameMap[context.helper(name)]}`;\n },\n replaceNode(node) {\n {\n if (!context.currentNode) {\n throw new Error(`Node being replaced is already removed.`);\n }\n if (!context.parent) {\n throw new Error(`Cannot replace root node.`);\n }\n }\n context.parent.children[context.childIndex] = context.currentNode = node;\n },\n removeNode(node) {\n if (!context.parent) {\n throw new Error(`Cannot remove root node.`);\n }\n const list = context.parent.children;\n const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1;\n if (removalIndex < 0) {\n throw new Error(`node being removed is not a child of current parent`);\n }\n if (!node || node === context.currentNode) {\n context.currentNode = null;\n context.onNodeRemoved();\n } else {\n if (context.childIndex > removalIndex) {\n context.childIndex--;\n context.onNodeRemoved();\n }\n }\n context.parent.children.splice(removalIndex, 1);\n },\n onNodeRemoved: shared.NOOP,\n addIdentifiers(exp) {\n {\n if (shared.isString(exp)) {\n addId(exp);\n } else if (exp.identifiers) {\n exp.identifiers.forEach(addId);\n } else if (exp.type === 4) {\n addId(exp.content);\n }\n }\n },\n removeIdentifiers(exp) {\n {\n if (shared.isString(exp)) {\n removeId(exp);\n } else if (exp.identifiers) {\n exp.identifiers.forEach(removeId);\n } else if (exp.type === 4) {\n removeId(exp.content);\n }\n }\n },\n hoist(exp) {\n if (shared.isString(exp)) exp = createSimpleExpression(exp);\n context.hoists.push(exp);\n const identifier = createSimpleExpression(\n `_hoisted_${context.hoists.length}`,\n false,\n exp.loc,\n 2\n );\n identifier.hoisted = exp;\n return identifier;\n },\n cache(exp, isVNode = false, inVOnce = false) {\n const cacheExp = createCacheExpression(\n context.cached.length,\n exp,\n isVNode,\n inVOnce\n );\n context.cached.push(cacheExp);\n return cacheExp;\n }\n };\n {\n context.filters = /* @__PURE__ */ new Set();\n }\n function addId(id) {\n const { identifiers } = context;\n if (identifiers[id] === void 0) {\n identifiers[id] = 0;\n }\n identifiers[id]++;\n }\n function removeId(id) {\n context.identifiers[id]--;\n }\n return context;\n}\nfunction transform(root, options) {\n const context = createTransformContext(root, options);\n traverseNode(root, context);\n if (options.hoistStatic) {\n cacheStatic(root, context);\n }\n if (!options.ssr) {\n createRootCodegen(root, context);\n }\n root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);\n root.components = [...context.components];\n root.directives = [...context.directives];\n root.imports = context.imports;\n root.hoists = context.hoists;\n root.temps = context.temps;\n root.cached = context.cached;\n root.transformed = true;\n {\n root.filters = [...context.filters];\n }\n}\nfunction createRootCodegen(root, context) {\n const { helper } = context;\n const { children } = root;\n if (children.length === 1) {\n const singleElementRootChild = getSingleElementRoot(root);\n if (singleElementRootChild && singleElementRootChild.codegenNode) {\n const codegenNode = singleElementRootChild.codegenNode;\n if (codegenNode.type === 13) {\n convertToBlock(codegenNode, context);\n }\n root.codegenNode = codegenNode;\n } else {\n root.codegenNode = children[0];\n }\n } else if (children.length > 1) {\n let patchFlag = 64;\n if (children.filter((c) => c.type !== 3).length === 1) {\n patchFlag |= 2048;\n }\n root.codegenNode = createVNodeCall(\n context,\n helper(FRAGMENT),\n void 0,\n root.children,\n patchFlag,\n void 0,\n void 0,\n true,\n void 0,\n false\n );\n } else ;\n}\nfunction traverseChildren(parent, context) {\n let i = 0;\n const nodeRemoved = () => {\n i--;\n };\n for (; i < parent.children.length; i++) {\n const child = parent.children[i];\n if (shared.isString(child)) continue;\n context.grandParent = context.parent;\n context.parent = parent;\n context.childIndex = i;\n context.onNodeRemoved = nodeRemoved;\n traverseNode(child, context);\n }\n}\nfunction traverseNode(node, context) {\n context.currentNode = node;\n const { nodeTransforms } = context;\n const exitFns = [];\n for (let i2 = 0; i2 < nodeTransforms.length; i2++) {\n const onExit = nodeTransforms[i2](node, context);\n if (onExit) {\n if (shared.isArray(onExit)) {\n exitFns.push(...onExit);\n } else {\n exitFns.push(onExit);\n }\n }\n if (!context.currentNode) {\n return;\n } else {\n node = context.currentNode;\n }\n }\n switch (node.type) {\n case 3:\n if (!context.ssr) {\n context.helper(CREATE_COMMENT);\n }\n break;\n case 5:\n if (!context.ssr) {\n context.helper(TO_DISPLAY_STRING);\n }\n break;\n // for container types, further traverse downwards\n case 9:\n for (let i2 = 0; i2 < node.branches.length; i2++) {\n traverseNode(node.branches[i2], context);\n }\n break;\n case 10:\n case 11:\n case 1:\n case 0:\n traverseChildren(node, context);\n break;\n }\n context.currentNode = node;\n let i = exitFns.length;\n while (i--) {\n exitFns[i]();\n }\n}\nfunction createStructuralDirectiveTransform(name, fn) {\n const matches = shared.isString(name) ? (n) => n === name : (n) => name.test(n);\n return (node, context) => {\n if (node.type === 1) {\n const { props } = node;\n if (node.tagType === 3 && props.some(isVSlot)) {\n return;\n }\n const exitFns = [];\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (prop.type === 7 && matches(prop.name)) {\n props.splice(i, 1);\n i--;\n const onExit = fn(node, prop, context);\n if (onExit) exitFns.push(onExit);\n }\n }\n return exitFns;\n }\n };\n}\n\nconst PURE_ANNOTATION = `/*@__PURE__*/`;\nconst aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`;\nfunction createCodegenContext(ast, {\n mode = \"function\",\n prefixIdentifiers = mode === \"module\",\n sourceMap = false,\n filename = `template.vue.html`,\n scopeId = null,\n optimizeImports = false,\n runtimeGlobalName = `Vue`,\n runtimeModuleName = `vue`,\n ssrRuntimeModuleName = \"vue/server-renderer\",\n ssr = false,\n isTS = false,\n inSSR = false\n}) {\n const context = {\n mode,\n prefixIdentifiers,\n sourceMap,\n filename,\n scopeId,\n optimizeImports,\n runtimeGlobalName,\n runtimeModuleName,\n ssrRuntimeModuleName,\n ssr,\n isTS,\n inSSR,\n source: ast.source,\n code: ``,\n column: 1,\n line: 1,\n offset: 0,\n indentLevel: 0,\n pure: false,\n map: void 0,\n helper(key) {\n return `_${helperNameMap[key]}`;\n },\n push(code, newlineIndex = -2 /* None */, node) {\n context.code += code;\n if (context.map) {\n if (node) {\n let name;\n if (node.type === 4 && !node.isStatic) {\n const content = node.content.replace(/^_ctx\\./, \"\");\n if (content !== node.content && isSimpleIdentifier(content)) {\n name = content;\n }\n }\n if (node.loc.source) {\n addMapping(node.loc.start, name);\n }\n }\n if (newlineIndex === -3 /* Unknown */) {\n advancePositionWithMutation(context, code);\n } else {\n context.offset += code.length;\n if (newlineIndex === -2 /* None */) {\n context.column += code.length;\n } else {\n if (newlineIndex === -1 /* End */) {\n newlineIndex = code.length - 1;\n }\n context.line++;\n context.column = code.length - newlineIndex;\n }\n }\n if (node && node.loc !== locStub && node.loc.source) {\n addMapping(node.loc.end);\n }\n }\n },\n indent() {\n newline(++context.indentLevel);\n },\n deindent(withoutNewLine = false) {\n if (withoutNewLine) {\n --context.indentLevel;\n } else {\n newline(--context.indentLevel);\n }\n },\n newline() {\n newline(context.indentLevel);\n }\n };\n function newline(n) {\n context.push(\"\\n\" + ` `.repeat(n), 0 /* Start */);\n }\n function addMapping(loc, name = null) {\n const { _names, _mappings } = context.map;\n if (name !== null && !_names.has(name)) _names.add(name);\n _mappings.add({\n originalLine: loc.line,\n originalColumn: loc.column - 1,\n // source-map column is 0 based\n generatedLine: context.line,\n generatedColumn: context.column - 1,\n source: filename,\n name\n });\n }\n if (sourceMap) {\n context.map = new sourceMapJs.SourceMapGenerator();\n context.map.setSourceContent(filename, context.source);\n context.map._sources.add(filename);\n }\n return context;\n}\nfunction generate(ast, options = {}) {\n const context = createCodegenContext(ast, options);\n if (options.onContextCreated) options.onContextCreated(context);\n const {\n mode,\n push,\n prefixIdentifiers,\n indent,\n deindent,\n newline,\n scopeId,\n ssr\n } = context;\n const helpers = Array.from(ast.helpers);\n const hasHelpers = helpers.length > 0;\n const useWithBlock = !prefixIdentifiers && mode !== \"module\";\n const genScopeId = scopeId != null && mode === \"module\";\n const isSetupInlined = !!options.inline;\n const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context;\n if (mode === \"module\") {\n genModulePreamble(ast, preambleContext, genScopeId, isSetupInlined);\n } else {\n genFunctionPreamble(ast, preambleContext);\n }\n const functionName = ssr ? `ssrRender` : `render`;\n const args = ssr ? [\"_ctx\", \"_push\", \"_parent\", \"_attrs\"] : [\"_ctx\", \"_cache\"];\n if (options.bindingMetadata && !options.inline) {\n args.push(\"$props\", \"$setup\", \"$data\", \"$options\");\n }\n const signature = options.isTS ? args.map((arg) => `${arg}: any`).join(\",\") : args.join(\", \");\n if (isSetupInlined) {\n push(`(${signature}) => {`);\n } else {\n push(`function ${functionName}(${signature}) {`);\n }\n indent();\n if (useWithBlock) {\n push(`with (_ctx) {`);\n indent();\n if (hasHelpers) {\n push(\n `const { ${helpers.map(aliasHelper).join(\", \")} } = _Vue\n`,\n -1 /* End */\n );\n newline();\n }\n }\n if (ast.components.length) {\n genAssets(ast.components, \"component\", context);\n if (ast.directives.length || ast.temps > 0) {\n newline();\n }\n }\n if (ast.directives.length) {\n genAssets(ast.directives, \"directive\", context);\n if (ast.temps > 0) {\n newline();\n }\n }\n if (ast.filters && ast.filters.length) {\n newline();\n genAssets(ast.filters, \"filter\", context);\n newline();\n }\n if (ast.temps > 0) {\n push(`let `);\n for (let i = 0; i < ast.temps; i++) {\n push(`${i > 0 ? `, ` : ``}_temp${i}`);\n }\n }\n if (ast.components.length || ast.directives.length || ast.temps) {\n push(`\n`, 0 /* Start */);\n newline();\n }\n if (!ssr) {\n push(`return `);\n }\n if (ast.codegenNode) {\n genNode(ast.codegenNode, context);\n } else {\n push(`null`);\n }\n if (useWithBlock) {\n deindent();\n push(`}`);\n }\n deindent();\n push(`}`);\n return {\n ast,\n code: context.code,\n preamble: isSetupInlined ? preambleContext.code : ``,\n map: context.map ? context.map.toJSON() : void 0\n };\n}\nfunction genFunctionPreamble(ast, context) {\n const {\n ssr,\n prefixIdentifiers,\n push,\n newline,\n runtimeModuleName,\n runtimeGlobalName,\n ssrRuntimeModuleName\n } = context;\n const VueBinding = ssr ? `require(${JSON.stringify(runtimeModuleName)})` : runtimeGlobalName;\n const helpers = Array.from(ast.helpers);\n if (helpers.length > 0) {\n if (prefixIdentifiers) {\n push(\n `const { ${helpers.map(aliasHelper).join(\", \")} } = ${VueBinding}\n`,\n -1 /* End */\n );\n } else {\n push(`const _Vue = ${VueBinding}\n`, -1 /* End */);\n if (ast.hoists.length) {\n const staticHelpers = [\n CREATE_VNODE,\n CREATE_ELEMENT_VNODE,\n CREATE_COMMENT,\n CREATE_TEXT,\n CREATE_STATIC\n ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(\", \");\n push(`const { ${staticHelpers} } = _Vue\n`, -1 /* End */);\n }\n }\n }\n if (ast.ssrHelpers && ast.ssrHelpers.length) {\n push(\n `const { ${ast.ssrHelpers.map(aliasHelper).join(\", \")} } = require(\"${ssrRuntimeModuleName}\")\n`,\n -1 /* End */\n );\n }\n genHoists(ast.hoists, context);\n newline();\n push(`return `);\n}\nfunction genModulePreamble(ast, context, genScopeId, inline) {\n const {\n push,\n newline,\n optimizeImports,\n runtimeModuleName,\n ssrRuntimeModuleName\n } = context;\n if (ast.helpers.size) {\n const helpers = Array.from(ast.helpers);\n if (optimizeImports) {\n push(\n `import { ${helpers.map((s) => helperNameMap[s]).join(\", \")} } from ${JSON.stringify(runtimeModuleName)}\n`,\n -1 /* End */\n );\n push(\n `\n// Binding optimization for webpack code-split\nconst ${helpers.map((s) => `_${helperNameMap[s]} = ${helperNameMap[s]}`).join(\", \")}\n`,\n -1 /* End */\n );\n } else {\n push(\n `import { ${helpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(\", \")} } from ${JSON.stringify(runtimeModuleName)}\n`,\n -1 /* End */\n );\n }\n }\n if (ast.ssrHelpers && ast.ssrHelpers.length) {\n push(\n `import { ${ast.ssrHelpers.map((s) => `${helperNameMap[s]} as _${helperNameMap[s]}`).join(\", \")} } from \"${ssrRuntimeModuleName}\"\n`,\n -1 /* End */\n );\n }\n if (ast.imports.length) {\n genImports(ast.imports, context);\n newline();\n }\n genHoists(ast.hoists, context);\n newline();\n if (!inline) {\n push(`export `);\n }\n}\nfunction genAssets(assets, type, { helper, push, newline, isTS }) {\n const resolver = helper(\n type === \"filter\" ? RESOLVE_FILTER : type === \"component\" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE\n );\n for (let i = 0; i < assets.length; i++) {\n let id = assets[i];\n const maybeSelfReference = id.endsWith(\"__self\");\n if (maybeSelfReference) {\n id = id.slice(0, -6);\n }\n push(\n `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}`\n );\n if (i < assets.length - 1) {\n newline();\n }\n }\n}\nfunction genHoists(hoists, context) {\n if (!hoists.length) {\n return;\n }\n context.pure = true;\n const { push, newline } = context;\n newline();\n for (let i = 0; i < hoists.length; i++) {\n const exp = hoists[i];\n if (exp) {\n push(`const _hoisted_${i + 1} = `);\n genNode(exp, context);\n newline();\n }\n }\n context.pure = false;\n}\nfunction genImports(importsOptions, context) {\n if (!importsOptions.length) {\n return;\n }\n importsOptions.forEach((imports) => {\n context.push(`import `);\n genNode(imports.exp, context);\n context.push(` from '${imports.path}'`);\n context.newline();\n });\n}\nfunction isText(n) {\n return shared.isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8;\n}\nfunction genNodeListAsArray(nodes, context) {\n const multilines = nodes.length > 3 || nodes.some((n) => shared.isArray(n) || !isText(n));\n context.push(`[`);\n multilines && context.indent();\n genNodeList(nodes, context, multilines);\n multilines && context.deindent();\n context.push(`]`);\n}\nfunction genNodeList(nodes, context, multilines = false, comma = true) {\n const { push, newline } = context;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (shared.isString(node)) {\n push(node, -3 /* Unknown */);\n } else if (shared.isArray(node)) {\n genNodeListAsArray(node, context);\n } else {\n genNode(node, context);\n }\n if (i < nodes.length - 1) {\n if (multilines) {\n comma && push(\",\");\n newline();\n } else {\n comma && push(\", \");\n }\n }\n }\n}\nfunction genNode(node, context) {\n if (shared.isString(node)) {\n context.push(node, -3 /* Unknown */);\n return;\n }\n if (shared.isSymbol(node)) {\n context.push(context.helper(node));\n return;\n }\n switch (node.type) {\n case 1:\n case 9:\n case 11:\n assert(\n node.codegenNode != null,\n `Codegen node is missing for element/if/for node. Apply appropriate transforms first.`\n );\n genNode(node.codegenNode, context);\n break;\n case 2:\n genText(node, context);\n break;\n case 4:\n genExpression(node, context);\n break;\n case 5:\n genInterpolation(node, context);\n break;\n case 12:\n genNode(node.codegenNode, context);\n break;\n case 8:\n genCompoundExpression(node, context);\n break;\n case 3:\n genComment(node, context);\n break;\n case 13:\n genVNodeCall(node, context);\n break;\n case 14:\n genCallExpression(node, context);\n break;\n case 15:\n genObjectExpression(node, context);\n break;\n case 17:\n genArrayExpression(node, context);\n break;\n case 18:\n genFunctionExpression(node, context);\n break;\n case 19:\n genConditionalExpression(node, context);\n break;\n case 20:\n genCacheExpression(node, context);\n break;\n case 21:\n genNodeList(node.body, context, true, false);\n break;\n // SSR only types\n case 22:\n genTemplateLiteral(node, context);\n break;\n case 23:\n genIfStatement(node, context);\n break;\n case 24:\n genAssignmentExpression(node, context);\n break;\n case 25:\n genSequenceExpression(node, context);\n break;\n case 26:\n genReturnStatement(node, context);\n break;\n /* v8 ignore start */\n case 10:\n break;\n default:\n {\n assert(false, `unhandled codegen node type: ${node.type}`);\n const exhaustiveCheck = node;\n return exhaustiveCheck;\n }\n }\n}\nfunction genText(node, context) {\n context.push(JSON.stringify(node.content), -3 /* Unknown */, node);\n}\nfunction genExpression(node, context) {\n const { content, isStatic } = node;\n context.push(\n isStatic ? JSON.stringify(content) : content,\n -3 /* Unknown */,\n node\n );\n}\nfunction genInterpolation(node, context) {\n const { push, helper, pure } = context;\n if (pure) push(PURE_ANNOTATION);\n push(`${helper(TO_DISPLAY_STRING)}(`);\n genNode(node.content, context);\n push(`)`);\n}\nfunction genCompoundExpression(node, context) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (shared.isString(child)) {\n context.push(child, -3 /* Unknown */);\n } else {\n genNode(child, context);\n }\n }\n}\nfunction genExpressionAsPropertyKey(node, context) {\n const { push } = context;\n if (node.type === 8) {\n push(`[`);\n genCompoundExpression(node, context);\n push(`]`);\n } else if (node.isStatic) {\n const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content);\n push(text, -2 /* None */, node);\n } else {\n push(`[${node.content}]`, -3 /* Unknown */, node);\n }\n}\nfunction genComment(node, context) {\n const { push, helper, pure } = context;\n if (pure) {\n push(PURE_ANNOTATION);\n }\n push(\n `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`,\n -3 /* Unknown */,\n node\n );\n}\nfunction genVNodeCall(node, context) {\n const { push, helper, pure } = context;\n const {\n tag,\n props,\n children,\n patchFlag,\n dynamicProps,\n directives,\n isBlock,\n disableTracking,\n isComponent\n } = node;\n let patchFlagString;\n if (patchFlag) {\n {\n if (patchFlag < 0) {\n patchFlagString = patchFlag + ` /* ${shared.PatchFlagNames[patchFlag]} */`;\n } else {\n const flagNames = Object.keys(shared.PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => shared.PatchFlagNames[n]).join(`, `);\n patchFlagString = patchFlag + ` /* ${flagNames} */`;\n }\n }\n }\n if (directives) {\n push(helper(WITH_DIRECTIVES) + `(`);\n }\n if (isBlock) {\n push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);\n }\n if (pure) {\n push(PURE_ANNOTATION);\n }\n const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent);\n push(helper(callHelper) + `(`, -2 /* None */, node);\n genNodeList(\n genNullableArgs([tag, props, children, patchFlagString, dynamicProps]),\n context\n );\n push(`)`);\n if (isBlock) {\n push(`)`);\n }\n if (directives) {\n push(`, `);\n genNode(directives, context);\n push(`)`);\n }\n}\nfunction genNullableArgs(args) {\n let i = args.length;\n while (i--) {\n if (args[i] != null) break;\n }\n return args.slice(0, i + 1).map((arg) => arg || `null`);\n}\nfunction genCallExpression(node, context) {\n const { push, helper, pure } = context;\n const callee = shared.isString(node.callee) ? node.callee : helper(node.callee);\n if (pure) {\n push(PURE_ANNOTATION);\n }\n push(callee + `(`, -2 /* None */, node);\n genNodeList(node.arguments, context);\n push(`)`);\n}\nfunction genObjectExpression(node, context) {\n const { push, indent, deindent, newline } = context;\n const { properties } = node;\n if (!properties.length) {\n push(`{}`, -2 /* None */, node);\n return;\n }\n const multilines = properties.length > 1 || properties.some((p) => p.value.type !== 4);\n push(multilines ? `{` : `{ `);\n multilines && indent();\n for (let i = 0; i < properties.length; i++) {\n const { key, value } = properties[i];\n genExpressionAsPropertyKey(key, context);\n push(`: `);\n genNode(value, context);\n if (i < properties.length - 1) {\n push(`,`);\n newline();\n }\n }\n multilines && deindent();\n push(multilines ? `}` : ` }`);\n}\nfunction genArrayExpression(node, context) {\n genNodeListAsArray(node.elements, context);\n}\nfunction genFunctionExpression(node, context) {\n const { push, indent, deindent } = context;\n const { params, returns, body, newline, isSlot } = node;\n if (isSlot) {\n push(`_${helperNameMap[WITH_CTX]}(`);\n }\n push(`(`, -2 /* None */, node);\n if (shared.isArray(params)) {\n genNodeList(params, context);\n } else if (params) {\n genNode(params, context);\n }\n push(`) => `);\n if (newline || body) {\n push(`{`);\n indent();\n }\n if (returns) {\n if (newline) {\n push(`return `);\n }\n if (shared.isArray(returns)) {\n genNodeListAsArray(returns, context);\n } else {\n genNode(returns, context);\n }\n } else if (body) {\n genNode(body, context);\n }\n if (newline || body) {\n deindent();\n push(`}`);\n }\n if (isSlot) {\n if (node.isNonScopedSlot) {\n push(`, undefined, true`);\n }\n push(`)`);\n }\n}\nfunction genConditionalExpression(node, context) {\n const { test, consequent, alternate, newline: needNewline } = node;\n const { push, indent, deindent, newline } = context;\n if (test.type === 4) {\n const needsParens = !isSimpleIdentifier(test.content);\n needsParens && push(`(`);\n genExpression(test, context);\n needsParens && push(`)`);\n } else {\n push(`(`);\n genNode(test, context);\n push(`)`);\n }\n needNewline && indent();\n context.indentLevel++;\n needNewline || push(` `);\n push(`? `);\n genNode(consequent, context);\n context.indentLevel--;\n needNewline && newline();\n needNewline || push(` `);\n push(`: `);\n const isNested = alternate.type === 19;\n if (!isNested) {\n context.indentLevel++;\n }\n genNode(alternate, context);\n if (!isNested) {\n context.indentLevel--;\n }\n needNewline && deindent(\n true\n /* without newline */\n );\n}\nfunction genCacheExpression(node, context) {\n const { push, helper, indent, deindent, newline } = context;\n const { needPauseTracking, needArraySpread } = node;\n if (needArraySpread) {\n push(`[...(`);\n }\n push(`_cache[${node.index}] || (`);\n if (needPauseTracking) {\n indent();\n push(`${helper(SET_BLOCK_TRACKING)}(-1`);\n if (node.inVOnce) push(`, true`);\n push(`),`);\n newline();\n push(`(`);\n }\n push(`_cache[${node.index}] = `);\n genNode(node.value, context);\n if (needPauseTracking) {\n push(`).cacheIndex = ${node.index},`);\n newline();\n push(`${helper(SET_BLOCK_TRACKING)}(1),`);\n newline();\n push(`_cache[${node.index}]`);\n deindent();\n }\n push(`)`);\n if (needArraySpread) {\n push(`)]`);\n }\n}\nfunction genTemplateLiteral(node, context) {\n const { push, indent, deindent } = context;\n push(\"`\");\n const l = node.elements.length;\n const multilines = l > 3;\n for (let i = 0; i < l; i++) {\n const e = node.elements[i];\n if (shared.isString(e)) {\n push(e.replace(/(`|\\$|\\\\)/g, \"\\\\$1\"), -3 /* Unknown */);\n } else {\n push(\"${\");\n if (multilines) indent();\n genNode(e, context);\n if (multilines) deindent();\n push(\"}\");\n }\n }\n push(\"`\");\n}\nfunction genIfStatement(node, context) {\n const { push, indent, deindent } = context;\n const { test, consequent, alternate } = node;\n push(`if (`);\n genNode(test, context);\n push(`) {`);\n indent();\n genNode(consequent, context);\n deindent();\n push(`}`);\n if (alternate) {\n push(` else `);\n if (alternate.type === 23) {\n genIfStatement(alternate, context);\n } else {\n push(`{`);\n indent();\n genNode(alternate, context);\n deindent();\n push(`}`);\n }\n }\n}\nfunction genAssignmentExpression(node, context) {\n genNode(node.left, context);\n context.push(` = `);\n genNode(node.right, context);\n}\nfunction genSequenceExpression(node, context) {\n context.push(`(`);\n genNodeList(node.expressions, context);\n context.push(`)`);\n}\nfunction genReturnStatement({ returns }, context) {\n context.push(`return `);\n if (shared.isArray(returns)) {\n genNodeListAsArray(returns, context);\n } else {\n genNode(returns, context);\n }\n}\n\nconst isLiteralWhitelisted = /* @__PURE__ */ shared.makeMap(\"true,false,null,this\");\nconst transformExpression = (node, context) => {\n if (node.type === 5) {\n node.content = processExpression(\n node.content,\n context\n );\n } else if (node.type === 1) {\n const memo = findDir(node, \"memo\");\n for (let i = 0; i < node.props.length; i++) {\n const dir = node.props[i];\n if (dir.type === 7 && dir.name !== \"for\") {\n const exp = dir.exp;\n const arg = dir.arg;\n if (exp && exp.type === 4 && !(dir.name === \"on\" && arg) && // key has been processed in transformFor(vMemo + vFor)\n !(memo && context.vForMemoKeyedNodes.has(node) && arg && arg.type === 4 && arg.content === \"key\")) {\n dir.exp = processExpression(\n exp,\n context,\n // slot args must be processed as function params\n dir.name === \"slot\"\n );\n }\n if (arg && arg.type === 4 && !arg.isStatic) {\n dir.arg = processExpression(arg, context);\n }\n }\n }\n }\n};\nfunction processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) {\n if (!context.prefixIdentifiers || !node.content.trim()) {\n return node;\n }\n const { inline, bindingMetadata } = context;\n const rewriteIdentifier = (raw, parent, id) => {\n const type = shared.hasOwn(bindingMetadata, raw) && bindingMetadata[raw];\n if (inline) {\n const isAssignmentLVal = parent && parent.type === \"AssignmentExpression\" && parent.left === id;\n const isUpdateArg = parent && parent.type === \"UpdateExpression\" && parent.argument === id;\n const isDestructureAssignment = parent && isInDestructureAssignment(parent, parentStack);\n const isNewExpression = parent && isInNewExpression(parentStack);\n const wrapWithUnref = (raw2) => {\n const wrapped = `${context.helperString(UNREF)}(${raw2})`;\n return isNewExpression ? `(${wrapped})` : wrapped;\n };\n if (isConst(type) || type === \"setup-reactive-const\" || localVars[raw]) {\n return raw;\n } else if (type === \"setup-ref\") {\n return `${raw}.value`;\n } else if (type === \"setup-maybe-ref\") {\n return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : wrapWithUnref(raw);\n } else if (type === \"setup-let\") {\n if (isAssignmentLVal) {\n const { right: rVal, operator } = parent;\n const rExp = rawExp.slice(rVal.start - 1, rVal.end - 1);\n const rExpString = stringifyExpression(\n processExpression(\n createSimpleExpression(rExp, false),\n context,\n false,\n false,\n knownIds\n )\n );\n return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`;\n } else if (isUpdateArg) {\n id.start = parent.start;\n id.end = parent.end;\n const { prefix: isPrefix, operator } = parent;\n const prefix = isPrefix ? operator : ``;\n const postfix = isPrefix ? `` : operator;\n return `${context.helperString(IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`;\n } else if (isDestructureAssignment) {\n return raw;\n } else {\n return wrapWithUnref(raw);\n }\n } else if (type === \"props\") {\n return shared.genPropsAccessExp(raw);\n } else if (type === \"props-aliased\") {\n return shared.genPropsAccessExp(bindingMetadata.__propsAliases[raw]);\n }\n } else {\n if (type && type.startsWith(\"setup\") || type === \"literal-const\") {\n return `$setup.${raw}`;\n } else if (type === \"props-aliased\") {\n return `$props['${bindingMetadata.__propsAliases[raw]}']`;\n } else if (type) {\n return `$${type}.${raw}`;\n }\n }\n return `_ctx.${raw}`;\n };\n const rawExp = node.content;\n let ast = node.ast;\n if (ast === false) {\n return node;\n }\n if (ast === null || !ast && isSimpleIdentifier(rawExp)) {\n const isScopeVarReference = context.identifiers[rawExp];\n const isAllowedGlobal = shared.isGloballyAllowed(rawExp);\n const isLiteral = isLiteralWhitelisted(rawExp);\n if (!asParams && !isScopeVarReference && !isLiteral && (!isAllowedGlobal || bindingMetadata[rawExp])) {\n if (isConst(bindingMetadata[rawExp])) {\n node.constType = 1;\n }\n node.content = rewriteIdentifier(rawExp);\n } else if (!isScopeVarReference) {\n if (isLiteral) {\n node.constType = 3;\n } else {\n node.constType = 2;\n }\n }\n return node;\n }\n if (!ast) {\n const source = asRawStatements ? ` ${rawExp} ` : `(${rawExp})${asParams ? `=>{}` : ``}`;\n try {\n ast = parser.parseExpression(source, {\n sourceType: \"module\",\n plugins: context.expressionPlugins\n });\n } catch (e) {\n context.onError(\n createCompilerError(\n 46,\n node.loc,\n void 0,\n e.message\n )\n );\n return node;\n }\n }\n const ids = [];\n const parentStack = [];\n const knownIds = Object.create(context.identifiers);\n walkIdentifiers(\n ast,\n (node2, parent, _, isReferenced, isLocal) => {\n if (isStaticPropertyKey(node2, parent)) {\n return;\n }\n if (node2.name.startsWith(\"_filter_\")) {\n return;\n }\n const needPrefix = isReferenced && canPrefix(node2);\n if (needPrefix && !isLocal) {\n if (isStaticProperty(parent) && parent.shorthand) {\n node2.prefix = `${node2.name}: `;\n }\n node2.name = rewriteIdentifier(node2.name, parent, node2);\n ids.push(node2);\n } else {\n if (!(needPrefix && isLocal) && (!parent || parent.type !== \"CallExpression\" && parent.type !== \"NewExpression\" && parent.type !== \"MemberExpression\")) {\n node2.isConstant = true;\n }\n ids.push(node2);\n }\n },\n true,\n // invoke on ALL identifiers\n parentStack,\n knownIds\n );\n const children = [];\n ids.sort((a, b) => a.start - b.start);\n ids.forEach((id, i) => {\n const start = id.start - 1;\n const end = id.end - 1;\n const last = ids[i - 1];\n const leadingText = rawExp.slice(last ? last.end - 1 : 0, start);\n if (leadingText.length || id.prefix) {\n children.push(leadingText + (id.prefix || ``));\n }\n const source = rawExp.slice(start, end);\n children.push(\n createSimpleExpression(\n id.name,\n false,\n {\n start: advancePositionWithClone(node.loc.start, source, start),\n end: advancePositionWithClone(node.loc.start, source, end),\n source\n },\n id.isConstant ? 3 : 0\n )\n );\n if (i === ids.length - 1 && end < rawExp.length) {\n children.push(rawExp.slice(end));\n }\n });\n let ret;\n if (children.length) {\n ret = createCompoundExpression(children, node.loc);\n ret.ast = ast;\n } else {\n ret = node;\n ret.constType = 3;\n }\n ret.identifiers = Object.keys(knownIds);\n return ret;\n}\nfunction canPrefix(id) {\n if (shared.isGloballyAllowed(id.name)) {\n return false;\n }\n if (id.name === \"require\") {\n return false;\n }\n return true;\n}\nfunction stringifyExpression(exp) {\n if (shared.isString(exp)) {\n return exp;\n } else if (exp.type === 4) {\n return exp.content;\n } else {\n return exp.children.map(stringifyExpression).join(\"\");\n }\n}\nfunction isConst(type) {\n return type === \"setup-const\" || type === \"literal-const\";\n}\n\nconst transformIf = createStructuralDirectiveTransform(\n /^(?:if|else|else-if)$/,\n (node, dir, context) => {\n return processIf(node, dir, context, (ifNode, branch, isRoot) => {\n const siblings = context.parent.children;\n let i = siblings.indexOf(ifNode);\n let key = 0;\n while (i-- >= 0) {\n const sibling = siblings[i];\n if (sibling && sibling.type === 9) {\n key += sibling.branches.length;\n }\n }\n return () => {\n if (isRoot) {\n ifNode.codegenNode = createCodegenNodeForBranch(\n branch,\n key,\n context\n );\n } else {\n const parentCondition = getParentCondition(ifNode.codegenNode);\n parentCondition.alternate = createCodegenNodeForBranch(\n branch,\n key + ifNode.branches.length - 1,\n context\n );\n }\n };\n });\n }\n);\nfunction processIf(node, dir, context, processCodegen) {\n if (dir.name !== \"else\" && (!dir.exp || !dir.exp.content.trim())) {\n const loc = dir.exp ? dir.exp.loc : node.loc;\n context.onError(\n createCompilerError(28, dir.loc)\n );\n dir.exp = createSimpleExpression(`true`, false, loc);\n }\n if (context.prefixIdentifiers && dir.exp) {\n dir.exp = processExpression(dir.exp, context);\n }\n if (dir.name === \"if\") {\n const branch = createIfBranch(node, dir);\n const ifNode = {\n type: 9,\n loc: cloneLoc(node.loc),\n branches: [branch]\n };\n context.replaceNode(ifNode);\n if (processCodegen) {\n return processCodegen(ifNode, branch, true);\n }\n } else {\n const siblings = context.parent.children;\n const comments = [];\n let i = siblings.indexOf(node);\n while (i-- >= -1) {\n const sibling = siblings[i];\n if (sibling && isCommentOrWhitespace(sibling)) {\n context.removeNode(sibling);\n if (sibling.type === 3) {\n comments.unshift(sibling);\n }\n continue;\n }\n if (sibling && sibling.type === 9) {\n if ((dir.name === \"else-if\" || dir.name === \"else\") && sibling.branches[sibling.branches.length - 1].condition === void 0) {\n context.onError(\n createCompilerError(30, node.loc)\n );\n }\n context.removeNode();\n const branch = createIfBranch(node, dir);\n if (comments.length && // #3619 ignore comments if the v-if is direct child of <transition>\n !(context.parent && context.parent.type === 1 && (context.parent.tag === \"transition\" || context.parent.tag === \"Transition\"))) {\n branch.children = [...comments, ...branch.children];\n }\n {\n const key = branch.userKey;\n if (key) {\n sibling.branches.forEach(({ userKey }) => {\n if (isSameKey(userKey, key)) {\n context.onError(\n createCompilerError(\n 29,\n branch.userKey.loc\n )\n );\n }\n });\n }\n }\n sibling.branches.push(branch);\n const onExit = processCodegen && processCodegen(sibling, branch, false);\n traverseNode(branch, context);\n if (onExit) onExit();\n context.currentNode = null;\n } else {\n context.onError(\n createCompilerError(30, node.loc)\n );\n }\n break;\n }\n }\n}\nfunction createIfBranch(node, dir) {\n const isTemplateIf = node.tagType === 3;\n return {\n type: 10,\n loc: node.loc,\n condition: dir.name === \"else\" ? void 0 : dir.exp,\n children: isTemplateIf && !findDir(node, \"for\") ? node.children : [node],\n userKey: findProp(node, `key`),\n isTemplateIf\n };\n}\nfunction createCodegenNodeForBranch(branch, keyIndex, context) {\n if (branch.condition) {\n return createConditionalExpression(\n branch.condition,\n createChildrenCodegenNode(branch, keyIndex, context),\n // make sure to pass in asBlock: true so that the comment node call\n // closes the current block.\n createCallExpression(context.helper(CREATE_COMMENT), [\n '\"v-if\"' ,\n \"true\"\n ])\n );\n } else {\n return createChildrenCodegenNode(branch, keyIndex, context);\n }\n}\nfunction createChildrenCodegenNode(branch, keyIndex, context) {\n const { helper } = context;\n const keyProperty = createObjectProperty(\n `key`,\n createSimpleExpression(\n `${keyIndex}`,\n false,\n locStub,\n 2\n )\n );\n const { children } = branch;\n const firstChild = children[0];\n const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1;\n if (needFragmentWrapper) {\n if (children.length === 1 && firstChild.type === 11) {\n const vnodeCall = firstChild.codegenNode;\n injectProp(vnodeCall, keyProperty, context);\n return vnodeCall;\n } else {\n let patchFlag = 64;\n if (!branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) {\n patchFlag |= 2048;\n }\n return createVNodeCall(\n context,\n helper(FRAGMENT),\n createObjectExpression([keyProperty]),\n children,\n patchFlag,\n void 0,\n void 0,\n true,\n false,\n false,\n branch.loc\n );\n }\n } else {\n const ret = firstChild.codegenNode;\n const vnodeCall = getMemoedVNodeCall(ret);\n if (vnodeCall.type === 13) {\n convertToBlock(vnodeCall, context);\n }\n injectProp(vnodeCall, keyProperty, context);\n return ret;\n }\n}\nfunction isSameKey(a, b) {\n if (!a || a.type !== b.type) {\n return false;\n }\n if (a.type === 6) {\n if (a.value.content !== b.value.content) {\n return false;\n }\n } else {\n const exp = a.exp;\n const branchExp = b.exp;\n if (exp.type !== branchExp.type) {\n return false;\n }\n if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) {\n return false;\n }\n }\n return true;\n}\nfunction getParentCondition(node) {\n while (true) {\n if (node.type === 19) {\n if (node.alternate.type === 19) {\n node = node.alternate;\n } else {\n return node;\n }\n } else if (node.type === 20) {\n node = node.value;\n }\n }\n}\n\nconst transformFor = createStructuralDirectiveTransform(\n \"for\",\n (node, dir, context) => {\n const { helper, removeHelper } = context;\n return processFor(node, dir, context, (forNode) => {\n const renderExp = createCallExpression(helper(RENDER_LIST), [\n forNode.source\n ]);\n const isTemplate = isTemplateNode(node);\n const memo = findDir(node, \"memo\");\n const keyProp = findProp(node, `key`, false, true);\n const isDirKey = keyProp && keyProp.type === 7;\n let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);\n const keyProperty = keyExp ? createObjectProperty(`key`, keyExp) : null;\n {\n if (isTemplate && memo) {\n memo.exp = processExpression(\n memo.exp,\n context\n );\n }\n if ((isTemplate || memo) && keyProperty && isDirKey) {\n keyExp = keyProp.exp = keyProperty.value = processExpression(\n keyProperty.value,\n context\n );\n if (memo) {\n context.vForMemoKeyedNodes.add(node);\n }\n }\n }\n const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;\n const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;\n forNode.codegenNode = createVNodeCall(\n context,\n helper(FRAGMENT),\n void 0,\n renderExp,\n fragmentFlag,\n void 0,\n void 0,\n true,\n !isStableFragment,\n false,\n node.loc\n );\n return () => {\n let childBlock;\n const { children } = forNode;\n if (isTemplate) {\n node.children.some((c) => {\n if (c.type === 1) {\n const key = findProp(c, \"key\");\n if (key) {\n context.onError(\n createCompilerError(\n 33,\n key.loc\n )\n );\n return true;\n }\n }\n });\n }\n const needFragmentWrapper = children.length !== 1 || children[0].type !== 1;\n const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null;\n if (slotOutlet) {\n childBlock = slotOutlet.codegenNode;\n if (isTemplate && keyProperty) {\n injectProp(childBlock, keyProperty, context);\n }\n } else if (needFragmentWrapper) {\n childBlock = createVNodeCall(\n context,\n helper(FRAGMENT),\n keyProperty ? createObjectExpression([keyProperty]) : void 0,\n node.children,\n 64,\n void 0,\n void 0,\n true,\n void 0,\n false\n );\n } else {\n childBlock = children[0].codegenNode;\n if (isTemplate && keyProperty) {\n injectProp(childBlock, keyProperty, context);\n }\n if (childBlock.isBlock !== !isStableFragment) {\n if (childBlock.isBlock) {\n removeHelper(OPEN_BLOCK);\n removeHelper(\n getVNodeBlockHelper(context.inSSR, childBlock.isComponent)\n );\n } else {\n removeHelper(\n getVNodeHelper(context.inSSR, childBlock.isComponent)\n );\n }\n }\n childBlock.isBlock = !isStableFragment;\n if (childBlock.isBlock) {\n helper(OPEN_BLOCK);\n helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));\n } else {\n helper(getVNodeHelper(context.inSSR, childBlock.isComponent));\n }\n }\n if (memo) {\n const loop = createFunctionExpression(\n createForLoopParams(forNode.parseResult, [\n createSimpleExpression(`_cached`)\n ])\n );\n loop.body = createBlockStatement([\n createCompoundExpression([`const _memo = (`, memo.exp, `)`]),\n createCompoundExpression([\n `if (_cached && _cached.el`,\n ...keyExp ? [` && _cached.key === `, keyExp] : [],\n ` && ${context.helperString(\n IS_MEMO_SAME\n )}(_cached, _memo)) return _cached`\n ]),\n createCompoundExpression([`const _item = `, childBlock]),\n createSimpleExpression(`_item.memo = _memo`),\n createSimpleExpression(`return _item`)\n ]);\n renderExp.arguments.push(\n loop,\n createSimpleExpression(`_cache`),\n createSimpleExpression(String(context.cached.length))\n );\n context.cached.push(null);\n } else {\n renderExp.arguments.push(\n createFunctionExpression(\n createForLoopParams(forNode.parseResult),\n childBlock,\n true\n )\n );\n }\n };\n });\n }\n);\nfunction processFor(node, dir, context, processCodegen) {\n if (!dir.exp) {\n context.onError(\n createCompilerError(31, dir.loc)\n );\n return;\n }\n const parseResult = dir.forParseResult;\n if (!parseResult) {\n context.onError(\n createCompilerError(32, dir.loc)\n );\n return;\n }\n finalizeForParseResult(parseResult, context);\n const { addIdentifiers, removeIdentifiers, scopes } = context;\n const { source, value, key, index } = parseResult;\n const forNode = {\n type: 11,\n loc: dir.loc,\n source,\n valueAlias: value,\n keyAlias: key,\n objectIndexAlias: index,\n parseResult,\n children: isTemplateNode(node) ? node.children : [node]\n };\n context.replaceNode(forNode);\n scopes.vFor++;\n if (context.prefixIdentifiers) {\n value && addIdentifiers(value);\n key && addIdentifiers(key);\n index && addIdentifiers(index);\n }\n const onExit = processCodegen && processCodegen(forNode);\n return () => {\n scopes.vFor--;\n if (context.prefixIdentifiers) {\n value && removeIdentifiers(value);\n key && removeIdentifiers(key);\n index && removeIdentifiers(index);\n }\n if (onExit) onExit();\n };\n}\nfunction finalizeForParseResult(result, context) {\n if (result.finalized) return;\n if (context.prefixIdentifiers) {\n result.source = processExpression(\n result.source,\n context\n );\n if (result.key) {\n result.key = processExpression(\n result.key,\n context,\n true\n );\n }\n if (result.index) {\n result.index = processExpression(\n result.index,\n context,\n true\n );\n }\n if (result.value) {\n result.value = processExpression(\n result.value,\n context,\n true\n );\n }\n }\n result.finalized = true;\n}\nfunction createForLoopParams({ value, key, index }, memoArgs = []) {\n return createParamsList([value, key, index, ...memoArgs]);\n}\nfunction createParamsList(args) {\n let i = args.length;\n while (i--) {\n if (args[i]) break;\n }\n return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false));\n}\n\nconst defaultFallback = createSimpleExpression(`undefined`, false);\nconst trackSlotScopes = (node, context) => {\n if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) {\n const vSlot = findDir(node, \"slot\");\n if (vSlot) {\n const slotProps = vSlot.exp;\n if (context.prefixIdentifiers) {\n slotProps && context.addIdentifiers(slotProps);\n }\n context.scopes.vSlot++;\n return () => {\n if (context.prefixIdentifiers) {\n slotProps && context.removeIdentifiers(slotProps);\n }\n context.scopes.vSlot--;\n };\n }\n }\n};\nconst trackVForSlotScopes = (node, context) => {\n let vFor;\n if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, \"for\"))) {\n const result = vFor.forParseResult;\n if (result) {\n finalizeForParseResult(result, context);\n const { value, key, index } = result;\n const { addIdentifiers, removeIdentifiers } = context;\n value && addIdentifiers(value);\n key && addIdentifiers(key);\n index && addIdentifiers(index);\n return () => {\n value && removeIdentifiers(value);\n key && removeIdentifiers(key);\n index && removeIdentifiers(index);\n };\n }\n }\n};\nconst buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression(\n props,\n children,\n false,\n true,\n children.length ? children[0].loc : loc\n);\nfunction buildSlots(node, context, buildSlotFn = buildClientSlotFn) {\n context.helper(WITH_CTX);\n const { children, loc } = node;\n const slotsProperties = [];\n const dynamicSlots = [];\n let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0;\n if (!context.ssr && context.prefixIdentifiers) {\n hasDynamicSlots = node.props.some(\n (prop) => isVSlot(prop) && (hasScopeRef(prop.arg, context.identifiers) || hasScopeRef(prop.exp, context.identifiers))\n ) || children.some((child) => hasScopeRef(child, context.identifiers));\n }\n const onComponentSlot = findDir(node, \"slot\", true);\n if (onComponentSlot) {\n const { arg, exp } = onComponentSlot;\n if (arg && !isStaticExp(arg)) {\n hasDynamicSlots = true;\n }\n slotsProperties.push(\n createObjectProperty(\n arg || createSimpleExpression(\"default\", true),\n buildSlotFn(exp, void 0, children, loc)\n )\n );\n }\n let hasTemplateSlots = false;\n let hasNamedDefaultSlot = false;\n const implicitDefaultChildren = [];\n const seenSlotNames = /* @__PURE__ */ new Set();\n let conditionalBranchIndex = 0;\n for (let i = 0; i < children.length; i++) {\n const slotElement = children[i];\n let slotDir;\n if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, \"slot\", true))) {\n if (slotElement.type !== 3) {\n implicitDefaultChildren.push(slotElement);\n }\n continue;\n }\n if (onComponentSlot) {\n context.onError(\n createCompilerError(37, slotDir.loc)\n );\n break;\n }\n hasTemplateSlots = true;\n const { children: slotChildren, loc: slotLoc } = slotElement;\n const {\n arg: slotName = createSimpleExpression(`default`, true),\n exp: slotProps,\n loc: dirLoc\n } = slotDir;\n let staticSlotName;\n if (isStaticExp(slotName)) {\n staticSlotName = slotName ? slotName.content : `default`;\n } else {\n hasDynamicSlots = true;\n }\n const vFor = findDir(slotElement, \"for\");\n const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc);\n let vIf;\n let vElse;\n if (vIf = findDir(slotElement, \"if\")) {\n hasDynamicSlots = true;\n dynamicSlots.push(\n createConditionalExpression(\n vIf.exp,\n buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++),\n defaultFallback\n )\n );\n } else if (vElse = findDir(\n slotElement,\n /^else(?:-if)?$/,\n true\n /* allowEmpty */\n )) {\n let j = i;\n let prev;\n while (j--) {\n prev = children[j];\n if (!isCommentOrWhitespace(prev)) {\n break;\n }\n }\n if (prev && isTemplateNode(prev) && findDir(prev, /^(?:else-)?if$/)) {\n let conditional = dynamicSlots[dynamicSlots.length - 1];\n while (conditional.alternate.type === 19) {\n conditional = conditional.alternate;\n }\n conditional.alternate = vElse.exp ? createConditionalExpression(\n vElse.exp,\n buildDynamicSlot(\n slotName,\n slotFunction,\n conditionalBranchIndex++\n ),\n defaultFallback\n ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++);\n } else {\n context.onError(\n createCompilerError(30, vElse.loc)\n );\n }\n } else if (vFor) {\n hasDynamicSlots = true;\n const parseResult = vFor.forParseResult;\n if (parseResult) {\n finalizeForParseResult(parseResult, context);\n dynamicSlots.push(\n createCallExpression(context.helper(RENDER_LIST), [\n parseResult.source,\n createFunctionExpression(\n createForLoopParams(parseResult),\n buildDynamicSlot(slotName, slotFunction),\n true\n )\n ])\n );\n } else {\n context.onError(\n createCompilerError(\n 32,\n vFor.loc\n )\n );\n }\n } else {\n if (staticSlotName) {\n if (seenSlotNames.has(staticSlotName)) {\n context.onError(\n createCompilerError(\n 38,\n dirLoc\n )\n );\n continue;\n }\n seenSlotNames.add(staticSlotName);\n if (staticSlotName === \"default\") {\n hasNamedDefaultSlot = true;\n }\n }\n slotsProperties.push(createObjectProperty(slotName, slotFunction));\n }\n }\n if (!onComponentSlot) {\n const buildDefaultSlotProperty = (props, children2) => {\n const fn = buildSlotFn(props, void 0, children2, loc);\n if (context.compatConfig) {\n fn.isNonScopedSlot = true;\n }\n return createObjectProperty(`default`, fn);\n };\n if (!hasTemplateSlots) {\n slotsProperties.push(buildDefaultSlotProperty(void 0, children));\n } else if (implicitDefaultChildren.length && // #3766\n // with whitespace: 'preserve', whitespaces between slots will end up in\n // implicitDefaultChildren. Ignore if all implicit children are whitespaces.\n !implicitDefaultChildren.every(isWhitespaceText)) {\n if (hasNamedDefaultSlot) {\n context.onError(\n createCompilerError(\n 39,\n implicitDefaultChildren[0].loc\n )\n );\n } else {\n slotsProperties.push(\n buildDefaultSlotProperty(void 0, implicitDefaultChildren)\n );\n }\n }\n }\n const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;\n let slots = createObjectExpression(\n slotsProperties.concat(\n createObjectProperty(\n `_`,\n // 2 = compiled but dynamic = can skip normalization, but must run diff\n // 1 = compiled and static = can skip normalization AND diff as optimized\n createSimpleExpression(\n slotFlag + (` /* ${shared.slotFlagsText[slotFlag]} */` ),\n false\n )\n )\n ),\n loc\n );\n if (dynamicSlots.length) {\n slots = createCallExpression(context.helper(CREATE_SLOTS), [\n slots,\n createArrayExpression(dynamicSlots)\n ]);\n }\n return {\n slots,\n hasDynamicSlots\n };\n}\nfunction buildDynamicSlot(name, fn, index) {\n const props = [\n createObjectProperty(`name`, name),\n createObjectProperty(`fn`, fn)\n ];\n if (index != null) {\n props.push(\n createObjectProperty(`key`, createSimpleExpression(String(index), true))\n );\n }\n return createObjectExpression(props);\n}\nfunction hasForwardedSlots(children) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n switch (child.type) {\n case 1:\n if (child.tagType === 2 || hasForwardedSlots(child.children)) {\n return true;\n }\n break;\n case 9:\n if (hasForwardedSlots(child.branches)) return true;\n break;\n case 10:\n case 11:\n if (hasForwardedSlots(child.children)) return true;\n break;\n }\n }\n return false;\n}\n\nconst directiveImportMap = /* @__PURE__ */ new WeakMap();\nconst transformElement = (node, context) => {\n return function postTransformElement() {\n node = context.currentNode;\n if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) {\n return;\n }\n const { tag, props } = node;\n const isComponent = node.tagType === 1;\n let vnodeTag = isComponent ? resolveComponentType(node, context) : `\"${tag}\"`;\n const isDynamicComponent = shared.isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT;\n let vnodeProps;\n let vnodeChildren;\n let patchFlag = 0;\n let vnodeDynamicProps;\n let dynamicPropNames;\n let vnodeDirectives;\n let shouldUseBlock = (\n // dynamic component may resolve to plain elements\n isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block\n // updates inside get proper isSVG flag at runtime. (#639, #643)\n // This is technically web-specific, but splitting the logic out of core\n // leads to too much unnecessary complexity.\n (tag === \"svg\" || tag === \"foreignObject\" || tag === \"math\")\n );\n if (props.length > 0) {\n const propsBuildResult = buildProps(\n node,\n context,\n void 0,\n isComponent,\n isDynamicComponent\n );\n vnodeProps = propsBuildResult.props;\n patchFlag = propsBuildResult.patchFlag;\n dynamicPropNames = propsBuildResult.dynamicPropNames;\n const directives = propsBuildResult.directives;\n vnodeDirectives = directives && directives.length ? createArrayExpression(\n directives.map((dir) => buildDirectiveArgs(dir, context))\n ) : void 0;\n if (propsBuildResult.shouldUseBlock) {\n shouldUseBlock = true;\n }\n }\n if (node.children.length > 0) {\n if (vnodeTag === KEEP_ALIVE) {\n shouldUseBlock = true;\n patchFlag |= 1024;\n if (node.children.length > 1) {\n context.onError(\n createCompilerError(47, {\n start: node.children[0].loc.start,\n end: node.children[node.children.length - 1].loc.end,\n source: \"\"\n })\n );\n }\n }\n const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling\n vnodeTag !== TELEPORT && // explained above.\n vnodeTag !== KEEP_ALIVE;\n if (shouldBuildAsSlots) {\n const { slots, hasDynamicSlots } = buildSlots(node, context);\n vnodeChildren = slots;\n if (hasDynamicSlots) {\n patchFlag |= 1024;\n }\n } else if (node.children.length === 1 && vnodeTag !== TELEPORT) {\n const child = node.children[0];\n const type = child.type;\n const hasDynamicTextChild = type === 5 || type === 8;\n if (hasDynamicTextChild && getConstantType(child, context) === 0) {\n patchFlag |= 1;\n }\n if (hasDynamicTextChild || type === 2) {\n vnodeChildren = child;\n } else {\n vnodeChildren = node.children;\n }\n } else {\n vnodeChildren = node.children;\n }\n }\n if (dynamicPropNames && dynamicPropNames.length) {\n vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);\n }\n node.codegenNode = createVNodeCall(\n context,\n vnodeTag,\n vnodeProps,\n vnodeChildren,\n patchFlag === 0 ? void 0 : patchFlag,\n vnodeDynamicProps,\n vnodeDirectives,\n !!shouldUseBlock,\n false,\n isComponent,\n node.loc\n );\n };\n};\nfunction resolveComponentType(node, context, ssr = false) {\n let { tag } = node;\n const isExplicitDynamic = isComponentTag(tag);\n const isProp = findProp(\n node,\n \"is\",\n false,\n true\n /* allow empty */\n );\n if (isProp) {\n if (isExplicitDynamic || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n )) {\n let exp;\n if (isProp.type === 6) {\n exp = isProp.value && createSimpleExpression(isProp.value.content, true);\n } else {\n exp = isProp.exp;\n if (!exp) {\n exp = createSimpleExpression(`is`, false, isProp.arg.loc);\n {\n exp = isProp.exp = processExpression(exp, context);\n }\n }\n }\n if (exp) {\n return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [\n exp\n ]);\n }\n } else if (isProp.type === 6 && isProp.value.content.startsWith(\"vue:\")) {\n tag = isProp.value.content.slice(4);\n }\n }\n const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag);\n if (builtIn) {\n if (!ssr) context.helper(builtIn);\n return builtIn;\n }\n {\n const fromSetup = resolveSetupReference(tag, context);\n if (fromSetup) {\n return fromSetup;\n }\n const dotIndex = tag.indexOf(\".\");\n if (dotIndex > 0) {\n const ns = resolveSetupReference(tag.slice(0, dotIndex), context);\n if (ns) {\n return ns + tag.slice(dotIndex);\n }\n }\n }\n if (context.selfName && shared.capitalize(shared.camelize(tag)) === context.selfName) {\n context.helper(RESOLVE_COMPONENT);\n context.components.add(tag + `__self`);\n return toValidAssetId(tag, `component`);\n }\n context.helper(RESOLVE_COMPONENT);\n context.components.add(tag);\n return toValidAssetId(tag, `component`);\n}\nfunction resolveSetupReference(name, context) {\n const bindings = context.bindingMetadata;\n if (!bindings || bindings.__isScriptSetup === false) {\n return;\n }\n const camelName = shared.camelize(name);\n const PascalName = shared.capitalize(camelName);\n const checkType = (type) => {\n if (bindings[name] === type) {\n return name;\n }\n if (bindings[camelName] === type) {\n return camelName;\n }\n if (bindings[PascalName] === type) {\n return PascalName;\n }\n };\n const fromConst = checkType(\"setup-const\") || checkType(\"setup-reactive-const\") || checkType(\"literal-const\");\n if (fromConst) {\n return context.inline ? (\n // in inline mode, const setup bindings (e.g. imports) can be used as-is\n fromConst\n ) : `$setup[${JSON.stringify(fromConst)}]`;\n }\n const fromMaybeRef = checkType(\"setup-let\") || checkType(\"setup-ref\") || checkType(\"setup-maybe-ref\");\n if (fromMaybeRef) {\n return context.inline ? (\n // setup scope bindings that may be refs need to be unrefed\n `${context.helperString(UNREF)}(${fromMaybeRef})`\n ) : `$setup[${JSON.stringify(fromMaybeRef)}]`;\n }\n const fromProps = checkType(\"props\");\n if (fromProps) {\n return `${context.helperString(UNREF)}(${context.inline ? \"__props\" : \"$props\"}[${JSON.stringify(fromProps)}])`;\n }\n}\nfunction buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) {\n const { tag, loc: elementLoc, children } = node;\n let properties = [];\n const mergeArgs = [];\n const runtimeDirectives = [];\n const hasChildren = children.length > 0;\n let shouldUseBlock = false;\n let patchFlag = 0;\n let hasRef = false;\n let hasClassBinding = false;\n let hasStyleBinding = false;\n let hasHydrationEventBinding = false;\n let hasDynamicKeys = false;\n let hasVnodeHook = false;\n const dynamicPropNames = [];\n const pushMergeArg = (arg) => {\n if (properties.length) {\n mergeArgs.push(\n createObjectExpression(dedupeProperties(properties), elementLoc)\n );\n properties = [];\n }\n if (arg) mergeArgs.push(arg);\n };\n const pushRefVForMarker = () => {\n if (context.scopes.vFor > 0) {\n properties.push(\n createObjectProperty(\n createSimpleExpression(\"ref_for\", true),\n createSimpleExpression(\"true\")\n )\n );\n }\n };\n const analyzePatchFlag = ({ key, value }) => {\n if (isStaticExp(key)) {\n const name = key.content;\n const isEventHandler = shared.isOn(name);\n if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click\n // dedicated fast path.\n name.toLowerCase() !== \"onclick\" && // omit v-model handlers\n name !== \"onUpdate:modelValue\" && // omit onVnodeXXX hooks\n !shared.isReservedProp(name)) {\n hasHydrationEventBinding = true;\n }\n if (isEventHandler && shared.isReservedProp(name)) {\n hasVnodeHook = true;\n }\n if (isEventHandler && value.type === 14) {\n value = value.arguments[0];\n }\n if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) {\n return;\n }\n if (name === \"ref\") {\n hasRef = true;\n } else if (name === \"class\") {\n hasClassBinding = true;\n } else if (name === \"style\") {\n hasStyleBinding = true;\n } else if (name !== \"key\" && !dynamicPropNames.includes(name)) {\n dynamicPropNames.push(name);\n }\n if (isComponent && (name === \"class\" || name === \"style\") && !dynamicPropNames.includes(name)) {\n dynamicPropNames.push(name);\n }\n } else {\n hasDynamicKeys = true;\n }\n };\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (prop.type === 6) {\n const { loc, name, nameLoc, value } = prop;\n let isStatic = true;\n if (name === \"ref\") {\n hasRef = true;\n pushRefVForMarker();\n if (value && context.inline) {\n const binding = context.bindingMetadata[value.content];\n if (binding === \"setup-let\" || binding === \"setup-ref\" || binding === \"setup-maybe-ref\") {\n isStatic = false;\n properties.push(\n createObjectProperty(\n createSimpleExpression(\"ref_key\", true),\n createSimpleExpression(value.content, true, value.loc)\n )\n );\n }\n }\n }\n if (name === \"is\" && (isComponentTag(tag) || value && value.content.startsWith(\"vue:\") || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n ))) {\n continue;\n }\n properties.push(\n createObjectProperty(\n createSimpleExpression(name, true, nameLoc),\n createSimpleExpression(\n value ? value.content : \"\",\n isStatic,\n value ? value.loc : loc\n )\n )\n );\n } else {\n const { name, arg, exp, loc, modifiers } = prop;\n const isVBind = name === \"bind\";\n const isVOn = name === \"on\";\n if (name === \"slot\") {\n if (!isComponent) {\n context.onError(\n createCompilerError(40, loc)\n );\n }\n continue;\n }\n if (name === \"once\" || name === \"memo\") {\n continue;\n }\n if (name === \"is\" || isVBind && isStaticArgOf(arg, \"is\") && (isComponentTag(tag) || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n ))) {\n continue;\n }\n if (isVOn && ssr) {\n continue;\n }\n if (\n // #938: elements with dynamic keys should be forced into blocks\n isVBind && isStaticArgOf(arg, \"key\") || // inline before-update hooks need to force block so that it is invoked\n // before children\n isVOn && hasChildren && isStaticArgOf(arg, \"vue:before-update\")\n ) {\n shouldUseBlock = true;\n }\n if (isVBind && isStaticArgOf(arg, \"ref\")) {\n pushRefVForMarker();\n }\n if (!arg && (isVBind || isVOn)) {\n hasDynamicKeys = true;\n if (exp) {\n if (isVBind) {\n {\n pushMergeArg();\n {\n const hasOverridableKeys = mergeArgs.some((arg2) => {\n if (arg2.type === 15) {\n return arg2.properties.some(({ key }) => {\n if (key.type !== 4 || !key.isStatic) {\n return true;\n }\n return key.content !== \"class\" && key.content !== \"style\" && !shared.isOn(key.content);\n });\n } else {\n return true;\n }\n });\n if (hasOverridableKeys) {\n checkCompatEnabled(\n \"COMPILER_V_BIND_OBJECT_ORDER\",\n context,\n loc\n );\n }\n }\n if (isCompatEnabled(\n \"COMPILER_V_BIND_OBJECT_ORDER\",\n context\n )) {\n mergeArgs.unshift(exp);\n continue;\n }\n }\n pushRefVForMarker();\n pushMergeArg();\n mergeArgs.push(exp);\n } else {\n pushMergeArg({\n type: 14,\n loc,\n callee: context.helper(TO_HANDLERS),\n arguments: isComponent ? [exp] : [exp, `true`]\n });\n }\n } else {\n context.onError(\n createCompilerError(\n isVBind ? 34 : 35,\n loc\n )\n );\n }\n continue;\n }\n if (isVBind && modifiers.some((mod) => mod.content === \"prop\")) {\n patchFlag |= 32;\n }\n const directiveTransform = context.directiveTransforms[name];\n if (directiveTransform) {\n const { props: props2, needRuntime } = directiveTransform(prop, node, context);\n !ssr && props2.forEach(analyzePatchFlag);\n if (isVOn && arg && !isStaticExp(arg)) {\n pushMergeArg(createObjectExpression(props2, elementLoc));\n } else {\n properties.push(...props2);\n }\n if (needRuntime) {\n runtimeDirectives.push(prop);\n if (shared.isSymbol(needRuntime)) {\n directiveImportMap.set(prop, needRuntime);\n }\n }\n } else if (!shared.isBuiltInDirective(name)) {\n runtimeDirectives.push(prop);\n if (hasChildren) {\n shouldUseBlock = true;\n }\n }\n }\n }\n let propsExpression = void 0;\n if (mergeArgs.length) {\n pushMergeArg();\n if (mergeArgs.length > 1) {\n propsExpression = createCallExpression(\n context.helper(MERGE_PROPS),\n mergeArgs,\n elementLoc\n );\n } else {\n propsExpression = mergeArgs[0];\n }\n } else if (properties.length) {\n propsExpression = createObjectExpression(\n dedupeProperties(properties),\n elementLoc\n );\n }\n if (hasDynamicKeys) {\n patchFlag |= 16;\n } else {\n if (hasClassBinding && !isComponent) {\n patchFlag |= 2;\n }\n if (hasStyleBinding && !isComponent) {\n patchFlag |= 4;\n }\n if (dynamicPropNames.length) {\n patchFlag |= 8;\n }\n if (hasHydrationEventBinding) {\n patchFlag |= 32;\n }\n }\n if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) {\n patchFlag |= 512;\n }\n if (!context.inSSR && propsExpression) {\n switch (propsExpression.type) {\n case 15:\n let classKeyIndex = -1;\n let styleKeyIndex = -1;\n let hasDynamicKey = false;\n for (let i = 0; i < propsExpression.properties.length; i++) {\n const key = propsExpression.properties[i].key;\n if (isStaticExp(key)) {\n if (key.content === \"class\") {\n classKeyIndex = i;\n } else if (key.content === \"style\") {\n styleKeyIndex = i;\n }\n } else if (!key.isHandlerKey) {\n hasDynamicKey = true;\n }\n }\n const classProp = propsExpression.properties[classKeyIndex];\n const styleProp = propsExpression.properties[styleKeyIndex];\n if (!hasDynamicKey) {\n if (classProp && !isStaticExp(classProp.value)) {\n classProp.value = createCallExpression(\n context.helper(NORMALIZE_CLASS),\n [classProp.value]\n );\n }\n if (styleProp && // the static style is compiled into an object,\n // so use `hasStyleBinding` to ensure that it is a dynamic style binding\n (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist,\n // v-bind:style with static literal object\n styleProp.value.type === 17)) {\n styleProp.value = createCallExpression(\n context.helper(NORMALIZE_STYLE),\n [styleProp.value]\n );\n }\n } else {\n propsExpression = createCallExpression(\n context.helper(NORMALIZE_PROPS),\n [propsExpression]\n );\n }\n break;\n case 14:\n break;\n default:\n propsExpression = createCallExpression(\n context.helper(NORMALIZE_PROPS),\n [\n createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [\n propsExpression\n ])\n ]\n );\n break;\n }\n }\n return {\n props: propsExpression,\n directives: runtimeDirectives,\n patchFlag,\n dynamicPropNames,\n shouldUseBlock\n };\n}\nfunction dedupeProperties(properties) {\n const knownProps = /* @__PURE__ */ new Map();\n const deduped = [];\n for (let i = 0; i < properties.length; i++) {\n const prop = properties[i];\n if (prop.key.type === 8 || !prop.key.isStatic) {\n deduped.push(prop);\n continue;\n }\n const name = prop.key.content;\n const existing = knownProps.get(name);\n if (existing) {\n if (name === \"style\" || name === \"class\" || shared.isOn(name)) {\n mergeAsArray(existing, prop);\n }\n } else {\n knownProps.set(name, prop);\n deduped.push(prop);\n }\n }\n return deduped;\n}\nfunction mergeAsArray(existing, incoming) {\n if (existing.value.type === 17) {\n existing.value.elements.push(incoming.value);\n } else {\n existing.value = createArrayExpression(\n [existing.value, incoming.value],\n existing.loc\n );\n }\n}\nfunction buildDirectiveArgs(dir, context) {\n const dirArgs = [];\n const runtime = directiveImportMap.get(dir);\n if (runtime) {\n dirArgs.push(context.helperString(runtime));\n } else {\n const fromSetup = resolveSetupReference(\"v-\" + dir.name, context);\n if (fromSetup) {\n dirArgs.push(fromSetup);\n } else {\n context.helper(RESOLVE_DIRECTIVE);\n context.directives.add(dir.name);\n dirArgs.push(toValidAssetId(dir.name, `directive`));\n }\n }\n const { loc } = dir;\n if (dir.exp) dirArgs.push(dir.exp);\n if (dir.arg) {\n if (!dir.exp) {\n dirArgs.push(`void 0`);\n }\n dirArgs.push(dir.arg);\n }\n if (Object.keys(dir.modifiers).length) {\n if (!dir.arg) {\n if (!dir.exp) {\n dirArgs.push(`void 0`);\n }\n dirArgs.push(`void 0`);\n }\n const trueExpression = createSimpleExpression(`true`, false, loc);\n dirArgs.push(\n createObjectExpression(\n dir.modifiers.map(\n (modifier) => createObjectProperty(modifier, trueExpression)\n ),\n loc\n )\n );\n }\n return createArrayExpression(dirArgs, dir.loc);\n}\nfunction stringifyDynamicPropNames(props) {\n let propsNamesString = `[`;\n for (let i = 0, l = props.length; i < l; i++) {\n propsNamesString += JSON.stringify(props[i]);\n if (i < l - 1) propsNamesString += \", \";\n }\n return propsNamesString + `]`;\n}\nfunction isComponentTag(tag) {\n return tag === \"component\" || tag === \"Component\";\n}\n\nconst transformSlotOutlet = (node, context) => {\n if (isSlotOutlet(node)) {\n const { children, loc } = node;\n const { slotName, slotProps } = processSlotOutlet(node, context);\n const slotArgs = [\n context.prefixIdentifiers ? `_ctx.$slots` : `$slots`,\n slotName,\n \"{}\",\n \"undefined\",\n \"true\"\n ];\n let expectedLen = 2;\n if (slotProps) {\n slotArgs[2] = slotProps;\n expectedLen = 3;\n }\n if (children.length) {\n slotArgs[3] = createFunctionExpression([], children, false, false, loc);\n expectedLen = 4;\n }\n if (context.scopeId && !context.slotted) {\n expectedLen = 5;\n }\n slotArgs.splice(expectedLen);\n node.codegenNode = createCallExpression(\n context.helper(RENDER_SLOT),\n slotArgs,\n loc\n );\n }\n};\nfunction processSlotOutlet(node, context) {\n let slotName = `\"default\"`;\n let slotProps = void 0;\n const nonNameProps = [];\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 6) {\n if (p.value) {\n if (p.name === \"name\") {\n slotName = JSON.stringify(p.value.content);\n } else {\n p.name = shared.camelize(p.name);\n nonNameProps.push(p);\n }\n }\n } else {\n if (p.name === \"bind\" && isStaticArgOf(p.arg, \"name\")) {\n if (p.exp) {\n slotName = p.exp;\n } else if (p.arg && p.arg.type === 4) {\n const name = shared.camelize(p.arg.content);\n slotName = p.exp = createSimpleExpression(name, false, p.arg.loc);\n {\n slotName = p.exp = processExpression(p.exp, context);\n }\n }\n } else {\n if (p.name === \"bind\" && p.arg && isStaticExp(p.arg)) {\n p.arg.content = shared.camelize(p.arg.content);\n }\n nonNameProps.push(p);\n }\n }\n }\n if (nonNameProps.length > 0) {\n const { props, directives } = buildProps(\n node,\n context,\n nonNameProps,\n false,\n false\n );\n slotProps = props;\n if (directives.length) {\n context.onError(\n createCompilerError(\n 36,\n directives[0].loc\n )\n );\n }\n }\n return {\n slotName,\n slotProps\n };\n}\n\nconst transformOn = (dir, node, context, augmentor) => {\n const { loc, modifiers, arg } = dir;\n if (!dir.exp && !modifiers.length) {\n context.onError(createCompilerError(35, loc));\n }\n let eventName;\n if (arg.type === 4) {\n if (arg.isStatic) {\n let rawName = arg.content;\n if (rawName.startsWith(\"vnode\")) {\n context.onError(createCompilerError(52, arg.loc));\n }\n if (rawName.startsWith(\"vue:\")) {\n rawName = `vnode-${rawName.slice(4)}`;\n }\n const eventString = node.tagType !== 0 || rawName.startsWith(\"vnode\") || !/[A-Z]/.test(rawName) ? (\n // for non-element and vnode lifecycle event listeners, auto convert\n // it to camelCase. See issue #2249\n shared.toHandlerKey(shared.camelize(rawName))\n ) : (\n // preserve case for plain element listeners that have uppercase\n // letters, as these may be custom elements' custom events\n `on:${rawName}`\n );\n eventName = createSimpleExpression(eventString, true, arg.loc);\n } else {\n eventName = createCompoundExpression([\n `${context.helperString(TO_HANDLER_KEY)}(`,\n arg,\n `)`\n ]);\n }\n } else {\n eventName = arg;\n eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);\n eventName.children.push(`)`);\n }\n let exp = dir.exp;\n if (exp && !exp.content.trim()) {\n exp = void 0;\n }\n let shouldCache = context.cacheHandlers && !exp && !context.inVOnce;\n if (exp) {\n const isMemberExp = isMemberExpression(exp, context);\n const isInlineStatement = !(isMemberExp || isFnExpression(exp, context));\n const hasMultipleStatements = exp.content.includes(`;`);\n if (context.prefixIdentifiers) {\n isInlineStatement && context.addIdentifiers(`$event`);\n exp = dir.exp = processExpression(\n exp,\n context,\n false,\n hasMultipleStatements\n );\n isInlineStatement && context.removeIdentifiers(`$event`);\n shouldCache = context.cacheHandlers && // unnecessary to cache inside v-once\n !context.inVOnce && // runtime constants don't need to be cached\n // (this is analyzed by compileScript in SFC <script setup>)\n !(exp.type === 4 && exp.constType > 0) && // #1541 bail if this is a member exp handler passed to a component -\n // we need to use the original function to preserve arity,\n // e.g. <transition> relies on checking cb.length to determine\n // transition end handling. Inline function is ok since its arity\n // is preserved even when cached.\n !(isMemberExp && node.tagType === 1) && // bail if the function references closure variables (v-for, v-slot)\n // it must be passed fresh to avoid stale values.\n !hasScopeRef(exp, context.identifiers);\n if (shouldCache && isMemberExp) {\n if (exp.type === 4) {\n exp.content = `${exp.content} && ${exp.content}(...args)`;\n } else {\n exp.children = [...exp.children, ` && `, ...exp.children, `(...args)`];\n }\n }\n }\n if (isInlineStatement || shouldCache && isMemberExp) {\n exp = createCompoundExpression([\n `${isInlineStatement ? context.isTS ? `($event: any)` : `$event` : `${context.isTS ? `\n//@ts-ignore\n` : ``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,\n exp,\n hasMultipleStatements ? `}` : `)`\n ]);\n }\n }\n let ret = {\n props: [\n createObjectProperty(\n eventName,\n exp || createSimpleExpression(`() => {}`, false, loc)\n )\n ]\n };\n if (augmentor) {\n ret = augmentor(ret);\n }\n if (shouldCache) {\n ret.props[0].value = context.cache(ret.props[0].value);\n }\n ret.props.forEach((p) => p.key.isHandlerKey = true);\n return ret;\n};\n\nconst transformBind = (dir, _node, context) => {\n const { modifiers, loc } = dir;\n const arg = dir.arg;\n let { exp } = dir;\n if (exp && exp.type === 4 && !exp.content.trim()) {\n {\n context.onError(\n createCompilerError(34, loc)\n );\n return {\n props: [\n createObjectProperty(arg, createSimpleExpression(\"\", true, loc))\n ]\n };\n }\n }\n if (arg.type !== 4) {\n arg.children.unshift(`(`);\n arg.children.push(`) || \"\"`);\n } else if (!arg.isStatic) {\n arg.content = arg.content ? `${arg.content} || \"\"` : `\"\"`;\n }\n if (modifiers.some((mod) => mod.content === \"camel\")) {\n if (arg.type === 4) {\n if (arg.isStatic) {\n arg.content = shared.camelize(arg.content);\n } else {\n arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;\n }\n } else {\n arg.children.unshift(`${context.helperString(CAMELIZE)}(`);\n arg.children.push(`)`);\n }\n }\n if (!context.inSSR) {\n if (modifiers.some((mod) => mod.content === \"prop\")) {\n injectPrefix(arg, \".\");\n }\n if (modifiers.some((mod) => mod.content === \"attr\")) {\n injectPrefix(arg, \"^\");\n }\n }\n return {\n props: [createObjectProperty(arg, exp)]\n };\n};\nconst injectPrefix = (arg, prefix) => {\n if (arg.type === 4) {\n if (arg.isStatic) {\n arg.content = prefix + arg.content;\n } else {\n arg.content = `\\`${prefix}\\${${arg.content}}\\``;\n }\n } else {\n arg.children.unshift(`'${prefix}' + (`);\n arg.children.push(`)`);\n }\n};\n\nconst transformText = (node, context) => {\n if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) {\n return () => {\n const children = node.children;\n let currentContainer = void 0;\n let hasText = false;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isText$1(child)) {\n hasText = true;\n for (let j = i + 1; j < children.length; j++) {\n const next = children[j];\n if (isText$1(next)) {\n if (!currentContainer) {\n currentContainer = children[i] = createCompoundExpression(\n [child],\n child.loc\n );\n }\n currentContainer.children.push(` + `, next);\n children.splice(j, 1);\n j--;\n } else {\n currentContainer = void 0;\n break;\n }\n }\n }\n }\n if (!hasText || // if this is a plain element with a single text child, leave it\n // as-is since the runtime has dedicated fast path for this by directly\n // setting textContent of the element.\n // for component root it's always normalized anyway.\n children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756\n // custom directives can potentially add DOM elements arbitrarily,\n // we need to avoid setting textContent of the element at runtime\n // to avoid accidentally overwriting the DOM elements added\n // by the user through custom directives.\n !node.props.find(\n (p) => p.type === 7 && !context.directiveTransforms[p.name]\n ) && // in compat mode, <template> tags with no special directives\n // will be rendered as a fragment so its children must be\n // converted into vnodes.\n !(node.tag === \"template\"))) {\n return;\n }\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isText$1(child) || child.type === 8) {\n const callArgs = [];\n if (child.type !== 2 || child.content !== \" \") {\n callArgs.push(child);\n }\n if (!context.ssr && getConstantType(child, context) === 0) {\n callArgs.push(\n 1 + (` /* ${shared.PatchFlagNames[1]} */` )\n );\n }\n children[i] = {\n type: 12,\n content: child,\n loc: child.loc,\n codegenNode: createCallExpression(\n context.helper(CREATE_TEXT),\n callArgs\n )\n };\n }\n }\n };\n }\n};\n\nconst seen$1 = /* @__PURE__ */ new WeakSet();\nconst transformOnce = (node, context) => {\n if (node.type === 1 && findDir(node, \"once\", true)) {\n if (seen$1.has(node) || context.inVOnce || context.inSSR) {\n return;\n }\n seen$1.add(node);\n context.inVOnce = true;\n context.helper(SET_BLOCK_TRACKING);\n return () => {\n context.inVOnce = false;\n const cur = context.currentNode;\n if (cur.codegenNode) {\n cur.codegenNode = context.cache(\n cur.codegenNode,\n true,\n true\n );\n }\n };\n }\n};\n\nconst transformModel = (dir, node, context) => {\n const { exp, arg } = dir;\n if (!exp) {\n context.onError(\n createCompilerError(41, dir.loc)\n );\n return createTransformProps();\n }\n const rawExp = exp.loc.source.trim();\n const expString = exp.type === 4 ? exp.content : rawExp;\n const bindingType = context.bindingMetadata[rawExp];\n if (bindingType === \"props\" || bindingType === \"props-aliased\") {\n context.onError(createCompilerError(44, exp.loc));\n return createTransformProps();\n }\n if (bindingType === \"literal-const\" || bindingType === \"setup-const\") {\n context.onError(createCompilerError(45, exp.loc));\n return createTransformProps();\n }\n const maybeRef = context.inline && (bindingType === \"setup-let\" || bindingType === \"setup-ref\" || bindingType === \"setup-maybe-ref\");\n if (!expString.trim() || !isMemberExpression(exp, context) && !maybeRef) {\n context.onError(\n createCompilerError(42, exp.loc)\n );\n return createTransformProps();\n }\n if (context.prefixIdentifiers && isSimpleIdentifier(expString) && context.identifiers[expString]) {\n context.onError(\n createCompilerError(43, exp.loc)\n );\n return createTransformProps();\n }\n const propName = arg ? arg : createSimpleExpression(\"modelValue\", true);\n const eventName = arg ? isStaticExp(arg) ? `onUpdate:${shared.camelize(arg.content)}` : createCompoundExpression(['\"onUpdate:\" + ', arg]) : `onUpdate:modelValue`;\n let assignmentExp;\n const eventArg = context.isTS ? `($event: any)` : `$event`;\n if (maybeRef) {\n if (bindingType === \"setup-ref\") {\n assignmentExp = createCompoundExpression([\n `${eventArg} => ((`,\n createSimpleExpression(rawExp, false, exp.loc),\n `).value = $event)`\n ]);\n } else {\n const altAssignment = bindingType === \"setup-let\" ? `${rawExp} = $event` : `null`;\n assignmentExp = createCompoundExpression([\n `${eventArg} => (${context.helperString(IS_REF)}(${rawExp}) ? (`,\n createSimpleExpression(rawExp, false, exp.loc),\n `).value = $event : ${altAssignment})`\n ]);\n }\n } else {\n assignmentExp = createCompoundExpression([\n `${eventArg} => ((`,\n exp,\n `) = $event)`\n ]);\n }\n const props = [\n // modelValue: foo\n createObjectProperty(propName, dir.exp),\n // \"onUpdate:modelValue\": $event => (foo = $event)\n createObjectProperty(eventName, assignmentExp)\n ];\n if (context.prefixIdentifiers && !context.inVOnce && context.cacheHandlers && !hasScopeRef(exp, context.identifiers)) {\n props[1].value = context.cache(props[1].value);\n }\n if (dir.modifiers.length && node.tagType === 1) {\n const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `);\n const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + \"Modifiers\"']) : `modelModifiers`;\n props.push(\n createObjectProperty(\n modifiersKey,\n createSimpleExpression(\n `{ ${modifiers} }`,\n false,\n dir.loc,\n 2\n )\n )\n );\n }\n return createTransformProps(props);\n};\nfunction createTransformProps(props = []) {\n return { props };\n}\n\nconst validDivisionCharRE = /[\\w).+\\-_$\\]]/;\nconst transformFilter = (node, context) => {\n if (!isCompatEnabled(\"COMPILER_FILTERS\", context)) {\n return;\n }\n if (node.type === 5) {\n rewriteFilter(node.content, context);\n } else if (node.type === 1) {\n node.props.forEach((prop) => {\n if (prop.type === 7 && prop.name !== \"for\" && prop.exp) {\n rewriteFilter(prop.exp, context);\n }\n });\n }\n};\nfunction rewriteFilter(node, context) {\n if (node.type === 4) {\n parseFilter(node, context);\n } else {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (typeof child !== \"object\") continue;\n if (child.type === 4) {\n parseFilter(child, context);\n } else if (child.type === 8) {\n rewriteFilter(child, context);\n } else if (child.type === 5) {\n rewriteFilter(child.content, context);\n }\n }\n }\n}\nfunction parseFilter(node, context) {\n const exp = node.content;\n let inSingle = false;\n let inDouble = false;\n let inTemplateString = false;\n let inRegex = false;\n let curly = 0;\n let square = 0;\n let paren = 0;\n let lastFilterIndex = 0;\n let c, prev, i, expression, filters = [];\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n if (c === 39 && prev !== 92) inSingle = false;\n } else if (inDouble) {\n if (c === 34 && prev !== 92) inDouble = false;\n } else if (inTemplateString) {\n if (c === 96 && prev !== 92) inTemplateString = false;\n } else if (inRegex) {\n if (c === 47 && prev !== 92) inRegex = false;\n } else if (c === 124 && // pipe\n exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {\n if (expression === void 0) {\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n } else {\n pushFilter();\n }\n } else {\n switch (c) {\n case 34:\n inDouble = true;\n break;\n // \"\n case 39:\n inSingle = true;\n break;\n // '\n case 96:\n inTemplateString = true;\n break;\n // `\n case 40:\n paren++;\n break;\n // (\n case 41:\n paren--;\n break;\n // )\n case 91:\n square++;\n break;\n // [\n case 93:\n square--;\n break;\n // ]\n case 123:\n curly++;\n break;\n // {\n case 125:\n curly--;\n break;\n }\n if (c === 47) {\n let j = i - 1;\n let p;\n for (; j >= 0; j--) {\n p = exp.charAt(j);\n if (p !== \" \") break;\n }\n if (!p || !validDivisionCharRE.test(p)) {\n inRegex = true;\n }\n }\n }\n }\n if (expression === void 0) {\n expression = exp.slice(0, i).trim();\n } else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n function pushFilter() {\n filters.push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n if (filters.length) {\n warnDeprecation(\n \"COMPILER_FILTERS\",\n context,\n node.loc\n );\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i], context);\n }\n node.content = expression;\n node.ast = void 0;\n }\n}\nfunction wrapFilter(exp, filter, context) {\n context.helper(RESOLVE_FILTER);\n const i = filter.indexOf(\"(\");\n if (i < 0) {\n context.filters.add(filter);\n return `${toValidAssetId(filter, \"filter\")}(${exp})`;\n } else {\n const name = filter.slice(0, i);\n const args = filter.slice(i + 1);\n context.filters.add(name);\n return `${toValidAssetId(name, \"filter\")}(${exp}${args !== \")\" ? \",\" + args : args}`;\n }\n}\n\nconst seen = /* @__PURE__ */ new WeakSet();\nconst transformMemo = (node, context) => {\n if (node.type === 1) {\n const dir = findDir(node, \"memo\");\n if (!dir || seen.has(node) || context.inSSR) {\n return;\n }\n seen.add(node);\n return () => {\n const codegenNode = node.codegenNode || context.currentNode.codegenNode;\n if (codegenNode && codegenNode.type === 13) {\n if (node.tagType !== 1) {\n convertToBlock(codegenNode, context);\n }\n node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [\n dir.exp,\n createFunctionExpression(void 0, codegenNode),\n `_cache`,\n String(context.cached.length)\n ]);\n context.cached.push(null);\n }\n };\n }\n};\n\nconst transformVBindShorthand = (node, context) => {\n if (node.type === 1) {\n for (const prop of node.props) {\n if (prop.type === 7 && prop.name === \"bind\" && (!prop.exp || // #13930 :foo in in-DOM templates will be parsed into :foo=\"\" by browser\n false) && prop.arg) {\n const arg = prop.arg;\n if (arg.type !== 4 || !arg.isStatic) {\n context.onError(\n createCompilerError(\n 53,\n arg.loc\n )\n );\n prop.exp = createSimpleExpression(\"\", true, arg.loc);\n } else {\n const propName = shared.camelize(arg.content);\n if (validFirstIdentCharRE.test(propName[0]) || // allow hyphen first char for https://github.com/vuejs/language-tools/pull/3424\n propName[0] === \"-\") {\n prop.exp = createSimpleExpression(propName, false, arg.loc);\n }\n }\n }\n }\n }\n};\n\nfunction getBaseTransformPreset(prefixIdentifiers) {\n return [\n [\n transformVBindShorthand,\n transformOnce,\n transformIf,\n transformMemo,\n transformFor,\n ...[transformFilter] ,\n ...prefixIdentifiers ? [\n // order is important\n trackVForSlotScopes,\n transformExpression\n ] : [],\n transformSlotOutlet,\n transformElement,\n trackSlotScopes,\n transformText\n ],\n {\n on: transformOn,\n bind: transformBind,\n model: transformModel\n }\n ];\n}\nfunction baseCompile(source, options = {}) {\n const onError = options.onError || defaultOnError;\n const isModuleMode = options.mode === \"module\";\n const prefixIdentifiers = options.prefixIdentifiers === true || isModuleMode;\n if (!prefixIdentifiers && options.cacheHandlers) {\n onError(createCompilerError(50));\n }\n if (options.scopeId && !isModuleMode) {\n onError(createCompilerError(51));\n }\n const resolvedOptions = shared.extend({}, options, {\n prefixIdentifiers\n });\n const ast = shared.isString(source) ? baseParse(source, resolvedOptions) : source;\n const [nodeTransforms, directiveTransforms] = getBaseTransformPreset(prefixIdentifiers);\n if (options.isTS) {\n const { expressionPlugins } = options;\n if (!expressionPlugins || !expressionPlugins.includes(\"typescript\")) {\n options.expressionPlugins = [...expressionPlugins || [], \"typescript\"];\n }\n }\n transform(\n ast,\n shared.extend({}, resolvedOptions, {\n nodeTransforms: [\n ...nodeTransforms,\n ...options.nodeTransforms || []\n // user transforms\n ],\n directiveTransforms: shared.extend(\n {},\n directiveTransforms,\n options.directiveTransforms || {}\n // user transforms\n )\n })\n );\n return generate(ast, resolvedOptions);\n}\n\nconst BindingTypes = {\n \"DATA\": \"data\",\n \"PROPS\": \"props\",\n \"PROPS_ALIASED\": \"props-aliased\",\n \"SETUP_LET\": \"setup-let\",\n \"SETUP_CONST\": \"setup-const\",\n \"SETUP_REACTIVE_CONST\": \"setup-reactive-const\",\n \"SETUP_MAYBE_REF\": \"setup-maybe-ref\",\n \"SETUP_REF\": \"setup-ref\",\n \"OPTIONS\": \"options\",\n \"LITERAL_CONST\": \"literal-const\"\n};\n\nconst noopDirectiveTransform = () => ({ props: [] });\n\nexports.generateCodeFrame = shared.generateCodeFrame;\nexports.BASE_TRANSITION = BASE_TRANSITION;\nexports.BindingTypes = BindingTypes;\nexports.CAMELIZE = CAMELIZE;\nexports.CAPITALIZE = CAPITALIZE;\nexports.CREATE_BLOCK = CREATE_BLOCK;\nexports.CREATE_COMMENT = CREATE_COMMENT;\nexports.CREATE_ELEMENT_BLOCK = CREATE_ELEMENT_BLOCK;\nexports.CREATE_ELEMENT_VNODE = CREATE_ELEMENT_VNODE;\nexports.CREATE_SLOTS = CREATE_SLOTS;\nexports.CREATE_STATIC = CREATE_STATIC;\nexports.CREATE_TEXT = CREATE_TEXT;\nexports.CREATE_VNODE = CREATE_VNODE;\nexports.CompilerDeprecationTypes = CompilerDeprecationTypes;\nexports.ConstantTypes = ConstantTypes;\nexports.ElementTypes = ElementTypes;\nexports.ErrorCodes = ErrorCodes;\nexports.FRAGMENT = FRAGMENT;\nexports.GUARD_REACTIVE_PROPS = GUARD_REACTIVE_PROPS;\nexports.IS_MEMO_SAME = IS_MEMO_SAME;\nexports.IS_REF = IS_REF;\nexports.KEEP_ALIVE = KEEP_ALIVE;\nexports.MERGE_PROPS = MERGE_PROPS;\nexports.NORMALIZE_CLASS = NORMALIZE_CLASS;\nexports.NORMALIZE_PROPS = NORMALIZE_PROPS;\nexports.NORMALIZE_STYLE = NORMALIZE_STYLE;\nexports.Namespaces = Namespaces;\nexports.NodeTypes = NodeTypes;\nexports.OPEN_BLOCK = OPEN_BLOCK;\nexports.POP_SCOPE_ID = POP_SCOPE_ID;\nexports.PUSH_SCOPE_ID = PUSH_SCOPE_ID;\nexports.RENDER_LIST = RENDER_LIST;\nexports.RENDER_SLOT = RENDER_SLOT;\nexports.RESOLVE_COMPONENT = RESOLVE_COMPONENT;\nexports.RESOLVE_DIRECTIVE = RESOLVE_DIRECTIVE;\nexports.RESOLVE_DYNAMIC_COMPONENT = RESOLVE_DYNAMIC_COMPONENT;\nexports.RESOLVE_FILTER = RESOLVE_FILTER;\nexports.SET_BLOCK_TRACKING = SET_BLOCK_TRACKING;\nexports.SUSPENSE = SUSPENSE;\nexports.TELEPORT = TELEPORT;\nexports.TO_DISPLAY_STRING = TO_DISPLAY_STRING;\nexports.TO_HANDLERS = TO_HANDLERS;\nexports.TO_HANDLER_KEY = TO_HANDLER_KEY;\nexports.TS_NODE_TYPES = TS_NODE_TYPES;\nexports.UNREF = UNREF;\nexports.WITH_CTX = WITH_CTX;\nexports.WITH_DIRECTIVES = WITH_DIRECTIVES;\nexports.WITH_MEMO = WITH_MEMO;\nexports.advancePositionWithClone = advancePositionWithClone;\nexports.advancePositionWithMutation = advancePositionWithMutation;\nexports.assert = assert;\nexports.baseCompile = baseCompile;\nexports.baseParse = baseParse;\nexports.buildDirectiveArgs = buildDirectiveArgs;\nexports.buildProps = buildProps;\nexports.buildSlots = buildSlots;\nexports.checkCompatEnabled = checkCompatEnabled;\nexports.convertToBlock = convertToBlock;\nexports.createArrayExpression = createArrayExpression;\nexports.createAssignmentExpression = createAssignmentExpression;\nexports.createBlockStatement = createBlockStatement;\nexports.createCacheExpression = createCacheExpression;\nexports.createCallExpression = createCallExpression;\nexports.createCompilerError = createCompilerError;\nexports.createCompoundExpression = createCompoundExpression;\nexports.createConditionalExpression = createConditionalExpression;\nexports.createForLoopParams = createForLoopParams;\nexports.createFunctionExpression = createFunctionExpression;\nexports.createIfStatement = createIfStatement;\nexports.createInterpolation = createInterpolation;\nexports.createObjectExpression = createObjectExpression;\nexports.createObjectProperty = createObjectProperty;\nexports.createReturnStatement = createReturnStatement;\nexports.createRoot = createRoot;\nexports.createSequenceExpression = createSequenceExpression;\nexports.createSimpleExpression = createSimpleExpression;\nexports.createStructuralDirectiveTransform = createStructuralDirectiveTransform;\nexports.createTemplateLiteral = createTemplateLiteral;\nexports.createTransformContext = createTransformContext;\nexports.createVNodeCall = createVNodeCall;\nexports.errorMessages = errorMessages;\nexports.extractIdentifiers = extractIdentifiers;\nexports.findDir = findDir;\nexports.findProp = findProp;\nexports.forAliasRE = forAliasRE;\nexports.generate = generate;\nexports.getBaseTransformPreset = getBaseTransformPreset;\nexports.getConstantType = getConstantType;\nexports.getMemoedVNodeCall = getMemoedVNodeCall;\nexports.getVNodeBlockHelper = getVNodeBlockHelper;\nexports.getVNodeHelper = getVNodeHelper;\nexports.hasDynamicKeyVBind = hasDynamicKeyVBind;\nexports.hasScopeRef = hasScopeRef;\nexports.helperNameMap = helperNameMap;\nexports.injectProp = injectProp;\nexports.isAllWhitespace = isAllWhitespace;\nexports.isCommentOrWhitespace = isCommentOrWhitespace;\nexports.isCoreComponent = isCoreComponent;\nexports.isFnExpression = isFnExpression;\nexports.isFnExpressionBrowser = isFnExpressionBrowser;\nexports.isFnExpressionNode = isFnExpressionNode;\nexports.isFunctionType = isFunctionType;\nexports.isInDestructureAssignment = isInDestructureAssignment;\nexports.isInNewExpression = isInNewExpression;\nexports.isMemberExpression = isMemberExpression;\nexports.isMemberExpressionBrowser = isMemberExpressionBrowser;\nexports.isMemberExpressionNode = isMemberExpressionNode;\nexports.isReferencedIdentifier = isReferencedIdentifier;\nexports.isSimpleIdentifier = isSimpleIdentifier;\nexports.isSlotOutlet = isSlotOutlet;\nexports.isStaticArgOf = isStaticArgOf;\nexports.isStaticExp = isStaticExp;\nexports.isStaticProperty = isStaticProperty;\nexports.isStaticPropertyKey = isStaticPropertyKey;\nexports.isTemplateNode = isTemplateNode;\nexports.isText = isText$1;\nexports.isVPre = isVPre;\nexports.isVSlot = isVSlot;\nexports.isWhitespaceText = isWhitespaceText;\nexports.locStub = locStub;\nexports.noopDirectiveTransform = noopDirectiveTransform;\nexports.processExpression = processExpression;\nexports.processFor = processFor;\nexports.processIf = processIf;\nexports.processSlotOutlet = processSlotOutlet;\nexports.registerRuntimeHelpers = registerRuntimeHelpers;\nexports.resolveComponentType = resolveComponentType;\nexports.stringifyExpression = stringifyExpression;\nexports.toValidAssetId = toValidAssetId;\nexports.trackSlotScopes = trackSlotScopes;\nexports.trackVForSlotScopes = trackVForSlotScopes;\nexports.transform = transform;\nexports.transformBind = transformBind;\nexports.transformElement = transformElement;\nexports.transformExpression = transformExpression;\nexports.transformModel = transformModel;\nexports.transformOn = transformOn;\nexports.transformVBindShorthand = transformVBindShorthand;\nexports.traverseNode = traverseNode;\nexports.unwrapTSNode = unwrapTSNode;\nexports.validFirstIdentCharRE = validFirstIdentCharRE;\nexports.walkBlockDeclarations = walkBlockDeclarations;\nexports.walkFunctionParams = walkFunctionParams;\nexports.walkIdentifiers = walkIdentifiers;\nexports.warnDeprecation = warnDeprecation;\n","'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./dist/compiler-core.cjs.prod.js')\n} else {\n module.exports = require('./dist/compiler-core.cjs.js')\n}\n","import type {\n ParsedTagNode,\n ParsedTagContentNode,\n ParsedCommentNode,\n AttributeMap,\n TagToken,\n TagEndToken,\n} from '../types';\nimport {\n baseParse,\n NodeTypes,\n type RootNode,\n type TemplateChildNode,\n type BaseElementNode,\n type AttributeNode,\n type DirectiveNode,\n type TextNode,\n type CommentNode as VueCommentNode,\n type InterpolationNode,\n type SimpleExpressionNode,\n} from '@vue/compiler-core';\n\nfunction createTagToken(): TagToken {\n return {\n data: '',\n type: 'Tag',\n start: { line: 0, column: 0 },\n end: { line: 0, column: 0 },\n };\n}\n\nfunction getExpressionContent(\n expr: { content?: string } | undefined,\n): string {\n return expr?.content ?? 'true';\n}\n\nexport default class McxAst {\n private text: string;\n private includeComments: boolean;\n\n constructor(text: string, includeComments: boolean = false) {\n this.text = text;\n this.includeComments = includeComments;\n }\n\n parseAST(): ParsedTagNode[] {\n const ast: RootNode = baseParse(this.text, { comments: true });\n const result: ParsedTagNode[] = [];\n for (const child of ast.children) {\n const node = this.convertTemplateChild(child);\n if (node) result.push(node);\n }\n return result;\n }\n\n private convertTemplateChild(\n node: TemplateChildNode,\n ): ParsedTagNode | ParsedTagContentNode | ParsedCommentNode | null {\n if (node.type === NodeTypes.ELEMENT) {\n return this.convertVueElement(node as BaseElementNode);\n }\n if (node.type === NodeTypes.TEXT) {\n const textNode = node as TextNode;\n if (textNode.content.trim()) {\n return { data: textNode.content, type: 'TagContent' };\n }\n return null;\n }\n if (node.type === NodeTypes.INTERPOLATION) {\n const interpNode = node as InterpolationNode;\n return {\n data: `{{ ${getExpressionContent(interpNode.content as SimpleExpressionNode)} }}`,\n type: 'TagContent',\n };\n }\n if (this.includeComments && node.type === NodeTypes.COMMENT) {\n const commentNode = node as VueCommentNode;\n return {\n data: commentNode.content,\n type: 'Comment',\n loc: {\n start: {\n line: commentNode.loc.start.line,\n column: commentNode.loc.start.column,\n },\n end: {\n line: commentNode.loc.end.line,\n column: commentNode.loc.end.column,\n },\n },\n };\n }\n return null;\n }\n\n private convertVueElement(node: BaseElementNode): ParsedTagNode {\n const attrs: AttributeMap = {};\n for (const prop of node.props) {\n if (prop.type === NodeTypes.ATTRIBUTE) {\n const attr = prop as AttributeNode;\n attrs[attr.name] = attr.value?.content ?? 'true';\n } else if (prop.type === NodeTypes.DIRECTIVE) {\n const dir = prop as DirectiveNode;\n if (dir.name === 'bind') {\n const key = `:${getExpressionContent(dir.arg as SimpleExpressionNode)}`;\n attrs[key] = getExpressionContent(dir.exp as SimpleExpressionNode);\n } else if (dir.name === 'on') {\n const key = `@${getExpressionContent(dir.arg as SimpleExpressionNode)}`;\n attrs[key] = 'true';\n }\n }\n }\n const children = this.convertVueChildren(node.children);\n return {\n start: createTagToken(),\n name: node.tag,\n arr: attrs,\n content: children,\n end: null,\n loc: {\n start: {\n line: node.loc.start.line,\n column: node.loc.start.column,\n },\n end: {\n line: node.loc.end.line,\n column: node.loc.end.column,\n },\n },\n type: 'TagNode',\n };\n }\n\n private convertVueChildren(\n children: TemplateChildNode[],\n ): (ParsedTagNode | ParsedTagContentNode | ParsedCommentNode)[] {\n const result: (ParsedTagNode | ParsedTagContentNode | ParsedCommentNode)[] =\n [];\n for (const child of children) {\n const node = this.convertTemplateChild(child);\n if (node) result.push(node);\n }\n return result;\n }\n\n static generateCode(node: ParsedTagNode): string {\n let code = `<${node.name}`;\n for (const [key, value] of Object.entries(node.arr || {})) {\n if (value === 'true') {\n code += ` ${key}`;\n } else {\n code += ` ${key}=${String(value)}`;\n }\n }\n code += '>';\n const contentArr = node.content;\n if (Array.isArray(contentArr)) {\n for (const item of contentArr) {\n if ((item as ParsedTagContentNode).type === 'TagContent') {\n code += (item as ParsedTagContentNode).data;\n } else if ((item as ParsedCommentNode).type === 'Comment') {\n code += (item as ParsedCommentNode).data;\n } else {\n code += McxAst.generateCode(item as ParsedTagNode);\n }\n }\n }\n code += `</${node.name}>`;\n return code;\n }\n}\n\nexport { MCXUtils };\nclass MCXUtils {\n static isTagNode(node: unknown): node is ParsedTagNode {\n return (\n !!node &&\n typeof node === 'object' &&\n 'start' in (node as object) &&\n 'name' in (node as object) &&\n 'arr' in (node as object) &&\n 'content' in (node as object) &&\n 'end' in (node as object)\n );\n }\n static isTagContentNode(node: unknown): node is ParsedTagContentNode {\n return (\n !!node &&\n typeof node === 'object' &&\n 'data' in (node as object) &&\n 'type' in (node as object) &&\n (node as ParsedTagContentNode).type === 'TagContent'\n );\n }\n static isCommentNode(node: unknown): node is ParsedCommentNode {\n return (\n !!node &&\n typeof node === 'object' &&\n 'data' in (node as object) &&\n 'type' in (node as object) &&\n 'loc' in (node as object) &&\n (node as ParsedCommentNode).type === 'Comment'\n );\n }\n static isAttributeMap(obj: unknown): obj is AttributeMap {\n return !!obj && typeof obj === 'object' && !Array.isArray(obj);\n }\n static isParseNode(node: unknown): node is ParsedTagNode[] {\n return (\n Array.isArray(node) && (node as unknown[]).every(MCXUtils.isTagNode)\n );\n }\n static isToken(_obj: unknown): boolean {\n return false;\n }\n static isTagToken(_obj: unknown): boolean {\n return false;\n }\n static isTagEndToken(_obj: unknown): boolean {\n return false;\n }\n static isContentToken(_obj: unknown): boolean {\n return false;\n }\n static isCommentToken(_obj: unknown): boolean {\n return false;\n }\n static isBaseToken(_obj: unknown): boolean {\n return false;\n }\n static isTokenType(_value: unknown): boolean {\n return false;\n }\n}\n","import type { PropNode, PropValue } from '../types.js';\n\nconst STATUS = [0, 1]; // 0: key,1: value\n\nexport class Lexer {\n private code: string;\n\n constructor(code: string) {\n this.code = code;\n }\n *tokenize(): IterableIterator<PropNode> {\n let currStatus = STATUS[0]; // 0: key,1: value\n let key = '';\n let value = '';\n let hasEquals = false;\n\n for (const char of this.code) {\n if (/\\s/.test(char)) {\n if (char === '\\n') {\n if (currStatus === STATUS[1] && key && value) {\n const propNode: PropNode = {\n key,\n value: this.HandlerValue(value),\n type: 'PropChar',\n };\n yield propNode;\n } else if (currStatus === STATUS[0] && key) {\n }\n key = '';\n value = '';\n hasEquals = false;\n currStatus = STATUS[0];\n }\n continue; // 跳过所有空白字符\n }\n\n if (char === '=') {\n if (currStatus === STATUS[0]) {\n currStatus = STATUS[1]; // set to value\n hasEquals = true;\n }\n } else {\n if (currStatus === STATUS[0]) {\n key += char; // key\n } else if (currStatus === STATUS[1]) {\n value += char; // value\n }\n }\n }\n if (key && value) {\n const propNode: PropNode = {\n key,\n value: this.HandlerValue(value),\n type: 'PropChar',\n };\n yield propNode;\n }\n }\n HandlerValue(value: string): PropValue {\n const num = Number(value);\n if (!Number.isNaN(num)) return num;\n if (\n ['[', '{'].includes(value.slice(0, 1)) &&\n [']', '}'].includes(value.slice(-1))\n ) {\n return JSON.parse(value);\n }\n return value;\n }\n}\nexport default function PropParser(code: string): PropNode[] {\n const lexer = new Lexer(code);\n return Array.from(lexer.tokenize());\n}\n","import AST_tag from './tag.js';\nimport AST_prop from './prop.js';\nexport default {\n tag: AST_tag,\n prop: AST_prop,\n};\n","import type {\n ImportDeclaration,\n ExportAllDeclaration,\n ExportDefaultDeclaration,\n ExportNamedDeclaration,\n Expression,\n SpreadElement,\n ArgumentPlaceholder,\n CallExpression,\n} from '@babel/types';\nimport { CompileOpt } from '@mbler/mcx-types';\nimport { ParsedTagNode } from '../types';\ninterface callList {\n source: Expression;\n set: (callEXp: CallExpression) => boolean;\n arguments: Array<SpreadElement | Expression | ArgumentPlaceholder>;\n remove: () => void;\n}\ninterface ImportListImport {\n isAll: boolean;\n import?: string | undefined;\n as: string;\n}\ninterface ImportList {\n source: string;\n imported: ImportListImport[];\n raw?: ImportDeclaration;\n}\ninterface BuildCache {\n call: callList[];\n import: ImportList[];\n export: Array<\n ExportNamedDeclaration | ExportAllDeclaration | ExportDefaultDeclaration\n >;\n}\nexport const _MCXstructureLocComponentTypes = {\n items: 'item',\n blocks: 'block',\n entities: 'entity',\n} as const;\ntype MCXstructureLocComponentType =\n (typeof _MCXstructureLocComponentTypes)[keyof typeof _MCXstructureLocComponentTypes];\ninterface MCXstructureLoc {\n script: string;\n Event: {\n on: 'after' | 'before';\n subscribe: Record<string, string>;\n loc: { line: number; column: number };\n isLoad: boolean;\n };\n Component: Record<\n string,\n {\n type: MCXstructureLocComponentType;\n useExpore: string;\n loc: { line: number; column: number };\n }\n >;\n UI: ParsedTagNode | null;\n}\nexport type {\n BuildCache,\n ImportList,\n ImportListImport,\n callList,\n CompileOpt,\n MCXstructureLoc,\n MCXstructureLocComponentType,\n};\n","import * as t from '@babel/types';\nimport { BuildCache, MCXstructureLoc } from '../types';\nimport { ParsedTagNode } from '../../types';\nexport class JsCompileData {\n File: string = '__repl';\n isFile: boolean = false;\n constructor(\n public node: t.Program,\n public BuildCache: BuildCache = {\n export: [],\n import: [],\n call: [],\n },\n ) {}\n setFilePath(dir: string) {\n this.isFile = true;\n this.File = dir;\n }\n}\nexport class MCXCompileData {\n File: string = '';\n isFile: boolean = false;\n constructor(\n public raw: ParsedTagNode[],\n public JSIR: JsCompileData,\n public strLoc: MCXstructureLoc,\n ) {}\n setFilePath(dir: string) {\n this.JSIR.setFilePath(dir);\n this.isFile = true;\n this.File = dir;\n }\n}\n","import { readFile } from 'node:fs/promises';\nimport * as Parser from '@babel/parser';\nimport { ImportList, ImportListImport } from '../types';\nimport * as t from '@babel/types';\nexport default class Utils {\n public static async FileAST(\n fileDir: string,\n parserOpt: Parser.ParserOptions,\n ): Promise<t.Program> {\n if (typeof fileDir !== 'string')\n throw new TypeError(\n '[read file]: compile utils was passed a non-string value',\n );\n const file = await readFile(fileDir, 'utf-8');\n if (typeof file !== 'string')\n throw new Error('[read file]: not found file ' + fileDir);\n try {\n return Parser.parse(file, parserOpt).program;\n } catch (err: unknown) {\n throw new Error(\n '[compiler]: babel error' +\n (err instanceof Error ? err.stack : String(err)),\n );\n }\n }\n public static async FileContent(fileDir: string): Promise<string> {\n const file = await readFile(fileDir, 'utf-8');\n return file;\n }\n private static nodeStringValue(node: t.Identifier | t.StringLiteral): string {\n if (node.type == 'StringLiteral') {\n return node.value;\n } else if (node.type == 'Identifier') {\n return node.name;\n }\n throw new TypeError('[read id error]: no way to read string id');\n }\n private static CheckImportNode(\n node: t.ImportDeclaration,\n ir: ImportList,\n ): boolean {\n const newList = Utils.ImportToCache(node);\n // Eliminate common differences\n if (newList.source !== ir.source) return false;\n if (newList.imported.length !== ir.imported.length) return false;\n // in this for, newList.imported and ir.imported is same length\n for (let irIndex = 0; irIndex < newList.imported.length; irIndex++) {\n const newItem = newList.imported[irIndex];\n const oldItem = ir.imported[irIndex];\n if (\n newItem?.import !== oldItem?.import ||\n newItem?.as !== oldItem?.as ||\n newItem?.isAll !== oldItem?.isAll\n )\n return false;\n }\n return true;\n }\n public static CacheToImportNode(ir: ImportList): t.ImportDeclaration {\n if (!ir) throw new TypeError('plase call use right ImportList');\n // first verify ir.raw\n if (ir?.raw && Utils.CheckImportNode(ir?.raw, ir)) return ir.raw;\n const result: Array<\n t.ImportNamespaceSpecifier | t.ImportSpecifier | t.ImportDefaultSpecifier\n > = [];\n for (const ImportIt of ir.imported) {\n if (!ImportIt) continue;\n if (ImportIt.isAll) {\n result.push(t.importNamespaceSpecifier(t.identifier(ImportIt.as)));\n continue;\n }\n if (ImportIt.import == 'default') {\n result.push(t.importDefaultSpecifier(t.identifier(ImportIt.as)));\n continue;\n }\n if (!ImportIt.import)\n throw new TypeError('[compile node]: not found imported');\n result.push(\n t.importSpecifier(\n t.identifier(ImportIt.as),\n t.identifier(ImportIt.import),\n ),\n );\n }\n return t.importDeclaration(result, t.stringLiteral(ir.source));\n }\n public static ImportToCache(node: t.ImportDeclaration): ImportList {\n const result: ImportListImport[] = [];\n for (const item of node.specifiers) {\n const thisName = item.local.name;\n if (item.type == 'ImportNamespaceSpecifier') {\n result.push({\n isAll: true,\n as: thisName,\n });\n } else if (item.type == 'ImportDefaultSpecifier') {\n result.push({\n isAll: false,\n import: 'default',\n as: thisName,\n });\n } else if (item.type == 'ImportSpecifier') {\n result.push({\n isAll: false,\n as: thisName,\n import: Utils.nodeStringValue(item.imported),\n });\n }\n }\n return {\n source: Utils.nodeStringValue(node.source),\n imported: result,\n };\n }\n}\n","import * as t from '@babel/types';\nimport {\n _MCXstructureLocComponentTypes,\n ImportList,\n ImportListImport,\n MCXstructureLoc,\n MCXstructureLocComponentType,\n} from '../types';\nimport * as CompileData from './compileData';\nimport Utils from './utils';\nimport { parse } from '@babel/parser';\nimport { ParsedTagContentNode, ParsedTagNode } from '../../types';\nimport McxAst, { MCXUtils } from '../../ast/tag';\nimport PropParser from '../../ast/prop';\nimport ts from 'typescript';\nexport class CompileError extends Error {\n public loc: { line: number; column: number };\n constructor(message: string, loc: { line: number; column: number }) {\n super(message);\n this.name = 'CompileError';\n this.loc = loc || { line: -1, column: -1 };\n }\n}\n\nfunction extractLoc(node: unknown): { line: number; column: number } {\n if (!node || typeof node !== 'object') return { line: -1, column: -1 };\n const n = node as Record<string, unknown>;\n const loc = n.loc as Record<string, unknown> | undefined;\n // Node with loc.start (Babel or MCX): prefer column\n if (loc?.start) {\n const start = loc.start as Record<string, unknown>;\n const line = typeof start.line === 'number' ? start.line : -1;\n const column = typeof start.column === 'number' ? start.column : -1;\n return { line, column };\n } else if (loc && loc.column !== undefined) {\n return {\n line: typeof loc.line === 'number' ? loc.line : -1,\n column: loc.column as number,\n };\n }\n // MCX Token with unified position: start: { line, column }\n const start = n.start as Record<string, unknown> | undefined;\n if (start && typeof start.line === 'number') {\n return {\n line: start.line,\n column: typeof start.column === 'number' ? (start.column as number) : -1,\n };\n }\n return { line: -1, column: -1 };\n}\n\nfunction makeError(msg: string, node?: unknown) {\n return new CompileError(msg, extractLoc(node));\n}\ninterface ImportTemp {\n source: string;\n import?: string | undefined;\n isAll: boolean;\n}\nexport type Context = Record<string, t.Expression | { status: 'wait' }>;\nexport class CompileJS {\n constructor(public node: t.Program) {\n if (!t.isProgram(node))\n throw makeError(\n \"[compile error]: jsCompile can't work in a not program\",\n node,\n );\n this.CompileData = new CompileData.JsCompileData(node);\n this.run();\n this.writeBuildCache();\n }\n public TopContext: Context = {};\n private indexTemp: Record<string, ImportTemp> = {};\n private push(source: ImportList) {\n for (const node of source.imported) {\n this.indexTemp[node.as] = {\n source: source.source,\n import: node.import,\n isAll: node.isAll,\n };\n }\n }\n private writeBuildCache() {\n const build: ImportList[] = [];\n for (const [as, data] of Object.entries(this.indexTemp)) {\n let found = false;\n for (const i of build) {\n if (i.source === data.source) {\n i.imported.push({ as, isAll: data.isAll, import: data.import });\n found = true;\n break;\n }\n }\n if (!found) {\n build.push({\n source: data.source,\n imported: [{ as, import: data.import, isAll: data.isAll }],\n });\n }\n }\n this.CompileData.BuildCache.import = build;\n }\n private CompileData: CompileData.JsCompileData;\n public getCompileData(): CompileData.JsCompileData {\n return this.CompileData;\n }\n\n private tre(node: t.Block, ExtendContext: Context = {}): void {\n if (!t.isBlock(node))\n throw makeError(\"[compile error]: can't for in not block node\", node);\n const isTop: boolean = t.isProgram(node);\n const currenyContext: Context = isTop ? this.TopContext : ExtendContext;\n for (let index = 0; index < node.body.length; index++) {\n const item = node.body[index];\n const remove = () => {\n node.body.splice(index, 1);\n index--;\n };\n if (!item) continue;\n if (item.type == 'ImportDeclaration') {\n if (!isTop)\n throw makeError(\n '[compile node]: import declaration must use in top.',\n item,\n );\n this.push(Utils.ImportToCache(item));\n remove();\n } else if (item.type == 'BlockStatement') {\n this.tre(item, currenyContext);\n } else if (\n item.type == 'BreakStatement' ||\n item.type == 'EmptyStatement' ||\n item.type == 'ContinueStatement' ||\n item.type == 'ThrowStatement' ||\n item.type == 'WithStatement'\n ) {\n continue;\n } else if (item.type == 'TryStatement') {\n this.tre(item.block, currenyContext);\n } else if (item.type == 'IfStatement') {\n const nodes: t.Statement[] = [item.consequent];\n if (item.alternate) nodes.push(item.alternate);\n this.tre(t.blockStatement(nodes), currenyContext);\n } else if (item.type == 'WhileStatement') {\n this.tre(t.blockStatement([item.body]), currenyContext);\n } else if (item.type == 'ClassDeclaration') {\n if (item.superClass) {\n const superClass = item.superClass;\n if (\n superClass.type == 'ArrayExpression' ||\n superClass.type == 'BooleanLiteral' ||\n superClass.type == 'BinaryExpression' ||\n superClass.type == 'ThisExpression' ||\n superClass.type == 'ArrowFunctionExpression' ||\n superClass.type == 'BigIntLiteral' ||\n superClass.type == 'NumericLiteral' ||\n superClass.type == 'NullLiteral' ||\n superClass.type == 'AssignmentExpression' ||\n superClass.type == 'Super' ||\n superClass.type == 'NewExpression' ||\n superClass.type == 'DoExpression' ||\n superClass.type == 'StringLiteral' ||\n superClass.type == 'YieldExpression' ||\n superClass.type == 'RecordExpression' ||\n superClass.type == 'RegExpLiteral' ||\n superClass.type == 'DecimalLiteral' ||\n superClass.type == 'BindExpression'\n )\n throw makeError(\n \"[compilr error]: class can't extends a not constructor or null\",\n superClass,\n );\n }\n } else if (item.type == 'DoWhileStatement') {\n this.tre(t.blockStatement([item.body]));\n } else if (item.type == 'VariableDeclaration') {\n const declaration = item.declarations;\n for (const varDef of declaration) {\n const init = varDef.init;\n const id = varDef.id;\n if (id.type == 'Identifier') {\n if (!init && (item.kind == 'let' || item.kind == 'var'))\n currenyContext[id.name] = {\n status: 'wait',\n };\n if (!init)\n throw makeError(\n \"[compilr node]: 'const' must has a init\",\n varDef,\n );\n currenyContext[id.name] = init;\n if (\n init &&\n t.isCallExpression(init) &&\n t.isIdentifier(init.callee) &&\n init.callee.name === 'require' &&\n init.arguments.length > 0 &&\n t.isStringLiteral(init.arguments[0])\n ) {\n this.indexTemp[id.name] = {\n source: (init.arguments[0] as t.StringLiteral).value,\n import: 'default',\n isAll: false,\n };\n } else if (\n init &&\n t.isCallExpression(init) &&\n t.isImport(init.callee) &&\n init.arguments.length > 0 &&\n t.isStringLiteral(init.arguments[0])\n ) {\n this.indexTemp[id.name] = {\n source: (init.arguments[0] as t.StringLiteral).value,\n import: 'default',\n isAll: false,\n };\n }\n }\n }\n } else if (item.type == 'ReturnStatement') {\n continue;\n } else if (\n item.type == 'ExportAllDeclaration' ||\n item.type == 'ExportDefaultDeclaration' ||\n item.type == 'ExportNamedDeclaration'\n ) {\n if (!isTop) {\n throw makeError(\"[compiler]: export node can't in not top\", item);\n }\n this.CompileData.BuildCache.export.push(item);\n remove();\n } else if (item.type == 'SwitchStatement') {\n for (const caseItem of item.cases) {\n this.tre(t.blockStatement(caseItem.consequent), currenyContext);\n }\n } else if (item.type == 'ExpressionStatement') {\n const expr = item.expression;\n if (\n t.isCallExpression(expr) &&\n t.isIdentifier(expr.callee) &&\n expr.callee.name === 'require' &&\n expr.arguments.length > 0 &&\n t.isStringLiteral(expr.arguments[0])\n ) {\n this.indexTemp[\n `__require_${(expr.arguments[0] as t.StringLiteral).value}`\n ] = {\n source: (expr.arguments[0] as t.StringLiteral).value,\n import: 'default',\n isAll: false,\n };\n } else if (\n t.isCallExpression(expr) &&\n t.isImport(expr.callee) &&\n expr.arguments.length > 0 &&\n t.isStringLiteral(expr.arguments[0])\n ) {\n this.indexTemp[\n `__import_${(expr.arguments[0] as t.StringLiteral).value}`\n ] = {\n source: (expr.arguments[0] as t.StringLiteral).value,\n import: 'default',\n isAll: false,\n };\n }\n } else if (item.type == 'FunctionDeclaration') {\n const funcBody = item.body;\n this.tre(funcBody, currenyContext);\n }\n }\n }\n run() {\n if (!t.isBlock(this.node))\n throw makeError(\"[compile error]: can't for a not block\", this.node);\n this.tre(this.node);\n }\n}\nclass CompileMCX {\n constructor(public code: string) {\n const mcxCode = new McxAst(code).parseAST();\n if (!MCXUtils.isParseNode(mcxCode))\n throw makeError(\n \"[compile error]: mcxCompile can't work in a not mcxNode\",\n );\n this.mcxCode = mcxCode;\n this.structureCheck();\n const JSIR = this.generateJSIR();\n this.CompileData = new CompileData.MCXCompileData(\n mcxCode,\n JSIR,\n this.tempLoc,\n );\n }\n private mcxCode: ParsedTagNode[];\n private tempLoc: MCXstructureLoc = {\n script: '',\n Event: {\n on: 'after',\n subscribe: {},\n loc: { line: -1, column: -1 },\n isLoad: false,\n },\n Component: {},\n UI: null,\n };\n public getCompileData(): CompileData.MCXCompileData {\n return this.CompileData;\n }\n private checkComponentName(\n name: string,\n ): name is MCXstructureLocComponentType {\n return (Object.values(_MCXstructureLocComponentTypes) as string[]).includes(\n name,\n );\n }\n private checkComponentParentName(\n name: string,\n ): name is keyof typeof _MCXstructureLocComponentTypes {\n return Object.keys(_MCXstructureLocComponentTypes).includes(name);\n }\n private commonTagNodeContent(\n node: ParsedTagNode | ParsedTagContentNode,\n ): string {\n if (MCXUtils.isTagContentNode(node)) {\n return node.data;\n }\n if (MCXUtils.isTagNode(node)) {\n return node.content\n .map(sub =>\n sub.type !== 'Comment' ? this.commonTagNodeContent(sub) : '',\n )\n .join('');\n }\n throw makeError('[mcx compile]: internal error: unknown node type', node);\n }\n private getEventOn(node: ParsedTagNode): 'before' | 'after' {\n if (!MCXUtils.isTagNode(node))\n throw makeError('[mcx compile]: internal error: not tag node', node);\n let on: 'before' | 'after' = 'after';\n const isAfter = typeof node.arr['@after'] == 'string';\n const isBefore = typeof node.arr['@before'] == 'string';\n if (isAfter && isBefore)\n throw makeError(\n \"[mcx compile]: Event node can't has both @after and @before\",\n node,\n );\n if (isAfter) on = 'after';\n if (isBefore) on = 'before';\n return on;\n }\n private structureCheck() {\n let component: ParsedTagNode | null = null;\n const temp: {\n script: string;\n ui: ParsedTagNode | null;\n Event: ParsedTagNode | null;\n Component: Record<MCXstructureLocComponentType, ParsedTagNode>;\n } = {\n script: '',\n Event: null,\n ui: null,\n Component: {} as Record<MCXstructureLocComponentType, ParsedTagNode>,\n };\n for (const node of this.mcxCode || []) {\n if (!MCXUtils.isTagNode(node)) continue;\n if (node.name == 'script') {\n if (temp.script)\n throw makeError('[compile error]: duplicate script node', node);\n const scriptNode =\n node.content.length == 0 ? '' : this.commonTagNodeContent(node);\n let code = scriptNode;\n if (node.arr.lang == 'ts') {\n code = ts.transpileModule(scriptNode, {\n compilerOptions: {\n target: ts.ScriptTarget.ES2024,\n module: ts.ModuleKind.ESNext,\n },\n }).outputText;\n }\n temp.script = code;\n } else if (node.name == 'Event') {\n if (temp.Event)\n throw makeError('[compile error]: duplicate Event node', node);\n // if Component already discovered, report error\n if (component)\n throw makeError(\n '[compile error]: Event node cannot appear after Component',\n node,\n );\n temp.Event = node;\n } else if (node.name == 'Component') {\n if (component)\n throw makeError('[compile error]: duplicate Component node', node);\n // if Event already discovered, report error\n if (temp.Event)\n throw makeError(\n '[compile error]: Component node cannot appear after Event',\n node,\n );\n if (temp.ui)\n throw makeError(\n \"[compile error]: Component node can't use with UI node\",\n );\n component = node;\n } else if (node.name == 'Ui') {\n if (component || temp.Event || temp.ui)\n throw makeError(\n \"[compile error]: UI node can't use with component or event or other ui node\",\n node,\n );\n temp.ui = node;\n }\n }\n if (!temp.script) throw makeError('[compile error]: mcx must has a script');\n this.tempLoc.script = temp.script;\n if (temp.Event) {\n const on = this.getEventOn(temp.Event);\n const content = temp.Event.content;\n if (\n content.length == 0 ||\n content.length > 1 ||\n !MCXUtils.isTagContentNode(content[0])\n )\n throw makeError(\n '[compile error]: Event node has invalid content',\n temp.Event,\n );\n const subscribeData = content[0].data.trim();\n this.tempLoc.Event = {\n on: on,\n subscribe: Object.fromEntries(\n PropParser(subscribeData).map(item => [\n item.key,\n item.value.toString(),\n ]),\n ),\n loc: extractLoc(temp.Event),\n isLoad: true,\n };\n }\n if (component) {\n for (const subNode of component.content || []) {\n if (!MCXUtils.isTagNode(subNode)) continue;\n const subName = subNode.name;\n // if is a valid component name\n this.handlerChildComponent(subNode);\n }\n }\n if (temp.ui) {\n this.tempLoc.UI = temp.ui;\n }\n }\n // input: tag node,handler child node(如 items entities)\n private handlerChildComponent(node: ParsedTagNode): void {\n const name = node.name;\n if (!this.checkComponentParentName(name))\n throw makeError(`[compile error]: invalid component name: ${name}`, node);\n const content = node.content;\n if (!content || content.length == 0)\n throw makeError(\n `[compile error]: component ${name} has no content`,\n node,\n );\n for (const subNode of content) {\n if (!MCXUtils.isTagNode(subNode)) continue;\n const subName = subNode.name;\n const _id = subNode.arr.id;\n if (!_id || typeof _id != 'string' || _id.trim() == '') {\n throw makeError(\n `[compile error]: component ${name} child component ${subName} has no id`,\n subNode,\n );\n }\n const id = _id.trim();\n const content = subNode.content;\n if (content.length == 0) {\n throw makeError(\n `[compile error]: component ${name} child component ${subName} has no content`,\n subNode,\n );\n }\n if (!content[0] || !MCXUtils.isTagContentNode(content[0]))\n throw makeError(\n `[compile error]: component ${name} child component ${subName} has invalid content`,\n subNode,\n );\n const useExpore = content[0].data.trim();\n if (subName == _MCXstructureLocComponentTypes[name]) {\n this.tempLoc.Component[`${name}/${id}`] = {\n type: subName,\n useExpore: useExpore,\n loc: extractLoc(subNode),\n };\n }\n }\n }\n private CompileData: CompileData.MCXCompileData;\n private generateJSIR(): CompileData.JsCompileData {\n if (!this.tempLoc.script.trim())\n throw makeError('[compile error]: mcx must has a script');\n const comiler = compileJSFn(this.tempLoc.script);\n return comiler;\n }\n}\nexport const compileJSFn = ((code: string): CompileData.JsCompileData => {\n if (compileJSFn.cache[code]) return compileJSFn.cache[code];\n let parsedCode: t.File;\n try {\n parsedCode = parse(code, {\n sourceType: 'module',\n allowImportExportEverywhere: true,\n errorRecovery: true,\n allowAwaitOutsideFunction: true,\n allowReturnOutsideFunction: true,\n allowSuperOutsideMethod: true,\n });\n } catch (err: unknown) {\n if (err instanceof SyntaxError) {\n const babelErr = err as SyntaxError & {\n loc?: { column: number; line: number };\n };\n const loc = babelErr.loc ?? { column: -1, line: -1 };\n throw makeError(`[babel parse error]: ${err.message}`, {\n loc: { start: loc },\n });\n }\n throw makeError(`[parse error]: ${String(err)}`);\n }\n const comiler = new CompileJS(parsedCode.program);\n comiler.run();\n const data = comiler.getCompileData();\n compileJSFn.cache[code] = data;\n return data;\n}) as ((code: string) => CompileData.JsCompileData) & {\n cache: Record<string, CompileData.JsCompileData>;\n};\nexport const compileMCXFn = ((mcxCode: string): CompileData.MCXCompileData => {\n if (compileMCXFn.cache[mcxCode]) return compileMCXFn.cache[mcxCode];\n const compiler = new CompileMCX(mcxCode);\n const data = compiler.getCompileData();\n compileMCXFn.cache[mcxCode] = data;\n return data;\n}) as ((mcxCode: string) => CompileData.MCXCompileData) & {\n cache: Record<string, CompileData.MCXCompileData>;\n};\ncompileJSFn.cache = {};\ncompileMCXFn.cache = {};\nexport * from './compileData';\nexport { Utils as MCXNodeUtils };\n","export default {\n // script tag compile function name\n scriptCompileFn: '__main',\n // use event tag , import event as\n eventImported: '__mcx__event',\n eventVarName: '__use_event',\n eventExtendsName: 'McxExtendsBy',\n // paramName\n paramCtx: '__mcx__ctx',\n} as const;\n","import * as fs from 'node:fs/promises';\nimport * as path from 'node:path';\nimport type { ReadFileOpt, ParseReadFileOpt, TypeVerifyBody } from './types.js';\n\nexport default class Utils {\n public static async FileExist(path: string): Promise<boolean> {\n try {\n await fs.access(path);\n return true;\n } catch {\n return false;\n }\n }\n public static async readFile(\n filePath: string,\n opt: ReadFileOpt = {},\n ): Promise<object | string> {\n const opts: ParseReadFileOpt = {\n delay: 200,\n maxRetries: 3,\n want: 'string',\n ...opt,\n };\n\n for (let attempt = 0; attempt < opts.maxRetries; attempt++) {\n try {\n const buffer: Buffer = await fs.readFile(filePath);\n let text: string | object;\n if (opts.want === 'string') {\n text = buffer.toString(); // Buffer -> string\n } else if (opts.want === 'object') {\n try {\n text = JSON.parse(buffer.toString()); // Buffer -> string -> object\n } catch {\n text = {};\n }\n } else {\n text = buffer.toString();\n }\n\n return text;\n } catch {\n if (attempt < opts.maxRetries - 1) {\n await Utils.sleep(opts.delay);\n }\n }\n }\n return opts.want === 'object' ? {} : '';\n }\n public static sleep(time: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, time));\n }\n public static TypeVerify<\n T extends Record<string, unknown>,\n U extends TypeVerifyBody,\n >(\n obj: T,\n types: U,\n ): obj is T & {\n [P in keyof U]: {\n boolean: boolean;\n number: number;\n string: string;\n object: object;\n function: Function;\n bigint: bigint;\n symbol: Symbol;\n }[U[P]];\n } {\n for (const item of Object.entries(types)) {\n const [key, ShouldType]: [string, string] = item;\n if (!(typeof obj[key] === ShouldType)) return false;\n }\n return true;\n }\n public static AbsoluteJoin(baseDir: string, inputPath: string): string {\n return path.isAbsolute(inputPath)\n ? inputPath\n : path.join(baseDir, inputPath);\n }\n}\n","let fileIdCounter = 0;\nexport function generateFileId() {\n return `__file_import_${fileIdCounter++}__`;\n}\n","import * as t from '@babel/types';\nimport { JsCompileData } from '../compile-mcx/compiler/compileData';\nimport Utils from '../compile-mcx/compiler/utils';\nimport { ParsedTagNode, transformCtx } from '../types';\nimport config from './config';\nimport McxUtils from '../utils';\nimport * as path from 'node:path';\nimport { generateFileId } from './file_id';\n\nfunction extractVarDefIdList(express: t.LVal | t.VoidPattern): string[] {\n const result: string[] = [];\n if (t.isIdentifier(express)) result.push(express.name);\n if (t.isObjectPattern(express))\n express.properties.forEach(prop => {\n // const {xxx:xxx,xxx=Litter} = xxx\n if (t.isObjectProperty(prop))\n return result.push(\n ...extractVarDefIdList(\n prop.value as t.Identifier | t.AssignmentPattern,\n ),\n );\n // const {...restElement} = xx (restElement in this, ,must identifier)\n if (t.isRestElement(prop) && prop.argument.type == 'Identifier')\n result.push(prop.argument.name);\n });\n if (t.isArrayPattern(express)) {\n for (const element of express.elements) {\n if (!element) continue;\n result.push(...extractVarDefIdList(element));\n }\n }\n if (t.isAssignmentPattern(express)) {\n result.push(...extractVarDefIdList(express.left));\n }\n return result;\n}\nfunction extractIdList(expression: t.Declaration): string[] {\n if (t.isFunctionDeclaration(expression)) {\n return [expression.id?.name || ''];\n }\n if (t.isVariableDeclaration(expression)) {\n const result: string[] = [];\n for (const varDef of expression.declarations) {\n result.push(...extractVarDefIdList(varDef.id));\n }\n return result;\n }\n if (t.isClassDeclaration(expression)) {\n // 'export class {}'is not vaild(error: class name is required).\n return [expression.id?.name || ''];\n }\n return [];\n}\nfunction ToExpression(\n s: t.ExportDefaultDeclaration['declaration'],\n): t.Expression {\n if (t.isFunctionDeclaration(s))\n return t.functionExpression(s.id, s.params, s.body, s.generator, s.async);\n if (t.isClassDeclaration(s))\n return t.classExpression(s.id, s.superClass, s.body, s.decorators);\n if (t.isTSDeclareFunction(s)) return t.objectExpression([]);\n return s;\n}\nfunction generateMain(\n code: JsCompileData,\n): [t.Statement[], t.ImportDeclaration[]] {\n const expBody: (t.ObjectProperty | t.SpreadElement)[] = [];\n const impBody: t.ImportDeclaration[] = code.BuildCache.import.map(\n (item): t.ImportDeclaration => {\n return Utils.CacheToImportNode(item);\n },\n );\n const codeBody: t.Statement[] = code.node.body;\n for (const exp of code.BuildCache.export) {\n if (t.isExportNamedDeclaration(exp)) {\n // export {xxx} from \"./xxx\" or export xxx from \"./xxx\"\n if (\n exp.source &&\n exp.specifiers &&\n exp.specifiers.length >= 1 &&\n exp.source.value.length >= 1\n ) {\n impBody.push(\n t.importDeclaration(\n exp.specifiers.map(item => {\n if (t.isExportDefaultSpecifier(item)) {\n expBody.push(t.objectProperty(item.exported, item.exported));\n return t.importDefaultSpecifier(item.exported);\n }\n if (t.isExportSpecifier(item)) {\n expBody.push(t.objectProperty(item.exported, item.exported));\n return t.importSpecifier(item.local, item.exported);\n }\n if (t.isExportNamespaceSpecifier(item)) {\n expBody.push(t.spreadElement(item.exported));\n return t.importNamespaceSpecifier(item.exported);\n }\n // 这也不是那也不是, 你是个登啊(ts也是galgame)\n throw new Error(\n '[build import]: unexpected export specifier type',\n );\n }),\n exp.source,\n ),\n );\n }\n if (exp.declaration) {\n const idList = extractIdList(exp.declaration);\n // be like: const {} = {}; (worthless)\n if (idList.length < 1) continue;\n codeBody.push(exp.declaration);\n expBody.push(\n ...idList.map(id => {\n return t.objectProperty(t.identifier(id), t.identifier(id));\n }),\n );\n }\n // export { xxx }\n if (exp.specifiers && !exp.source) {\n expBody.push(\n ...exp.specifiers.map(item => {\n if (!t.isExportSpecifier(item))\n throw new Error(`[build import]: invalid specifiers`);\n return t.objectProperty(item.exported, item.local);\n }),\n );\n }\n // export * from \"xxx\"\n } else if (t.isExportAllDeclaration(exp)) {\n // xxx.js => xxx_js(id)\n const id = generateFileId();\n impBody.push(\n t.importDeclaration(\n [t.importNamespaceSpecifier(t.identifier(id))],\n exp.source,\n ),\n );\n expBody.push(t.objectProperty(t.identifier(id), t.identifier(id)));\n // export default {} or export default function a(){}\n } else if (t.isExportDefaultDeclaration(exp)) {\n // to expression\n expBody.push(\n t.objectProperty(\n t.identifier('default'),\n ToExpression(exp.declaration),\n ),\n );\n }\n }\n return [\n [...codeBody, t.returnStatement(t.objectExpression(expBody))],\n impBody,\n ];\n}\nasync function generateEventConfig(\n eventTag: ParsedTagNode,\n ctx: transformCtx,\n impBody: t.ImportDeclaration[],\n): Promise<t.ObjectExpression> {\n const prop = ctx.compiledCode.strLoc.Event.subscribe;\n const argm: t.ObjectExpression = t.objectExpression([\n t.objectProperty(\n t.identifier('on'),\n t.stringLiteral(ctx.compiledCode.strLoc.Event.on),\n ),\n ]);\n if (eventTag.arr.tick) {\n const num = parseFloat(eventTag.arr.tick as string);\n if (!Number.isNaN(num))\n argm.properties.push(\n t.objectProperty(t.identifier('tick'), t.numericLiteral(num)),\n );\n }\n // extract event and hanler\n const data: t.ObjectProperty[] = [];\n const extend: t.Expression[] = [];\n for (const [name, handlerName] of Object.entries(prop)) {\n if (name == config.eventExtendsName) {\n const extendsFile = handlerName.split(',');\n for (const extFile of extendsFile) {\n if (\n !(await McxUtils.FileExist(\n path.join(path.dirname(ctx.currentId), extFile),\n ))\n )\n throw new Error(\n \"[transform event]: [ERR: NOT_FOUND]: can't resolve extend file: \" +\n extFile,\n );\n const id = generateFileId();\n impBody.push(\n t.importDeclaration(\n [t.importDefaultSpecifier(t.identifier(id))],\n t.stringLiteral(extFile),\n ),\n );\n extend.push(t.identifier(id));\n }\n } else {\n data.push(\n t.objectProperty(t.identifier(name), t.stringLiteral(handlerName)),\n );\n }\n }\n argm.properties.push(\n t.objectProperty(t.identifier('data'), t.objectExpression(data)),\n t.objectProperty(t.identifier('extends'), t.arrayExpression(extend)),\n );\n return argm;\n}\n/**\n * record enable\n * @returns {(): void} - only call one\n */\nfunction _enable(): (() => void) & {\n prototype: {\n enable: boolean;\n };\n} {\n let success = false;\n const fn = function () {\n if (success) throw new Error(\"[enable]: can't enable again\");\n success = true;\n fn.prototype.enable = success;\n };\n fn.prototype.enable = success;\n return fn;\n}\nfunction _enableWithData<T>(): ((data: T) => void) & {\n prototype: {\n enable: T | null;\n };\n} {\n let d: null | T = null;\n const fn = function (data: T) {\n if (d) throw new Error(\"[enable]: can't enable again\");\n d = data;\n fn.prototype.enable = d;\n };\n fn.prototype.enable = d;\n return fn;\n}\n// export\nexport {\n extractIdList,\n extractVarDefIdList,\n generateEventConfig,\n _enable,\n generateMain,\n _enableWithData,\n};\n","import { ParsedTagNode, transformParseCtx } from '../../types';\nimport * as t from '@babel/types';\nimport config from '../config';\nexport async function Comp(ctx: transformParseCtx) {\n const internalCtx = ctx.ctx;\n\n ctx.impBody.push(\n t.importDeclaration(\n [t.importSpecifier(t.identifier('__mcx__ui'), t.identifier('ui'))],\n t.stringLiteral('@mbler/mcx'),\n ),\n t.importDeclaration(\n [t.importNamespaceSpecifier(t.identifier('__minecraft__ui'))],\n t.stringLiteral('@minecraft/server-ui'),\n ),\n );\n\n const uiTagNode = ctx.ctx.compiledCode.strLoc.UI;\n if (!uiTagNode || uiTagNode?.name !== 'Ui')\n throw new Error(\"[UI Component]: why didn't parent compeled verify?\");\n let MCXUIType: 'ActionFormData' | 'MessageFormData' | 'ModalFormData' | null =\n null;\n const UITree: {\n arr: Record<string, string | boolean>;\n content: string;\n type: string;\n loc?: ParsedTagNode['loc'];\n for?: { variable: string; useProp: string };\n if?: { useProp: string };\n }[] = [];\n for (const uiClientTag of uiTagNode.content) {\n if (uiClientTag.type == 'TagNode') {\n // if has client TagNode\n if (uiClientTag.content.some(i => i.type == 'TagNode')) {\n internalCtx.rollupContext.error(\n \"[UI]: can't support ui client element\",\n uiClientTag.loc\n ? {\n column: uiClientTag.loc.start.column,\n line: uiClientTag.loc.start.line,\n }\n : void 0,\n );\n }\n // parse for attribute\n let _for: { variable: string; useProp: string } | undefined;\n if (typeof uiClientTag.arr.for === 'string') {\n const match = (uiClientTag.arr.for as string).match(\n /^(\\w+)\\s+in\\s+(\\w+)$/,\n );\n if (match) {\n _for = { variable: match[1]!, useProp: match[2]! };\n } else {\n internalCtx.rollupContext.error(\n \"[UI]: invalid for syntax, expected 'variable in propName'\",\n uiClientTag.loc\n ? {\n column: uiClientTag.loc.start.column,\n line: uiClientTag.loc.start.line,\n }\n : void 0,\n );\n }\n }\n // parse if attribute\n let _if: { useProp: string } | undefined;\n if (typeof uiClientTag.arr.if === 'string') {\n _if = { useProp: uiClientTag.arr.if as string };\n }\n // add to tree\n UITree.push({\n arr: uiClientTag.arr,\n content: uiClientTag.content\n .map(i => (i.type == 'TagContent' && i.data) || '')\n .join(''),\n type: uiClientTag.name,\n loc: uiClientTag.loc,\n ...(_for ? { for: _for } : {}),\n ...(_if ? { if: _if } : {}),\n });\n }\n // continue TagContentNode\n }\n const parsedObj: t.Expression[] = [];\n function pushToTree(\n name: string,\n params: Record<string, string | boolean>,\n content: string,\n _for?: { variable: string; useProp: string },\n _if?: { useProp: string },\n ) {\n const props: t.ObjectProperty[] = [\n t.objectProperty(t.identifier('type'), t.stringLiteral(name)),\n t.objectProperty(\n t.identifier('params'),\n t.objectExpression(\n Object.entries(params).map(([key, value]) => {\n const isDynamic = key.startsWith(':');\n const paramName = isDynamic ? key.slice(1) : key;\n return t.objectProperty(\n t.identifier(paramName),\n isDynamic\n ? t.objectExpression([\n t.objectProperty(\n t.identifier('useProp'),\n t.stringLiteral(String(value)),\n ),\n ])\n : typeof value == 'boolean'\n ? t.booleanLiteral(value)\n : t.stringLiteral(value),\n );\n }),\n ),\n ),\n t.objectProperty(\n t.identifier('content'),\n content.startsWith('{{ ') && content.endsWith(' }}')\n ? t.objectExpression([\n t.objectProperty(\n t.identifier('useProp'),\n t.stringLiteral(content.slice(3, content.length - 3).trim()),\n ),\n ])\n : t.stringLiteral(content),\n ),\n ];\n if (_for) {\n props.push(\n t.objectProperty(\n t.identifier('for'),\n t.objectExpression([\n t.objectProperty(\n t.identifier('variable'),\n t.stringLiteral(_for.variable),\n ),\n t.objectProperty(\n t.identifier('useProp'),\n t.stringLiteral(_for.useProp),\n ),\n ]),\n ),\n );\n }\n if (_if) {\n props.push(\n t.objectProperty(\n t.identifier('if'),\n t.objectExpression([\n t.objectProperty(\n t.identifier('useProp'),\n t.stringLiteral(_if.useProp),\n ),\n ]),\n ),\n );\n }\n parsedObj.push(t.objectExpression(props));\n }\n // generate type and parsed tree\n for (const tp of UITree) {\n const name = tp.type;\n // strip 'for' and 'if' from regular params so they don't appear in both params and top-level\n const cleanedArr = { ...tp.arr };\n delete cleanedArr.for;\n delete cleanedArr.if;\n // only ModalFormData Element\n if (['input', 'dropdown', 'submit', 'toggle', 'slider'].includes(name)) {\n // ModalFromData\n if (MCXUIType && MCXUIType !== 'ModalFormData') {\n internalCtx.rollupContext.error(\n \"[UI]: a mcx can't have a ModalFormData Node and other form tag\",\n tp.loc\n ? {\n line: tp.loc.start.line,\n column: tp.loc.start.column,\n }\n : void 0,\n );\n }\n MCXUIType = 'ModalFormData';\n pushToTree(name, cleanedArr, tp.content, tp.for, tp.if);\n }\n // only MessageFormData Element\n else if (['button-m'].includes(name)) {\n if (MCXUIType && MCXUIType !== 'MessageFormData') {\n internalCtx.rollupContext.error(\n '[UI]: ',\n tp.loc\n ? {\n line: tp.loc.start.line,\n column: tp.loc.start.column,\n }\n : void 0,\n );\n }\n MCXUIType = 'MessageFormData';\n pushToTree(name, cleanedArr, tp.content, tp.for, tp.if);\n }\n // public\n else if (['body', 'divider', 'title', 'label'].includes(name)) {\n pushToTree(name, cleanedArr, tp.content, tp.for, tp.if);\n } else if (name == 'button') {\n if (MCXUIType !== 'ActionFormData' && MCXUIType)\n internalCtx.rollupContext.error(\n \"[UI]: don't support use button for messageFormData\",\n tp.loc\n ? {\n line: tp.loc.start.line,\n column: tp.loc.start.column,\n }\n : void 0,\n );\n pushToTree(name, cleanedArr, tp.content, tp.for, tp.if);\n MCXUIType = 'ActionFormData';\n } else {\n internalCtx.rollupContext.error(\n \"[UI]: don't support tag: \" + name,\n tp.loc\n ? {\n line: tp.loc.start.line,\n column: tp.loc.start.column,\n }\n : void 0,\n );\n }\n }\n if (!MCXUIType) MCXUIType = 'ActionFormData';\n const finallyData = t.objectExpression([\n t.objectProperty(t.identifier('layout'), t.arrayExpression(parsedObj)),\n t.objectProperty(\n t.identifier('use'),\n t.memberExpression(\n t.identifier('__minecraft__ui'),\n t.identifier(MCXUIType),\n ),\n ),\n t.objectProperty(t.identifier('UI'), t.identifier('__minecraft__ui')),\n ]);\n ctx.app([\n t.objectProperty(\n t.identifier('ui'),\n t.newExpression(t.identifier('__mcx__ui'), [\n finallyData,\n t.identifier(config.scriptCompileFn),\n ]),\n ),\n ]);\n}\n","import { ParsedTagNode, transformParseCtx } from '../../types';\nimport * as t from '@babel/types';\nimport { generateEventConfig } from '../utils';\nexport async function Comp(ctx: transformParseCtx) {\n const appData = [\n t.objectProperty(\n t.identifier('event'),\n await generateEventConfig(\n ctx.ctx.compiledCode.raw.find(\n node => node.name === 'Event', // compileMCXFn had verify, don't verify\n ) as ParsedTagNode,\n ctx.ctx,\n ctx.impBody,\n ),\n ),\n ];\n ctx.app(appData);\n}\n","import * as path from 'node:path';\nimport { transformParseCtx } from '../../types';\nimport * as t from '@babel/types';\nimport { readFile } from 'node:fs/promises';\nimport { compileMCXFn } from '../../compile-mcx/compiler';\nimport config from '../config';\nexport async function Comp(ctx: transformParseCtx) {\n const eventImportIdList: {\n type: 'default' | 'all';\n as: string;\n }[] = [];\n for (const impNode of ctx.ctx.compiledCode.JSIR.BuildCache.import) {\n const source = impNode.source;\n const parsed = path.parse(source);\n if (!parsed.root && !parsed.dir.startsWith('.')) {\n continue;\n }\n // path\n const fPath = path.join(ctx.ctx.currentId, '../', source);\n try {\n // read file\n const code = await readFile(fPath, 'utf-8');\n const compiledCode = compileMCXFn(code);\n // write cache\n ctx.ctx.cache.set(fPath, compiledCode);\n if (compiledCode.strLoc.Event.isLoad) {\n for (const impItem of impNode.imported) {\n let type: 'all' | 'default';\n if (impItem.isAll) type = 'all';\n else if (impItem.import == 'default') type = 'default';\n else {\n throw new Error(\n \"not vaild importDeclartion: Event mcx only resolve default and all import, can't use other import\",\n );\n }\n eventImportIdList.push({\n type,\n as: impItem.as,\n });\n }\n }\n } catch (err) {\n // if error: file not found, file can't write, mcx syntax error\n ctx.ctx.rollupContext.warn(\n `[extract import]: can't resolve file ${fPath} and import by ${ctx.ctx.currentId}\\n- err: ${err instanceof Error ? err.stack : err}`,\n );\n }\n }\n // only have event import\n if (eventImportIdList.length >= 1) {\n const eventMemberNode = t.memberExpression(\n t.identifier(config.paramCtx),\n t.identifier('event'),\n );\n ctx.mainFn.unshift(\n // add declaration\n\n t.variableDeclaration(\n 'var',\n eventImportIdList.map((item, index) => {\n if (item.type == 'all') {\n return t.variableDeclarator(\n t.identifier(item.as),\n t.objectExpression([\n t.objectProperty(\n t.identifier('default'),\n t.memberExpression(\n eventMemberNode,\n t.numericLiteral(index),\n true,\n ),\n ),\n ]),\n );\n } else if (item.type == 'default') {\n return t.variableDeclarator(\n t.identifier(item.as),\n t.memberExpression(\n eventMemberNode,\n t.numericLiteral(index),\n true,\n ),\n );\n }\n // ts galgame\n throw new Error('[javascript error]: why it not in [default, all]');\n }),\n ),\n );\n // app: add event export to runtime framework\n\n const appData = [\n t.objectProperty(\n t.identifier('event'),\n t.arrayExpression(\n eventImportIdList.map(vl => {\n if (vl.type == 'all') {\n return t.memberExpression(\n t.identifier(vl.as),\n t.identifier('default'),\n );\n } else if (vl.type == 'default') {\n return t.identifier(vl.as);\n }\n throw new Error(\"[add prop]: can't format eventImportList\");\n }),\n ),\n ),\n ];\n ctx.app(appData);\n }\n}\n","import { compileJSFn } from '../compile-mcx/compiler';\nimport { ImportList } from '../compile-mcx/types';\nimport * as t from '@babel/types';\nimport { generateFileId } from '../transforms/file_id';\nimport * as generator from '@babel/generator';\n/**\n * ESM => CJS\n */\nfunction transformESMToCJS(\n code: string,\n pluginContext?: Record<string, string | null | boolean | number>,\n hook?: (\n data: t.CallExpression | t.MemberExpression,\n setData?: (newData: t.Expression) => void,\n ) => void,\n): string {\n const compileData = compileJSFn(code);\n const body = compileData.node.body;\n const defines: t.VariableDeclarator[] = [];\n // import transform\n const importDefines = transformImportIRtoRequire(\n compileData.BuildCache.import,\n );\n for (const importDefine of importDefines) {\n const data = importDefine.init as t.CallExpression | t.MemberExpression;\n if (hook) {\n hook(data, newData => {\n importDefine.init = newData;\n });\n }\n defines.push(importDefine);\n }\n // add plugin context\n if (pluginContext) {\n defines.push(\n ...Object.entries(pluginContext).map(\n ([key, value]): t.VariableDeclarator =>\n t.variableDeclarator(\n t.identifier(key),\n typeof value == 'string'\n ? t.stringLiteral(value)\n : typeof value == 'boolean'\n ? t.booleanLiteral(value)\n : typeof value == 'number'\n ? t.numericLiteral(value)\n : t.nullLiteral(),\n ),\n ),\n );\n }\n\n const exportsArr = compileData.BuildCache.export\n .map(i => {\n if (t.isExportAllDeclaration(i)) {\n const fileId = generateFileId();\n defines.push(\n t.variableDeclarator(\n t.identifier(fileId),\n t.callExpression(t.identifier('require'), [i.source]),\n ),\n );\n return t.assignmentExpression(\n '=',\n t.memberExpression(t.identifier('module'), t.identifier('exports')),\n t.objectExpression([\n t.spreadElement(t.identifier(fileId)),\n t.spreadElement(\n t.memberExpression(\n t.identifier('module'),\n t.identifier('exports'),\n ),\n ),\n ]),\n );\n } else if (t.isExportDefaultDeclaration(i)) {\n if (!i.declaration || t.isTSDeclareFunction(i.declaration))\n return void 0;\n if (t.isExpression(i.declaration)) {\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier('default'),\n ),\n i.declaration,\n );\n }\n if (!i.declaration.id)\n i.declaration.id = t.identifier(generateFileId());\n body.push(i.declaration);\n return t.assignmentExpression(\n '=',\n t.memberExpression(t.identifier('exports'), t.identifier('default')),\n i.declaration.id,\n );\n } else if (t.isExportNamedDeclaration(i)) {\n if (i.source && i.specifiers.length >= 1) {\n const id = t.identifier(generateFileId());\n defines.push(\n t.variableDeclarator(\n id,\n t.callExpression(t.identifier('require'), [i.source]),\n ),\n );\n const exportExprs = i.specifiers\n .map(\n (\n specifier:\n | t.ExportNamespaceSpecifier\n | t.ExportDefaultSpecifier\n | t.ExportSpecifier,\n ) => {\n if (t.isExportNamespaceSpecifier(specifier)) {\n const exportedName = t.isIdentifier(specifier.exported)\n ? specifier.exported.name\n : (specifier.exported as t.StringLiteral).value;\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier(exportedName),\n ),\n id,\n );\n } else if (t.isExportSpecifier(specifier)) {\n const exportedName = t.isIdentifier(specifier.exported)\n ? specifier.exported.name\n : (specifier.exported as t.StringLiteral).value;\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier(exportedName),\n ),\n t.memberExpression(id, t.identifier(specifier.local.name)),\n );\n }\n return null;\n },\n )\n .filter(Boolean) as t.AssignmentExpression[];\n return exportExprs.length === 1\n ? exportExprs[0]\n : t.sequenceExpression(exportExprs);\n } else {\n if (i.declaration) {\n if (\n t.isFunctionDeclaration(i.declaration) ||\n t.isVariableDeclaration(i.declaration)\n ) {\n if (t.isVariableDeclaration(i.declaration)) {\n body.push(i.declaration);\n const assignExprs = i.declaration.declarations.map(decl => {\n const varName = (decl.id as t.Identifier).name;\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier(varName),\n ),\n t.identifier(varName),\n );\n });\n return assignExprs.length === 1\n ? assignExprs[0]\n : t.sequenceExpression(assignExprs);\n } else {\n const functionId =\n i.declaration.id || t.identifier(generateFileId());\n const funcDecl = t.functionDeclaration(\n functionId,\n i.declaration.params,\n i.declaration.body,\n i.declaration.generator,\n i.declaration.async,\n );\n body.push(funcDecl);\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier((functionId as t.Identifier).name),\n ),\n functionId,\n );\n }\n }\n } else {\n // Handle export { item } - simple variable export\n if (i.specifiers.length >= 1) {\n const exportExprs = i.specifiers\n .map(specifier => {\n if (t.isExportSpecifier(specifier)) {\n const exportedName = t.isIdentifier(specifier.exported)\n ? specifier.exported.name\n : (specifier.exported as t.StringLiteral).value;\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier(exportedName),\n ),\n t.identifier(specifier.local.name),\n );\n }\n return null;\n })\n .filter(Boolean) as t.AssignmentExpression[];\n return exportExprs.length === 1\n ? exportExprs[0]\n : t.sequenceExpression(exportExprs);\n }\n }\n }\n return null;\n }\n })\n .filter(Boolean) as t.AssignmentExpression[];\n\n body.unshift(t.variableDeclaration('var', defines));\n body.push(...exportsArr.map(i => t.expressionStatement(i)));\n\n return generator.generate(t.program(body)).code;\n}\n\n/**\n * import IR => require\n */\nfunction transformImportIRtoRequire(\n importIR: ImportList[],\n): t.VariableDeclarator[] {\n const define: t.VariableDeclarator[] = [\n t.variableDeclarator(\n t.identifier('__import_default'),\n t.functionExpression(\n null,\n [t.identifier('obj')],\n t.blockStatement([\n t.returnStatement(\n t.conditionalExpression(\n t.memberExpression(\n t.identifier('obj'),\n t.identifier('__esModule'),\n ),\n t.memberExpression(t.identifier('obj'), t.identifier('default')),\n t.identifier('obj'),\n ),\n ),\n ]),\n ),\n ),\n ];\n\n for (const data of importIR) {\n for (const imported of data.imported) {\n let vl: t.CallExpression | t.MemberExpression;\n if (!imported.isAll && imported.import) {\n if (imported.import == 'default') {\n vl = t.callExpression(t.identifier('__import_default'), [\n t.callExpression(t.identifier('require'), [\n t.stringLiteral(data.source),\n ]),\n ]);\n } else {\n vl = t.memberExpression(\n t.callExpression(t.identifier('require'), [\n t.stringLiteral(data.source),\n ]),\n t.identifier(imported.import),\n );\n }\n } else {\n vl = t.callExpression(t.identifier('require'), [\n t.stringLiteral(data.source),\n ]);\n }\n define.push(t.variableDeclarator(t.identifier(imported.as), vl));\n }\n }\n return define;\n}\nexport { transformESMToCJS, transformImportIRtoRequire };\n","import * as Module from 'node:module';\nimport * as vm from 'node:vm';\nimport { Buffer } from 'node:buffer';\nimport * as t from '@babel/types';\nimport { parse } from '@babel/parser';\nimport * as generator from '@babel/generator';\nimport { transformESMToCJS } from './cjsTransform';\nconst BLOCKED_MODULES = new Set([\n 'child_process',\n 'node:child_process',\n 'fs',\n 'node:fs',\n 'node:fs/promises',\n 'worker_threads',\n 'node:worker_threads',\n 'cluster',\n 'node:cluster',\n 'dgram',\n 'node:dgram',\n 'net',\n 'node:net',\n 'tls',\n 'node:tls',\n 'tty',\n 'node:tty',\n 'v8',\n 'node:v8',\n 'vm',\n 'node:vm',\n 'async_hooks',\n 'node:async_hooks',\n 'diagnostics_channel',\n 'node:diagnostics_channel',\n]);\n// Enumerate the methods for converting ESM to CJS\nexport enum execESMMethod {\n transformCjs = 0,\n runInVm = 1,\n importESM = 2,\n}\n\nexport class RunScript {\n private _context;\n private _module;\n private _pluginContext;\n constructor(\n public filePath: string = '<repl>',\n public module: 'esm' | 'cjs' = 'cjs',\n private pluginContext?: Record<string, string | null | boolean | number>,\n ) {\n this._module = new Module.Module(this.filePath);\n this._pluginContext = pluginContext || {};\n this._context = this.getContext(this._pluginContext);\n }\n /**\n * run code in nodejs vm\n * @param code {string} exetuce code\n * @returns code exports\n */\n public async run(\n code: string,\n esmExecMethod: execESMMethod = execESMMethod.transformCjs,\n transformCjsHook?: (\n data: t.CallExpression | t.MemberExpression,\n setData?: (newData: t.Expression) => void,\n ) => void,\n ): Promise<unknown> {\n if (this.module === 'esm') {\n if (esmExecMethod == execESMMethod.importESM) {\n let processedCode = code;\n\n if (this.pluginContext) {\n const ast = parse(code, {\n sourceType: 'module',\n plugins: ['typescript', 'jsx'],\n });\n const contextDefines = Object.entries(this.pluginContext).map(\n ([key, value]): t.VariableDeclarator =>\n t.variableDeclarator(\n t.identifier(key),\n typeof value == 'string'\n ? t.stringLiteral(value)\n : typeof value == 'boolean'\n ? t.booleanLiteral(value)\n : typeof value == 'number'\n ? t.numericLiteral(value)\n : t.nullLiteral(),\n ),\n );\n const contextDeclaration = t.variableDeclaration(\n 'var',\n contextDefines,\n );\n ast.program.body.unshift(contextDeclaration);\n processedCode = generator.generate(ast).code;\n }\n const dataUrl = `data:application/javascript;base64,${Buffer.from(processedCode).toString('base64')}`;\n return await import(dataUrl);\n } else if (esmExecMethod == execESMMethod.transformCjs) {\n const compiledCode = transformESMToCJS(\n code,\n this.pluginContext,\n transformCjsHook,\n );\n const script = new vm.Script(compiledCode, { filename: this.filePath });\n const rel = script.runInContext(this._context);\n return this._context.exports || rel;\n } else if (esmExecMethod == execESMMethod.runInVm) {\n if (typeof vm.SourceTextModule !== 'function') {\n throw new Error('[exec esm]: not support vm.SourceTextModule');\n } else {\n const script = new vm.SourceTextModule(code, {\n context: this._context,\n });\n await script.link(async specifier => {\n return new vm.SourceTextModule(specifier, {\n context: this._context,\n });\n });\n await script.evaluate();\n return script.namespace;\n }\n }\n } else {\n const script = new vm.Script(code, { filename: this.filePath });\n const rel = script.runInContext(this._context);\n return this._context.exports || rel;\n }\n }\n private getContext(pluginContext?: Record<string, unknown>): vm.Context {\n const context: vm.Context = Object.create(pluginContext || null);\n // CJS context setup\n const exports = {};\n const module = {\n exports,\n filename: this.filePath,\n path: this.filePath,\n paths: require.resolve.paths(this.filePath) || [],\n id: this.filePath,\n };\n const originalRequire = Module.createRequire\n ? Module.createRequire(this.filePath)\n : require;\n const restrictedRequire = new Proxy(originalRequire, {\n apply(target, thisArg, args) {\n const id = args[0];\n if (typeof id === 'string' && BLOCKED_MODULES.has(id)) {\n throw new Error(\n `[mcx component]: require('${id}') is not allowed in component scripts`,\n );\n }\n return Reflect.apply(target, thisArg, args);\n },\n });\n Object.assign(context, {\n exports,\n module,\n require: restrictedRequire,\n global: context,\n });\n return vm.createContext(context);\n }\n public static isCanUseEsmRunVm = typeof vm.SourceTextModule == 'function';\n}\nexport { transformESMToCJS };\n","import { cp, mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { MCXCompileData } from '../compile-mcx/compiler/compileData';\nimport { execESMMethod, RunScript } from './vm';\nimport * as path from 'node:path';\nimport lib from '@mbler/mcx-component';\nimport { MCXstructureLocComponentType } from '../compile-mcx/types';\nimport { transformCtx } from '../types';\nimport * as t from '@babel/types';\nimport type { BaseJson, FilePoint } from './types';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { parse } from '@babel/parser';\nimport { styleText } from 'node:util';\n\n/** Accumulated bind data (e.g. item_texture entries) across all components in a build. */\nlet cachedOption: Record<string, string[] | [string, string][]> = {};\n\n/**\n * Security limits for file I/O operations inside file_edit expressions.\n * Components from @mbler/mcx-component are exempt from these limits.\n */\nconst MAX_FILE_WRITES = 5;\nconst MAX_FILE_READS = 1;\n\n/** Clear all cached bind options (called between builds). */\nexport function clearCachedOptions() {\n cachedOption = {};\n}\n\n/**\n * Resolve a FilePoint to an absolute path on disk.\n *\n * - `base: 'root'` is only allowed when the calling component originates from\n * @mbler/mcx-component (the `sourceIsMcxCore` flag). This prevents third-party\n * components from reading arbitrary filesystem locations.\n * - For `behavior` / `resources`, the file is resolved relative to the\n * corresponding output directory. A path-traversal check ensures the resolved\n * path does not escape the base directory (e.g. via `../`).\n */\nexport function resolveFilePoint(\n point: FilePoint,\n ctx: transformCtx,\n sourceIsMcxCore = false,\n) {\n // \"root\" base: resolve the file path directly against cwd. Only internal\n // mcx-core components are trusted to use this — third-party components\n // would gain unrestricted filesystem access otherwise.\n if (point.base === 'root') {\n if (!sourceIsMcxCore) {\n throw new Error(\n '[mcx component]: \"root\" base is only allowed for components imported from @mbler/mcx-component',\n );\n }\n return path.resolve(point.file);\n }\n let baseDir: string;\n if (point.base === 'behavior') {\n baseDir = ctx.output.behavior;\n } else if (point.base === 'resources') {\n baseDir = ctx.output.resources;\n } else {\n throw new Error('[mcx component]: invalid FilePoint Base');\n }\n const resolved = path.resolve(baseDir, point.file);\n // Path traversal guard: after resolving, the result must still be inside the\n // base directory. If the file contains \"../\" that escapes the root, the\n // startsWith check will fail.\n if (!resolved.startsWith(path.resolve(baseDir))) {\n throw new Error('[mcx component]: Path Traversal detected: ' + point.file);\n }\n return resolved;\n}\n\n/**\n * Maps each locally-bound identifier name to the package it was imported from.\n * Built by walking the AST of the component source code.\n *\n * Example:\n * import { ItemComponent } from '@mbler/mcx-component'\n * → { ItemComponent: '@mbler/mcx-component' }\n *\n * const { SomeHelper } = require('some-lib')\n * → { SomeHelper: 'some-lib' }\n */\ntype ExportSourceMap = Record<string, string>;\n\n/**\n * Walk the component source AST and build a mapping from local variable names\n * to the npm package they were imported/required from.\n *\n * Covers three import patterns:\n * 1. ES module named/default/namespace imports: import { X } from 'pkg'\n * 2. CommonJS direct require: const X = require('pkg')\n * 3. CommonJS destructured require: const { X } = require('pkg')\n * which desugars to a MemberExpression in the AST.\n */\nfunction collectExportSources(code: string): ExportSourceMap {\n const sources: ExportSourceMap = {};\n let ast: ReturnType<typeof parse>;\n try {\n ast = parse(code, {\n sourceType: 'module',\n plugins: ['typescript', 'jsx'],\n });\n } catch {\n // Parse failure is non-fatal — return empty map and skip the check.\n return sources;\n }\n\n function walk(node: t.Node) {\n if (!node) return;\n\n // Pattern 1: ES module import declarations.\n // e.g. import { ItemComponent, EntityComponent as Entity } from '@mbler/mcx-component'\n if (t.isImportDeclaration(node)) {\n const pkg =\n typeof node.source.value === 'string' ? node.source.value : '';\n for (const spec of node.specifiers) {\n if (t.isImportSpecifier(spec)) {\n // Named import — local.name is the locally bound name,\n // imported.name is the original export name.\n const importedName = t.isIdentifier(spec.imported)\n ? spec.imported.name\n : (spec.imported as t.StringLiteral).value;\n const localName = spec.local.name;\n sources[localName] = pkg;\n } else if (t.isImportDefaultSpecifier(spec)) {\n // import Default from 'pkg'\n sources[spec.local.name] = pkg;\n } else if (t.isImportNamespaceSpecifier(spec)) {\n // import * as ns from 'pkg'\n sources[spec.local.name] = pkg;\n }\n }\n }\n\n // Patterns 2 & 3: CommonJS require calls inside variable declarations.\n if (t.isVariableDeclaration(node)) {\n for (const decl of node.declarations) {\n // Pattern 2: const X = require('pkg')\n if (\n t.isIdentifier(decl.id) &&\n decl.init &&\n t.isCallExpression(decl.init) &&\n t.isIdentifier(decl.init.callee, { name: 'require' }) &&\n decl.init.arguments.length === 1 &&\n t.isStringLiteral(decl.init.arguments[0])\n ) {\n sources[decl.id.name] = decl.init.arguments[0].value;\n }\n // Pattern 3: const { X } = require('pkg')\n // In the AST this becomes:\n // VariableDeclarator {\n // id: Identifier(X),\n // init: CallExpression {\n // callee: MemberExpression {\n // object: CallExpression { callee: require, arguments: ['pkg'] },\n // property: Identifier(X)\n // }\n // }\n // }\n if (\n t.isIdentifier(decl.id) &&\n decl.init &&\n t.isCallExpression(decl.init) &&\n t.isMemberExpression(decl.init.callee) &&\n t.isCallExpression(decl.init.callee.object) &&\n t.isIdentifier(decl.init.callee.object.callee, { name: 'require' }) &&\n decl.init.callee.object.arguments.length === 1 &&\n t.isStringLiteral(decl.init.callee.object.arguments[0])\n ) {\n sources[decl.id.name] = decl.init.callee.object.arguments[0].value;\n }\n }\n }\n\n // Generic AST traversal using @babel/types VISITOR_KEYS.\n for (const key of t.VISITOR_KEYS[node.type] || []) {\n const child = (node as unknown as Record<string, unknown>)[key];\n if (Array.isArray(child)) {\n for (const item of child) {\n if (item && typeof item === 'object' && (item as t.Node).type) {\n walk(item as t.Node);\n }\n }\n } else if (child && typeof child === 'object' && (child as t.Node).type) {\n walk(child as t.Node);\n }\n }\n }\n walk(ast.program);\n return sources;\n}\n\n/**\n * Validate that the component only imports from @mbler/mcx-component.\n * Non-mcx-core imports are collected and each unique offending package\n * triggers a console warning (once per package per file).\n * Relative imports ('./...', '../...') are silently allowed.\n */\nfunction checkComponentImports(sources: ExportSourceMap, filePath: string) {\n const allowedPackage = '@mbler/mcx-component';\n const warned = new Set<string>();\n for (const [, pkg] of Object.entries(sources)) {\n if (\n pkg &&\n !pkg.startsWith(allowedPackage) &&\n !pkg.startsWith('.') &&\n !warned.has(pkg)\n ) {\n warned.add(pkg);\n console.warn(\n `[${styleText('red', 'mcx component warning')}]: \"${pkg}\" in ${filePath} is not from \"${allowedPackage}\". Only imports/requires from \"${allowedPackage}\" are recommended.`,\n );\n }\n }\n}\n\n/**\n * Execute file_edit operations defined in a component's _meta.\n * Delegates to execEditInternal with a fresh limits counter.\n *\n * @param isMcxCoreSource - when true, the component originates from\n * @mbler/mcx-component and is exempt from file I/O limits and root base\n * restrictions.\n */\nexport async function execEdit(\n option: BaseJson['_meta']['file_edit'],\n ctx: transformCtx,\n isMcxCoreSource = false,\n) {\n if (!option) return;\n // Shared mutable limits object passed through recursive batch calls so that\n // the total write/read count across the entire file_edit tree is enforced.\n const limits = { writeCount: 0, readCount: 0 };\n await execEditInternal(option, ctx, limits, isMcxCoreSource);\n}\n\n/**\n * Internal recursive implementation of execEdit.\n * Handles three editOption types:\n * - batch: recursively processes a nested array of options\n * - copy_assets: copies a file from source to output via FilePoint resolution\n * - edit: evaluates an expression with define vars, then writes to a file or\n * appends to a bind target (e.g. item_texture)\n *\n * File I/O limits (writes ≤ 5, reads ≤ 1) are enforced on the limits object\n * but skipped entirely when isMcxCoreSource is true.\n */\nasync function execEditInternal(\n option: BaseJson['_meta']['file_edit'],\n ctx: transformCtx,\n limits: { writeCount: number; readCount: number },\n isMcxCoreSource: boolean,\n) {\n if (!option) return;\n for (const editOption of option) {\n if (editOption.type == 'batch') {\n // Recurse into nested batch — limits object is shared so counts persist.\n await execEditInternal(editOption.options, ctx, limits, isMcxCoreSource);\n } else {\n if (editOption.type == 'copy_assets') {\n // copy_assets: resolve both source and output paths, then copy.\n await cp(\n resolveFilePoint(editOption.source, ctx, isMcxCoreSource),\n resolveFilePoint(editOption.output, ctx, isMcxCoreSource),\n {\n recursive: true,\n force: true,\n },\n );\n } else if (editOption.type == 'edit') {\n // edit: build the define variables map from the expression config,\n // then run the expression to produce the output content.\n const defineVars = {} as Record<string, string>;\n for (const [key, entry] of Object.entries(\n editOption.expression.define,\n )) {\n const value = entry as\n | { from: 'var'; data: string }\n | { from: 'read_file'; data: FilePoint; default?: string };\n if (value.from == 'var') {\n // Simple variable reference — just pass through the string value.\n defineVars[key] = value.data;\n } else {\n // File read — enforce the read limit for non-mcx-core sources.\n if (!isMcxCoreSource) {\n limits.readCount++;\n if (limits.readCount > MAX_FILE_READS) {\n throw new Error(\n `[mcx component]: File read limit exceeded (max ${MAX_FILE_READS})`,\n );\n }\n }\n const fileContent = await readFile(\n resolveFilePoint(value.data, ctx, isMcxCoreSource),\n 'utf-8',\n );\n defineVars[key] = fileContent || value.default || '';\n }\n }\n const execResult = await editOption.expression.run(defineVars);\n\n // If the target is a file on disk, write the result and enforce write limit.\n if ('file' in editOption.source) {\n if (!isMcxCoreSource) {\n limits.writeCount++;\n if (limits.writeCount > MAX_FILE_WRITES) {\n throw new Error(\n `[mcx component]: File write limit exceeded (max ${MAX_FILE_WRITES})`,\n );\n }\n }\n const filePath = resolveFilePoint(\n editOption.source,\n ctx,\n isMcxCoreSource,\n );\n await writeFile(filePath, execResult.toString());\n }\n\n // If the target is a bind slot (e.g. item_texture), accumulate entries.\n if ('bind' in editOption.source) {\n if (\n editOption.source.bind == 'item_texture' &&\n editOption.source.type == 'append'\n ) {\n if (!Array.isArray(execResult))\n throw new Error(\n '[mcx component]: json._meta.file_edit: error exec result',\n );\n if (!cachedOption['item_texture'])\n cachedOption['item_texture'] = [];\n if (Array.isArray(execResult)) {\n cachedOption['item_texture'] = [\n ...(cachedOption['item_texture'] as [string, string][]),\n ...(execResult as [string, string][]),\n ];\n }\n }\n } else {\n throw new Error(\n '[mcx component]: json._meta.file_edit: unknown output place.',\n );\n }\n }\n }\n }\n}\n\n/**\n * Generate the final textures/item_texture.json from accumulated bind data.\n * Call this in the plugin's buildEnd / onEnd hook.\n * Merges with any existing item_texture.json in the output directory.\n */\nexport async function generateItemTextureJson(output: {\n resources: string;\n}): Promise<void> {\n const entries = cachedOption['item_texture'] as\n | [string, string][]\n | undefined;\n if (!entries || entries.length === 0) return;\n\n const dir = path.join(output.resources, 'textures');\n const filePath = path.join(dir, 'item_texture.json');\n\n const data: {\n resource_pack_name: string;\n texture_name: string;\n texture_data: Record<string, { textures: string }>;\n } = {\n resource_pack_name: 'mcx.pack.v.',\n texture_name: 'atlas.items',\n texture_data: {},\n };\n\n // Merge with existing data if the file already exists from a prior run.\n try {\n const existing = JSON.parse(readFileSync(filePath, 'utf-8'));\n if (existing.texture_data) {\n data.texture_data = existing.texture_data;\n }\n } catch {\n // File doesn't exist yet, use default empty data.\n }\n\n for (const [key, textures] of entries) {\n data.texture_data[key] = { textures };\n }\n\n await mkdir(dir, { recursive: true });\n await writeFile(filePath, JSON.stringify(data, null, 2));\n}\n\n/**\n * Compile a single MCX component: parse its source, validate imports, execute\n * the script in a VM, then iterate over each declared component to produce\n * its JSON output file.\n *\n * Security measures applied before VM execution:\n * 1. collectExportSources — maps each import to its source package\n * 2. checkComponentImports — warns on non-mcx-core dependencies\n *\n * Per-component restrictions (checked after VM execution):\n * - path traversal guard on the output file point\n * - root base: only allowed if the export came from @mbler/mcx-component\n * - file write limit (≤5) and read limit (≤1): only enforced for\n * non-mcx-core components\n */\nexport async function compileComponent(\n compiledCode: MCXCompileData,\n ctx: transformCtx,\n) {\n const component = compiledCode.strLoc.Component;\n const src = compiledCode.strLoc.script;\n\n // Pre-flight: scan imports and build the export → source package map.\n // This is used both for import validation and for per-component restriction\n // decisions later.\n const exportSources = collectExportSources(src);\n checkComponentImports(exportSources, compiledCode.File);\n\n // Execute the component script in a VM. The transformCjsHook rewrites\n // image file requires (e.g. require('./icon.png')) into\n // require('@mbler/mcx-component').PNGImageComponent(require('node:path').join(...))\n // so that image assets are handled by the mcx-core ImageComponent classes.\n const scriptRunResult = (await new RunScript(compiledCode.File, 'esm').run(\n src,\n execESMMethod.transformCjs,\n (data, setData) => {\n if (\n setData &&\n data.type == 'CallExpression' &&\n data.callee.type == 'Identifier' &&\n data.arguments.length == 1 &&\n data.arguments[0]?.type == 'CallExpression' &&\n data.arguments[0].callee.type == 'Identifier' &&\n data.arguments[0].callee.name == 'require'\n ) {\n const callRequire = data.arguments[0];\n const arg = callRequire.arguments[0];\n if (arg && arg.type == 'StringLiteral') {\n if (/^.+?\\.(png|svg|jpg|jpeg|gif)$/.test(arg.value)) {\n const imageComponentRequire = t.memberExpression(\n t.callExpression(t.identifier('require'), [\n t.stringLiteral('@mbler/mcx-component'),\n ]),\n t.identifier(\n {\n png: 'PNGImageComponent',\n svg: 'SVGImageComponent',\n jpg: 'JPGImageComponent',\n jpeg: 'JPGImageComponent',\n gif: 'GIFImageComponent',\n }[path.extname(arg.value).slice(1)] as string,\n ),\n );\n const finishExpression = t.newExpression(imageComponentRequire, [\n t.callExpression(\n t.memberExpression(\n t.callExpression(t.identifier('require'), [\n t.stringLiteral('node:path'),\n ]),\n t.identifier('join'),\n ),\n [t.stringLiteral(path.dirname(compiledCode.File)), arg],\n ),\n ]);\n setData(finishExpression);\n }\n }\n }\n },\n )) as Record<\n string,\n InstanceType<(typeof lib)[MCXstructureLocComponentType]> | undefined\n >;\n if (!component)\n throw new Error(\n '[component internal error]: compile component: mcx is not component: filePath: ' +\n compiledCode.File,\n );\n if (typeof scriptRunResult !== 'object')\n throw new Error(\n '[component compile error]: exec code: mcx export type is not object',\n );\n\n // Iterate over each declared component entry and produce its output JSON.\n for (const i of Object.entries(component)) {\n const filePoint = path.join(ctx.output.behavior, i[0]);\n\n // Path traversal check: the resolved output must stay inside the behavior dir.\n if (!path.relative(filePoint, ctx.output.behavior).startsWith('..'))\n throw new Error('[component]: Path Traversal: path: ' + filePoint);\n\n const pointExport = i[1].useExpore;\n const pointData = scriptRunResult[pointExport] as InstanceType<\n (typeof lib)[keyof typeof lib]\n >;\n if (!pointExport) {\n throw new Error(\n '[component]: compile: check: not found Component class of file: ' +\n compiledCode.File,\n );\n }\n\n // Ensure the output directory exists before writing.\n if (!existsSync(path.dirname(filePoint))) {\n await mkdir(path.dirname(filePoint), {\n recursive: true,\n });\n }\n\n const json = pointData.toJSON() as unknown as BaseJson;\n if (\n !json._meta ||\n !json._meta.type ||\n !['item', 'entity'].includes(json._meta.type)\n )\n throw new Error('[mcx component]: not mcx json component: unknown type');\n\n if (json._meta.file_edit) {\n // Determine if the component comes from @mbler/mcx-component.\n // Check whether any import in the script originates from that package.\n // This is more reliable than checking the specific export name,\n // since local variables (e.g. const item = new ItemComponent()) are\n // not captured by exportSources.\n const isMcxCoreSource = Object.values(exportSources).some(\n (src) => src && src.startsWith('@mbler/mcx-component'),\n );\n await execEdit(json._meta.file_edit, ctx, isMcxCoreSource);\n }\n\n // Strip the internal _meta field before writing the final JSON.\n delete (json as unknown as Record<string, string>)['_meta'];\n await writeFile(filePoint, JSON.stringify(json, null, 2));\n }\n}\n\nexport * from './vm';\nexport {\n ItemComponent,\n EntityComponent,\n BlockComponent,\n PNGImageComponent,\n SVGImageComponent,\n GIFImageComponent,\n JPGImageComponent,\n} from '@mbler/mcx-component';\n","import { mcxType, transformCtx, transformParseCtx } from '../types';\nimport * as t from '@babel/types';\nimport { generate } from '@babel/generator';\nimport config from './config';\nimport { _enable, _enableWithData, generateMain } from './utils';\nimport { EventComp, UIComp, AppComp } from './transform';\nimport { compileComponent } from '../mcx-component';\nexport async function _transform(ctx: transformCtx): Promise<string> {\n const _temp_main = generateMain(ctx.compiledCode.JSIR);\n const mainFn = (ctx.mainFn.body = _temp_main[0]);\n const prop: t.ObjectProperty[] = [];\n const app = _enableWithData<t.ObjectProperty[]>();\n const params: t.FunctionParameter[] = (ctx.mainFn.param = [\n t.identifier(config.paramCtx),\n ]);\n const parseCtx: transformParseCtx = {\n impBody: _temp_main[1],\n mainFn,\n prop,\n ctx: ctx,\n app,\n };\n let type: mcxType = 'app';\n\n // enable setup fn: use to generate setup\n const enableSetup = _enable();\n if (ctx.compiledCode.strLoc.Event.isLoad) {\n // handler event type mcx\n type = 'event';\n // enable export setup\n enableSetup();\n await EventComp(parseCtx);\n }\n if (ctx.compiledCode.strLoc.UI) {\n type = 'ui'; // ui mcx\n enableSetup();\n await UIComp(parseCtx);\n }\n if (\n Object.getOwnPropertyNames(ctx.compiledCode.strLoc.Component).length >= 1\n ) {\n type = 'component';\n await compileComponent(ctx.compiledCode, ctx);\n return `export default {type:'component',setup:null,app:{}}`;\n }\n if (type == 'app') {\n // enable setup export\n enableSetup();\n // find event mcx import\n await AppComp(parseCtx);\n }\n // add default export: type\n prop.push(t.objectProperty(t.identifier('type'), t.stringLiteral(type)));\n if (enableSetup.prototype.enable) {\n prop.push(\n t.objectProperty(\n t.identifier('setup'),\n t.identifier(config.scriptCompileFn),\n ),\n );\n }\n if (app.prototype.enable) {\n prop.push(\n t.objectProperty(\n t.identifier('app'),\n t.objectExpression(app.prototype.enable),\n ),\n );\n }\n // generate code\n const code = generate(\n // create program\n t.program([\n ...parseCtx.impBody,\n t.functionDeclaration(\n t.identifier(config.scriptCompileFn),\n params,\n t.blockStatement(mainFn),\n false,\n false,\n ),\n t.exportDefaultDeclaration(t.objectExpression(prop)),\n ]),\n ).code;\n return code;\n}\n","import type { TransformPluginContext } from 'rollup';\nimport { MCXCompileData } from '../compile-mcx/compiler/compileData';\nimport { CompileOpt } from '@mbler/mcx-types';\nimport { transformCtx } from '../types';\nimport { _transform } from './main';\nimport { program } from '@babel/types';\nimport type { RollupError } from 'rolldown';\nfunction createErrorProxy(err: unknown, id: string): RollupError {\n if (err instanceof Error) {\n return {\n ...err,\n message: `${err.message} (At ${id})`,\n };\n } else {\n return { message: String(err) };\n }\n}\nexport async function transform(\n code: MCXCompileData,\n cache: Map<string, MCXCompileData>,\n id: string,\n context: TransformPluginContext,\n opt: CompileOpt,\n output: transformCtx['output'],\n): Promise<string> {\n try {\n const scriptTag = code.raw.find(node => {\n return node.name == 'script';\n });\n if (!scriptTag)\n throw new Error('[transform check]: not found mcx script tag');\n const transformContext: transformCtx = {\n rollupContext: context,\n impAST: [],\n currentAST: program([]),\n opt,\n currentId: id,\n compiledCode: code,\n cache,\n scriptTag: scriptTag,\n mainFn: {\n param: [],\n body: [],\n },\n output,\n };\n const result = await _transform(transformContext);\n return result;\n } catch (err) {\n context.error(createErrorProxy(err, id));\n return;\n }\n}\n","import type { Plugin, TransformResult } from 'rollup';\nimport type { Plugin as RolldownPlugin } from 'rolldown';\nimport { CompileOpt } from '../types';\nimport { extname } from 'node:path';\nimport { CompileError, compileMCXFn } from '.';\nimport { transform } from '../../transforms';\nimport type { MCXCompileData } from './compileData';\nimport { readFile } from 'node:fs/promises';\nimport MagicString from 'magic-string';\nimport * as path from 'node:path';\nimport { createRequire } from 'node:module';\nimport { transformCtx } from '../../types';\nimport ts from 'typescript';\nimport { readFileSync } from 'node:fs';\nimport {\n generateItemTextureJson,\n clearCachedOptions,\n} from '../../mcx-component';\nfunction createMcxPlugin(opt: CompileOpt, output: transformCtx['output']) {\n let cache: Map<string, MCXCompileData> = new Map();\n let tsconfig: ts.ParsedCommandLine;\n try {\n const configResult = ts.readConfigFile(opt.tsconfigPath, path => {\n try {\n return readFileSync(path, 'utf-8');\n } catch (error) {\n throw new Error(\n `Failed to read TypeScript config file at ${path}: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n });\n\n if (configResult.error) {\n throw new Error(\n `TypeScript configuration error: ${configResult.error.messageText}`,\n );\n }\n\n if (!configResult.config) {\n throw new Error(\n `Empty TypeScript configuration file at ${opt.tsconfigPath}`,\n );\n }\n\n // Parse the configuration with proper path resolution\n const parsedConfig = ts.parseJsonConfigFileContent(\n configResult.config,\n ts.sys,\n path.dirname(opt.tsconfigPath),\n undefined,\n opt.tsconfigPath,\n );\n\n if (parsedConfig.errors.length > 0) {\n const errorMessages = parsedConfig.errors\n .map(err => err.messageText)\n .join('\\n');\n throw new Error(\n `TypeScript configuration parsing errors:\\n${errorMessages}`,\n );\n }\n\n tsconfig = parsedConfig;\n } catch (error) {\n // Fallback to default configuration if reading fails\n console.warn(\n `Failed to load TypeScript config from ${opt.tsconfigPath}: ${error instanceof Error ? error.message : String(error)}`,\n );\n console.warn('Using default TypeScript configuration');\n tsconfig = {\n options: {},\n fileNames: [],\n errors: [],\n };\n }\n const resolveExtensions = ['', '.ts', '.mts', '.cts', '.js', '.mjs', '.cjs'];\n const indexExtensions = resolveExtensions.map(ext => '/index' + ext);\n\n async function tryResolvePath(filePath: string): Promise<string | null> {\n for (const idxExt of indexExtensions) {\n try {\n const fullPath = filePath + idxExt;\n await readFile(fullPath, 'utf-8');\n return fullPath;\n } catch {}\n }\n for (const ext of resolveExtensions) {\n try {\n const fullPath = filePath + ext;\n await readFile(fullPath, 'utf-8');\n return fullPath;\n } catch {}\n }\n return null;\n }\n\n async function resolvePackageExports(\n pkgDir: string,\n subPath: string,\n pkgJson: Record<string, unknown>,\n ): Promise<string | null> {\n const exports = pkgJson.exports;\n if (exports) {\n const subImport = subPath.startsWith('./') ? subPath : `./${subPath}`;\n if (typeof exports === 'object' && exports !== null) {\n const exp = exports as Record<string, unknown>;\n if (exp[subImport]) {\n const target = exp[subImport];\n if (typeof target === 'string') {\n return path.join(pkgDir, target);\n } else if (typeof target === 'object' && target !== null) {\n const targetObj = target as Record<string, unknown>;\n if (targetObj.import) {\n return path.join(pkgDir, targetObj.import as string);\n }\n return path.join(\n pkgDir,\n (targetObj.default as string) ||\n (Object.values(targetObj)[0] as string),\n );\n }\n }\n if (subImport.endsWith('/') || subImport.endsWith('/*')) {\n const dirMapping = subImport.slice(0, -1);\n for (const [key, value] of Object.entries(exp)) {\n if (key.startsWith(dirMapping) && key !== dirMapping) {\n const target = value as string;\n return path.join(pkgDir, target);\n }\n }\n }\n } else if (typeof exports === 'string') {\n return path.join(pkgDir, exports);\n }\n }\n return null;\n }\n\n return {\n name: 'mbler-mcx-core',\n async resolveId(id, imp) {\n const i = path.parse(id);\n if (i.dir.startsWith('.') || i.root) {\n if (imp) {\n const baseDir = path.dirname(imp);\n const resolved = await tryResolvePath(path.join(baseDir, id));\n if (resolved) return resolved;\n }\n return null;\n } else {\n // First try Node.js native resolution for reliable symlink/pkg resolution\n if (imp) {\n try {\n const localRequire = createRequire(imp);\n const resolved = localRequire.resolve(id);\n if (resolved) return resolved;\n } catch {\n // fall through to manual resolution\n }\n }\n const isScopedPackage = id.startsWith('@');\n const parts = id.split('/');\n const pkgName = isScopedPackage\n ? `${parts[0]}/${parts[1]}`\n : (parts[0] as string);\n const subPath = isScopedPackage\n ? parts.slice(2).join('/')\n : parts.slice(1).join('/');\n const d = path.join(opt.moduleDir, pkgName);\n let pkgJson: Record<string, unknown>;\n try {\n pkgJson = JSON.parse(\n await readFile(path.join(d, 'package.json'), 'utf-8'),\n );\n } catch (err: unknown) {\n const nodeErr = err as { code?: string; message?: string };\n if (!nodeErr.code || nodeErr.code === 'ENOENT') {\n throw new Error(\n `[mcx resolveId]: package.json not found for '${id}' at '${d}'`,\n );\n } else {\n throw new Error(\n `[mcx resolveId]: invalid package.json for '${id}': ${nodeErr.message}`,\n );\n }\n }\n if (subPath) {\n const fromExports = await resolvePackageExports(d, subPath, pkgJson);\n if (fromExports) return fromExports;\n const fromDist = await tryResolvePath(\n path.join(d, './dist', subPath),\n );\n if (fromDist) return fromDist;\n const fromRoot = await tryResolvePath(path.join(d, subPath));\n if (fromRoot) return fromRoot;\n return null;\n }\n return path.join(d, pkgJson.main as string);\n }\n },\n transform: async function (\n code: string,\n id: string,\n ): Promise<TransformResult> {\n const magic = new MagicString(code);\n const ext = extname(id).slice(1);\n const tsRegex = /^.+?\\.(ts|mts|cts)$/;\n if (ext == 'mcx') {\n let compileData: MCXCompileData;\n try {\n compileData = cache.has(id)\n ? (cache.get(id) as MCXCompileData)\n : compileMCXFn(code);\n cache.set(id, compileData);\n } catch (err: unknown) {\n if (err instanceof CompileError) {\n this.error(err.message, {\n column: err.loc.column,\n line: err.loc.line,\n });\n } else {\n this.error(\n err instanceof Error\n ? `${err.message} : ${err.stack}`\n : String(err),\n );\n }\n return;\n }\n compileData.setFilePath(id);\n const compiledCode = await transform(\n compileData,\n cache,\n id,\n this,\n opt,\n output,\n );\n return {\n code: compiledCode,\n map: opt.sourcemap\n ? magic.generateMap({ hires: true, source: id })\n : void 0,\n };\n } else if (tsRegex.test(id)) {\n // Use the parsed TypeScript configuration\n const compiledCode = ts.transpileModule(code, {\n compilerOptions: tsconfig.options,\n fileName: id,\n }).outputText;\n return {\n code: compiledCode,\n map: opt.sourcemap\n ? magic.generateMap({ hires: true, source: id })\n : void 0,\n };\n }\n return null;\n },\n async buildEnd() {\n cache.clear();\n await generateItemTextureJson(output);\n clearCachedOptions();\n },\n buildStart() {\n cache = new Map();\n },\n } satisfies Plugin;\n}\n\nexport function rollupPlugin(\n opt: CompileOpt,\n output: transformCtx['output'],\n): Plugin {\n return createMcxPlugin(opt, output);\n}\n\nexport function rolldownPlugin(\n opt: CompileOpt,\n output: transformCtx['output'],\n): RolldownPlugin {\n return createMcxPlugin(opt, output) as unknown as RolldownPlugin;\n}\n","import type { TransformPluginContext } from 'rollup';\nimport type { MCXCompileData } from './compile-mcx/compiler/compileData';\nimport { CompileOpt } from '@mbler/mcx-types';\nimport * as t from '@babel/types';\ninterface BaseToken {\n data: string;\n type: TokenType;\n start: MCXPosition;\n end: MCXPosition;\n}\ninterface TagToken extends BaseToken {\n type: 'Tag';\n}\ninterface TagEndToken extends BaseToken {\n type: 'TagEnd';\n}\ninterface ContentToken extends BaseToken {\n type: 'Content';\n}\ninterface CommentToken extends BaseToken {\n type: 'Comment';\n}\ntype Token = TagToken | TagEndToken | ContentToken | CommentToken;\ntype AttributeMap = Record<string, string | boolean>;\n/** 统一的位置信息结构 */\ninterface MCXPosition {\n line: number;\n column: number;\n}\n\ninterface MCXLoc {\n start: MCXPosition;\n end: MCXPosition;\n}\ninterface ParsedTagNode {\n start: TagToken;\n name: string;\n arr: AttributeMap;\n content: (ParsedTagContentNode | ParsedTagNode | ParsedCommentNode)[];\n end: TagEndToken | null;\n loc: MCXLoc;\n type: 'TagNode';\n}\ninterface ParsedTagContentNode {\n data: string;\n type: 'TagContent';\n}\ninterface ParsedCommentNode {\n data: string;\n type: 'Comment';\n loc?: MCXLoc;\n}\ntype TokenType = 'Tag' | 'TagEnd' | 'Content' | 'Comment';\ntype PropValue = number | string | object;\ninterface PropNode {\n key: string;\n value: PropValue;\n type: 'PropChar' | 'PropObject';\n}\ntype JsType =\n | 'boolean'\n | 'number'\n | 'string'\n | 'object'\n | 'function'\n | 'bigint'\n | 'symbol';\ninterface TypeVerifyBody {\n [key: string]: JsType;\n}\nexport interface ParseReadFileOpt {\n delay: number;\n maxRetries: number;\n want: 'string' | 'object';\n}\nexport type ReadFileOpt = Partial<ParseReadFileOpt>;\nexport type mcxType = 'component' | 'event' | 'app' | 'ui';\nexport type {\n Token,\n ContentToken,\n TagEndToken,\n TagToken,\n CommentToken,\n BaseToken,\n AttributeMap,\n PropValue,\n TokenType,\n ParsedTagContentNode,\n ParsedCommentNode,\n TypeVerifyBody,\n JsType,\n PropNode,\n ParsedTagNode,\n MCXLoc,\n MCXPosition,\n};\nexport interface transformCtx {\n rollupContext: TransformPluginContext;\n compiledCode: MCXCompileData;\n cache: Map<string, MCXCompileData>;\n currentId: string;\n scriptTag: ParsedTagNode;\n currentAST: t.Program;\n mainFn: {\n param: t.FunctionParameter[];\n body: t.Statement[];\n };\n impAST: t.ImportDeclaration[];\n opt: CompileOpt;\n output: {\n dist: string;\n behavior: string;\n resources: string;\n };\n}\nexport interface transformParseCtx {\n prop: t.ObjectProperty[];\n impBody: t.ImportDeclaration[];\n mainFn: t.Statement[];\n ctx: transformCtx;\n app: ((data: t.ObjectProperty[]) => void) & {\n prototype: { enable: t.ObjectProperty[] | null };\n };\n}\n","import type {\n Rarity,\n ItemComponentOptions,\n FoodEffect,\n EntityComponentOptions,\n} from '@mbler/mcx-component';\n\nexport interface FilePoint {\n base: 'behavior' | 'resources' | 'root';\n file: string;\n}\n\nexport interface FileBindSource {\n bind: 'item_texture';\n type: 'append' | 'all_replace';\n}\n\nexport type DefineEntry =\n | {\n from: 'var';\n data: string;\n }\n | {\n from: 'read_file';\n data: FilePoint;\n default?: string;\n };\n\nexport type FileEditExpression<\n T extends Record<string, DefineEntry> = Record<string, DefineEntry>,\n> = {\n define: T;\n run: (define: { [K in keyof T]: string }) => Promise<\n string | string[] | [string, string][]\n >;\n};\n\nexport function createFileEdit<\n T extends Record<string, DefineEntry>,\n>(expression: {\n define: T;\n run: (define: { [K in keyof T]: string }) => Promise<\n string | string[] | [string, string][]\n >;\n}): FileEditExpression<T> {\n return expression;\n}\n\nexport type FileEditOption =\n | {\n type: 'edit';\n id?: string;\n source: FilePoint | FileBindSource;\n expression: FileEditExpression<Record<string, DefineEntry>>;\n }\n | {\n type: 'copy_assets';\n id?: string;\n source: FilePoint;\n output: FilePoint;\n };\n\nexport interface BaseJson {\n format_version: string;\n _meta: {\n type: 'item' | 'entity';\n file_edit?: (\n | FileEditOption\n | {\n type: 'batch';\n options: FileEditOption[];\n id?: string;\n }\n )[];\n };\n}\n\nexport type {\n Rarity,\n ItemComponentOptions,\n FoodEffect,\n EntityComponentOptions,\n};\nexport type {\n ParticleType,\n SoundEvent,\n EnchantableSlot,\n} from '@mbler/mcx-component';\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;CAOA,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;;CAG7D,SAAS,QAAQ,KAAK;EACpB,MAAM,MAAsB,uBAAO,OAAO,KAAK;EAC/C,KAAK,MAAM,OAAO,IAAI,MAAM,IAAI,EAAE,IAAI,OAAO;EAC7C,QAAQ,QAAQ,OAAO;;CAGzB,MAAM,YAAY,EAAE;CACpB,MAAM,YAAY,EAAE;CACpB,MAAM,aAAa;CAEnB,MAAM,WAAW;CACjB,MAAM,QAAQ,QAAQ,IAAI,WAAW,EAAE,KAAK,OAAO,IAAI,WAAW,EAAE,KAAK,QACxE,IAAI,WAAW,EAAE,GAAG,OAAO,IAAI,WAAW,EAAE,GAAG;CAChD,MAAM,mBAAmB,QAAQ,IAAI,WAAW,YAAY;CAC5D,MAAM,SAAS,OAAO;CACtB,MAAM,UAAU,KAAK,OAAO;EAC1B,MAAM,IAAI,IAAI,QAAQ,GAAG;EACzB,IAAI,IAAI,IACN,IAAI,OAAO,GAAG,EAAE;;CAGpB,MAAM,iBAAiB,OAAO,UAAU;CACxC,MAAM,UAAU,KAAK,QAAQ,eAAe,KAAK,KAAK,IAAI;CAC1D,MAAM,UAAU,MAAM;CACtB,MAAM,SAAS,QAAQ,aAAa,IAAI,KAAK;CAC7C,MAAM,SAAS,QAAQ,aAAa,IAAI,KAAK;CAC7C,MAAM,UAAU,QAAQ,aAAa,IAAI,KAAK;CAC9C,MAAM,YAAY,QAAQ,aAAa,IAAI,KAAK;CAChD,MAAM,cAAc,QAAQ,OAAO,QAAQ;CAC3C,MAAM,YAAY,QAAQ,OAAO,QAAQ;CACzC,MAAM,YAAY,QAAQ,OAAO,QAAQ;CACzC,MAAM,YAAY,QAAQ,QAAQ,QAAQ,OAAO,QAAQ;CACzD,MAAM,aAAa,QAAQ;EACzB,QAAQ,SAAS,IAAI,IAAI,WAAW,IAAI,KAAK,WAAW,IAAI,KAAK,IAAI,WAAW,IAAI,MAAM;;CAE5F,MAAM,iBAAiB,OAAO,UAAU;CACxC,MAAM,gBAAgB,UAAU,eAAe,KAAK,MAAM;CAC1D,MAAM,aAAa,UAAU;EAC3B,OAAO,aAAa,MAAM,CAAC,MAAM,GAAG,GAAG;;CAEzC,MAAM,iBAAiB,QAAQ,aAAa,IAAI,KAAK;CACrD,MAAM,gBAAgB,QAAQ,SAAS,IAAI,IAAI,QAAQ,SAAS,IAAI,OAAO,OAAO,KAAK,SAAS,KAAK,GAAG,KAAK;CAC7G,MAAM,iBAAiC,wBAErC,sIACD;CACD,MAAM,qBAAqC,wBACzC,4EACD;CACD,MAAM,uBAAuB,OAAO;EAClC,MAAM,QAAwB,uBAAO,OAAO,KAAK;EACjD,SAAS,QAAQ;GAEf,OADY,MAAM,SACH,MAAM,OAAO,GAAG,IAAI;;;CAGvC,MAAM,aAAa;CACnB,MAAM,WAAW,qBACd,QAAQ;EACP,OAAO,IAAI,QAAQ,aAAa,MAAM,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC;GAElE;CACD,MAAM,cAAc;CACpB,MAAM,YAAY,qBACf,QAAQ,IAAI,QAAQ,aAAa,MAAM,CAAC,aAAa,CACvD;CACD,MAAM,aAAa,qBAAqB,QAAQ;EAC9C,OAAO,IAAI,OAAO,EAAE,CAAC,aAAa,GAAG,IAAI,MAAM,EAAE;GACjD;CACF,MAAM,eAAe,qBAClB,QAAQ;EAEP,OADU,MAAM,KAAK,WAAW,IAAI,KAAK;GAG5C;CACD,MAAM,cAAc,OAAO,aAAa,CAAC,OAAO,GAAG,OAAO,SAAS;CACnE,MAAM,kBAAkB,KAAK,GAAG,QAAQ;EACtC,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAC9B,IAAI,GAAG,GAAG,IAAI;;CAGlB,MAAM,OAAO,KAAK,KAAK,OAAO,WAAW,UAAU;EACjD,OAAO,eAAe,KAAK,KAAK;GAC9B,cAAc;GACd,YAAY;GACZ;GACA;GACD,CAAC;;CAEJ,MAAM,iBAAiB,QAAQ;EAC7B,MAAM,IAAI,WAAW,IAAI;EACzB,OAAO,MAAM,EAAE,GAAG,MAAM;;CAE1B,MAAM,YAAY,QAAQ;EACxB,MAAM,IAAI,SAAS,IAAI,GAAG,OAAO,IAAI,GAAG;EACxC,OAAO,MAAM,EAAE,GAAG,MAAM;;CAE1B,IAAI;CACJ,MAAM,sBAAsB;EAC1B,OAAO,gBAAgB,cAAc,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAO,OAAO,WAAW,cAAc,SAAS,OAAO,WAAW,cAAc,SAAS,EAAE;;CAEjN,MAAM,UAAU;CAChB,SAAS,kBAAkB,MAAM;EAC/B,OAAO,QAAQ,KAAK,KAAK,GAAG,WAAW,SAAS,WAAW,KAAK,UAAU,KAAK,CAAC;;CAElF,SAAS,YAAY,QAAQ,SAAS;EACpC,OAAO,SAAS,KAAK,UACnB,UACC,GAAG,QAAQ,OAAO,QAAQ,aAAa,IAAI,UAAU,GAAG,IAC1D;;CAGH,MAAM,aAAa;EACjB,QAAQ;EACR,KAAK;EACL,SAAS;EACT,KAAK;EACL,SAAS;EACT,KAAK;EACL,SAAS;EACT,KAAK;EACL,cAAc;EACd,MAAM;EACN,kBAAkB;EAClB,MAAM;EACN,mBAAmB;EACnB,MAAM;EACN,kBAAkB;EAClB,OAAO;EACP,oBAAoB;EACpB,OAAO;EACP,cAAc;EACd,OAAO;EACP,iBAAiB;EACjB,QAAQ;EACR,qBAAqB;EACrB,QAAQ;EACR,UAAU;EACV,MAAM;EACN,QAAQ;EACR,MAAM;EACP;CACD,MAAM,iBAAiB;GACpB,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,MAAM;GACN,MAAM;GACN,MAAM;GACN,OAAO;GACP,OAAO;GACP,KAAK;GACL,KAAK;EACP;CAED,MAAM,aAAa;EACjB,WAAW;EACX,KAAK;EACL,wBAAwB;EACxB,KAAK;EACL,sBAAsB;EACtB,KAAK;EACL,iBAAiB;EACjB,KAAK;EACL,kBAAkB;EAClB,MAAM;EACN,kBAAkB;EAClB,MAAM;EACN,YAAY;EACZ,MAAM;EACN,YAAY;EACZ,OAAO;EACP,+BAA+B;EAC/B,OAAO;EACP,wBAAwB;EACxB,OAAO;EACP,aAAa;EACb,KAAK;EACN;CAED,MAAM,YAAY;EAChB,UAAU;EACV,KAAK;EACL,WAAW;EACX,KAAK;EACL,aAAa;EACb,KAAK;EACN;CACD,MAAM,gBAAgB;GACnB,IAAI;GACJ,IAAI;GACJ,IAAI;EACN;CAGD,MAAM,oBAAoC,wBAAQ,wNAAgB;CAClE,MAAM,wBAAwB;CAE9B,MAAM,QAAQ;CACd,SAAS,kBAAkB,QAAQ,QAAQ,GAAG,MAAM,OAAO,QAAQ;EACjE,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,OAAO,OAAO,CAAC;EACnD,MAAM,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,OAAO,OAAO,CAAC;EAC/C,IAAI,QAAQ,KAAK,OAAO;EACxB,IAAI,QAAQ,OAAO,MAAM,UAAU;EACnC,MAAM,mBAAmB,MAAM,QAAQ,GAAG,QAAQ,MAAM,MAAM,EAAE;EAChE,QAAQ,MAAM,QAAQ,GAAG,QAAQ,MAAM,MAAM,EAAE;EAC/C,IAAI,QAAQ;EACZ,MAAM,MAAM,EAAE;EACd,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACrC,SAAS,MAAM,GAAG,UAAU,iBAAiB,MAAM,iBAAiB,GAAG,UAAU;GACjF,IAAI,SAAS,OAAO;IAClB,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,IAAI,SAAS,MAAM,OAAO,KAAK;KAC1D,IAAI,IAAI,KAAK,KAAK,MAAM,QAAQ;KAChC,MAAM,OAAO,IAAI;KACjB,IAAI,KACF,GAAG,OAAO,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,MAAM,KACvE;KACD,MAAM,aAAa,MAAM,GAAG;KAC5B,MAAM,mBAAmB,iBAAiB,MAAM,iBAAiB,GAAG,UAAU;KAC9E,IAAI,MAAM,GAAG;MACX,MAAM,MAAM,SAAS,SAAS,aAAa;MAC3C,MAAM,SAAS,KAAK,IAClB,GACA,MAAM,QAAQ,aAAa,MAAM,MAAM,MACxC;MACD,IAAI,KAAK,WAAW,IAAI,OAAO,IAAI,GAAG,IAAI,OAAO,OAAO,CAAC;YACpD,IAAI,IAAI,GAAG;MAChB,IAAI,MAAM,OAAO;OACf,MAAM,SAAS,KAAK,IAAI,KAAK,IAAI,MAAM,OAAO,WAAW,EAAE,EAAE;OAC7D,IAAI,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC;;MAEzC,SAAS,aAAa;;;IAG1B;;;EAGJ,OAAO,IAAI,KAAK,KAAK;;CAGvB,SAAS,eAAe,OAAO;EAC7B,IAAI,QAAQ,MAAM,EAAE;GAClB,MAAM,MAAM,EAAE;GACd,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;IACrC,MAAM,OAAO,MAAM;IACnB,MAAM,aAAa,SAAS,KAAK,GAAG,iBAAiB,KAAK,GAAG,eAAe,KAAK;IACjF,IAAI,YACF,KAAK,MAAM,OAAO,YAChB,IAAI,OAAO,WAAW;;GAI5B,OAAO;SACF,IAAI,SAAS,MAAM,IAAI,SAAS,MAAM,EAC3C,OAAO;;CAGX,MAAM,kBAAkB;CACxB,MAAM,sBAAsB;CAC5B,MAAM,iBAAiB;CACvB,SAAS,iBAAiB,SAAS;EACjC,MAAM,MAAM,EAAE;EACd,QAAQ,QAAQ,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,CAAC,SAAS,SAAS;GAC3E,IAAI,MAAM;IACR,MAAM,MAAM,KAAK,MAAM,oBAAoB;IAC3C,IAAI,SAAS,MAAM,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,GAAG,MAAM;;IAEvD;EACF,OAAO;;CAET,SAAS,eAAe,QAAQ;EAC9B,IAAI,CAAC,QAAQ,OAAO;EACpB,IAAI,SAAS,OAAO,EAAE,OAAO;EAC7B,IAAI,MAAM;EACV,KAAK,MAAM,OAAO,QAAQ;GACxB,MAAM,QAAQ,OAAO;GACrB,IAAI,SAAS,MAAM,IAAI,OAAO,UAAU,UAAU;IAChD,MAAM,gBAAgB,IAAI,WAAW,KAAK,GAAG,MAAM,UAAU,IAAI;IACjE,OAAO,GAAG,cAAc,GAAG,MAAM;;;EAGrC,OAAO;;CAET,SAAS,eAAe,OAAO;EAC7B,IAAI,MAAM;EACV,IAAI,SAAS,MAAM,EACjB,MAAM;OACD,IAAI,QAAQ,MAAM,EACvB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACrC,MAAM,aAAa,eAAe,MAAM,GAAG;GAC3C,IAAI,YACF,OAAO,aAAa;;OAGnB,IAAI,SAAS,MAAM;QACnB,MAAM,QAAQ,OACjB,IAAI,MAAM,OACR,OAAO,OAAO;;EAIpB,OAAO,IAAI,MAAM;;CAEnB,SAAS,eAAe,OAAO;EAC7B,IAAI,CAAC,OAAO,OAAO;EACnB,IAAI,EAAE,OAAO,OAAO,UAAU;EAC9B,IAAI,SAAS,CAAC,SAAS,MAAM,EAC3B,MAAM,QAAQ,eAAe,MAAM;EAErC,IAAI,OACF,MAAM,QAAQ,eAAe,MAAM;EAErC,OAAO;;CAGT,MAAM,YAAY;CAClB,MAAM,WAAW;CACjB,MAAM,YAAY;CAClB,MAAM,YAAY;CAClB,MAAM,YAA4B,wBAAQ,UAAU;CACpD,MAAM,WAA2B,wBAAQ,SAAS;CAClD,MAAM,cAA8B,wBAAQ,UAAU;CACtD,MAAM,YAA4B,wBAAQ,UAAU;CAEpD,MAAM,sBAAsB;CAC5B,MAAM,uBAAuC,wBAAQ,oBAAoB;CACzE,MAAM,gBAAgC,wBACpC,sBAAsB,qJACvB;CACD,SAAS,mBAAmB,OAAO;EACjC,OAAO,CAAC,CAAC,SAAS,UAAU;;CAE9B,MAAM,mBAAmB;CACzB,MAAM,sBAAsB,EAAE;CAC9B,SAAS,kBAAkB,MAAM;EAC/B,IAAI,oBAAoB,eAAe,KAAK,EAC1C,OAAO,oBAAoB;EAE7B,MAAM,WAAW,iBAAiB,KAAK,KAAK;EAC5C,IAAI,UACF,QAAQ,MAAM,0BAA0B,OAAO;EAEjD,OAAO,oBAAoB,QAAQ,CAAC;;CAEtC,MAAM,iBAAiB;EACrB,eAAe;EACf,WAAW;EACX,SAAS;EACT,WAAW;EACZ;CACD,MAAM,kBAAkC,wBACtC,y+BACD;CACD,MAAM,iBAAiC,wBACrC,moFACD;CACD,MAAM,oBAAoC,wBACxC,oyBACD;CACD,SAAS,sBAAsB,OAAO;EACpC,IAAI,SAAS,MACX,OAAO;EAET,MAAM,OAAO,OAAO;EACpB,OAAO,SAAS,YAAY,SAAS,YAAY,SAAS;;CAG5D,MAAM,WAAW;CACjB,SAAS,WAAW,QAAQ;EAC1B,MAAM,MAAM,KAAK;EACjB,MAAM,QAAQ,SAAS,KAAK,IAAI;EAChC,IAAI,CAAC,OACH,OAAO;EAET,IAAI,OAAO;EACX,IAAI;EACJ,IAAI;EACJ,IAAI,YAAY;EAChB,KAAK,QAAQ,MAAM,OAAO,QAAQ,IAAI,QAAQ,SAAS;GACrD,QAAQ,IAAI,WAAW,MAAM,EAA7B;IACE,KAAK;KACH,UAAU;KACV;IACF,KAAK;KACH,UAAU;KACV;IACF,KAAK;KACH,UAAU;KACV;IACF,KAAK;KACH,UAAU;KACV;IACF,KAAK;KACH,UAAU;KACV;IACF,SACE;;GAEJ,IAAI,cAAc,OAChB,QAAQ,IAAI,MAAM,WAAW,MAAM;GAErC,YAAY,QAAQ;GACpB,QAAQ;;EAEV,OAAO,cAAc,QAAQ,OAAO,IAAI,MAAM,WAAW,MAAM,GAAG;;CAEpE,MAAM,iBAAiB;CACvB,SAAS,kBAAkB,KAAK;EAC9B,OAAO,IAAI,QAAQ,gBAAgB,GAAG;;CAExC,MAAM,4BAA4B;CAClC,SAAS,qBAAqB,KAAK,cAAc;EAC/C,OAAO,IAAI,QACT,4BACC,MAAM,eAAe,MAAM,OAAM,aAAY,OAAO,MAAM,KAAK,IACjE;;CAGH,SAAS,mBAAmB,GAAG,GAAG;EAChC,IAAI,EAAE,WAAW,EAAE,QAAQ,OAAO;EAClC,IAAI,QAAQ;EACZ,KAAK,IAAI,IAAI,GAAG,SAAS,IAAI,EAAE,QAAQ,KACrC,QAAQ,WAAW,EAAE,IAAI,EAAE,GAAG;EAEhC,OAAO;;CAET,SAAS,WAAW,GAAG,GAAG;EACxB,IAAI,MAAM,GAAG,OAAO;EACpB,IAAI,aAAa,OAAO,EAAE;EAC1B,IAAI,aAAa,OAAO,EAAE;EAC1B,IAAI,cAAc,YAChB,OAAO,cAAc,aAAa,EAAE,SAAS,KAAK,EAAE,SAAS,GAAG;EAElE,aAAa,SAAS,EAAE;EACxB,aAAa,SAAS,EAAE;EACxB,IAAI,cAAc,YAChB,OAAO,MAAM;EAEf,aAAa,QAAQ,EAAE;EACvB,aAAa,QAAQ,EAAE;EACvB,IAAI,cAAc,YAChB,OAAO,cAAc,aAAa,mBAAmB,GAAG,EAAE,GAAG;EAE/D,aAAa,SAAS,EAAE;EACxB,aAAa,SAAS,EAAE;EACxB,IAAI,cAAc,YAAY;GAC5B,IAAI,CAAC,cAAc,CAAC,YAClB,OAAO;GAIT,IAFmB,OAAO,KAAK,EAAE,CAAC,WACf,OAAO,KAAK,EAAE,CAAC,QAEhC,OAAO;GAET,KAAK,MAAM,OAAO,GAAG;IACnB,MAAM,UAAU,EAAE,eAAe,IAAI;IACrC,MAAM,UAAU,EAAE,eAAe,IAAI;IACrC,IAAI,WAAW,CAAC,WAAW,CAAC,WAAW,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAC3E,OAAO;;;EAIb,OAAO,OAAO,EAAE,KAAK,OAAO,EAAE;;CAEhC,SAAS,aAAa,KAAK,KAAK;EAC9B,OAAO,IAAI,WAAW,SAAS,WAAW,MAAM,IAAI,CAAC;;CAGvD,MAAM,SAAS,QAAQ;EACrB,OAAO,CAAC,EAAE,OAAO,IAAI,iBAAiB;;CAExC,MAAM,mBAAmB,QAAQ;EAC/B,OAAO,SAAS,IAAI,GAAG,MAAM,OAAO,OAAO,KAAK,QAAQ,IAAI,IAAI,SAAS,IAAI,KAAK,IAAI,aAAa,kBAAkB,CAAC,WAAW,IAAI,SAAS,IAAI,MAAM,IAAI,GAAG,gBAAgB,IAAI,MAAM,GAAG,KAAK,UAAU,KAAK,UAAU,EAAE,GAAG,OAAO,IAAI;;CAE5O,MAAM,YAAY,MAAM,QAAQ;EAC9B,IAAI,MAAM,IAAI,EACZ,OAAO,SAAS,MAAM,IAAI,MAAM;OAC3B,IAAI,MAAM,IAAI,EACnB,OAAO,GACJ,OAAO,IAAI,KAAK,KAAK,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,QACtC,SAAS,CAAC,KAAK,OAAO,MAAM;GAC3B,QAAQ,gBAAgB,KAAK,EAAE,GAAG,SAAS;GAC3C,OAAO;KAET,EAAE,CACH,EACF;OACI,IAAI,MAAM,IAAI,EACnB,OAAO,GACJ,OAAO,IAAI,KAAK,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,KAAK,MAAM,gBAAgB,EAAE,CAAC,EACvE;OACI,IAAI,SAAS,IAAI,EACtB,OAAO,gBAAgB,IAAI;OACtB,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,EAC9D,OAAO,OAAO,IAAI;EAEpB,OAAO;;CAET,MAAM,mBAAmB,GAAG,IAAI,OAAO;EACrC,IAAI;EACJ,OAGE,SAAS,EAAE,GAAG,WAAW,KAAK,EAAE,gBAAgB,OAAO,KAAK,EAAE,KAAK;;CAIvE,SAAS,qBAAqB,OAAO;EACnC,IAAI,SAAS,MACX,OAAO;EAET,IAAI,OAAO,UAAU,UACnB,OAAO,UAAU,KAAK,MAAM;EAE9B,OAAO,OAAO,MAAM;;CAGtB,QAAQ,YAAY;CACpB,QAAQ,YAAY;CACpB,QAAQ,KAAK;CACb,QAAQ,OAAO;CACf,QAAQ,iBAAiB;CACzB,QAAQ,aAAa;CACrB,QAAQ,aAAa;CACrB,QAAQ,YAAY;CACpB,QAAQ,WAAW;CACnB,QAAQ,aAAa;CACrB,QAAQ,4BAA4B;CACpC,QAAQ,MAAM;CACd,QAAQ,aAAa;CACrB,QAAQ,oBAAoB;CAC5B,QAAQ,SAAS;CACjB,QAAQ,cAAc;CACtB,QAAQ,oBAAoB;CAC5B,QAAQ,oBAAoB;CAC5B,QAAQ,uBAAuB;CAC/B,QAAQ,gBAAgB;CACxB,QAAQ,aAAa;CACrB,QAAQ,SAAS;CACjB,QAAQ,YAAY;CACpB,QAAQ,qBAAqB;CAC7B,QAAQ,iBAAiB;CACzB,QAAQ,UAAU;CAClB,QAAQ,gBAAgB;CACxB,QAAQ,qBAAqB;CAC7B,QAAQ,SAAS;CACjB,QAAQ,aAAa;CACrB,QAAQ,oBAAoB;CAC5B,QAAQ,wBAAwB;CAChC,QAAQ,YAAY;CACpB,QAAQ,eAAe;CACvB,QAAQ,kBAAkB;CAC1B,QAAQ,oBAAoB;CAC5B,QAAQ,iBAAiB;CACzB,QAAQ,QAAQ;CAChB,QAAQ,cAAc;CACtB,QAAQ,kBAAkB;CAC1B,QAAQ,WAAW;CACnB,QAAQ,OAAO;CACf,QAAQ,gBAAgB;CACxB,QAAQ,YAAY;CACpB,QAAQ,WAAW;CACnB,QAAQ,wBAAwB;CAChC,QAAQ,iBAAiB;CACzB,QAAQ,oBAAoB;CAC5B,QAAQ,WAAW;CACnB,QAAQ,QAAQ;CAChB,QAAQ,uBAAuB;CAC/B,QAAQ,WAAW;CACnB,QAAQ,WAAW;CACnB,QAAQ,YAAY;CACpB,QAAQ,aAAa;CACrB,QAAQ,eAAe;CACvB,QAAQ,gBAAgB;CACxB,QAAQ,UAAU;CAClB,QAAQ,iBAAiB;CACzB,QAAQ,uBAAuB;CAC/B,QAAQ,iBAAiB;CACzB,QAAQ,iBAAiB;CACzB,QAAQ,iBAAiB;CACzB,QAAQ,mBAAmB;CAC3B,QAAQ,iBAAiB;CACzB,QAAQ,SAAS;CACjB,QAAQ,gBAAgB;CACxB,QAAQ,iBAAiB;CACzB,QAAQ,kBAAkB;CAC1B,QAAQ,eAAe;CACvB,QAAQ,WAAW;CACnB,QAAQ,YAAY;CACpB,QAAQ,eAAe;;;;;;;;;;CCplBvB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;;CAG7D,SAAS,QAAQ,KAAK;EACpB,MAAM,MAAsB,uBAAO,OAAO,KAAK;EAC/C,KAAK,MAAM,OAAO,IAAI,MAAM,IAAI,EAAE,IAAI,OAAO;EAC7C,QAAQ,QAAQ,OAAO;;CAGzB,MAAM,YAAY,OAAO,OAAO,EAAE,CAAC;CACnC,MAAM,YAAY,OAAO,OAAO,EAAE,CAAC;CACnC,MAAM,aAAa;CAEnB,MAAM,WAAW;CACjB,MAAM,QAAQ,QAAQ,IAAI,WAAW,EAAE,KAAK,OAAO,IAAI,WAAW,EAAE,KAAK,QACxE,IAAI,WAAW,EAAE,GAAG,OAAO,IAAI,WAAW,EAAE,GAAG;CAChD,MAAM,mBAAmB,QAAQ,IAAI,WAAW,YAAY;CAC5D,MAAM,SAAS,OAAO;CACtB,MAAM,UAAU,KAAK,OAAO;EAC1B,MAAM,IAAI,IAAI,QAAQ,GAAG;EACzB,IAAI,IAAI,IACN,IAAI,OAAO,GAAG,EAAE;;CAGpB,MAAM,iBAAiB,OAAO,UAAU;CACxC,MAAM,UAAU,KAAK,QAAQ,eAAe,KAAK,KAAK,IAAI;CAC1D,MAAM,UAAU,MAAM;CACtB,MAAM,SAAS,QAAQ,aAAa,IAAI,KAAK;CAC7C,MAAM,SAAS,QAAQ,aAAa,IAAI,KAAK;CAC7C,MAAM,UAAU,QAAQ,aAAa,IAAI,KAAK;CAC9C,MAAM,YAAY,QAAQ,aAAa,IAAI,KAAK;CAChD,MAAM,cAAc,QAAQ,OAAO,QAAQ;CAC3C,MAAM,YAAY,QAAQ,OAAO,QAAQ;CACzC,MAAM,YAAY,QAAQ,OAAO,QAAQ;CACzC,MAAM,YAAY,QAAQ,QAAQ,QAAQ,OAAO,QAAQ;CACzD,MAAM,aAAa,QAAQ;EACzB,QAAQ,SAAS,IAAI,IAAI,WAAW,IAAI,KAAK,WAAW,IAAI,KAAK,IAAI,WAAW,IAAI,MAAM;;CAE5F,MAAM,iBAAiB,OAAO,UAAU;CACxC,MAAM,gBAAgB,UAAU,eAAe,KAAK,MAAM;CAC1D,MAAM,aAAa,UAAU;EAC3B,OAAO,aAAa,MAAM,CAAC,MAAM,GAAG,GAAG;;CAEzC,MAAM,iBAAiB,QAAQ,aAAa,IAAI,KAAK;CACrD,MAAM,gBAAgB,QAAQ,SAAS,IAAI,IAAI,QAAQ,SAAS,IAAI,OAAO,OAAO,KAAK,SAAS,KAAK,GAAG,KAAK;CAC7G,MAAM,iBAAiC,wBAErC,sIACD;CACD,MAAM,qBAAqC,wBACzC,4EACD;CACD,MAAM,uBAAuB,OAAO;EAClC,MAAM,QAAwB,uBAAO,OAAO,KAAK;EACjD,SAAS,QAAQ;GAEf,OADY,MAAM,SACH,MAAM,OAAO,GAAG,IAAI;;;CAGvC,MAAM,aAAa;CACnB,MAAM,WAAW,qBACd,QAAQ;EACP,OAAO,IAAI,QAAQ,aAAa,MAAM,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC;GAElE;CACD,MAAM,cAAc;CACpB,MAAM,YAAY,qBACf,QAAQ,IAAI,QAAQ,aAAa,MAAM,CAAC,aAAa,CACvD;CACD,MAAM,aAAa,qBAAqB,QAAQ;EAC9C,OAAO,IAAI,OAAO,EAAE,CAAC,aAAa,GAAG,IAAI,MAAM,EAAE;GACjD;CACF,MAAM,eAAe,qBAClB,QAAQ;EAEP,OADU,MAAM,KAAK,WAAW,IAAI,KAAK;GAG5C;CACD,MAAM,cAAc,OAAO,aAAa,CAAC,OAAO,GAAG,OAAO,SAAS;CACnE,MAAM,kBAAkB,KAAK,GAAG,QAAQ;EACtC,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAC9B,IAAI,GAAG,GAAG,IAAI;;CAGlB,MAAM,OAAO,KAAK,KAAK,OAAO,WAAW,UAAU;EACjD,OAAO,eAAe,KAAK,KAAK;GAC9B,cAAc;GACd,YAAY;GACZ;GACA;GACD,CAAC;;CAEJ,MAAM,iBAAiB,QAAQ;EAC7B,MAAM,IAAI,WAAW,IAAI;EACzB,OAAO,MAAM,EAAE,GAAG,MAAM;;CAE1B,MAAM,YAAY,QAAQ;EACxB,MAAM,IAAI,SAAS,IAAI,GAAG,OAAO,IAAI,GAAG;EACxC,OAAO,MAAM,EAAE,GAAG,MAAM;;CAE1B,IAAI;CACJ,MAAM,sBAAsB;EAC1B,OAAO,gBAAgB,cAAc,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAO,OAAO,WAAW,cAAc,SAAS,OAAO,WAAW,cAAc,SAAS,EAAE;;CAEjN,MAAM,UAAU;CAChB,SAAS,kBAAkB,MAAM;EAC/B,OAAO,QAAQ,KAAK,KAAK,GAAG,WAAW,SAAS,WAAW,KAAK,UAAU,KAAK,CAAC;;CAElF,SAAS,YAAY,QAAQ,SAAS;EACpC,OAAO,SAAS,KAAK,UACnB,UACC,GAAG,QAAQ,OAAO,QAAQ,aAAa,IAAI,UAAU,GAAG,IAC1D;;CAGH,MAAM,aAAa;EACjB,QAAQ;EACR,KAAK;EACL,SAAS;EACT,KAAK;EACL,SAAS;EACT,KAAK;EACL,SAAS;EACT,KAAK;EACL,cAAc;EACd,MAAM;EACN,kBAAkB;EAClB,MAAM;EACN,mBAAmB;EACnB,MAAM;EACN,kBAAkB;EAClB,OAAO;EACP,oBAAoB;EACpB,OAAO;EACP,cAAc;EACd,OAAO;EACP,iBAAiB;EACjB,QAAQ;EACR,qBAAqB;EACrB,QAAQ;EACR,UAAU;EACV,MAAM;EACN,QAAQ;EACR,MAAM;EACP;CACD,MAAM,iBAAiB;GACpB,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,MAAM;GACN,MAAM;GACN,MAAM;GACN,OAAO;GACP,OAAO;GACP,KAAK;GACL,KAAK;EACP;CAED,MAAM,aAAa;EACjB,WAAW;EACX,KAAK;EACL,wBAAwB;EACxB,KAAK;EACL,sBAAsB;EACtB,KAAK;EACL,iBAAiB;EACjB,KAAK;EACL,kBAAkB;EAClB,MAAM;EACN,kBAAkB;EAClB,MAAM;EACN,YAAY;EACZ,MAAM;EACN,YAAY;EACZ,OAAO;EACP,+BAA+B;EAC/B,OAAO;EACP,wBAAwB;EACxB,OAAO;EACP,aAAa;EACb,KAAK;EACN;CAED,MAAM,YAAY;EAChB,UAAU;EACV,KAAK;EACL,WAAW;EACX,KAAK;EACL,aAAa;EACb,KAAK;EACN;CACD,MAAM,gBAAgB;GACnB,IAAI;GACJ,IAAI;GACJ,IAAI;EACN;CAGD,MAAM,oBAAoC,wBAAQ,wNAAgB;CAClE,MAAM,wBAAwB;CAE9B,MAAM,QAAQ;CACd,SAAS,kBAAkB,QAAQ,QAAQ,GAAG,MAAM,OAAO,QAAQ;EACjE,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,OAAO,OAAO,CAAC;EACnD,MAAM,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,OAAO,OAAO,CAAC;EAC/C,IAAI,QAAQ,KAAK,OAAO;EACxB,IAAI,QAAQ,OAAO,MAAM,UAAU;EACnC,MAAM,mBAAmB,MAAM,QAAQ,GAAG,QAAQ,MAAM,MAAM,EAAE;EAChE,QAAQ,MAAM,QAAQ,GAAG,QAAQ,MAAM,MAAM,EAAE;EAC/C,IAAI,QAAQ;EACZ,MAAM,MAAM,EAAE;EACd,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACrC,SAAS,MAAM,GAAG,UAAU,iBAAiB,MAAM,iBAAiB,GAAG,UAAU;GACjF,IAAI,SAAS,OAAO;IAClB,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,IAAI,SAAS,MAAM,OAAO,KAAK;KAC1D,IAAI,IAAI,KAAK,KAAK,MAAM,QAAQ;KAChC,MAAM,OAAO,IAAI;KACjB,IAAI,KACF,GAAG,OAAO,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,MAAM,KACvE;KACD,MAAM,aAAa,MAAM,GAAG;KAC5B,MAAM,mBAAmB,iBAAiB,MAAM,iBAAiB,GAAG,UAAU;KAC9E,IAAI,MAAM,GAAG;MACX,MAAM,MAAM,SAAS,SAAS,aAAa;MAC3C,MAAM,SAAS,KAAK,IAClB,GACA,MAAM,QAAQ,aAAa,MAAM,MAAM,MACxC;MACD,IAAI,KAAK,WAAW,IAAI,OAAO,IAAI,GAAG,IAAI,OAAO,OAAO,CAAC;YACpD,IAAI,IAAI,GAAG;MAChB,IAAI,MAAM,OAAO;OACf,MAAM,SAAS,KAAK,IAAI,KAAK,IAAI,MAAM,OAAO,WAAW,EAAE,EAAE;OAC7D,IAAI,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC;;MAEzC,SAAS,aAAa;;;IAG1B;;;EAGJ,OAAO,IAAI,KAAK,KAAK;;CAGvB,SAAS,eAAe,OAAO;EAC7B,IAAI,QAAQ,MAAM,EAAE;GAClB,MAAM,MAAM,EAAE;GACd,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;IACrC,MAAM,OAAO,MAAM;IACnB,MAAM,aAAa,SAAS,KAAK,GAAG,iBAAiB,KAAK,GAAG,eAAe,KAAK;IACjF,IAAI,YACF,KAAK,MAAM,OAAO,YAChB,IAAI,OAAO,WAAW;;GAI5B,OAAO;SACF,IAAI,SAAS,MAAM,IAAI,SAAS,MAAM,EAC3C,OAAO;;CAGX,MAAM,kBAAkB;CACxB,MAAM,sBAAsB;CAC5B,MAAM,iBAAiB;CACvB,SAAS,iBAAiB,SAAS;EACjC,MAAM,MAAM,EAAE;EACd,QAAQ,QAAQ,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,CAAC,SAAS,SAAS;GAC3E,IAAI,MAAM;IACR,MAAM,MAAM,KAAK,MAAM,oBAAoB;IAC3C,IAAI,SAAS,MAAM,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,GAAG,MAAM;;IAEvD;EACF,OAAO;;CAET,SAAS,eAAe,QAAQ;EAC9B,IAAI,CAAC,QAAQ,OAAO;EACpB,IAAI,SAAS,OAAO,EAAE,OAAO;EAC7B,IAAI,MAAM;EACV,KAAK,MAAM,OAAO,QAAQ;GACxB,MAAM,QAAQ,OAAO;GACrB,IAAI,SAAS,MAAM,IAAI,OAAO,UAAU,UAAU;IAChD,MAAM,gBAAgB,IAAI,WAAW,KAAK,GAAG,MAAM,UAAU,IAAI;IACjE,OAAO,GAAG,cAAc,GAAG,MAAM;;;EAGrC,OAAO;;CAET,SAAS,eAAe,OAAO;EAC7B,IAAI,MAAM;EACV,IAAI,SAAS,MAAM,EACjB,MAAM;OACD,IAAI,QAAQ,MAAM,EACvB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACrC,MAAM,aAAa,eAAe,MAAM,GAAG;GAC3C,IAAI,YACF,OAAO,aAAa;;OAGnB,IAAI,SAAS,MAAM;QACnB,MAAM,QAAQ,OACjB,IAAI,MAAM,OACR,OAAO,OAAO;;EAIpB,OAAO,IAAI,MAAM;;CAEnB,SAAS,eAAe,OAAO;EAC7B,IAAI,CAAC,OAAO,OAAO;EACnB,IAAI,EAAE,OAAO,OAAO,UAAU;EAC9B,IAAI,SAAS,CAAC,SAAS,MAAM,EAC3B,MAAM,QAAQ,eAAe,MAAM;EAErC,IAAI,OACF,MAAM,QAAQ,eAAe,MAAM;EAErC,OAAO;;CAGT,MAAM,YAAY;CAClB,MAAM,WAAW;CACjB,MAAM,YAAY;CAClB,MAAM,YAAY;CAClB,MAAM,YAA4B,wBAAQ,UAAU;CACpD,MAAM,WAA2B,wBAAQ,SAAS;CAClD,MAAM,cAA8B,wBAAQ,UAAU;CACtD,MAAM,YAA4B,wBAAQ,UAAU;CAEpD,MAAM,sBAAsB;CAC5B,MAAM,uBAAuC,wBAAQ,oBAAoB;CACzE,MAAM,gBAAgC,wBACpC,sBAAsB,qJACvB;CACD,SAAS,mBAAmB,OAAO;EACjC,OAAO,CAAC,CAAC,SAAS,UAAU;;CAE9B,MAAM,mBAAmB;CACzB,MAAM,sBAAsB,EAAE;CAC9B,SAAS,kBAAkB,MAAM;EAC/B,IAAI,oBAAoB,eAAe,KAAK,EAC1C,OAAO,oBAAoB;EAE7B,MAAM,WAAW,iBAAiB,KAAK,KAAK;EAC5C,IAAI,UACF,QAAQ,MAAM,0BAA0B,OAAO;EAEjD,OAAO,oBAAoB,QAAQ,CAAC;;CAEtC,MAAM,iBAAiB;EACrB,eAAe;EACf,WAAW;EACX,SAAS;EACT,WAAW;EACZ;CACD,MAAM,kBAAkC,wBACtC,y+BACD;CACD,MAAM,iBAAiC,wBACrC,moFACD;CACD,MAAM,oBAAoC,wBACxC,oyBACD;CACD,SAAS,sBAAsB,OAAO;EACpC,IAAI,SAAS,MACX,OAAO;EAET,MAAM,OAAO,OAAO;EACpB,OAAO,SAAS,YAAY,SAAS,YAAY,SAAS;;CAG5D,MAAM,WAAW;CACjB,SAAS,WAAW,QAAQ;EAC1B,MAAM,MAAM,KAAK;EACjB,MAAM,QAAQ,SAAS,KAAK,IAAI;EAChC,IAAI,CAAC,OACH,OAAO;EAET,IAAI,OAAO;EACX,IAAI;EACJ,IAAI;EACJ,IAAI,YAAY;EAChB,KAAK,QAAQ,MAAM,OAAO,QAAQ,IAAI,QAAQ,SAAS;GACrD,QAAQ,IAAI,WAAW,MAAM,EAA7B;IACE,KAAK;KACH,UAAU;KACV;IACF,KAAK;KACH,UAAU;KACV;IACF,KAAK;KACH,UAAU;KACV;IACF,KAAK;KACH,UAAU;KACV;IACF,KAAK;KACH,UAAU;KACV;IACF,SACE;;GAEJ,IAAI,cAAc,OAChB,QAAQ,IAAI,MAAM,WAAW,MAAM;GAErC,YAAY,QAAQ;GACpB,QAAQ;;EAEV,OAAO,cAAc,QAAQ,OAAO,IAAI,MAAM,WAAW,MAAM,GAAG;;CAEpE,MAAM,iBAAiB;CACvB,SAAS,kBAAkB,KAAK;EAC9B,OAAO,IAAI,QAAQ,gBAAgB,GAAG;;CAExC,MAAM,4BAA4B;CAClC,SAAS,qBAAqB,KAAK,cAAc;EAC/C,OAAO,IAAI,QACT,4BACC,MAAM,eAAe,MAAM,OAAM,aAAY,OAAO,MAAM,KAAK,IACjE;;CAGH,SAAS,mBAAmB,GAAG,GAAG;EAChC,IAAI,EAAE,WAAW,EAAE,QAAQ,OAAO;EAClC,IAAI,QAAQ;EACZ,KAAK,IAAI,IAAI,GAAG,SAAS,IAAI,EAAE,QAAQ,KACrC,QAAQ,WAAW,EAAE,IAAI,EAAE,GAAG;EAEhC,OAAO;;CAET,SAAS,WAAW,GAAG,GAAG;EACxB,IAAI,MAAM,GAAG,OAAO;EACpB,IAAI,aAAa,OAAO,EAAE;EAC1B,IAAI,aAAa,OAAO,EAAE;EAC1B,IAAI,cAAc,YAChB,OAAO,cAAc,aAAa,EAAE,SAAS,KAAK,EAAE,SAAS,GAAG;EAElE,aAAa,SAAS,EAAE;EACxB,aAAa,SAAS,EAAE;EACxB,IAAI,cAAc,YAChB,OAAO,MAAM;EAEf,aAAa,QAAQ,EAAE;EACvB,aAAa,QAAQ,EAAE;EACvB,IAAI,cAAc,YAChB,OAAO,cAAc,aAAa,mBAAmB,GAAG,EAAE,GAAG;EAE/D,aAAa,SAAS,EAAE;EACxB,aAAa,SAAS,EAAE;EACxB,IAAI,cAAc,YAAY;GAC5B,IAAI,CAAC,cAAc,CAAC,YAClB,OAAO;GAIT,IAFmB,OAAO,KAAK,EAAE,CAAC,WACf,OAAO,KAAK,EAAE,CAAC,QAEhC,OAAO;GAET,KAAK,MAAM,OAAO,GAAG;IACnB,MAAM,UAAU,EAAE,eAAe,IAAI;IACrC,MAAM,UAAU,EAAE,eAAe,IAAI;IACrC,IAAI,WAAW,CAAC,WAAW,CAAC,WAAW,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAC3E,OAAO;;;EAIb,OAAO,OAAO,EAAE,KAAK,OAAO,EAAE;;CAEhC,SAAS,aAAa,KAAK,KAAK;EAC9B,OAAO,IAAI,WAAW,SAAS,WAAW,MAAM,IAAI,CAAC;;CAGvD,MAAM,SAAS,QAAQ;EACrB,OAAO,CAAC,EAAE,OAAO,IAAI,iBAAiB;;CAExC,MAAM,mBAAmB,QAAQ;EAC/B,OAAO,SAAS,IAAI,GAAG,MAAM,OAAO,OAAO,KAAK,QAAQ,IAAI,IAAI,SAAS,IAAI,KAAK,IAAI,aAAa,kBAAkB,CAAC,WAAW,IAAI,SAAS,IAAI,MAAM,IAAI,GAAG,gBAAgB,IAAI,MAAM,GAAG,KAAK,UAAU,KAAK,UAAU,EAAE,GAAG,OAAO,IAAI;;CAE5O,MAAM,YAAY,MAAM,QAAQ;EAC9B,IAAI,MAAM,IAAI,EACZ,OAAO,SAAS,MAAM,IAAI,MAAM;OAC3B,IAAI,MAAM,IAAI,EACnB,OAAO,GACJ,OAAO,IAAI,KAAK,KAAK,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,QACtC,SAAS,CAAC,KAAK,OAAO,MAAM;GAC3B,QAAQ,gBAAgB,KAAK,EAAE,GAAG,SAAS;GAC3C,OAAO;KAET,EAAE,CACH,EACF;OACI,IAAI,MAAM,IAAI,EACnB,OAAO,GACJ,OAAO,IAAI,KAAK,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,KAAK,MAAM,gBAAgB,EAAE,CAAC,EACvE;OACI,IAAI,SAAS,IAAI,EACtB,OAAO,gBAAgB,IAAI;OACtB,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,EAC9D,OAAO,OAAO,IAAI;EAEpB,OAAO;;CAET,MAAM,mBAAmB,GAAG,IAAI,OAAO;EACrC,IAAI;EACJ,OAGE,SAAS,EAAE,GAAG,WAAW,KAAK,EAAE,gBAAgB,OAAO,KAAK,EAAE,KAAK;;CAIvE,SAAS,qBAAqB,OAAO;EACnC,IAAI,SAAS,MACX,OAAO;EAET,IAAI,OAAO,UAAU,UACnB,OAAO,UAAU,KAAK,MAAM;EAE9B,IAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,MAAM,EAEpD,QAAQ,KACN,qGACA,MACD;EAGL,OAAO,OAAO,MAAM;;CAGtB,QAAQ,YAAY;CACpB,QAAQ,YAAY;CACpB,QAAQ,KAAK;CACb,QAAQ,OAAO;CACf,QAAQ,iBAAiB;CACzB,QAAQ,aAAa;CACrB,QAAQ,aAAa;CACrB,QAAQ,YAAY;CACpB,QAAQ,WAAW;CACnB,QAAQ,aAAa;CACrB,QAAQ,4BAA4B;CACpC,QAAQ,MAAM;CACd,QAAQ,aAAa;CACrB,QAAQ,oBAAoB;CAC5B,QAAQ,SAAS;CACjB,QAAQ,cAAc;CACtB,QAAQ,oBAAoB;CAC5B,QAAQ,oBAAoB;CAC5B,QAAQ,uBAAuB;CAC/B,QAAQ,gBAAgB;CACxB,QAAQ,aAAa;CACrB,QAAQ,SAAS;CACjB,QAAQ,YAAY;CACpB,QAAQ,qBAAqB;CAC7B,QAAQ,iBAAiB;CACzB,QAAQ,UAAU;CAClB,QAAQ,gBAAgB;CACxB,QAAQ,qBAAqB;CAC7B,QAAQ,SAAS;CACjB,QAAQ,aAAa;CACrB,QAAQ,oBAAoB;CAC5B,QAAQ,wBAAwB;CAChC,QAAQ,YAAY;CACpB,QAAQ,eAAe;CACvB,QAAQ,kBAAkB;CAC1B,QAAQ,oBAAoB;CAC5B,QAAQ,iBAAiB;CACzB,QAAQ,QAAQ;CAChB,QAAQ,cAAc;CACtB,QAAQ,kBAAkB;CAC1B,QAAQ,WAAW;CACnB,QAAQ,OAAO;CACf,QAAQ,gBAAgB;CACxB,QAAQ,YAAY;CACpB,QAAQ,WAAW;CACnB,QAAQ,wBAAwB;CAChC,QAAQ,iBAAiB;CACzB,QAAQ,oBAAoB;CAC5B,QAAQ,WAAW;CACnB,QAAQ,QAAQ;CAChB,QAAQ,uBAAuB;CAC/B,QAAQ,WAAW;CACnB,QAAQ,WAAW;CACnB,QAAQ,YAAY;CACpB,QAAQ,aAAa;CACrB,QAAQ,eAAe;CACvB,QAAQ,gBAAgB;CACxB,QAAQ,UAAU;CAClB,QAAQ,iBAAiB;CACzB,QAAQ,uBAAuB;CAC/B,QAAQ,iBAAiB;CACzB,QAAQ,iBAAiB;CACzB,QAAQ,iBAAiB;CACzB,QAAQ,mBAAmB;CAC3B,QAAQ,iBAAiB;CACzB,QAAQ,SAAS;CACjB,QAAQ,gBAAgB;CACxB,QAAQ,iBAAiB;CACzB,QAAQ,kBAAkB;CAC1B,QAAQ,eAAe;CACvB,QAAQ,WAAW;CACnB,QAAQ,YAAY;CACpB,QAAQ,eAAe;;;;;CCjmBvB,IAAI,QAAQ,IAAI,aAAa,cAC3B,OAAO,UAAA,yBAAA;MAEP,OAAO,UAAA,oBAAA;;;;;CCHT,IAAI;CACJ,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;CAC7D,QAAQ,gBAAgB,KAAK;CAC7B,QAAQ,mBAAmB;CAC3B,QAAQ,kBAAkB;CAC1B,MAAM,YAAY,IAAI,IAAI;EACtB,CAAC,GAAG,MAAM;EAEV,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,IAAI;EACV,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,IAAI;EACV,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,IAAI;EACV,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,IAAI;EACV,CAAC,KAAK,IAAI;EACV,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,IAAI;EACV,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,IAAI;EACV,CAAC,KAAK,KAAK;EACX,CAAC,KAAK,IAAI;EACV,CAAC,KAAK,IAAI;EACV,CAAC,KAAK,IAAI;EACb,CAAC;;;;CAIF,QAAQ,iBAEP,KAAK,OAAO,mBAAmB,QAAQ,OAAO,KAAK,IAAI,OAAO,cAAc;EACzE,IAAI,SAAS;EACb,IAAI,YAAY,OAAO;GACnB,aAAa;GACb,UAAU,OAAO,aAAe,cAAc,KAAM,OAAQ,MAAM;GAClE,YAAY,QAAS,YAAY;;EAErC,UAAU,OAAO,aAAa,UAAU;EACxC,OAAO;;;;;;;CAOX,SAAS,iBAAiB,WAAW;EACjC,IAAI;EACJ,IAAK,aAAa,SAAS,aAAa,SACpC,YAAY,SACZ,OAAO;EAEX,QAAQ,KAAK,UAAU,IAAI,UAAU,MAAM,QAAQ,OAAO,KAAK,IAAI,KAAK;;;;;;;;;CAS5E,SAAS,gBAAgB,WAAW;EAChC,QAAQ,GAAG,QAAQ,eAAe,iBAAiB,UAAU,CAAC;;;;;;CCzElE,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;CAC7D,QAAQ,eAAe;CAKvB,SAAS,aAAa,OAAO;EACzB,MAAM,SAEN,OAAO,SAAS,aAGR,KAAK,MAAM,GAGX,OAAO,OAAO,SAAS,aAEf,OAAO,KAAK,OAAO,SAAS,CAAC,SAAS,SAAS,GAE/C,IAAI,OAAO,OAAO,SAAS,CAAC,SAAS,SAAS;EAC9D,MAAM,aAAa,OAAO,SAAS;EACnC,MAAM,MAAM,IAAI,YAAY,aAAa,EAAE;EAC3C,KAAK,IAAI,QAAQ,GAAG,WAAW,GAAG,QAAQ,YAAY,SAAS,GAAG;GAC9D,MAAM,KAAK,OAAO,WAAW,MAAM;GACnC,MAAM,KAAK,OAAO,WAAW,QAAQ,EAAE;GACvC,IAAI,cAAc,KAAM,MAAM;;EAElC,OAAO;;;;;;CC1BX,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;CAC7D,QAAQ,iBAAiB,KAAK;CAE9B,QAAQ,kBAAkB,GADpB,uBACuB,CAAmB,cAAc,28+BAA28+B;;;;;CCHzg/B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;CAC7D,QAAQ,gBAAgB,KAAK;CAE7B,QAAQ,iBAAiB,GADnB,uBACsB,CAAmB,cAAc,mEAAmE;;;;;CCJhI,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;CAC7D,QAAQ,eAAe,KAAK;;;;;;;;;;;CAW5B,IAAI;CACJ,CAAC,SAAU,cAAc;EACrB,aAAa,aAAa,kBAAkB,SAAS;EACrD,aAAa,aAAa,YAAY,QAAQ;EAC9C,aAAa,aAAa,mBAAmB,QAAQ;EACrD,aAAa,aAAa,gBAAgB,OAAO;IAClD,iBAAiB,QAAQ,eAAe,eAAe,EAAE,EAAE;;;;;CClB9D,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;CAC7D,QAAQ,gBAAgB,QAAQ,iBAAiB,QAAQ,mBAAmB,QAAQ,gBAAgB,QAAQ,kBAAkB,QAAQ,gBAAgB,QAAQ,eAAe,KAAK;CAClL,QAAQ,kBAAkB;CAC1B,QAAQ,aAAa;CACrB,QAAQ,sBAAsB;CAC9B,QAAQ,mBAAmB;CAC3B,QAAQ,YAAY;CACpB,MAAM,wBAAA,0BAAA;CACN,MAAM,wBAAA,0BAAA;CACN,MAAM,uBAAA,yBAAA;CACN,MAAM,sBAAA,wBAAA;CACN,IAAI;CACJ,CAAC,SAAU,WAAW;EAClB,UAAU,UAAU,SAAS,MAAM;EACnC,UAAU,UAAU,UAAU,MAAM;EACpC,UAAU,UAAU,YAAY,MAAM;EACtC,UAAU,UAAU,UAAU,MAAM;EACpC,UAAU,UAAU,UAAU,MAAM;EACpC,UAAU,UAAU,aAAa,MAAM;EACvC,UAAU,UAAU,aAAa,OAAO;EACxC,UAAU,UAAU,aAAa,OAAO;EACxC,UAAU,UAAU,aAAa,OAAO;EACxC,UAAU,UAAU,aAAa,MAAM;EACvC,UAAU,UAAU,aAAa,MAAM;EACvC,UAAU,UAAU,aAAa,MAAM;IACxC,cAAc,YAAY,EAAE,EAAE;;CAEjC,MAAM,eAAe;CACrB,SAAS,SAAS,MAAM;EACpB,OAAO,QAAQ,UAAU,QAAQ,QAAQ,UAAU;;CAEvD,SAAS,uBAAuB,MAAM;EAClC,OAAS,QAAQ,UAAU,WAAW,QAAQ,UAAU,WACnD,QAAQ,UAAU,WAAW,QAAQ,UAAU;;CAExD,SAAS,oBAAoB,MAAM;EAC/B,OAAS,QAAQ,UAAU,WAAW,QAAQ,UAAU,WACnD,QAAQ,UAAU,WAAW,QAAQ,UAAU,WAChD,SAAS,KAAK;;;;;;;;CAQtB,SAAS,8BAA8B,MAAM;EACzC,OAAO,SAAS,UAAU,UAAU,oBAAoB,KAAK;;CAEjE,IAAI;CACJ,CAAC,SAAU,oBAAoB;EAC3B,mBAAmB,mBAAmB,iBAAiB,KAAK;EAC5D,mBAAmB,mBAAmB,kBAAkB,KAAK;EAC7D,mBAAmB,mBAAmB,oBAAoB,KAAK;EAC/D,mBAAmB,mBAAmB,gBAAgB,KAAK;EAC3D,mBAAmB,mBAAmB,iBAAiB,KAAK;IAC7D,uBAAuB,qBAAqB,EAAE,EAAE;CACnD,IAAI;CACJ,CAAC,SAAU,cAAc;;EAErB,aAAa,aAAa,YAAY,KAAK;;EAE3C,aAAa,aAAa,YAAY,KAAK;;EAE3C,aAAa,aAAa,eAAe,KAAK;IAC/C,iBAAiB,QAAQ,eAAe,eAAe,EAAE,EAAE;;;;CAI9D,IAAM,gBAAN,MAAoB;EAChB,YAGA,YAUA,eAEA,QAAQ;GACJ,KAAK,aAAa;GAClB,KAAK,gBAAgB;GACrB,KAAK,SAAS;;GAEd,KAAK,QAAQ,mBAAmB;;GAEhC,KAAK,WAAW;;;;;;;GAOhB,KAAK,SAAS;;GAEd,KAAK,YAAY;;GAEjB,KAAK,SAAS;;GAEd,KAAK,aAAa,aAAa;;GAE/B,KAAK,cAAc;;;EAGvB,YAAY,YAAY;GACpB,KAAK,aAAa;GAClB,KAAK,QAAQ,mBAAmB;GAChC,KAAK,SAAS;GACd,KAAK,YAAY;GACjB,KAAK,SAAS;GACd,KAAK,WAAW;GAChB,KAAK,cAAc;;;;;;;;;;;;;EAavB,MAAM,OAAO,QAAQ;GACjB,QAAQ,KAAK,OAAb;IACI,KAAK,mBAAmB;KACpB,IAAI,MAAM,WAAW,OAAO,KAAK,UAAU,KAAK;MAC5C,KAAK,QAAQ,mBAAmB;MAChC,KAAK,YAAY;MACjB,OAAO,KAAK,kBAAkB,OAAO,SAAS,EAAE;;KAEpD,KAAK,QAAQ,mBAAmB;KAChC,OAAO,KAAK,iBAAiB,OAAO,OAAO;IAE/C,KAAK,mBAAmB,cACpB,OAAO,KAAK,kBAAkB,OAAO,OAAO;IAEhD,KAAK,mBAAmB,gBACpB,OAAO,KAAK,oBAAoB,OAAO,OAAO;IAElD,KAAK,mBAAmB,YACpB,OAAO,KAAK,gBAAgB,OAAO,OAAO;IAE9C,KAAK,mBAAmB,aACpB,OAAO,KAAK,iBAAiB,OAAO,OAAO;;;;;;;;;;;;EAavD,kBAAkB,OAAO,QAAQ;GAC7B,IAAI,UAAU,MAAM,QAChB,OAAO;GAEX,KAAK,MAAM,WAAW,OAAO,GAAG,kBAAkB,UAAU,SAAS;IACjE,KAAK,QAAQ,mBAAmB;IAChC,KAAK,YAAY;IACjB,OAAO,KAAK,gBAAgB,OAAO,SAAS,EAAE;;GAElD,KAAK,QAAQ,mBAAmB;GAChC,OAAO,KAAK,oBAAoB,OAAO,OAAO;;;;;;;;;;;EAWlD,gBAAgB,OAAO,QAAQ;GAC3B,OAAO,SAAS,MAAM,QAAQ;IAC1B,MAAM,OAAO,MAAM,WAAW,OAAO;IACrC,IAAI,SAAS,KAAK,IAAI,uBAAuB,KAAK,EAAE;KAEhD,MAAM,QAAQ,QAAQ,UAAU,OAC1B,OAAO,UAAU,QAChB,OAAO,gBAAgB,UAAU,UAAU;KAClD,KAAK,SAAS,KAAK,SAAS,KAAK;KACjC,KAAK;KACL;WAGA,OAAO,KAAK,kBAAkB,MAAM,EAAE;;GAG9C,OAAO;;;;;;;;;;;EAWX,oBAAoB,OAAO,QAAQ;GAC/B,OAAO,SAAS,MAAM,QAAQ;IAC1B,MAAM,OAAO,MAAM,WAAW,OAAO;IACrC,IAAI,SAAS,KAAK,EAAE;KAChB,KAAK,SAAS,KAAK,SAAS,MAAM,OAAO,UAAU;KACnD,KAAK;KACL;WAGA,OAAO,KAAK,kBAAkB,MAAM,EAAE;;GAG9C,OAAO;;;;;;;;;;;;;;;EAeX,kBAAkB,QAAQ,gBAAgB;GACtC,IAAI;GAEJ,IAAI,KAAK,YAAY,gBAAgB;IACjC,CAAC,KAAK,KAAK,YAAY,QAAQ,OAAO,KAAK,KAAa,GAAG,2CAA2C,KAAK,SAAS;IACpH,OAAO;;GAGX,IAAI,WAAW,UAAU,MACrB,KAAK,YAAY;QAEhB,IAAI,KAAK,eAAe,aAAa,QACtC,OAAO;GAEX,KAAK,eAAe,GAAG,sBAAsB,kBAAkB,KAAK,OAAO,EAAE,KAAK,SAAS;GAC3F,IAAI,KAAK,QAAQ;IACb,IAAI,WAAW,UAAU,MACrB,KAAK,OAAO,yCAAyC;IAEzD,KAAK,OAAO,kCAAkC,KAAK,OAAO;;GAE9D,OAAO,KAAK;;;;;;;;;;;EAWhB,iBAAiB,OAAO,QAAQ;GAC5B,MAAM,EAAE,eAAe;GACvB,IAAI,UAAU,WAAW,KAAK;GAE9B,IAAI,eAAe,UAAU,oBAAoB,aAAa,iBAAiB;GAC/E,OAAO,SAAS,MAAM,QAAQ;IAE1B,IAAI,gBAAgB,MAAM,UAAU,oBAAoB,aAAa,YAAY,GAAG;KAChF,MAAM,aAAa,UAAU,oBAAoB,aAAa,kBAAkB;KAEhF,IAAI,KAAK,gBAAgB,GAAG;MACxB,MAAM,YAAY,UAAU,oBAAoB,aAAa;MAC7D,IAAI,MAAM,WAAW,OAAO,KAAK,WAC7B,OAAO,KAAK,WAAW,IACjB,IACA,KAAK,8BAA8B;MAE7C;MACA,KAAK;MACL,KAAK;;KAGT,OAAO,KAAK,cAAc,WAAW;MACjC,IAAI,UAAU,MAAM,QAChB,OAAO;MAEX,MAAM,oBAAoB,KAAK,cAAc;MAC7C,MAAM,aAAa,WAAW,KAAK,YAAY,KAAK,qBAAqB;MACzE,MAAM,eAAe,oBAAoB,MAAM,IACzC,aAAa,MACZ,cAAc,IAAK;MAC1B,IAAI,MAAM,WAAW,OAAO,KAAK,cAAc;OAC3C,KAAK,cAAc;OACnB,OAAO,KAAK,WAAW,IACjB,IACA,KAAK,8BAA8B;;MAE7C;MACA,KAAK;MACL,KAAK;;KAET,KAAK,cAAc;KACnB,KAAK,aAAa,KAAK,aAAa;KACpC,UAAU,WAAW,KAAK;KAC1B,eAAe,UAAU,oBAAoB,aAAa,iBAAiB;;IAE/E,IAAI,UAAU,MAAM,QAChB;IACJ,MAAM,OAAO,MAAM,WAAW,OAAO;IAQrC,IAAI,SAAS,UAAU,QACnB,gBAAgB,MACf,UAAU,oBAAoB,aAAa,YAAY,GACxD,OAAO,KAAK,oBAAoB,KAAK,WAAW,aAAa,KAAK,WAAW,KAAK,OAAO;IAE7F,KAAK,YAAY,gBAAgB,YAAY,SAAS,KAAK,YAAY,KAAK,IAAI,GAAG,YAAY,EAAE,KAAK;IACtG,IAAI,KAAK,YAAY,GACjB,OAAO,KAAK,WAAW,KAElB,KAAK,eAAe,aAAa,cAE7B,gBAAgB,KAEb,8BAA8B,KAAK,IACzC,IACA,KAAK,8BAA8B;IAE7C,UAAU,WAAW,KAAK;IAC1B,eAAe,UAAU,oBAAoB,aAAa,iBAAiB;IAE3E,IAAI,gBAAgB,GAAG;KAEnB,IAAI,SAAS,UAAU,MACnB,OAAO,KAAK,oBAAoB,KAAK,WAAW,aAAa,KAAK,WAAW,KAAK,OAAO;KAG7F,IAAI,KAAK,eAAe,aAAa,WAChC,UAAU,oBAAoB,aAAa,YAAY,GAAG;MAC3D,KAAK,SAAS,KAAK;MACnB,KAAK,YAAY,KAAK;MACtB,KAAK,SAAS;;;IAItB;IACA,KAAK;;GAET,OAAO;;;;;;;EAOX,+BAA+B;GAC3B,IAAI;GACJ,MAAM,EAAE,QAAQ,eAAe;GAC/B,MAAM,eAAe,WAAW,UAAU,oBAAoB,aAAa,iBAAiB;GAC5F,KAAK,oBAAoB,QAAQ,aAAa,KAAK,SAAS;GAC5D,CAAC,KAAK,KAAK,YAAY,QAAQ,OAAO,KAAK,KAAa,GAAG,yCAAyC;GACpG,OAAO,KAAK;;;;;;;;;;;EAWhB,oBAAoB,QAAQ,aAAa,UAAU;GAC/C,MAAM,EAAE,eAAe;GACvB,KAAK,cAAc,gBAAgB,IAC7B,WAAW,UACT,EAAE,oBAAoB,aAAa,eAAe,oBAAoB,aAAa,UACrF,WAAW,SAAS,IAAI,SAAS;GACvC,IAAI,gBAAgB,GAEhB,KAAK,cAAc,WAAW,SAAS,IAAI,SAAS;GAExD,OAAO;;;;;;;;;EASX,MAAM;GACF,IAAI;GACJ,QAAQ,KAAK,OAAb;IACI,KAAK,mBAAmB,aAEpB,OAAO,KAAK,WAAW,MAClB,KAAK,eAAe,aAAa,aAC9B,KAAK,WAAW,KAAK,aACvB,KAAK,8BAA8B,GACnC;IAGV,KAAK,mBAAmB,gBACpB,OAAO,KAAK,kBAAkB,GAAG,EAAE;IAEvC,KAAK,mBAAmB,YACpB,OAAO,KAAK,kBAAkB,GAAG,EAAE;IAEvC,KAAK,mBAAmB;KACpB,CAAC,KAAK,KAAK,YAAY,QAAQ,OAAO,KAAK,KAAa,GAAG,2CAA2C,KAAK,SAAS;KACpH,OAAO;IAEX,KAAK,mBAAmB,aAEpB,OAAO;;;;CAKvB,QAAQ,gBAAgB;;;;;;;CAOxB,SAAS,WAAW,YAAY;EAC5B,IAAI,cAAc;EAClB,MAAM,UAAU,IAAI,cAAc,aAAa,SAAU,gBAAgB,GAAG,sBAAsB,eAAe,KAAK,CAAE;EACxH,OAAO,SAAS,eAAe,OAAO,YAAY;GAC9C,IAAI,YAAY;GAChB,IAAI,SAAS;GACb,QAAQ,SAAS,MAAM,QAAQ,KAAK,OAAO,KAAK,GAAG;IAC/C,eAAe,MAAM,MAAM,WAAW,OAAO;IAC7C,QAAQ,YAAY,WAAW;IAC/B,MAAM,SAAS,QAAQ,MAAM,OAE7B,SAAS,EAAE;IACX,IAAI,SAAS,GAAG;KACZ,YAAY,SAAS,QAAQ,KAAK;KAClC;;IAEJ,YAAY,SAAS;IAErB,SAAS,WAAW,IAAI,YAAY,IAAI;;GAE5C,MAAM,SAAS,cAAc,MAAM,MAAM,UAAU;GAEnD,cAAc;GACd,OAAO;;;;;;;;;;;;;CAaf,SAAS,gBAAgB,YAAY,SAAS,WAAW,MAAM;EAC3D,MAAM,eAAe,UAAU,oBAAoB,aAAa,kBAAkB;EAClF,MAAM,aAAa,UAAU,oBAAoB,aAAa;EAE9D,IAAI,gBAAgB,GAChB,OAAO,eAAe,KAAK,SAAS,aAAa,YAAY;EAGjE,IAAI,YAAY;GACZ,MAAM,QAAQ,OAAO;GACrB,OAAO,QAAQ,KAAK,SAAS,cACvB,KACA,WAAW,YAAY,SAAS;;EAG1C,MAAM,iBAAkB,cAAc,KAAM;EAK5C,IAAI,KAAK;EACT,IAAI,KAAK,cAAc;EACvB,OAAO,MAAM,IAAI;GACb,MAAM,MAAO,KAAK,OAAQ;GAG1B,MAAM,SADS,WAAW,aADb,OAAO,QAEQ,MAAM,KAAK,IAAM;GAC7C,IAAI,SAAS,MACT,KAAK,MAAM;QAEV,IAAI,SAAS,MACd,KAAK,MAAM;QAGX,OAAO,WAAW,YAAY,iBAAiB;;EAGvD,OAAO;;CAEX,MAAM,cAA8B,2BAAW,sBAAsB,eAAe;CACpF,MAAM,aAA6B,2BAAW,qBAAqB,cAAc;;;;;;;;CAQjF,SAAS,WAAW,YAAY,OAAO,aAAa,QAAQ;EACxD,OAAO,YAAY,YAAY,KAAK;;;;;;;;CAQxC,SAAS,oBAAoB,eAAe;EACxC,OAAO,YAAY,eAAe,aAAa,UAAU;;;;;;;;CAQ7D,SAAS,iBAAiB,YAAY;EAClC,OAAO,YAAY,YAAY,aAAa,OAAO;;;;;;;;CAQvD,SAAS,UAAU,WAAW;EAC1B,OAAO,WAAW,WAAW,aAAa,OAAO;;CAErD,IAAI,wBAAA,0BAAA;CACJ,OAAO,eAAe,SAAS,mBAAmB;EAAE,YAAY;EAAM,KAAK,WAAY;GAAE,OAAO,sBAAsB;;EAAoB,CAAC;CAC3I,OAAO,eAAe,SAAS,iBAAiB;EAAE,YAAY;EAAM,KAAK,WAAY;GAAE,OAAO,sBAAsB;;EAAkB,CAAC;CACvI,OAAO,eAAe,SAAS,oBAAoB;EAAE,YAAY;EAAM,KAAK,WAAY;GAAE,OAAO,sBAAsB;;EAAqB,CAAC;CAE7I,IAAI,wBAAA,0BAAA;CACJ,OAAO,eAAe,SAAS,kBAAkB;EAAE,YAAY;EAAM,KAAK,WAAY;GAAE,OAAO,sBAAsB;;EAAmB,CAAC;CACzI,IAAI,uBAAA,yBAAA;CACJ,OAAO,eAAe,SAAS,iBAAiB;EAAE,YAAY;EAAM,KAAK,WAAY;GAAE,OAAO,qBAAqB;;EAAkB,CAAC;;;;;CCtjBtI,CAAC,SAAU,QAAQ,SAAS;EAC3B,OAAO,YAAY,YAAY,OAAO,WAAW,cAAc,QAAQ,QAAQ,GAC/E,OAAO,WAAW,cAAc,OAAO,MAAM,OAAO,CAAC,UAAU,EAAE,QAAQ,IACxE,SAAS,UAAU,MAAM,QAAQ,OAAO,eAAe,EAAE,CAAC;cACnD,SAAU,WAAS;AAAE;;;;;;;EAW7B,MAAM,WAAW;GAChB,cAAc;;IAEb,KAAK,cAAc;;IAGnB,KAAK,gBAAgB;;IAGrB,KAAK,cAAc;;IAGnB,KAAK,UAAU;KACd,YAAa,KAAK,cAAc;KAChC,cAAe,KAAK,gBAAgB;KACpC,UAAU,SAAU,KAAK,cAAc;KACvC;;;;;;;;;GAUF,QAAQ,QAAQ,MAAM,OAAO,MAAM;IAClC,IAAI,QACH,IAAI,UAAU,MACb,OAAO,MAAM,SAAS;SAEtB,OAAO,QAAQ;;;;;;;;GAWlB,OAAO,QAAQ,MAAM,OAAO;IAC3B,IAAI,QACH,IAAI,UAAU,MACb,OAAO,MAAM,OAAO,OAAO,EAAE;SAE7B,OAAO,OAAO;;;;;;;;;;;;EAmBlB,MAAM,mBAAmB,WAAW;;;;;;GAMnC,YAAY,OAAO,OAAO;IACzB,OAAO;;IAGP,KAAK,QAAQ;;IAGb,KAAK,QAAQ;;;;;;;;;;GAWd,MAAM,MAAM,QAAQ,MAAM,OAAO;IAChC,IAAI,MAAM;KACT,IAAI,KAAK,OAAO;MACf,MAAM,eAAe,KAAK;MAC1B,MAAM,iBAAiB,KAAK;MAC5B,MAAM,eAAe,KAAK;MAC1B,KAAK,cAAc;MACnB,KAAK,gBAAgB;MACrB,KAAK,cAAc;MAEnB,KAAK,MAAM,KAAK,KAAK,SAAS,MAAM,QAAQ,MAAM,MAAM;MAExD,IAAI,KAAK,aAAa;OACrB,OAAO,KAAK;OACZ,KAAK,QAAQ,QAAQ,MAAM,OAAO,KAAK;;MAGxC,IAAI,KAAK,eACR,KAAK,OAAO,QAAQ,MAAM,MAAM;MAGjC,MAAM,UAAU,KAAK;MACrB,MAAM,UAAU,KAAK;MAErB,KAAK,cAAc;MACnB,KAAK,gBAAgB;MACrB,KAAK,cAAc;MAEnB,IAAI,SAAS,OAAO;MACpB,IAAI,SAAS,OAAO;;KAGrB,KAAK,MAAM,OAAO,MAAM;MACvB,MAAM,QAAQ,KAAK;MAEnB,IAAI,OAAO,UAAU,UACpB;WACM,IAAI,MAAM,QAAQ,MAAM;YACzB,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,GACtC,IAAI,MAAM,OAAO,QAAQ,OAAO,MAAM,GAAG,SAAS;YAC7C,CAAC,KAAK,MAAM,MAAM,IAAI,MAAM,KAAK,EAAE,EAEtC;;aAIG,IAAI,UAAU,QAAQ,OAAO,MAAM,SAAS,UAClD,KAAK,MAAM,OAAO,MAAM,KAAK,KAAK;;KAIpC,IAAI,KAAK,OAAO;MACf,MAAM,eAAe,KAAK;MAC1B,MAAM,iBAAiB,KAAK;MAC5B,KAAK,cAAc;MACnB,KAAK,gBAAgB;MAErB,KAAK,MAAM,KAAK,KAAK,SAAS,MAAM,QAAQ,MAAM,MAAM;MAExD,IAAI,KAAK,aAAa;OACrB,OAAO,KAAK;OACZ,KAAK,QAAQ,QAAQ,MAAM,OAAO,KAAK;;MAGxC,IAAI,KAAK,eACR,KAAK,OAAO,QAAQ,MAAM,MAAM;MAGjC,MAAM,UAAU,KAAK;MAErB,KAAK,cAAc;MACnB,KAAK,gBAAgB;MAErB,IAAI,SAAS,OAAO;;;IAItB,OAAO;;;;;;;;;;;;EAiBT,MAAM,oBAAoB,WAAW;;;;;;GAMpC,YAAY,OAAO,OAAO;IACzB,OAAO;;IAGP,KAAK,QAAQ;;IAGb,KAAK,QAAQ;;;;;;;;;;GAWd,MAAM,MAAM,MAAM,QAAQ,MAAM,OAAO;IACtC,IAAI,MAAM;KACT,IAAI,KAAK,OAAO;MACf,MAAM,eAAe,KAAK;MAC1B,MAAM,iBAAiB,KAAK;MAC5B,MAAM,eAAe,KAAK;MAC1B,KAAK,cAAc;MACnB,KAAK,gBAAgB;MACrB,KAAK,cAAc;MAEnB,MAAM,KAAK,MAAM,KAAK,KAAK,SAAS,MAAM,QAAQ,MAAM,MAAM;MAE9D,IAAI,KAAK,aAAa;OACrB,OAAO,KAAK;OACZ,KAAK,QAAQ,QAAQ,MAAM,OAAO,KAAK;;MAGxC,IAAI,KAAK,eACR,KAAK,OAAO,QAAQ,MAAM,MAAM;MAGjC,MAAM,UAAU,KAAK;MACrB,MAAM,UAAU,KAAK;MAErB,KAAK,cAAc;MACnB,KAAK,gBAAgB;MACrB,KAAK,cAAc;MAEnB,IAAI,SAAS,OAAO;MACpB,IAAI,SAAS,OAAO;;KAGrB,KAAK,MAAM,OAAO,MAAM;MACvB,MAAM,QAAQ,KAAK;MAEnB,IAAI,OAAO,UAAU,UACpB;WACM,IAAI,MAAM,QAAQ,MAAM;YACzB,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,GACtC,IAAI,MAAM,OAAO,QAAQ,OAAO,MAAM,GAAG,SAAS;YAC7C,CAAE,MAAM,KAAK,MAAM,MAAM,IAAI,MAAM,KAAK,EAAE,EAE7C;;aAIG,IAAI,UAAU,QAAQ,OAAO,MAAM,SAAS,UAClD,MAAM,KAAK,MAAM,OAAO,MAAM,KAAK,KAAK;;KAI1C,IAAI,KAAK,OAAO;MACf,MAAM,eAAe,KAAK;MAC1B,MAAM,iBAAiB,KAAK;MAC5B,KAAK,cAAc;MACnB,KAAK,gBAAgB;MAErB,MAAM,KAAK,MAAM,KAAK,KAAK,SAAS,MAAM,QAAQ,MAAM,MAAM;MAE9D,IAAI,KAAK,aAAa;OACrB,OAAO,KAAK;OACZ,KAAK,QAAQ,QAAQ,MAAM,OAAO,KAAK;;MAGxC,IAAI,KAAK,eACR,KAAK,OAAO,QAAQ,MAAM,MAAM;MAGjC,MAAM,UAAU,KAAK;MAErB,KAAK,cAAc;MACnB,KAAK,gBAAgB;MAErB,IAAI,SAAS,OAAO;;;IAItB,OAAO;;;;;;;;;;;;;;;EAmBT,SAAS,KAAK,KAAK,EAAE,OAAO,SAAS;GAEpC,OAAO,IADc,WAAW,OAAO,MACxB,CAAC,MAAM,KAAK,KAAK;;;;;;;;;;;EAYjC,eAAe,UAAU,KAAK,EAAE,OAAO,SAAS;GAE/C,OAAO,MAAM,IADQ,YAAY,OAAO,MACnB,CAAC,MAAM,KAAK,KAAK;;EAGvC,UAAQ,YAAY;EACpB,UAAQ,OAAO;EAEf,OAAO,eAAeA,WAAS,cAAc,EAAE,OAAO,MAAM,CAAC;IAE3D;;;;;CChVH,IAAI,eAAe,mEAAmE,MAAM,GAAG;;;;CAK/F,QAAQ,SAAS,SAAU,QAAQ;EACjC,IAAI,KAAK,UAAU,SAAS,aAAa,QACvC,OAAO,aAAa;EAEtB,MAAM,IAAI,UAAU,+BAA+B,OAAO;;;;;;CAO5D,QAAQ,SAAS,SAAU,UAAU;EACnC,IAAI,OAAO;EACX,IAAI,OAAO;EAEX,IAAI,UAAU;EACd,IAAI,UAAU;EAEd,IAAI,OAAO;EACX,IAAI,OAAO;EAEX,IAAI,OAAO;EACX,IAAI,QAAQ;EAEZ,IAAI,eAAe;EACnB,IAAI,eAAe;EAGnB,IAAI,QAAQ,YAAY,YAAY,MAClC,OAAQ,WAAW;EAIrB,IAAI,WAAW,YAAY,YAAY,SACrC,OAAQ,WAAW,UAAU;EAI/B,IAAI,QAAQ,YAAY,YAAY,MAClC,OAAQ,WAAW,OAAO;EAI5B,IAAI,YAAY,MACd,OAAO;EAIT,IAAI,YAAY,OACd,OAAO;EAIT,OAAO;;;;;;CC5BT,IAAI,SAAA,gBAAA;CAcJ,IAAI,iBAAiB;CAGrB,IAAI,WAAW,KAAK;CAGpB,IAAI,gBAAgB,WAAW;CAG/B,IAAI,uBAAuB;;;;;;;CAQ3B,SAAS,YAAY,QAAQ;EAC3B,OAAO,SAAS,KACV,CAAC,UAAW,KAAK,KAClB,UAAU,KAAK;;;;;;;;CAStB,SAAS,cAAc,QAAQ;EAC7B,IAAI,cAAc,SAAS,OAAO;EAClC,IAAI,UAAU,UAAU;EACxB,OAAO,aACH,CAAC,UACD;;;;;CAMN,QAAQ,SAAS,SAAS,iBAAiB,QAAQ;EACjD,IAAI,UAAU;EACd,IAAI;EAEJ,IAAI,MAAM,YAAY,OAAO;EAE7B,GAAG;GACD,QAAQ,MAAM;GACd,SAAS;GACT,IAAI,MAAM,GAGR,SAAS;GAEX,WAAW,OAAO,OAAO,MAAM;WACxB,MAAM;EAEf,OAAO;;;;;;CAOT,QAAQ,SAAS,SAAS,iBAAiB,MAAM,QAAQ,WAAW;EAClE,IAAI,SAAS,KAAK;EAClB,IAAI,SAAS;EACb,IAAI,QAAQ;EACZ,IAAI,cAAc;EAElB,GAAG;GACD,IAAI,UAAU,QACZ,MAAM,IAAI,MAAM,6CAA6C;GAG/D,QAAQ,OAAO,OAAO,KAAK,WAAW,SAAS,CAAC;GAChD,IAAI,UAAU,IACZ,MAAM,IAAI,MAAM,2BAA2B,KAAK,OAAO,SAAS,EAAE,CAAC;GAGrE,eAAe,CAAC,EAAE,QAAQ;GAC1B,SAAS;GACT,SAAS,UAAU,SAAS;GAC5B,SAAS;WACF;EAET,UAAU,QAAQ,cAAc,OAAO;EACvC,UAAU,OAAO;;;;;;;;;;;;;;;;CCzHnB,SAAS,OAAO,OAAO,OAAO,eAAe;EAC3C,IAAI,SAAS,OACX,OAAO,MAAM;OACR,IAAI,UAAU,WAAW,GAC9B,OAAO;OAEP,MAAM,IAAI,MAAM,OAAM,QAAQ,6BAA4B;;CAG9D,QAAQ,SAAS;CAEjB,IAAI,YAAY;CAChB,IAAI,gBAAgB;CAEpB,SAAS,SAAS,MAAM;EACtB,IAAI,QAAQ,KAAK,MAAM,UAAU;EACjC,IAAI,CAAC,OACH,OAAO;EAET,OAAO;GACL,QAAQ,MAAM;GACd,MAAM,MAAM;GACZ,MAAM,MAAM;GACZ,MAAM,MAAM;GACZ,MAAM,MAAM;GACb;;CAEH,QAAQ,WAAW;CAEnB,SAAS,YAAY,YAAY;EAC/B,IAAI,MAAM;EACV,IAAI,WAAW,QACb,OAAO,WAAW,SAAS;EAE7B,OAAO;EACP,IAAI,WAAW,MACb,OAAO,WAAW,OAAO;EAE3B,IAAI,WAAW,MACb,OAAO,WAAW;EAEpB,IAAI,WAAW,MACb,OAAO,MAAM,WAAW;EAE1B,IAAI,WAAW,MACb,OAAO,WAAW;EAEpB,OAAO;;CAET,QAAQ,cAAc;CAEtB,IAAI,oBAAoB;;;;;;;;CASxB,SAAS,WAAW,GAAG;EACrB,IAAI,QAAQ,EAAE;EAEd,OAAO,SAAS,OAAO;GACrB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAChC,IAAI,MAAM,GAAG,UAAU,OAAO;IAC5B,IAAI,OAAO,MAAM;IACjB,MAAM,KAAK,MAAM;IACjB,MAAM,KAAK;IACX,OAAO,MAAM,GAAG;;GAIpB,IAAI,SAAS,EAAE,MAAM;GAErB,MAAM,QAAQ;IACZ;IACA;IACD,CAAC;GAEF,IAAI,MAAM,SAAS,mBACjB,MAAM,KAAK;GAGb,OAAO;;;;;;;;;;;;;;CAeX,IAAI,YAAY,WAAW,SAAS,UAAU,OAAO;EACnD,IAAI,OAAO;EACX,IAAI,MAAM,SAAS,MAAM;EACzB,IAAI,KAAK;GACP,IAAI,CAAC,IAAI,MACP,OAAO;GAET,OAAO,IAAI;;EAEb,IAAI,aAAa,QAAQ,WAAW,KAAK;EAGzC,IAAI,QAAQ,EAAE;EACd,IAAI,QAAQ;EACZ,IAAI,IAAI;EACR,OAAO,MAAM;GACX,QAAQ;GACR,IAAI,KAAK,QAAQ,KAAK,MAAM;GAC5B,IAAI,MAAM,IAAI;IACZ,MAAM,KAAK,KAAK,MAAM,MAAM,CAAC;IAC7B;UACK;IACL,MAAM,KAAK,KAAK,MAAM,OAAO,EAAE,CAAC;IAChC,OAAO,IAAI,KAAK,UAAU,KAAK,OAAO,KACpC;;;EAKN,KAAK,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;GACxD,OAAO,MAAM;GACb,IAAI,SAAS,KACX,MAAM,OAAO,GAAG,EAAE;QACb,IAAI,SAAS,MAClB;QACK,IAAI,KAAK,GACd,IAAI,SAAS,IAAI;IAIf,MAAM,OAAO,IAAI,GAAG,GAAG;IACvB,KAAK;UACA;IACL,MAAM,OAAO,GAAG,EAAE;IAClB;;;EAIN,OAAO,MAAM,KAAK,IAAI;EAEtB,IAAI,SAAS,IACX,OAAO,aAAa,MAAM;EAG5B,IAAI,KAAK;GACP,IAAI,OAAO;GACX,OAAO,YAAY,IAAI;;EAEzB,OAAO;GACP;CACF,QAAQ,YAAY;;;;;;;;;;;;;;;;;CAkBpB,SAAS,KAAK,OAAO,OAAO;EAC1B,IAAI,UAAU,IACZ,QAAQ;EAEV,IAAI,UAAU,IACZ,QAAQ;EAEV,IAAI,WAAW,SAAS,MAAM;EAC9B,IAAI,WAAW,SAAS,MAAM;EAC9B,IAAI,UACF,QAAQ,SAAS,QAAQ;EAI3B,IAAI,YAAY,CAAC,SAAS,QAAQ;GAChC,IAAI,UACF,SAAS,SAAS,SAAS;GAE7B,OAAO,YAAY,SAAS;;EAG9B,IAAI,YAAY,MAAM,MAAM,cAAc,EACxC,OAAO;EAIT,IAAI,YAAY,CAAC,SAAS,QAAQ,CAAC,SAAS,MAAM;GAChD,SAAS,OAAO;GAChB,OAAO,YAAY,SAAS;;EAG9B,IAAI,SAAS,MAAM,OAAO,EAAE,KAAK,MAC7B,QACA,UAAU,MAAM,QAAQ,QAAQ,GAAG,GAAG,MAAM,MAAM;EAEtD,IAAI,UAAU;GACZ,SAAS,OAAO;GAChB,OAAO,YAAY,SAAS;;EAE9B,OAAO;;CAET,QAAQ,OAAO;CAEf,QAAQ,aAAa,SAAU,OAAO;EACpC,OAAO,MAAM,OAAO,EAAE,KAAK,OAAO,UAAU,KAAK,MAAM;;;;;;;;CASzD,SAAS,SAAS,OAAO,OAAO;EAC9B,IAAI,UAAU,IACZ,QAAQ;EAGV,QAAQ,MAAM,QAAQ,OAAO,GAAG;EAMhC,IAAI,QAAQ;EACZ,OAAO,MAAM,QAAQ,QAAQ,IAAI,KAAK,GAAG;GACvC,IAAI,QAAQ,MAAM,YAAY,IAAI;GAClC,IAAI,QAAQ,GACV,OAAO;GAMT,QAAQ,MAAM,MAAM,GAAG,MAAM;GAC7B,IAAI,MAAM,MAAM,oBAAoB,EAClC,OAAO;GAGT,EAAE;;EAIJ,OAAO,MAAM,QAAQ,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,OAAO,MAAM,SAAS,EAAE;;CAEtE,QAAQ,WAAW;CAEnB,IAAI,oBAAqB,WAAY;EAEnC,OAAO,EAAE,eADC,OAAO,OAAO,KACG;IAC1B;CAEH,SAAS,SAAU,GAAG;EACpB,OAAO;;;;;;;;;;;CAYT,SAAS,YAAY,MAAM;EACzB,IAAI,cAAc,KAAK,EACrB,OAAO,MAAM;EAGf,OAAO;;CAET,QAAQ,cAAc,oBAAoB,WAAW;CAErD,SAAS,cAAc,MAAM;EAC3B,IAAI,cAAc,KAAK,EACrB,OAAO,KAAK,MAAM,EAAE;EAGtB,OAAO;;CAET,QAAQ,gBAAgB,oBAAoB,WAAW;CAEvD,SAAS,cAAc,GAAG;EACxB,IAAI,CAAC,GACH,OAAO;EAGT,IAAI,SAAS,EAAE;EAEf,IAAI,SAAS,GACX,OAAO;EAGT,IAAI,EAAE,WAAW,SAAS,EAAE,KAAK,MAC7B,EAAE,WAAW,SAAS,EAAE,KAAK,MAC7B,EAAE,WAAW,SAAS,EAAE,KAAK,OAC7B,EAAE,WAAW,SAAS,EAAE,KAAK,OAC7B,EAAE,WAAW,SAAS,EAAE,KAAK,OAC7B,EAAE,WAAW,SAAS,EAAE,KAAK,OAC7B,EAAE,WAAW,SAAS,EAAE,KAAK,OAC7B,EAAE,WAAW,SAAS,EAAE,KAAK,MAC7B,EAAE,WAAW,SAAS,EAAE,KAAK,IAC/B,OAAO;EAGT,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK,GAAG,KAChC,IAAI,EAAE,WAAW,EAAE,KAAK,IACtB,OAAO;EAIX,OAAO;;;;;;;;;;CAWT,SAAS,2BAA2B,UAAU,UAAU,qBAAqB;EAC3E,IAAI,MAAM,OAAO,SAAS,QAAQ,SAAS,OAAO;EAClD,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,SAAS,eAAe,SAAS;EACvC,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,SAAS,iBAAiB,SAAS;EACzC,IAAI,QAAQ,KAAK,qBACf,OAAO;EAGT,MAAM,SAAS,kBAAkB,SAAS;EAC1C,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,SAAS,gBAAgB,SAAS;EACxC,IAAI,QAAQ,GACV,OAAO;EAGT,OAAO,OAAO,SAAS,MAAM,SAAS,KAAK;;CAE7C,QAAQ,6BAA6B;CAErC,SAAS,mCAAmC,UAAU,UAAU,qBAAqB;EACnF,IAAI,MAEE,SAAS,eAAe,SAAS;EACvC,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,SAAS,iBAAiB,SAAS;EACzC,IAAI,QAAQ,KAAK,qBACf,OAAO;EAGT,MAAM,SAAS,kBAAkB,SAAS;EAC1C,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,SAAS,gBAAgB,SAAS;EACxC,IAAI,QAAQ,GACV,OAAO;EAGT,OAAO,OAAO,SAAS,MAAM,SAAS,KAAK;;CAE7C,QAAQ,qCAAqC;;;;;;;;;;CAW7C,SAAS,oCAAoC,UAAU,UAAU,sBAAsB;EACrF,IAAI,MAAM,SAAS,gBAAgB,SAAS;EAC5C,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,SAAS,kBAAkB,SAAS;EAC1C,IAAI,QAAQ,KAAK,sBACf,OAAO;EAGT,MAAM,OAAO,SAAS,QAAQ,SAAS,OAAO;EAC9C,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,SAAS,eAAe,SAAS;EACvC,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,SAAS,iBAAiB,SAAS;EACzC,IAAI,QAAQ,GACV,OAAO;EAGT,OAAO,OAAO,SAAS,MAAM,SAAS,KAAK;;CAE7C,QAAQ,sCAAsC;CAE9C,SAAS,0CAA0C,UAAU,UAAU,sBAAsB;EAC3F,IAAI,MAAM,SAAS,kBAAkB,SAAS;EAC9C,IAAI,QAAQ,KAAK,sBACf,OAAO;EAGT,MAAM,OAAO,SAAS,QAAQ,SAAS,OAAO;EAC9C,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,SAAS,eAAe,SAAS;EACvC,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,SAAS,iBAAiB,SAAS;EACzC,IAAI,QAAQ,GACV,OAAO;EAGT,OAAO,OAAO,SAAS,MAAM,SAAS,KAAK;;CAE7C,QAAQ,4CAA4C;CAEpD,SAAS,OAAO,OAAO,OAAO;EAC5B,IAAI,UAAU,OACZ,OAAO;EAGT,IAAI,UAAU,MACZ,OAAO;EAGT,IAAI,UAAU,MACZ,OAAO;EAGT,IAAI,QAAQ,OACV,OAAO;EAGT,OAAO;;;;;;CAOT,SAAS,oCAAoC,UAAU,UAAU;EAC/D,IAAI,MAAM,SAAS,gBAAgB,SAAS;EAC5C,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,SAAS,kBAAkB,SAAS;EAC1C,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,OAAO,SAAS,QAAQ,SAAS,OAAO;EAC9C,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,SAAS,eAAe,SAAS;EACvC,IAAI,QAAQ,GACV,OAAO;EAGT,MAAM,SAAS,iBAAiB,SAAS;EACzC,IAAI,QAAQ,GACV,OAAO;EAGT,OAAO,OAAO,SAAS,MAAM,SAAS,KAAK;;CAE7C,QAAQ,sCAAsC;;;;;;CAO9C,SAAS,oBAAoB,KAAK;EAChC,OAAO,KAAK,MAAM,IAAI,QAAQ,kBAAkB,GAAG,CAAC;;CAEtD,QAAQ,sBAAsB;;;;;CAM9B,SAAS,iBAAiB,YAAY,WAAW,cAAc;EAC7D,YAAY,aAAa;EAEzB,IAAI,YAAY;GAEd,IAAI,WAAW,WAAW,SAAS,OAAO,OAAO,UAAU,OAAO,KAChE,cAAc;GAOhB,YAAY,aAAa;;EAiB3B,IAAI,cAAc;GAChB,IAAI,SAAS,SAAS,aAAa;GACnC,IAAI,CAAC,QACH,MAAM,IAAI,MAAM,mCAAmC;GAErD,IAAI,OAAO,MAAM;IAEf,IAAI,QAAQ,OAAO,KAAK,YAAY,IAAI;IACxC,IAAI,SAAS,GACX,OAAO,OAAO,OAAO,KAAK,UAAU,GAAG,QAAQ,EAAE;;GAGrD,YAAY,KAAK,YAAY,OAAO,EAAE,UAAU;;EAGlD,OAAO,UAAU,UAAU;;CAE7B,QAAQ,mBAAmB;;;;;CC1kB3B,IAAI,OAAA,cAAA;CACJ,IAAI,MAAM,OAAO,UAAU;CAC3B,IAAI,eAAe,OAAO,QAAQ;;;;;;;CAQlC,SAAS,WAAW;EAClB,KAAK,SAAS,EAAE;EAChB,KAAK,OAAO,+BAAe,IAAI,KAAK,GAAG,OAAO,OAAO,KAAK;;;;;CAM5D,SAAS,YAAY,SAAS,mBAAmB,QAAQ,kBAAkB;EACzE,IAAI,MAAM,IAAI,UAAU;EACxB,KAAK,IAAI,IAAI,GAAG,MAAM,OAAO,QAAQ,IAAI,KAAK,KAC5C,IAAI,IAAI,OAAO,IAAI,iBAAiB;EAEtC,OAAO;;;;;;;;CAST,SAAS,UAAU,OAAO,SAAS,gBAAgB;EACjD,OAAO,eAAe,KAAK,KAAK,OAAO,OAAO,oBAAoB,KAAK,KAAK,CAAC;;;;;;;CAQ/E,SAAS,UAAU,MAAM,SAAS,aAAa,MAAM,kBAAkB;EACrE,IAAI,OAAO,eAAe,OAAO,KAAK,YAAY,KAAK;EACvD,IAAI,cAAc,eAAe,KAAK,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,MAAM,KAAK;EAC3E,IAAI,MAAM,KAAK,OAAO;EACtB,IAAI,CAAC,eAAe,kBAClB,KAAK,OAAO,KAAK,KAAK;EAExB,IAAI,CAAC,aACH,IAAI,cACF,KAAK,KAAK,IAAI,MAAM,IAAI;OAExB,KAAK,KAAK,QAAQ;;;;;;;CAUxB,SAAS,UAAU,MAAM,SAAS,aAAa,MAAM;EACnD,IAAI,cACF,OAAO,KAAK,KAAK,IAAI,KAAK;OACrB;GACL,IAAI,OAAO,KAAK,YAAY,KAAK;GACjC,OAAO,IAAI,KAAK,KAAK,MAAM,KAAK;;;;;;;;CASpC,SAAS,UAAU,UAAU,SAAS,iBAAiB,MAAM;EAC3D,IAAI,cAAc;GAChB,IAAI,MAAM,KAAK,KAAK,IAAI,KAAK;GAC7B,IAAI,OAAO,GACP,OAAO;SAEN;GACL,IAAI,OAAO,KAAK,YAAY,KAAK;GACjC,IAAI,IAAI,KAAK,KAAK,MAAM,KAAK,EAC3B,OAAO,KAAK,KAAK;;EAIrB,MAAM,IAAI,MAAM,OAAM,OAAO,wBAAuB;;;;;;;CAQtD,SAAS,UAAU,KAAK,SAAS,YAAY,MAAM;EACjD,IAAI,QAAQ,KAAK,OAAO,KAAK,OAAO,QAClC,OAAO,KAAK,OAAO;EAErB,MAAM,IAAI,MAAM,2BAA2B,KAAK;;;;;;;CAQlD,SAAS,UAAU,UAAU,SAAS,mBAAmB;EACvD,OAAO,KAAK,OAAO,OAAO;;CAG5B,QAAQ,WAAW;;;;;CCjHnB,IAAI,OAAA,cAAA;;;;;CAMJ,SAAS,uBAAuB,UAAU,UAAU;EAElD,IAAI,QAAQ,SAAS;EACrB,IAAI,QAAQ,SAAS;EACrB,IAAI,UAAU,SAAS;EACvB,IAAI,UAAU,SAAS;EACvB,OAAO,QAAQ,SAAS,SAAS,SAAS,WAAW,WAC9C,KAAK,oCAAoC,UAAU,SAAS,IAAI;;;;;;;CAQzE,SAAS,cAAc;EACrB,KAAK,SAAS,EAAE;EAChB,KAAK,UAAU;EAEf,KAAK,QAAQ;GAAC,eAAe;GAAI,iBAAiB;GAAE;;;;;;;;CAStD,YAAY,UAAU,kBACpB,SAAS,oBAAoB,WAAW,UAAU;EAChD,KAAK,OAAO,QAAQ,WAAW,SAAS;;;;;;;CAQ5C,YAAY,UAAU,MAAM,SAAS,gBAAgB,UAAU;EAC7D,IAAI,uBAAuB,KAAK,OAAO,SAAS,EAAE;GAChD,KAAK,QAAQ;GACb,KAAK,OAAO,KAAK,SAAS;SACrB;GACL,KAAK,UAAU;GACf,KAAK,OAAO,KAAK,SAAS;;;;;;;;;;;;CAa9B,YAAY,UAAU,UAAU,SAAS,sBAAsB;EAC7D,IAAI,CAAC,KAAK,SAAS;GACjB,KAAK,OAAO,KAAK,KAAK,oCAAoC;GAC1D,KAAK,UAAU;;EAEjB,OAAO,KAAK;;CAGd,QAAQ,cAAc;;;;;CCvEtB,IAAI,YAAA,oBAAA;CACJ,IAAI,OAAA,cAAA;CACJ,IAAI,WAAA,mBAAA,CAAkC;CACtC,IAAI,cAAA,sBAAA,CAAwC;;;;;;;;;CAU5C,SAAS,mBAAmB,OAAO;EACjC,IAAI,CAAC,OACH,QAAQ,EAAE;EAEZ,KAAK,QAAQ,KAAK,OAAO,OAAO,QAAQ,KAAK;EAC7C,KAAK,cAAc,KAAK,OAAO,OAAO,cAAc,KAAK;EACzD,KAAK,kBAAkB,KAAK,OAAO,OAAO,kBAAkB,MAAM;EAClE,KAAK,wBAAwB,KAAK,OAAO,OAAO,wBAAwB,MAAM;EAC9E,KAAK,WAAW,IAAI,UAAU;EAC9B,KAAK,SAAS,IAAI,UAAU;EAC5B,KAAK,YAAY,IAAI,aAAa;EAClC,KAAK,mBAAmB;;CAG1B,mBAAmB,UAAU,WAAW;;;;;;CAOxC,mBAAmB,gBACjB,SAAS,iCAAiC,oBAAoB,cAAc;EAC1E,IAAI,aAAa,mBAAmB;EACpC,IAAI,YAAY,IAAI,mBAAmB,OAAO,OAAO,gBAAgB,EAAE,EAAE;GACvE,MAAM,mBAAmB;GACb;GACb,CAAC,CAAC;EACH,mBAAmB,YAAY,SAAU,SAAS;GAChD,IAAI,aAAa,EACf,WAAW;IACT,MAAM,QAAQ;IACd,QAAQ,QAAQ;IACjB,EACF;GAED,IAAI,QAAQ,UAAU,MAAM;IAC1B,WAAW,SAAS,QAAQ;IAC5B,IAAI,cAAc,MAChB,WAAW,SAAS,KAAK,SAAS,YAAY,WAAW,OAAO;IAGlE,WAAW,WAAW;KACpB,MAAM,QAAQ;KACd,QAAQ,QAAQ;KACjB;IAED,IAAI,QAAQ,QAAQ,MAClB,WAAW,OAAO,QAAQ;;GAI9B,UAAU,WAAW,WAAW;IAChC;EACF,mBAAmB,QAAQ,QAAQ,SAAU,YAAY;GACvD,IAAI,iBAAiB;GACrB,IAAI,eAAe,MACjB,iBAAiB,KAAK,SAAS,YAAY,WAAW;GAGxD,IAAI,CAAC,UAAU,SAAS,IAAI,eAAe,EACzC,UAAU,SAAS,IAAI,eAAe;GAGxC,IAAI,UAAU,mBAAmB,iBAAiB,WAAW;GAC7D,IAAI,WAAW,MACb,UAAU,iBAAiB,YAAY,QAAQ;IAEjD;EACF,OAAO;;;;;;;;;;;;CAaX,mBAAmB,UAAU,aAC3B,SAAS,8BAA8B,OAAO;EAC5C,IAAI,YAAY,KAAK,OAAO,OAAO,YAAY;EAC/C,IAAI,WAAW,KAAK,OAAO,OAAO,YAAY,KAAK;EACnD,IAAI,SAAS,KAAK,OAAO,OAAO,UAAU,KAAK;EAC/C,IAAI,OAAO,KAAK,OAAO,OAAO,QAAQ,KAAK;EAE3C,IAAI,CAAC,KAAK;OACJ,KAAK,iBAAiB,WAAW,UAAU,QAAQ,KAAK,KAAK,OAC/D;;EAIJ,IAAI,UAAU,MAAM;GAClB,SAAS,OAAO,OAAO;GACvB,IAAI,CAAC,KAAK,SAAS,IAAI,OAAO,EAC5B,KAAK,SAAS,IAAI,OAAO;;EAI7B,IAAI,QAAQ,MAAM;GAChB,OAAO,OAAO,KAAK;GACnB,IAAI,CAAC,KAAK,OAAO,IAAI,KAAK,EACxB,KAAK,OAAO,IAAI,KAAK;;EAIzB,KAAK,UAAU,IAAI;GACjB,eAAe,UAAU;GACzB,iBAAiB,UAAU;GAC3B,cAAc,YAAY,QAAQ,SAAS;GAC3C,gBAAgB,YAAY,QAAQ,SAAS;GACrC;GACF;GACP,CAAC;;;;;CAMN,mBAAmB,UAAU,mBAC3B,SAAS,oCAAoC,aAAa,gBAAgB;EACxE,IAAI,SAAS;EACb,IAAI,KAAK,eAAe,MACtB,SAAS,KAAK,SAAS,KAAK,aAAa,OAAO;EAGlD,IAAI,kBAAkB,MAAM;GAG1B,IAAI,CAAC,KAAK,kBACR,KAAK,mBAAmB,OAAO,OAAO,KAAK;GAE7C,KAAK,iBAAiB,KAAK,YAAY,OAAO,IAAI;SAC7C,IAAI,KAAK,kBAAkB;GAGhC,OAAO,KAAK,iBAAiB,KAAK,YAAY,OAAO;GACrD,IAAI,OAAO,KAAK,KAAK,iBAAiB,CAAC,WAAW,GAChD,KAAK,mBAAmB;;;;;;;;;;;;;;;;;;;CAqBhC,mBAAmB,UAAU,iBAC3B,SAAS,kCAAkC,oBAAoB,aAAa,gBAAgB;EAC1F,IAAI,aAAa;EAEjB,IAAI,eAAe,MAAM;GACvB,IAAI,mBAAmB,QAAQ,MAC7B,MAAM,IAAI,MACR,iJAED;GAEH,aAAa,mBAAmB;;EAElC,IAAI,aAAa,KAAK;EAEtB,IAAI,cAAc,MAChB,aAAa,KAAK,SAAS,YAAY,WAAW;EAIpD,IAAI,aAAa,IAAI,UAAU;EAC/B,IAAI,WAAW,IAAI,UAAU;EAG7B,KAAK,UAAU,gBAAgB,SAAU,SAAS;GAChD,IAAI,QAAQ,WAAW,cAAc,QAAQ,gBAAgB,MAAM;IAEjE,IAAI,WAAW,mBAAmB,oBAAoB;KACpD,MAAM,QAAQ;KACd,QAAQ,QAAQ;KACjB,CAAC;IACF,IAAI,SAAS,UAAU,MAAM;KAE3B,QAAQ,SAAS,SAAS;KAC1B,IAAI,kBAAkB,MACpB,QAAQ,SAAS,KAAK,KAAK,gBAAgB,QAAQ,OAAO;KAE5D,IAAI,cAAc,MAChB,QAAQ,SAAS,KAAK,SAAS,YAAY,QAAQ,OAAO;KAE5D,QAAQ,eAAe,SAAS;KAChC,QAAQ,iBAAiB,SAAS;KAClC,IAAI,SAAS,QAAQ,MACnB,QAAQ,OAAO,SAAS;;;GAK9B,IAAI,SAAS,QAAQ;GACrB,IAAI,UAAU,QAAQ,CAAC,WAAW,IAAI,OAAO,EAC3C,WAAW,IAAI,OAAO;GAGxB,IAAI,OAAO,QAAQ;GACnB,IAAI,QAAQ,QAAQ,CAAC,SAAS,IAAI,KAAK,EACrC,SAAS,IAAI,KAAK;KAGnB,KAAK;EACR,KAAK,WAAW;EAChB,KAAK,SAAS;EAGd,mBAAmB,QAAQ,QAAQ,SAAU,YAAY;GACvD,IAAI,UAAU,mBAAmB,iBAAiB,WAAW;GAC7D,IAAI,WAAW,MAAM;IACnB,IAAI,kBAAkB,MACpB,aAAa,KAAK,KAAK,gBAAgB,WAAW;IAEpD,IAAI,cAAc,MAChB,aAAa,KAAK,SAAS,YAAY,WAAW;IAEpD,KAAK,iBAAiB,YAAY,QAAQ;;KAE3C,KAAK;;;;;;;;;;;;;CAcZ,mBAAmB,UAAU,mBAC3B,SAAS,mCAAmC,YAAY,WAAW,SACvB,OAAO;EAKjD,IAAI,aAAa,OAAO,UAAU,SAAS,YAAY,OAAO,UAAU,WAAW,UAAU;GAC3F,IAAI,UAAU;GAId,IAAI,KAAK,uBAAuB;IAC9B,IAAI,OAAO,YAAY,eAAe,QAAQ,MAC5C,QAAQ,KAAK,QAAQ;IAEvB,OAAO;UAEP,MAAM,IAAI,MAAM,QAAQ;;EAI5B,IAAI,cAAc,UAAU,cAAc,YAAY,cAC/C,WAAW,OAAO,KAAK,WAAW,UAAU,KAC5C,CAAC,aAAa,CAAC,WAAW,CAAC,OAEhC;OAEG,IAAI,cAAc,UAAU,cAAc,YAAY,cAC/C,aAAa,UAAU,aAAa,YAAY,aAChD,WAAW,OAAO,KAAK,WAAW,UAAU,KAC5C,UAAU,OAAO,KAAK,UAAU,UAAU,KAC1C,SAEV;OAEG;GACH,IAAI,UAAU,sBAAsB,KAAK,UAAU;IACjD,WAAW;IACX,QAAQ;IACR,UAAU;IACV,MAAM;IACP,CAAC;GAEF,IAAI,KAAK,uBAAuB;IAC9B,IAAI,OAAO,YAAY,eAAe,QAAQ,MAC5C,QAAQ,KAAK,QAAQ;IAEvB,OAAO;UAEP,MAAM,IAAI,MAAM,QAAQ;;;;;;;CAShC,mBAAmB,UAAU,qBAC3B,SAAS,uCAAuC;EAC9C,IAAI,0BAA0B;EAC9B,IAAI,wBAAwB;EAC5B,IAAI,yBAAyB;EAC7B,IAAI,uBAAuB;EAC3B,IAAI,eAAe;EACnB,IAAI,iBAAiB;EACrB,IAAI,SAAS;EACb,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EAEJ,IAAI,WAAW,KAAK,UAAU,SAAS;EACvC,KAAK,IAAI,IAAI,GAAG,MAAM,SAAS,QAAQ,IAAI,KAAK,KAAK;GACnD,UAAU,SAAS;GACnB,OAAO;GAEP,IAAI,QAAQ,kBAAkB,uBAAuB;IACnD,0BAA0B;IAC1B,OAAO,QAAQ,kBAAkB,uBAAuB;KACtD,QAAQ;KACR;;UAIF,IAAI,IAAI,GAAG;IACT,IAAI,CAAC,KAAK,oCAAoC,SAAS,SAAS,IAAI,GAAG,EACrE;IAEF,QAAQ;;GAIZ,QAAQ,UAAU,OAAO,QAAQ,kBACJ,wBAAwB;GACrD,0BAA0B,QAAQ;GAElC,IAAI,QAAQ,UAAU,MAAM;IAC1B,YAAY,KAAK,SAAS,QAAQ,QAAQ,OAAO;IACjD,QAAQ,UAAU,OAAO,YAAY,eAAe;IACpD,iBAAiB;IAGjB,QAAQ,UAAU,OAAO,QAAQ,eAAe,IACnB,qBAAqB;IAClD,uBAAuB,QAAQ,eAAe;IAE9C,QAAQ,UAAU,OAAO,QAAQ,iBACJ,uBAAuB;IACpD,yBAAyB,QAAQ;IAEjC,IAAI,QAAQ,QAAQ,MAAM;KACxB,UAAU,KAAK,OAAO,QAAQ,QAAQ,KAAK;KAC3C,QAAQ,UAAU,OAAO,UAAU,aAAa;KAChD,eAAe;;;GAInB,UAAU;;EAGZ,OAAO;;CAGX,mBAAmB,UAAU,0BAC3B,SAAS,0CAA0C,UAAU,aAAa;EACxE,OAAO,SAAS,IAAI,SAAU,QAAQ;GACpC,IAAI,CAAC,KAAK,kBACR,OAAO;GAET,IAAI,eAAe,MACjB,SAAS,KAAK,SAAS,aAAa,OAAO;GAE7C,IAAI,MAAM,KAAK,YAAY,OAAO;GAClC,OAAO,OAAO,UAAU,eAAe,KAAK,KAAK,kBAAkB,IAAI,GACnE,KAAK,iBAAiB,OACtB;KACH,KAAK;;;;;CAMZ,mBAAmB,UAAU,SAC3B,SAAS,4BAA4B;EACnC,IAAI,MAAM;GACR,SAAS,KAAK;GACd,SAAS,KAAK,SAAS,SAAS;GAChC,OAAO,KAAK,OAAO,SAAS;GAC5B,UAAU,KAAK,oBAAoB;GACpC;EACD,IAAI,KAAK,SAAS,MAChB,IAAI,OAAO,KAAK;EAElB,IAAI,KAAK,eAAe,MACtB,IAAI,aAAa,KAAK;EAExB,IAAI,KAAK,kBACP,IAAI,iBAAiB,KAAK,wBAAwB,IAAI,SAAS,IAAI,WAAW;EAGhF,OAAO;;;;;CAMX,mBAAmB,UAAU,WAC3B,SAAS,8BAA8B;EACrC,OAAO,KAAK,UAAU,KAAK,QAAQ,CAAC;;CAGxC,QAAQ,qBAAqB;;;;;CCpb7B,QAAQ,uBAAuB;CAC/B,QAAQ,oBAAoB;;;;;;;;;;;;;;CAe5B,SAAS,gBAAgB,MAAM,OAAO,SAAS,WAAW,UAAU,OAAO;EAUzE,IAAI,MAAM,KAAK,OAAO,QAAQ,QAAQ,EAAE,GAAG;EAC3C,IAAI,MAAM,SAAS,SAAS,UAAU,MAAM,KAAK;EACjD,IAAI,QAAQ,GAEV,OAAO;OAEJ,IAAI,MAAM,GAAG;GAEhB,IAAI,QAAQ,MAAM,GAEhB,OAAO,gBAAgB,KAAK,OAAO,SAAS,WAAW,UAAU,MAAM;GAKzE,IAAI,SAAS,QAAQ,mBACnB,OAAO,QAAQ,UAAU,SAAS,QAAQ;QAE1C,OAAO;SAGN;GAEH,IAAI,MAAM,OAAO,GAEf,OAAO,gBAAgB,MAAM,KAAK,SAAS,WAAW,UAAU,MAAM;GAIxE,IAAI,SAAS,QAAQ,mBACnB,OAAO;QAEP,OAAO,OAAO,IAAI,KAAK;;;;;;;;;;;;;;;;;;;;;CAuB7B,QAAQ,SAAS,SAAS,OAAO,SAAS,WAAW,UAAU,OAAO;EACpE,IAAI,UAAU,WAAW,GACvB,OAAO;EAGT,IAAI,QAAQ,gBAAgB,IAAI,UAAU,QAAQ,SAAS,WAC/B,UAAU,SAAS,QAAQ,qBAAqB;EAC5E,IAAI,QAAQ,GACV,OAAO;EAMT,OAAO,QAAQ,KAAK,GAAG;GACrB,IAAI,SAAS,UAAU,QAAQ,UAAU,QAAQ,IAAI,KAAK,KAAK,GAC7D;GAEF,EAAE;;EAGJ,OAAO;;;;;;CC5FT,SAAS,aAAa,YAAY;;;;;;;;;;;EAYlC,SAAS,KAAK,KAAK,GAAG,GAAG;GACvB,IAAI,OAAO,IAAI;GACf,IAAI,KAAK,IAAI;GACb,IAAI,KAAK;;;;;;;;;;EAWX,SAAS,iBAAiB,KAAK,MAAM;GACnC,OAAO,KAAK,MAAM,MAAO,KAAK,QAAQ,IAAI,OAAO,KAAM;;;;;;;;;;;;;;EAezD,SAAS,YAAY,KAAK,YAAY,GAAG,GAAG;GAK1C,IAAI,IAAI,GAAG;IAYT,IAAI,aAAa,iBAAiB,GAAG,EAAE;IACvC,IAAI,IAAI,IAAI;IAEZ,KAAK,KAAK,YAAY,EAAE;IACxB,IAAI,QAAQ,IAAI;IAQhB,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KACrB,IAAI,WAAW,IAAI,IAAI,OAAO,MAAM,IAAI,GAAG;KACzC,KAAK;KACL,KAAK,KAAK,GAAG,EAAE;;IAInB,KAAK,KAAK,IAAI,GAAG,EAAE;IACnB,IAAI,IAAI,IAAI;IAIZ,YAAY,KAAK,YAAY,GAAG,IAAI,EAAE;IACtC,YAAY,KAAK,YAAY,IAAI,GAAG,EAAE;;;EAIxC,OAAO;;CAGT,SAAS,UAAU,YAAY;EAC7B,IAAI,WAAW,aAAa,UAAU;EAEtC,OADiB,IAAI,SAAS,UAAU,WAAW,EAClC,CAAC,WAAW;;;;;;;;;;CAY/B,IAAI,4BAAY,IAAI,SAAS;CAC7B,QAAQ,YAAY,SAAU,KAAK,YAAY,QAAQ,GAAG;EACxD,IAAI,cAAc,UAAU,IAAI,WAAW;EAC3C,IAAI,gBAAgB,KAAK,GAAG;GAC1B,cAAc,UAAU,WAAW;GACnC,UAAU,IAAI,YAAY,YAAY;;EAExC,YAAY,KAAK,YAAY,OAAO,IAAI,SAAS,EAAE;;;;;;CC3HrD,IAAI,OAAA,cAAA;CACJ,IAAI,eAAA,uBAAA;CACJ,IAAI,WAAA,mBAAA,CAAkC;CACtC,IAAI,YAAA,oBAAA;CACJ,IAAI,YAAA,oBAAA,CAAoC;CAExC,SAAS,kBAAkB,YAAY,eAAe;EACpD,IAAI,YAAY;EAChB,IAAI,OAAO,eAAe,UACxB,YAAY,KAAK,oBAAoB,WAAW;EAGlD,OAAO,UAAU,YAAY,OACzB,IAAI,yBAAyB,WAAW,cAAc,GACtD,IAAI,uBAAuB,WAAW,cAAc;;CAG1D,kBAAkB,gBAAgB,SAAS,YAAY,eAAe;EACpE,OAAO,uBAAuB,cAAc,YAAY,cAAc;;;;;CAMxE,kBAAkB,UAAU,WAAW;CAgCvC,kBAAkB,UAAU,sBAAsB;CAClD,OAAO,eAAe,kBAAkB,WAAW,sBAAsB;EACvE,cAAc;EACd,YAAY;EACZ,KAAK,WAAY;GACf,IAAI,CAAC,KAAK,qBACR,KAAK,eAAe,KAAK,WAAW,KAAK,WAAW;GAGtD,OAAO,KAAK;;EAEf,CAAC;CAEF,kBAAkB,UAAU,qBAAqB;CACjD,OAAO,eAAe,kBAAkB,WAAW,qBAAqB;EACtE,cAAc;EACd,YAAY;EACZ,KAAK,WAAY;GACf,IAAI,CAAC,KAAK,oBACR,KAAK,eAAe,KAAK,WAAW,KAAK,WAAW;GAGtD,OAAO,KAAK;;EAEf,CAAC;CAEF,kBAAkB,UAAU,0BAC1B,SAAS,yCAAyC,MAAM,OAAO;EAC7D,IAAI,IAAI,KAAK,OAAO,MAAM;EAC1B,OAAO,MAAM,OAAO,MAAM;;;;;;;CAQ9B,kBAAkB,UAAU,iBAC1B,SAAS,gCAAgC,MAAM,aAAa;EAC1D,MAAM,IAAI,MAAM,2CAA2C;;CAG/D,kBAAkB,kBAAkB;CACpC,kBAAkB,iBAAiB;CAEnC,kBAAkB,uBAAuB;CACzC,kBAAkB,oBAAoB;;;;;;;;;;;;;;;;;CAkBtC,kBAAkB,UAAU,cAC1B,SAAS,8BAA8B,WAAW,UAAU,QAAQ;EAClE,IAAI,UAAU,YAAY;EAC1B,IAAI,QAAQ,UAAU,kBAAkB;EAExC,IAAI;EACJ,QAAQ,OAAR;GACA,KAAK,kBAAkB;IACrB,WAAW,KAAK;IAChB;GACF,KAAK,kBAAkB;IACrB,WAAW,KAAK;IAChB;GACF,SACE,MAAM,IAAI,MAAM,8BAA8B;;EAGhD,IAAI,aAAa,KAAK;EACtB,IAAI,gBAAgB,UAAU,KAAK,QAAQ;EAC3C,IAAI,QAAQ,KAAK;EACjB,IAAI,UAAU,KAAK;EACnB,IAAI,eAAe,KAAK;EAExB,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,IAAI,GAAG,KAAK;GAC/C,IAAI,UAAU,SAAS;GACvB,IAAI,SAAS,QAAQ,WAAW,OAAO,OAAO,QAAQ,GAAG,QAAQ,OAAO;GACxE,IAAG,WAAW,MACZ,SAAS,KAAK,iBAAiB,YAAY,QAAQ,aAAa;GAElE,cAAc;IACJ;IACR,eAAe,QAAQ;IACvB,iBAAiB,QAAQ;IACzB,cAAc,QAAQ;IACtB,gBAAgB,QAAQ;IACxB,MAAM,QAAQ,SAAS,OAAO,OAAO,MAAM,GAAG,QAAQ,KAAK;IAC5D,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CA0BR,kBAAkB,UAAU,2BAC1B,SAAS,2CAA2C,OAAO;EACzD,IAAI,OAAO,KAAK,OAAO,OAAO,OAAO;EAMrC,IAAI,SAAS;GACX,QAAQ,KAAK,OAAO,OAAO,SAAS;GACpC,cAAc;GACd,gBAAgB,KAAK,OAAO,OAAO,UAAU,EAAE;GAChD;EAED,OAAO,SAAS,KAAK,iBAAiB,OAAO,OAAO;EACpD,IAAI,OAAO,SAAS,GAClB,OAAO,EAAE;EAGX,IAAI,WAAW,EAAE;EAEjB,IAAI,QAAQ,KAAK,aAAa,QACA,KAAK,mBACL,gBACA,kBACA,KAAK,4BACL,aAAa,kBAAkB;EAC7D,IAAI,SAAS,GAAG;GACd,IAAI,UAAU,KAAK,kBAAkB;GAErC,IAAI,MAAM,WAAW,KAAA,GAAW;IAC9B,IAAI,eAAe,QAAQ;IAM3B,OAAO,WAAW,QAAQ,iBAAiB,cAAc;KACvD,SAAS,KAAK;MACZ,MAAM,KAAK,OAAO,SAAS,iBAAiB,KAAK;MACjD,QAAQ,KAAK,OAAO,SAAS,mBAAmB,KAAK;MACrD,YAAY,KAAK,OAAO,SAAS,uBAAuB,KAAK;MAC9D,CAAC;KAEF,UAAU,KAAK,kBAAkB,EAAE;;UAEhC;IACL,IAAI,iBAAiB,QAAQ;IAM7B,OAAO,WACA,QAAQ,iBAAiB,QACzB,QAAQ,kBAAkB,gBAAgB;KAC/C,SAAS,KAAK;MACZ,MAAM,KAAK,OAAO,SAAS,iBAAiB,KAAK;MACjD,QAAQ,KAAK,OAAO,SAAS,mBAAmB,KAAK;MACrD,YAAY,KAAK,OAAO,SAAS,uBAAuB,KAAK;MAC9D,CAAC;KAEF,UAAU,KAAK,kBAAkB,EAAE;;;;EAKzC,OAAO;;CAGX,QAAQ,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC5B,SAAS,uBAAuB,YAAY,eAAe;EACzD,IAAI,YAAY;EAChB,IAAI,OAAO,eAAe,UACxB,YAAY,KAAK,oBAAoB,WAAW;EAGlD,IAAI,UAAU,KAAK,OAAO,WAAW,UAAU;EAC/C,IAAI,UAAU,KAAK,OAAO,WAAW,UAAU;EAG/C,IAAI,QAAQ,KAAK,OAAO,WAAW,SAAS,EAAE,CAAC;EAC/C,IAAI,aAAa,KAAK,OAAO,WAAW,cAAc,KAAK;EAC3D,IAAI,iBAAiB,KAAK,OAAO,WAAW,kBAAkB,KAAK;EACnE,IAAI,WAAW,KAAK,OAAO,WAAW,WAAW;EACjD,IAAI,OAAO,KAAK,OAAO,WAAW,QAAQ,KAAK;EAI/C,IAAI,WAAW,KAAK,UAClB,MAAM,IAAI,MAAM,0BAA0B,QAAQ;EAGpD,IAAI,YACF,aAAa,KAAK,UAAU,WAAW;EAGzC,UAAU,QACP,IAAI,OAAO,CAIX,IAAI,KAAK,UAAU,CAKnB,IAAI,SAAU,QAAQ;GACrB,OAAO,cAAc,KAAK,WAAW,WAAW,IAAI,KAAK,WAAW,OAAO,GACvE,KAAK,SAAS,YAAY,OAAO,GACjC;IACJ;EAMJ,KAAK,SAAS,SAAS,UAAU,MAAM,IAAI,OAAO,EAAE,KAAK;EACzD,KAAK,WAAW,SAAS,UAAU,SAAS,KAAK;EAEjD,KAAK,mBAAmB,KAAK,SAAS,SAAS,CAAC,IAAI,SAAU,GAAG;GAC/D,OAAO,KAAK,iBAAiB,YAAY,GAAG,cAAc;IAC1D;EAEF,KAAK,aAAa;EAClB,KAAK,iBAAiB;EACtB,KAAK,YAAY;EACjB,KAAK,gBAAgB;EACrB,KAAK,OAAO;;CAGd,uBAAuB,YAAY,OAAO,OAAO,kBAAkB,UAAU;CAC7E,uBAAuB,UAAU,WAAW;;;;;CAM5C,uBAAuB,UAAU,mBAAmB,SAAS,SAAS;EACpE,IAAI,iBAAiB;EACrB,IAAI,KAAK,cAAc,MACrB,iBAAiB,KAAK,SAAS,KAAK,YAAY,eAAe;EAGjE,IAAI,KAAK,SAAS,IAAI,eAAe,EACnC,OAAO,KAAK,SAAS,QAAQ,eAAe;EAK9C,IAAI;EACJ,KAAK,IAAI,GAAG,IAAI,KAAK,iBAAiB,QAAQ,EAAE,GAC9C,IAAI,KAAK,iBAAiB,MAAM,SAC9B,OAAO;EAIX,OAAO;;;;;;;;;;;CAYT,uBAAuB,gBACrB,SAAS,gCAAgC,YAAY,eAAe;EAClE,IAAI,MAAM,OAAO,OAAO,uBAAuB,UAAU;EAEzD,IAAI,QAAQ,IAAI,SAAS,SAAS,UAAU,WAAW,OAAO,SAAS,EAAE,KAAK;EAC9E,IAAI,UAAU,IAAI,WAAW,SAAS,UAAU,WAAW,SAAS,SAAS,EAAE,KAAK;EACpF,IAAI,aAAa,WAAW;EAC5B,IAAI,iBAAiB,WAAW,wBAAwB,IAAI,SAAS,SAAS,EACtB,IAAI,WAAW;EACvE,IAAI,OAAO,WAAW;EACtB,IAAI,gBAAgB;EACpB,IAAI,mBAAmB,IAAI,SAAS,SAAS,CAAC,IAAI,SAAU,GAAG;GAC7D,OAAO,KAAK,iBAAiB,IAAI,YAAY,GAAG,cAAc;IAC9D;EAOF,IAAI,oBAAoB,WAAW,UAAU,SAAS,CAAC,OAAO;EAC9D,IAAI,wBAAwB,IAAI,sBAAsB,EAAE;EACxD,IAAI,uBAAuB,IAAI,qBAAqB,EAAE;EAEtD,KAAK,IAAI,IAAI,GAAG,SAAS,kBAAkB,QAAQ,IAAI,QAAQ,KAAK;GAClE,IAAI,aAAa,kBAAkB;GACnC,IAAI,cAAc,IAAI,SAAO;GAC7B,YAAY,gBAAgB,WAAW;GACvC,YAAY,kBAAkB,WAAW;GAEzC,IAAI,WAAW,QAAQ;IACrB,YAAY,SAAS,QAAQ,QAAQ,WAAW,OAAO;IACvD,YAAY,eAAe,WAAW;IACtC,YAAY,iBAAiB,WAAW;IAExC,IAAI,WAAW,MACb,YAAY,OAAO,MAAM,QAAQ,WAAW,KAAK;IAGnD,qBAAqB,KAAK,YAAY;;GAGxC,sBAAsB,KAAK,YAAY;;EAGzC,UAAU,IAAI,oBAAoB,KAAK,2BAA2B;EAElE,OAAO;;;;;CAMX,uBAAuB,UAAU,WAAW;;;;CAK5C,OAAO,eAAe,uBAAuB,WAAW,WAAW,EACjE,KAAK,WAAY;EACf,OAAO,KAAK,iBAAiB,OAAO;IAEvC,CAAC;;;;CAKF,SAAS,UAAU;EACjB,KAAK,gBAAgB;EACrB,KAAK,kBAAkB;EACvB,KAAK,SAAS;EACd,KAAK,eAAe;EACpB,KAAK,iBAAiB;EACtB,KAAK,OAAO;;;;;;;CASd,MAAM,mBAAmB,KAAK;CAC9B,SAAS,cAAc,OAAO,OAAO;EACnC,IAAI,IAAI,MAAM;EACd,IAAI,IAAI,MAAM,SAAS;EACvB,IAAI,KAAK,GACP;OACK,IAAI,KAAK,GAAG;GACjB,IAAI,IAAI,MAAM;GACd,IAAI,IAAI,MAAM,QAAQ;GACtB,IAAI,iBAAiB,GAAG,EAAE,GAAG,GAAG;IAC9B,MAAM,SAAS;IACf,MAAM,QAAQ,KAAK;;SAEhB,IAAI,IAAI,IACb,KAAK,IAAI,IAAI,OAAO,IAAI,GAAG,KACzB,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,KAAK;GAC9B,IAAI,IAAI,MAAM,IAAI;GAClB,IAAI,IAAI,MAAM;GACd,IAAI,iBAAiB,GAAG,EAAE,IAAI,GAC5B;GAEF,MAAM,IAAI,KAAK;GACf,MAAM,KAAK;;OAIf,UAAU,OAAO,kBAAkB,MAAM;;CAG7C,uBAAuB,UAAU,iBAC/B,SAAS,gCAAgC,MAAM,aAAa;EAC1D,IAAI,gBAAgB;EACpB,IAAI,0BAA0B;EAC9B,IAAI,uBAAuB;EAC3B,IAAI,yBAAyB;EAC7B,IAAI,iBAAiB;EACrB,IAAI,eAAe;EACnB,IAAI,SAAS,KAAK;EAClB,IAAI,QAAQ;EAEZ,IAAI,OAAO,EAAE;EACb,IAAI,mBAAmB,EAAE;EACzB,IAAI,oBAAoB,EAAE,EACtB,SAAc,SAAS,KAAK;EAEhC,IAAI,gBAAgB;EACpB,OAAO,QAAQ,QACb,IAAI,KAAK,OAAO,MAAM,KAAK,KAAK;GAC9B;GACA;GACA,0BAA0B;GAE1B,cAAc,mBAAmB,cAAc;GAC/C,gBAAgB,kBAAkB;SAE/B,IAAI,KAAK,OAAO,MAAM,KAAK,KAC9B;OAEG;GACH,UAAU,IAAI,SAAS;GACvB,QAAQ,gBAAgB;GAExB,KAAK,MAAM,OAAO,MAAM,QAAQ,OAC9B,IAAI,KAAK,wBAAwB,MAAM,IAAI,EACzC;GAGJ,KAAW,MAAM,OAAO,IAAI;GAE5B,UAAU,EAAE;GACZ,OAAO,QAAQ,KAAK;IAClB,UAAU,OAAO,MAAM,OAAO,KAAK;IACnC,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb,QAAQ,KAAK,MAAM;;GAGrB,IAAI,QAAQ,WAAW,GACrB,MAAM,IAAI,MAAM,yCAAyC;GAG3D,IAAI,QAAQ,WAAW,GACrB,MAAM,IAAI,MAAM,yCAAyC;GAI3D,QAAQ,kBAAkB,0BAA0B,QAAQ;GAC5D,0BAA0B,QAAQ;GAElC,IAAI,QAAQ,SAAS,GAAG;IAEtB,QAAQ,SAAS,iBAAiB,QAAQ;IAC1C,kBAAkB,QAAQ;IAG1B,QAAQ,eAAe,uBAAuB,QAAQ;IACtD,uBAAuB,QAAQ;IAE/B,QAAQ,gBAAgB;IAGxB,QAAQ,iBAAiB,yBAAyB,QAAQ;IAC1D,yBAAyB,QAAQ;IAEjC,IAAI,QAAQ,SAAS,GAAG;KAEtB,QAAQ,OAAO,eAAe,QAAQ;KACtC,gBAAgB,QAAQ;;;GAI5B,kBAAkB,KAAK,QAAQ;GAC/B,IAAI,OAAO,QAAQ,iBAAiB,UAAU;IAC5C,IAAI,gBAAgB,QAAQ;IAC5B,OAAO,iBAAiB,UAAU,eAChC,iBAAiB,KAAK,KAAK;IAE7B,IAAI,iBAAiB,mBAAmB,MACtC,iBAAiB,iBAAiB,EAAE;IAEtC,iBAAiB,eAAe,KAAK,QAAQ;;;EAKnD,cAAc,mBAAmB,cAAc;EAC/C,KAAK,sBAAsB;EAE3B,KAAK,IAAI,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAC3C,IAAI,iBAAiB,MAAM,MACzB,UAAU,iBAAiB,IAAI,KAAK,mCAAmC;EAG3E,KAAK,qBAAqB,EAAE,CAAC,OAAO,GAAG,iBAAiB;;;;;;CAO5D,uBAAuB,UAAU,eAC/B,SAAS,8BAA8B,SAAS,WAAW,WACpB,aAAa,aAAa,OAAO;EAMtE,IAAI,QAAQ,cAAc,GACxB,MAAM,IAAI,UAAU,kDACE,QAAQ,WAAW;EAE3C,IAAI,QAAQ,eAAe,GACzB,MAAM,IAAI,UAAU,oDACE,QAAQ,aAAa;EAG7C,OAAO,aAAa,OAAO,SAAS,WAAW,aAAa,MAAM;;;;;;CAOtE,uBAAuB,UAAU,qBAC/B,SAAS,uCAAuC;EAC9C,KAAK,IAAI,QAAQ,GAAG,QAAQ,KAAK,mBAAmB,QAAQ,EAAE,OAAO;GACnE,IAAI,UAAU,KAAK,mBAAmB;GAMtC,IAAI,QAAQ,IAAI,KAAK,mBAAmB,QAAQ;IAC9C,IAAI,cAAc,KAAK,mBAAmB,QAAQ;IAElD,IAAI,QAAQ,kBAAkB,YAAY,eAAe;KACvD,QAAQ,sBAAsB,YAAY,kBAAkB;KAC5D;;;GAKJ,QAAQ,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BpC,uBAAuB,UAAU,sBAC/B,SAAS,sCAAsC,OAAO;EACpD,IAAI,SAAS;GACX,eAAe,KAAK,OAAO,OAAO,OAAO;GACzC,iBAAiB,KAAK,OAAO,OAAO,SAAS;GAC9C;EAED,IAAI,QAAQ,KAAK,aACf,QACA,KAAK,oBACL,iBACA,mBACA,KAAK,qCACL,KAAK,OAAO,OAAO,QAAQ,kBAAkB,qBAAqB,CACnE;EAED,IAAI,SAAS,GAAG;GACd,IAAI,UAAU,KAAK,mBAAmB;GAEtC,IAAI,QAAQ,kBAAkB,OAAO,eAAe;IAClD,IAAI,SAAS,KAAK,OAAO,SAAS,UAAU,KAAK;IACjD,IAAI,WAAW,MAAM;KACnB,SAAS,KAAK,SAAS,GAAG,OAAO;KACjC,SAAS,KAAK,iBAAiB,KAAK,YAAY,QAAQ,KAAK,cAAc;;IAE7E,IAAI,OAAO,KAAK,OAAO,SAAS,QAAQ,KAAK;IAC7C,IAAI,SAAS,MACX,OAAO,KAAK,OAAO,GAAG,KAAK;IAE7B,OAAO;KACG;KACR,MAAM,KAAK,OAAO,SAAS,gBAAgB,KAAK;KAChD,QAAQ,KAAK,OAAO,SAAS,kBAAkB,KAAK;KAC9C;KACP;;;EAIL,OAAO;GACL,QAAQ;GACR,MAAM;GACN,QAAQ;GACR,MAAM;GACP;;;;;;CAOL,uBAAuB,UAAU,0BAC/B,SAAS,iDAAiD;EACxD,IAAI,CAAC,KAAK,gBACR,OAAO;EAET,OAAO,KAAK,eAAe,UAAU,KAAK,SAAS,MAAM,IACvD,CAAC,KAAK,eAAe,KAAK,SAAU,IAAI;GAAE,OAAO,MAAM;IAAQ;;;;;;;CAQrE,uBAAuB,UAAU,mBAC/B,SAAS,mCAAmC,SAAS,eAAe;EAClE,IAAI,CAAC,KAAK,gBACR,OAAO;EAGT,IAAI,QAAQ,KAAK,iBAAiB,QAAQ;EAC1C,IAAI,SAAS,GACX,OAAO,KAAK,eAAe;EAG7B,IAAI,iBAAiB;EACrB,IAAI,KAAK,cAAc,MACrB,iBAAiB,KAAK,SAAS,KAAK,YAAY,eAAe;EAGjE,IAAI;EACJ,IAAI,KAAK,cAAc,SACf,MAAM,KAAK,SAAS,KAAK,WAAW,GAAG;GAK7C,IAAI,iBAAiB,eAAe,QAAQ,cAAc,GAAG;GAC7D,IAAI,IAAI,UAAU,UACX,KAAK,SAAS,IAAI,eAAe,EACtC,OAAO,KAAK,eAAe,KAAK,SAAS,QAAQ,eAAe;GAGlE,KAAK,CAAC,IAAI,QAAQ,IAAI,QAAQ,QACvB,KAAK,SAAS,IAAI,MAAM,eAAe,EAC5C,OAAO,KAAK,eAAe,KAAK,SAAS,QAAQ,MAAM,eAAe;;EAQ1E,IAAI,eACF,OAAO;OAGP,MAAM,IAAI,MAAM,OAAM,iBAAiB,8BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;CA2B1E,uBAAuB,UAAU,uBAC/B,SAAS,uCAAuC,OAAO;EACrD,IAAI,SAAS,KAAK,OAAO,OAAO,SAAS;EACzC,SAAS,KAAK,iBAAiB,OAAO;EACtC,IAAI,SAAS,GACX,OAAO;GACL,MAAM;GACN,QAAQ;GACR,YAAY;GACb;EAGH,IAAI,SAAS;GACH;GACR,cAAc,KAAK,OAAO,OAAO,OAAO;GACxC,gBAAgB,KAAK,OAAO,OAAO,SAAS;GAC7C;EAED,IAAI,QAAQ,KAAK,aACf,QACA,KAAK,mBACL,gBACA,kBACA,KAAK,4BACL,KAAK,OAAO,OAAO,QAAQ,kBAAkB,qBAAqB,CACnE;EAED,IAAI,SAAS,GAAG;GACd,IAAI,UAAU,KAAK,kBAAkB;GAErC,IAAI,QAAQ,WAAW,OAAO,QAC5B,OAAO;IACL,MAAM,KAAK,OAAO,SAAS,iBAAiB,KAAK;IACjD,QAAQ,KAAK,OAAO,SAAS,mBAAmB,KAAK;IACrD,YAAY,KAAK,OAAO,SAAS,uBAAuB,KAAK;IAC9D;;EAIL,OAAO;GACL,MAAM;GACN,QAAQ;GACR,YAAY;GACb;;CAGL,QAAQ,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDjC,SAAS,yBAAyB,YAAY,eAAe;EAC3D,IAAI,YAAY;EAChB,IAAI,OAAO,eAAe,UACxB,YAAY,KAAK,oBAAoB,WAAW;EAGlD,IAAI,UAAU,KAAK,OAAO,WAAW,UAAU;EAC/C,IAAI,WAAW,KAAK,OAAO,WAAW,WAAW;EAEjD,IAAI,WAAW,KAAK,UAClB,MAAM,IAAI,MAAM,0BAA0B,QAAQ;EAGpD,KAAK,WAAW,IAAI,UAAU;EAC9B,KAAK,SAAS,IAAI,UAAU;EAE5B,IAAI,aAAa;GACf,MAAM;GACN,QAAQ;GACT;EACD,KAAK,YAAY,SAAS,IAAI,SAAU,GAAG;GACzC,IAAI,EAAE,KAGJ,MAAM,IAAI,MAAM,qDAAqD;GAEvE,IAAI,SAAS,KAAK,OAAO,GAAG,SAAS;GACrC,IAAI,aAAa,KAAK,OAAO,QAAQ,OAAO;GAC5C,IAAI,eAAe,KAAK,OAAO,QAAQ,SAAS;GAEhD,IAAI,aAAa,WAAW,QACvB,eAAe,WAAW,QAAQ,eAAe,WAAW,QAC/D,MAAM,IAAI,MAAM,uDAAuD;GAEzE,aAAa;GAEb,OAAO;IACL,iBAAiB;KAGf,eAAe,aAAa;KAC5B,iBAAiB,eAAe;KACjC;IACD,UAAU,IAAI,kBAAkB,KAAK,OAAO,GAAG,MAAM,EAAE,cAAc;IACtE;IACD;;CAGJ,yBAAyB,YAAY,OAAO,OAAO,kBAAkB,UAAU;CAC/E,yBAAyB,UAAU,cAAc;;;;CAKjD,yBAAyB,UAAU,WAAW;;;;CAK9C,OAAO,eAAe,yBAAyB,WAAW,WAAW,EACnE,KAAK,WAAY;EACf,IAAI,UAAU,EAAE;EAChB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,UAAU,QAAQ,KACzC,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,UAAU,GAAG,SAAS,QAAQ,QAAQ,KAC7D,QAAQ,KAAK,KAAK,UAAU,GAAG,SAAS,QAAQ,GAAG;EAGvD,OAAO;IAEV,CAAC;;;;;;;;;;;;;;;;;;;;CAqBF,yBAAyB,UAAU,sBACjC,SAAS,6CAA6C,OAAO;EAC3D,IAAI,SAAS;GACX,eAAe,KAAK,OAAO,OAAO,OAAO;GACzC,iBAAiB,KAAK,OAAO,OAAO,SAAS;GAC9C;EAID,IAAI,eAAe,aAAa,OAAO,QAAQ,KAAK,WAClD,SAAS,QAAQ,SAAS;GACxB,IAAI,MAAM,OAAO,gBAAgB,QAAQ,gBAAgB;GACzD,IAAI,KACF,OAAO;GAGT,OAAQ,OAAO,kBACP,QAAQ,gBAAgB;IAChC;EACJ,IAAI,UAAU,KAAK,UAAU;EAE7B,IAAI,CAAC,SACH,OAAO;GACL,QAAQ;GACR,MAAM;GACN,QAAQ;GACR,MAAM;GACP;EAGH,OAAO,QAAQ,SAAS,oBAAoB;GAC1C,MAAM,OAAO,iBACV,QAAQ,gBAAgB,gBAAgB;GAC3C,QAAQ,OAAO,mBACZ,QAAQ,gBAAgB,kBAAkB,OAAO,gBAC/C,QAAQ,gBAAgB,kBAAkB,IAC1C;GACL,MAAM,MAAM;GACb,CAAC;;;;;;CAON,yBAAyB,UAAU,0BACjC,SAAS,mDAAmD;EAC1D,OAAO,KAAK,UAAU,MAAM,SAAU,GAAG;GACvC,OAAO,EAAE,SAAS,yBAAyB;IAC3C;;;;;;;CAQN,yBAAyB,UAAU,mBACjC,SAAS,0CAA0C,SAAS,eAAe;EACzE,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,UAAU,QAAQ,KAAK;GAG9C,IAAI,UAFU,KAAK,UAAU,GAEP,SAAS,iBAAiB,SAAS,KAAK;GAC9D,IAAI,WAAW,YAAY,IACzB,OAAO;;EAGX,IAAI,eACF,OAAO;OAGP,MAAM,IAAI,MAAM,OAAM,UAAU,8BAA6B;;;;;;;;;;;;;;;;;;;;CAsBnE,yBAAyB,UAAU,uBACjC,SAAS,8CAA8C,OAAO;EAC5D,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,UAAU,QAAQ,KAAK;GAC9C,IAAI,UAAU,KAAK,UAAU;GAI7B,IAAI,QAAQ,SAAS,iBAAiB,KAAK,OAAO,OAAO,SAAS,CAAC,KAAK,IACtE;GAEF,IAAI,oBAAoB,QAAQ,SAAS,qBAAqB,MAAM;GACpE,IAAI,mBASF,OAAO;IAPL,MAAM,kBAAkB,QACrB,QAAQ,gBAAgB,gBAAgB;IAC3C,QAAQ,kBAAkB,UACvB,QAAQ,gBAAgB,kBAAkB,kBAAkB,OAC1D,QAAQ,gBAAgB,kBAAkB,IAC1C;IAEG;;EAId,OAAO;GACL,MAAM;GACN,QAAQ;GACT;;;;;;;CAQL,yBAAyB,UAAU,iBACjC,SAAS,uCAAuC,MAAM,aAAa;EACjE,KAAK,sBAAsB,EAAE;EAC7B,KAAK,qBAAqB,EAAE;EAC5B,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,UAAU,QAAQ,KAAK;GAC9C,IAAI,UAAU,KAAK,UAAU;GAC7B,IAAI,kBAAkB,QAAQ,SAAS;GACvC,KAAK,IAAI,IAAI,GAAG,IAAI,gBAAgB,QAAQ,KAAK;IAC/C,IAAI,UAAU,gBAAgB;IAE9B,IAAI,SAAS,QAAQ,SAAS,SAAS,GAAG,QAAQ,OAAO;IACzD,IAAG,WAAW,MACZ,SAAS,KAAK,iBAAiB,QAAQ,SAAS,YAAY,QAAQ,KAAK,cAAc;IAEzF,KAAK,SAAS,IAAI,OAAO;IACzB,SAAS,KAAK,SAAS,QAAQ,OAAO;IAEtC,IAAI,OAAO;IACX,IAAI,QAAQ,MAAM;KAChB,OAAO,QAAQ,SAAS,OAAO,GAAG,QAAQ,KAAK;KAC/C,KAAK,OAAO,IAAI,KAAK;KACrB,OAAO,KAAK,OAAO,QAAQ,KAAK;;IAOlC,IAAI,kBAAkB;KACZ;KACR,eAAe,QAAQ,iBACpB,QAAQ,gBAAgB,gBAAgB;KAC3C,iBAAiB,QAAQ,mBACtB,QAAQ,gBAAgB,kBAAkB,QAAQ,gBACjD,QAAQ,gBAAgB,kBAAkB,IAC1C;KACJ,cAAc,QAAQ;KACtB,gBAAgB,QAAQ;KAClB;KACP;IAED,KAAK,oBAAoB,KAAK,gBAAgB;IAC9C,IAAI,OAAO,gBAAgB,iBAAiB,UAC1C,KAAK,mBAAmB,KAAK,gBAAgB;;;EAKnD,UAAU,KAAK,qBAAqB,KAAK,oCAAoC;EAC7E,UAAU,KAAK,oBAAoB,KAAK,2BAA2B;;CAGvE,QAAQ,2BAA2B;;;;;CC5pCnC,IAAI,qBAAA,8BAAA,CAAuD;CAC3D,IAAI,OAAA,cAAA;CAIJ,IAAI,gBAAgB;CAGpB,IAAI,eAAe;CAKnB,IAAI,eAAe;;;;;;;;;;;;;CAcnB,SAAS,WAAW,OAAO,SAAS,SAAS,SAAS,OAAO;EAC3D,KAAK,WAAW,EAAE;EAClB,KAAK,iBAAiB,EAAE;EACxB,KAAK,OAAO,SAAS,OAAO,OAAO;EACnC,KAAK,SAAS,WAAW,OAAO,OAAO;EACvC,KAAK,SAAS,WAAW,OAAO,OAAO;EACvC,KAAK,OAAO,SAAS,OAAO,OAAO;EACnC,KAAK,gBAAgB;EACrB,IAAI,WAAW,MAAM,KAAK,IAAI,QAAQ;;;;;;;;;;CAWxC,WAAW,0BACT,SAAS,mCAAmC,gBAAgB,oBAAoB,eAAe;EAG7F,IAAI,OAAO,IAAI,YAAY;EAM3B,IAAI,iBAAiB,eAAe,MAAM,cAAc;EACxD,IAAI,sBAAsB;EAC1B,IAAI,gBAAgB,WAAW;GAI7B,OAHmB,aAGA,IADL,aAAa,IAAI;GAG/B,SAAS,cAAc;IACrB,OAAO,sBAAsB,eAAe,SACxC,eAAe,yBAAyB,KAAA;;;EAKhD,IAAI,oBAAoB,GAAG,sBAAsB;EAKjD,IAAI,cAAc;EAElB,mBAAmB,YAAY,SAAU,SAAS;GAChD,IAAI,gBAAgB,MAGlB,IAAI,oBAAoB,QAAQ,eAAe;IAE7C,mBAAmB,aAAa,eAAe,CAAC;IAChD;IACA,sBAAsB;UAEjB;IAIL,IAAI,WAAW,eAAe,wBAAwB;IACtD,IAAI,OAAO,SAAS,OAAO,GAAG,QAAQ,kBACR,oBAAoB;IAClD,eAAe,uBAAuB,SAAS,OAAO,QAAQ,kBAC1B,oBAAoB;IACxD,sBAAsB,QAAQ;IAC9B,mBAAmB,aAAa,KAAK;IAErC,cAAc;IACd;;GAMJ,OAAO,oBAAoB,QAAQ,eAAe;IAChD,KAAK,IAAI,eAAe,CAAC;IACzB;;GAEF,IAAI,sBAAsB,QAAQ,iBAAiB;IACjD,IAAI,WAAW,eAAe,wBAAwB;IACtD,KAAK,IAAI,SAAS,OAAO,GAAG,QAAQ,gBAAgB,CAAC;IACrD,eAAe,uBAAuB,SAAS,OAAO,QAAQ,gBAAgB;IAC9E,sBAAsB,QAAQ;;GAEhC,cAAc;KACb,KAAK;EAER,IAAI,sBAAsB,eAAe,QAAQ;GAC/C,IAAI,aAEF,mBAAmB,aAAa,eAAe,CAAC;GAGlD,KAAK,IAAI,eAAe,OAAO,oBAAoB,CAAC,KAAK,GAAG,CAAC;;EAI/D,mBAAmB,QAAQ,QAAQ,SAAU,YAAY;GACvD,IAAI,UAAU,mBAAmB,iBAAiB,WAAW;GAC7D,IAAI,WAAW,MAAM;IACnB,IAAI,iBAAiB,MACnB,aAAa,KAAK,KAAK,eAAe,WAAW;IAEnD,KAAK,iBAAiB,YAAY,QAAQ;;IAE5C;EAEF,OAAO;EAEP,SAAS,mBAAmB,SAAS,MAAM;GACzC,IAAI,YAAY,QAAQ,QAAQ,WAAW,KAAA,GACzC,KAAK,IAAI,KAAK;QACT;IACL,IAAI,SAAS,gBACT,KAAK,KAAK,eAAe,QAAQ,OAAO,GACxC,QAAQ;IACZ,KAAK,IAAI,IAAI,WAAW,QAAQ,cACR,QAAQ,gBACR,QACA,MACA,QAAQ,KAAK,CAAC;;;;;;;;;;CAW9C,WAAW,UAAU,MAAM,SAAS,eAAe,QAAQ;EACzD,IAAI,MAAM,QAAQ,OAAO,EACvB,OAAO,QAAQ,SAAU,OAAO;GAC9B,KAAK,IAAI,MAAM;KACd,KAAK;OAEL,IAAI,OAAO,iBAAiB,OAAO,WAAW;OAC7C,QACF,KAAK,SAAS,KAAK,OAAO;SAI5B,MAAM,IAAI,UACR,gFAAgF,OACjF;EAEH,OAAO;;;;;;;;CAST,WAAW,UAAU,UAAU,SAAS,mBAAmB,QAAQ;EACjE,IAAI,MAAM,QAAQ,OAAO,EACvB,KAAK,IAAI,IAAI,OAAO,SAAO,GAAG,KAAK,GAAG,KACpC,KAAK,QAAQ,OAAO,GAAG;OAGtB,IAAI,OAAO,iBAAiB,OAAO,WAAW,UACjD,KAAK,SAAS,QAAQ,OAAO;OAG7B,MAAM,IAAI,UACR,gFAAgF,OACjF;EAEH,OAAO;;;;;;;;;CAUT,WAAW,UAAU,OAAO,SAAS,gBAAgB,KAAK;EACxD,IAAI;EACJ,KAAK,IAAI,IAAI,GAAG,MAAM,KAAK,SAAS,QAAQ,IAAI,KAAK,KAAK;GACxD,QAAQ,KAAK,SAAS;GACtB,IAAI,MAAM,eACR,MAAM,KAAK,IAAI;QAGf,IAAI,UAAU,IACZ,IAAI,OAAO;IAAE,QAAQ,KAAK;IACb,MAAM,KAAK;IACX,QAAQ,KAAK;IACb,MAAM,KAAK;IAAM,CAAC;;;;;;;;;CAYvC,WAAW,UAAU,OAAO,SAAS,gBAAgB,MAAM;EACzD,IAAI;EACJ,IAAI;EACJ,IAAI,MAAM,KAAK,SAAS;EACxB,IAAI,MAAM,GAAG;GACX,cAAc,EAAE;GAChB,KAAK,IAAI,GAAG,IAAI,MAAI,GAAG,KAAK;IAC1B,YAAY,KAAK,KAAK,SAAS,GAAG;IAClC,YAAY,KAAK,KAAK;;GAExB,YAAY,KAAK,KAAK,SAAS,GAAG;GAClC,KAAK,WAAW;;EAElB,OAAO;;;;;;;;;CAUT,WAAW,UAAU,eAAe,SAAS,wBAAwB,UAAU,cAAc;EAC3F,IAAI,YAAY,KAAK,SAAS,KAAK,SAAS,SAAS;EACrD,IAAI,UAAU,eACZ,UAAU,aAAa,UAAU,aAAa;OAE3C,IAAI,OAAO,cAAc,UAC5B,KAAK,SAAS,KAAK,SAAS,SAAS,KAAK,UAAU,QAAQ,UAAU,aAAa;OAGnF,KAAK,SAAS,KAAK,GAAG,QAAQ,UAAU,aAAa,CAAC;EAExD,OAAO;;;;;;;;;CAUT,WAAW,UAAU,mBACnB,SAAS,4BAA4B,aAAa,gBAAgB;EAChE,KAAK,eAAe,KAAK,YAAY,YAAY,IAAI;;;;;;;;CASzD,WAAW,UAAU,qBACnB,SAAS,8BAA8B,KAAK;EAC1C,KAAK,IAAI,IAAI,GAAG,MAAM,KAAK,SAAS,QAAQ,IAAI,KAAK,KACnD,IAAI,KAAK,SAAS,GAAG,eACnB,KAAK,SAAS,GAAG,mBAAmB,IAAI;EAI5C,IAAI,UAAU,OAAO,KAAK,KAAK,eAAe;EAC9C,KAAK,IAAI,IAAI,GAAG,MAAM,QAAQ,QAAQ,IAAI,KAAK,KAC7C,IAAI,KAAK,cAAc,QAAQ,GAAG,EAAE,KAAK,eAAe,QAAQ,IAAI;;;;;;CAQ1E,WAAW,UAAU,WAAW,SAAS,sBAAsB;EAC7D,IAAI,MAAM;EACV,KAAK,KAAK,SAAU,OAAO;GACzB,OAAO;IACP;EACF,OAAO;;;;;;CAOT,WAAW,UAAU,wBAAwB,SAAS,iCAAiC,OAAO;EAC5F,IAAI,YAAY;GACd,MAAM;GACN,MAAM;GACN,QAAQ;GACT;EACD,IAAI,MAAM,IAAI,mBAAmB,MAAM;EACvC,IAAI,sBAAsB;EAC1B,IAAI,qBAAqB;EACzB,IAAI,mBAAmB;EACvB,IAAI,qBAAqB;EACzB,IAAI,mBAAmB;EACvB,KAAK,KAAK,SAAU,OAAO,UAAU;GACnC,UAAU,QAAQ;GAClB,IAAI,SAAS,WAAW,QACjB,SAAS,SAAS,QAClB,SAAS,WAAW,MAAM;IAC/B,IAAG,uBAAuB,SAAS,UAC7B,qBAAqB,SAAS,QAC9B,uBAAuB,SAAS,UAChC,qBAAqB,SAAS,MAClC,IAAI,WAAW;KACb,QAAQ,SAAS;KACjB,UAAU;MACR,MAAM,SAAS;MACf,QAAQ,SAAS;MAClB;KACD,WAAW;MACT,MAAM,UAAU;MAChB,QAAQ,UAAU;MACnB;KACD,MAAM,SAAS;KAChB,CAAC;IAEJ,qBAAqB,SAAS;IAC9B,mBAAmB,SAAS;IAC5B,qBAAqB,SAAS;IAC9B,mBAAmB,SAAS;IAC5B,sBAAsB;UACjB,IAAI,qBAAqB;IAC9B,IAAI,WAAW,EACb,WAAW;KACT,MAAM,UAAU;KAChB,QAAQ,UAAU;KACnB,EACF,CAAC;IACF,qBAAqB;IACrB,sBAAsB;;GAExB,KAAK,IAAI,MAAM,GAAG,SAAS,MAAM,QAAQ,MAAM,QAAQ,OACrD,IAAI,MAAM,WAAW,IAAI,KAAK,cAAc;IAC1C,UAAU;IACV,UAAU,SAAS;IAEnB,IAAI,MAAM,MAAM,QAAQ;KACtB,qBAAqB;KACrB,sBAAsB;WACjB,IAAI,qBACT,IAAI,WAAW;KACb,QAAQ,SAAS;KACjB,UAAU;MACR,MAAM,SAAS;MACf,QAAQ,SAAS;MAClB;KACD,WAAW;MACT,MAAM,UAAU;MAChB,QAAQ,UAAU;MACnB;KACD,MAAM,SAAS;KAChB,CAAC;UAGJ,UAAU;IAGd;EACF,KAAK,mBAAmB,SAAU,YAAY,eAAe;GAC3D,IAAI,iBAAiB,YAAY,cAAc;IAC/C;EAEF,OAAO;GAAE,MAAM,UAAU;GAAW;GAAK;;CAG3C,QAAQ,aAAa;;;;;CCvZrB,QAAQ,qBAAA,8BAAA,CAA2D;CACnE,QAAQ,oBAAA,6BAAA,CAAyD;CACjE,QAAQ,aAAA,qBAAA,CAA0C;;;;;;;;;;CCAlD,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;CAE7D,IAAI,SAAA,gBAAA;CACJ,IAAI,SAAA,gBAAA;CACJ,IAAIC,WAAAA,UAAiB,gBAAgB;CACrC,IAAI,eAAA,uBAAA;CACJ,IAAI,cAAA,oBAAA;CAEJ,MAAM,WAA2B,uBAAO,GAAG;CAC3C,MAAM,WAA2B,uBAAO,GAAG;CAC3C,MAAM,WAA2B,uBAAO,GAAG;CAC3C,MAAM,aAA6B,uBAAO,GAAG;CAC7C,MAAM,kBAAkC,uBACtC,GACD;CACD,MAAM,aAA6B,uBAAO,GAAG;CAC7C,MAAM,eAA+B,uBAAO,GAAG;CAC/C,MAAM,uBAAuC,uBAC3C,GACD;CACD,MAAM,eAA+B,uBAAO,GAAG;CAC/C,MAAM,uBAAuC,uBAC3C,GACD;CACD,MAAM,iBAAiC,uBACrC,GACD;CACD,MAAM,cAA8B,uBAClC,GACD;CACD,MAAM,gBAAgC,uBACpC,GACD;CACD,MAAM,oBAAoC,uBACxC,GACD;CACD,MAAM,4BAA4C,uBAChD,GACD;CACD,MAAM,oBAAoC,uBACxC,GACD;CACD,MAAM,iBAAiC,uBACrC,GACD;CACD,MAAM,kBAAkC,uBACtC,GACD;CACD,MAAM,cAA8B,uBAAO,GAAG;CAC9C,MAAM,cAA8B,uBAAO,GAAG;CAC9C,MAAM,eAA+B,uBAAO,GAAG;CAC/C,MAAM,oBAAoC,uBACxC,GACD;CACD,MAAM,cAA8B,uBAAO,GAAG;CAC9C,MAAM,kBAAkC,uBACtC,GACD;CACD,MAAM,kBAAkC,uBACtC,GACD;CACD,MAAM,kBAAkC,uBACtC,GACD;CACD,MAAM,uBAAuC,uBAC3C,GACD;CACD,MAAM,cAA8B,uBAAO,GAAG;CAC9C,MAAM,WAA2B,uBAAO,GAAG;CAC3C,MAAM,aAA6B,uBAAO,GAAG;CAC7C,MAAM,iBAAiC,uBACrC,GACD;CACD,MAAM,qBAAqC,uBACzC,GACD;CACD,MAAM,gBAAgC,uBAAO,GAAG;CAChD,MAAM,eAA+B,uBAAO,GAAG;CAC/C,MAAM,WAA2B,uBAAO,GAAG;CAC3C,MAAM,QAAwB,uBAAO,GAAG;CACxC,MAAM,SAAyB,uBAAO,GAAG;CACzC,MAAM,YAA4B,uBAAO,GAAG;CAC5C,MAAM,eAA+B,uBAAO,GAAG;CAC/C,MAAM,gBAAgB;GACnB,WAAW;GACX,WAAW;GACX,WAAW;GACX,aAAa;GACb,kBAAkB;GAClB,aAAa;GACb,eAAe;GACf,uBAAuB;GACvB,eAAe;GACf,uBAAuB;GACvB,iBAAiB;GACjB,cAAc;GACd,gBAAgB;GAChB,oBAAoB;GACpB,4BAA4B;GAC5B,oBAAoB;GACpB,iBAAiB;GACjB,kBAAkB;GAClB,cAAc;GACd,cAAc;GACd,eAAe;GACf,oBAAoB;GACpB,cAAc;GACd,kBAAkB;GAClB,kBAAkB;GAClB,kBAAkB;GAClB,uBAAuB;GACvB,cAAc;GACd,WAAW;GACX,aAAa;GACb,iBAAiB;GACjB,qBAAqB;GACrB,gBAAgB;GAChB,eAAe;GACf,WAAW;GACX,QAAQ;GACR,SAAS;GACT,YAAY;GACZ,eAAe;EACjB;CACD,SAAS,uBAAuB,SAAS;EACvC,OAAO,sBAAsB,QAAQ,CAAC,SAAS,MAAM;GACnD,cAAc,KAAK,QAAQ;IAC3B;;CAGJ,MAAM,aAAa;EACjB,QAAQ;EACR,KAAK;EACL,OAAO;EACP,KAAK;EACL,WAAW;EACX,KAAK;EACN;CACD,MAAM,YAAY;EAChB,QAAQ;EACR,KAAK;EACL,WAAW;EACX,KAAK;EACL,QAAQ;EACR,KAAK;EACL,WAAW;EACX,KAAK;EACL,qBAAqB;EACrB,KAAK;EACL,iBAAiB;EACjB,KAAK;EACL,aAAa;EACb,KAAK;EACL,aAAa;EACb,KAAK;EACL,uBAAuB;EACvB,KAAK;EACL,MAAM;EACN,KAAK;EACL,aAAa;EACb,MAAM;EACN,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;EACN,cAAc;EACd,MAAM;EACN,sBAAsB;EACtB,MAAM;EACN,wBAAwB;EACxB,MAAM;EACN,eAAe;EACf,MAAM;EACN,uBAAuB;EACvB,MAAM;EACN,0BAA0B;EAC1B,MAAM;EACN,6BAA6B;EAC7B,MAAM;EACN,uBAAuB;EACvB,MAAM;EACN,sBAAsB;EACtB,MAAM;EACN,uBAAuB;EACvB,MAAM;EACN,mBAAmB;EACnB,MAAM;EACN,4BAA4B;EAC5B,MAAM;EACN,0BAA0B;EAC1B,MAAM;EACN,uBAAuB;EACvB,MAAM;EACP;CACD,MAAM,eAAe;EACnB,WAAW;EACX,KAAK;EACL,aAAa;EACb,KAAK;EACL,QAAQ;EACR,KAAK;EACL,YAAY;EACZ,KAAK;EACN;CACD,MAAM,gBAAgB;EACpB,gBAAgB;EAChB,KAAK;EACL,kBAAkB;EAClB,KAAK;EACL,aAAa;EACb,KAAK;EACL,iBAAiB;EACjB,KAAK;EACN;CACD,MAAM,UAAU;EACd,OAAO;GAAE,MAAM;GAAG,QAAQ;GAAG,QAAQ;GAAG;EACxC,KAAK;GAAE,MAAM;GAAG,QAAQ;GAAG,QAAQ;GAAG;EACtC,QAAQ;EACT;CACD,SAAS,WAAW,UAAU,SAAS,IAAI;EACzC,OAAO;GACL,MAAM;GACN;GACA;GACA,yBAAyB,IAAI,KAAK;GAClC,YAAY,EAAE;GACd,YAAY,EAAE;GACd,QAAQ,EAAE;GACV,SAAS,EAAE;GACX,QAAQ,EAAE;GACV,OAAO;GACP,aAAa,KAAK;GAClB,KAAK;GACN;;CAEH,SAAS,gBAAgB,SAAS,KAAK,OAAO,UAAU,WAAW,cAAc,YAAY,UAAU,OAAO,kBAAkB,OAAO,cAAc,OAAO,MAAM,SAAS;EACzK,IAAI,SAAS;GACX,IAAI,SAAS;IACX,QAAQ,OAAO,WAAW;IAC1B,QAAQ,OAAO,oBAAoB,QAAQ,OAAO,YAAY,CAAC;UAE/D,QAAQ,OAAO,eAAe,QAAQ,OAAO,YAAY,CAAC;GAE5D,IAAI,YACF,QAAQ,OAAO,gBAAgB;;EAGnC,OAAO;GACL,MAAM;GACN;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;;CAEH,SAAS,sBAAsB,UAAU,MAAM,SAAS;EACtD,OAAO;GACL,MAAM;GACN;GACA;GACD;;CAEH,SAAS,uBAAuB,YAAY,MAAM,SAAS;EACzD,OAAO;GACL,MAAM;GACN;GACA;GACD;;CAEH,SAAS,qBAAqB,KAAK,OAAO;EACxC,OAAO;GACL,MAAM;GACN,KAAK;GACL,KAAK,OAAO,SAAS,IAAI,GAAG,uBAAuB,KAAK,KAAK,GAAG;GAChE;GACD;;CAEH,SAAS,uBAAuB,SAAS,WAAW,OAAO,MAAM,SAAS,YAAY,GAAG;EACvF,OAAO;GACL,MAAM;GACN;GACA;GACA;GACA,WAAW,WAAW,IAAI;GAC3B;;CAEH,SAAS,oBAAoB,SAAS,KAAK;EACzC,OAAO;GACL,MAAM;GACN;GACA,SAAS,OAAO,SAAS,QAAQ,GAAG,uBAAuB,SAAS,OAAO,IAAI,GAAG;GACnF;;CAEH,SAAS,yBAAyB,UAAU,MAAM,SAAS;EACzD,OAAO;GACL,MAAM;GACN;GACA;GACD;;CAEH,SAAS,qBAAqB,QAAQ,OAAO,EAAE,EAAE,MAAM,SAAS;EAC9D,OAAO;GACL,MAAM;GACN;GACA;GACA,WAAW;GACZ;;CAEH,SAAS,yBAAyB,QAAQ,UAAU,KAAK,GAAG,UAAU,OAAO,SAAS,OAAO,MAAM,SAAS;EAC1G,OAAO;GACL,MAAM;GACN;GACA;GACA;GACA;GACA;GACD;;CAEH,SAAS,4BAA4B,MAAM,YAAY,WAAW,UAAU,MAAM;EAChF,OAAO;GACL,MAAM;GACN;GACA;GACA;GACA;GACA,KAAK;GACN;;CAEH,SAAS,sBAAsB,OAAO,OAAO,oBAAoB,OAAO,UAAU,OAAO;EACvF,OAAO;GACL,MAAM;GACN;GACA;GACA;GACA;GACA,iBAAiB;GACjB,KAAK;GACN;;CAEH,SAAS,qBAAqB,MAAM;EAClC,OAAO;GACL,MAAM;GACN;GACA,KAAK;GACN;;CAEH,SAAS,sBAAsB,UAAU;EACvC,OAAO;GACL,MAAM;GACN;GACA,KAAK;GACN;;CAEH,SAAS,kBAAkB,MAAM,YAAY,WAAW;EACtD,OAAO;GACL,MAAM;GACN;GACA;GACA;GACA,KAAK;GACN;;CAEH,SAAS,2BAA2B,MAAM,OAAO;EAC/C,OAAO;GACL,MAAM;GACN;GACA;GACA,KAAK;GACN;;CAEH,SAAS,yBAAyB,aAAa;EAC7C,OAAO;GACL,MAAM;GACN;GACA,KAAK;GACN;;CAEH,SAAS,sBAAsB,SAAS;EACtC,OAAO;GACL,MAAM;GACN;GACA,KAAK;GACN;;CAEH,SAAS,eAAe,KAAK,aAAa;EACxC,OAAO,OAAO,cAAc,eAAe;;CAE7C,SAAS,oBAAoB,KAAK,aAAa;EAC7C,OAAO,OAAO,cAAc,eAAe;;CAE7C,SAAS,eAAe,MAAM,EAAE,QAAQ,cAAc,SAAS;EAC7D,IAAI,CAAC,KAAK,SAAS;GACjB,KAAK,UAAU;GACf,aAAa,eAAe,OAAO,KAAK,YAAY,CAAC;GACrD,OAAO,WAAW;GAClB,OAAO,oBAAoB,OAAO,KAAK,YAAY,CAAC;;;CAIxD,MAAM,wBAAwB,IAAI,WAAW,CAAC,KAAK,IAAI,CAAC;CACxD,MAAM,yBAAyB,IAAI,WAAW,CAAC,KAAK,IAAI,CAAC;CACzD,SAAS,eAAe,GAAG;EACzB,OAAO,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,KAAK;;CAEhD,SAAS,aAAa,GAAG;EACvB,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM;;CAE9D,SAAS,kBAAkB,GAAG;EAC5B,OAAO,MAAM,MAAM,MAAM,MAAM,aAAa,EAAE;;CAEhD,SAAS,YAAY,KAAK;EACxB,MAAM,MAAM,IAAI,WAAW,IAAI,OAAO;EACtC,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAC9B,IAAI,KAAK,IAAI,WAAW,EAAE;EAE5B,OAAO;;CAET,MAAM,YAAY;EAChB,OAAO,IAAI,WAAW;GAAC;GAAI;GAAI;GAAI;GAAI;GAAI;GAAG,CAAC;EAE/C,UAAU,IAAI,WAAW;GAAC;GAAI;GAAI;GAAG,CAAC;EAEtC,YAAY,IAAI,WAAW;GAAC;GAAI;GAAI;GAAG,CAAC;EAExC,WAAW,IAAI,WAAW;GAAC;GAAI;GAAI;GAAK;GAAI;GAAK;GAAK;GAAK;GAAI,CAAC;EAEhE,UAAU,IAAI,WAAW;GAAC;GAAI;GAAI;GAAK;GAAK;GAAK;GAAK;GAAI,CAAC;EAE3D,UAAU,IAAI,WAAW;GAAC;GAAI;GAAI;GAAK;GAAK;GAAK;GAAK;GAAI,CAAC;EAE3D,aAAa,IAAI,WAAW;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC;EAEH;CACD,IAAM,YAAN,MAAgB;EACd,YAAY,OAAO,KAAK;GACtB,KAAK,QAAQ;GACb,KAAK,MAAM;;GAEX,KAAK,QAAQ;;GAEb,KAAK,SAAS;;GAEd,KAAK,eAAe;;GAEpB,KAAK,QAAQ;;GAEb,KAAK,cAAc;;GAEnB,KAAK,YAAY;;GAEjB,KAAK,WAAW;;GAEhB,KAAK,QAAQ;;GAEb,KAAK,SAAS;;GAEd,KAAK,WAAW,EAAE;GAClB,KAAK,OAAO;GACZ,KAAK,gBAAgB;GACrB,KAAK,iBAAiB;GACtB,KAAK,iBAAiB;GACtB,KAAK,kBAAkB,KAAK;GAC5B,KAAK,gBAAgB;GAEnB,KAAK,gBAAgB,IAAI,OAAO,cAC9B,OAAO,iBACN,IAAI,aAAa,KAAK,cAAc,IAAI,SAAS,CACnD;;EAGL,IAAI,YAAY;GACd,OAAO,KAAK,SAAS,KAAK,KAAK,MAAM,WAAW;;EAElD,QAAQ;GACN,KAAK,QAAQ;GACb,KAAK,OAAO;GACZ,KAAK,SAAS;GACd,KAAK,eAAe;GACpB,KAAK,QAAQ;GACb,KAAK,YAAY;GACjB,KAAK,WAAW;GAChB,KAAK,kBAAkB,KAAK;GAC5B,KAAK,SAAS,SAAS;GACvB,KAAK,gBAAgB;GACrB,KAAK,iBAAiB;;;;;;;;EAQxB,OAAO,OAAO;GACZ,IAAI,OAAO;GACX,IAAI,SAAS,QAAQ;GACrB,MAAM,SAAS,KAAK,SAAS;GAC7B,IAAI,IAAI;GACR,IAAI,SAAS,KAAK;IAChB,IAAI,IAAI;IACR,IAAI,IAAI;IACR,OAAO,IAAI,IAAI,GAAG;KAChB,MAAM,IAAI,IAAI,MAAM;KACpB,KAAK,SAAS,KAAK,QAAQ,IAAI,IAAI,IAAI;;IAEzC,IAAI;UAEJ,KAAK,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,KAC/B,IAAI,QAAQ,KAAK,SAAS,IAAI;IAC5B,IAAI;IACJ;;GAIN,IAAI,KAAK,GAAG;IACV,OAAO,IAAI;IACX,SAAS,QAAQ,KAAK,SAAS;;GAEjC,OAAO;IACL;IACA;IACA,QAAQ;IACT;;EAEH,OAAO;GACL,OAAO,KAAK,OAAO,WAAW,KAAK,QAAQ,EAAE;;EAE/C,UAAU,GAAG;GACX,IAAI,MAAM,IAAI;IACZ,IAAI,KAAK,QAAQ,KAAK,cACpB,KAAK,IAAI,OAAO,KAAK,cAAc,KAAK,MAAM;IAEhD,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK;UACpB,IAAI,MAAM,IACf,KAAK,aAAa;QACb,IAAI,CAAC,KAAK,UAAU,MAAM,KAAK,cAAc,IAAI;IACtD,KAAK,QAAQ;IACb,KAAK,iBAAiB;IACtB,KAAK,uBAAuB,EAAE;;;EAGlC,uBAAuB,GAAG;GACxB,IAAI,MAAM,KAAK,cAAc,KAAK,iBAChC,IAAI,KAAK,mBAAmB,KAAK,cAAc,SAAS,GAAG;IACzD,MAAM,QAAQ,KAAK,QAAQ,IAAI,KAAK,cAAc;IAClD,IAAI,QAAQ,KAAK,cACf,KAAK,IAAI,OAAO,KAAK,cAAc,MAAM;IAE3C,KAAK,QAAQ;IACb,KAAK,eAAe;UAEpB,KAAK;QAEF,IAAI,KAAK,UAAU;IACxB,KAAK,QAAQ;IACb,KAAK,cAAc,EAAE;UAChB;IACL,KAAK,QAAQ;IACb,KAAK,UAAU,EAAE;;;EAGrB,mBAAmB,GAAG;GACpB,IAAI,MAAM,KAAK,eAAe,IAAI;IAChC,KAAK,QAAQ;IACb,KAAK,iBAAiB;IACtB,KAAK,wBAAwB,EAAE;;;EAGnC,wBAAwB,GAAG;GACzB,IAAI,MAAM,KAAK,eAAe,KAAK,iBACjC,IAAI,KAAK,mBAAmB,KAAK,eAAe,SAAS,GAAG;IAC1D,KAAK,IAAI,gBAAgB,KAAK,cAAc,KAAK,QAAQ,EAAE;IAC3D,IAAI,KAAK,UACP,KAAK,QAAQ;SAEb,KAAK,QAAQ;IAEf,KAAK,eAAe,KAAK,QAAQ;UAEjC,KAAK;QAEF;IACL,KAAK,QAAQ;IACb,KAAK,mBAAmB,EAAE;;;EAG9B,0BAA0B,GAAG;GAC3B,MAAM,QAAQ,KAAK,kBAAkB,KAAK,gBAAgB;GAQ1D,IAAI,EAPY,QAEd,kBAAkB,EAAE,IAGnB,IAAI,QAAQ,KAAK,gBAAgB,KAAK,iBAGvC,KAAK,WAAW;QACX,IAAI,CAAC,OAAO;IACjB,KAAK;IACL;;GAEF,KAAK,gBAAgB;GACrB,KAAK,QAAQ;GACb,KAAK,eAAe,EAAE;;;EAGxB,cAAc,GAAG;GACf,IAAI,KAAK,kBAAkB,KAAK,gBAAgB,QAAQ;IACtD,IAAI,MAAM,MAAM,aAAa,EAAE,EAAE;KAC/B,MAAM,YAAY,KAAK,QAAQ,KAAK,gBAAgB;KACpD,IAAI,KAAK,eAAe,WAAW;MACjC,MAAM,cAAc,KAAK;MACzB,KAAK,QAAQ;MACb,KAAK,IAAI,OAAO,KAAK,cAAc,UAAU;MAC7C,KAAK,QAAQ;;KAEf,KAAK,eAAe,YAAY;KAChC,KAAK,sBAAsB,EAAE;KAC7B,KAAK,WAAW;KAChB;;IAEF,KAAK,gBAAgB;;GAEvB,KAAK,IAAI,QAAQ,KAAK,gBAAgB,KAAK,gBACzC,KAAK,iBAAiB;QACjB,IAAI,KAAK,kBAAkB;QAC5B,KAAK,oBAAoB,UAAU,YAAY,KAAK,oBAAoB,UAAU,eAAe,CAAC,KAAK;SACrG,MAAM,IACR,KAAK,aAAa;UACb,IAAI,CAAC,KAAK,UAAU,MAAM,KAAK,cAAc,IAAI;MACtD,KAAK,QAAQ;MACb,KAAK,iBAAiB;MACtB,KAAK,uBAAuB,EAAE;;WAE3B,IAAI,KAAK,cAAc,GAAG,EAC/B,KAAK,gBAAgB;UAGvB,KAAK,gBAAgB,OAAO,MAAM,GAAG;;EAGzC,mBAAmB,GAAG;GACpB,IAAI,MAAM,UAAU,MAAM,KAAK;QACzB,EAAE,KAAK,kBAAkB,UAAU,MAAM,QAAQ;KACnD,KAAK,QAAQ;KACb,KAAK,kBAAkB,UAAU;KACjC,KAAK,gBAAgB;KACrB,KAAK,eAAe,KAAK,QAAQ;;UAE9B;IACL,KAAK,gBAAgB;IACrB,KAAK,QAAQ;IACb,KAAK,mBAAmB,EAAE;;;;;;;;;EAS9B,cAAc,GAAG;GACf,OAAO,EAAE,KAAK,QAAQ,KAAK,OAAO,QAAQ;IACxC,MAAM,KAAK,KAAK,OAAO,WAAW,KAAK,MAAM;IAC7C,IAAI,OAAO,IACT,KAAK,SAAS,KAAK,KAAK,MAAM;IAEhC,IAAI,OAAO,GACT,OAAO;;GAGX,KAAK,QAAQ,KAAK,OAAO,SAAS;GAClC,OAAO;;;;;;;;;;EAUT,mBAAmB,GAAG;GACpB,IAAI,MAAM,KAAK,gBAAgB,KAAK;QAC9B,EAAE,KAAK,kBAAkB,KAAK,gBAAgB,QAAQ;KACxD,IAAI,KAAK,oBAAoB,UAAU,UACrC,KAAK,IAAI,QAAQ,KAAK,cAAc,KAAK,QAAQ,EAAE;UAEnD,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,QAAQ,EAAE;KAEvD,KAAK,gBAAgB;KACrB,KAAK,eAAe,KAAK,QAAQ;KACjC,KAAK,QAAQ;;UAEV,IAAI,KAAK,kBAAkB;QAC5B,KAAK,cAAc,KAAK,gBAAgB,GAAG,EAC7C,KAAK,gBAAgB;UAElB,IAAI,MAAM,KAAK,gBAAgB,KAAK,gBAAgB,IACzD,KAAK,gBAAgB;;EAGzB,aAAa,UAAU,QAAQ;GAC7B,KAAK,YAAY,UAAU,OAAO;GAClC,KAAK,QAAQ;;EAEf,YAAY,UAAU,QAAQ;GAC5B,KAAK,WAAW;GAChB,KAAK,kBAAkB;GACvB,KAAK,gBAAgB;;EAEvB,mBAAmB,GAAG;GACpB,IAAI,MAAM,IAAI;IACZ,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B,IAAI,MAAM,IAAI;IACnB,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B,IAAI,eAAe,EAAE,EAAE;IAC5B,KAAK,eAAe,KAAK;IACzB,IAAI,KAAK,SAAS,GAChB,KAAK,QAAQ;SACR,IAAI,KAAK,WACd,KAAK,QAAQ;SACR,IAAI,CAAC,KAAK,OACf,IAAI,MAAM,KACR,KAAK,QAAQ;SAEb,KAAK,QAAQ,MAAM,MAAM,KAAK;SAGhC,KAAK,QAAQ;UAEV,IAAI,MAAM,IACf,KAAK,QAAQ;QACR;IACL,KAAK,QAAQ;IACb,KAAK,UAAU,EAAE;;;EAGrB,eAAe,GAAG;GAChB,IAAI,kBAAkB,EAAE,EACtB,KAAK,cAAc,EAAE;;EAGzB,sBAAsB,GAAG;GACvB,IAAI,kBAAkB,EAAE,EAAE;IACxB,MAAM,MAAM,KAAK,OAAO,MAAM,KAAK,cAAc,KAAK,MAAM;IAC5D,IAAI,QAAQ,YACV,KAAK,YAAY,YAAY,OAAO,IAAI,EAAE,EAAE;IAE9C,KAAK,cAAc,EAAE;;;EAGzB,cAAc,GAAG;GACf,KAAK,IAAI,cAAc,KAAK,cAAc,KAAK,MAAM;GACrD,KAAK,eAAe;GACpB,KAAK,QAAQ;GACb,KAAK,oBAAoB,EAAE;;EAE7B,0BAA0B,GAAG;GAC3B,IAAI,aAAa,EAAE;QAAS,IAAI,MAAM,IAAI;IAEtC,KAAK,IAAI,MAAM,IAAI,KAAK,MAAM;IAEhC,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B;IACL,KAAK,QAAQ,eAAe,EAAE,GAAG,IAAI;IACrC,KAAK,eAAe,KAAK;;;EAG7B,sBAAsB,GAAG;GACvB,IAAI,MAAM,MAAM,aAAa,EAAE,EAAE;IAC/B,KAAK,IAAI,WAAW,KAAK,cAAc,KAAK,MAAM;IAClD,KAAK,eAAe;IACpB,KAAK,QAAQ;IACb,KAAK,yBAAyB,EAAE;;;EAGpC,yBAAyB,GAAG;GAC1B,IAAI,MAAM,IAAI;IACZ,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,oBAAoB,GAAG;GACrB,IAAI,MAAM,IAAI;IACZ,KAAK,IAAI,aAAa,KAAK,MAAM;IACjC,IAAI,KAAK,UACP,KAAK,QAAQ;SAEb,KAAK,QAAQ;IAEf,KAAK,eAAe,KAAK,QAAQ;UAC5B,IAAI,MAAM,IAAI;IACnB,KAAK,QAAQ;IACb,IAAI,KAAK,MAAM,KAAK,IAClB,KAAK,IAAI,MAAM,IAAI,KAAK,MAAM;UAE3B,IAAI,MAAM,MAAM,KAAK,MAAM,KAAK,IAAI;IACzC,KAAK,IAAI,aAAa,KAAK,MAAM;IACjC,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK;UACpB,IAAI,CAAC,aAAa,EAAE,EAAE;IAC3B,IAAI,MAAM,IACR,KAAK,IAAI,MACP,IACA,KAAK,MACN;IAEH,KAAK,gBAAgB,EAAE;;;EAG3B,gBAAgB,GAAG;GACjB,IAAI,MAAM,OAAO,KAAK,MAAM,KAAK,IAAI;IACnC,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK;UACpB,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;IACvD,KAAK,IAAI,UAAU,KAAK,OAAO,KAAK,QAAQ,EAAE;IAC9C,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B;IACL,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK;;;EAG7B,sBAAsB,GAAG;GACvB,IAAI,MAAM,IAAI;IACZ,KAAK,IAAI,iBAAiB,KAAK,MAAM;IACrC,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;IACjC,KAAK,WAAW;UACX,IAAI,CAAC,aAAa,EAAE,EAAE;IAC3B,KAAK,QAAQ;IACb,KAAK,oBAAoB,EAAE;;;EAG/B,gBAAgB,GAAG;GACjB,IAAI,MAAM,MAAM,kBAAkB,EAAE,EAAE;IACpC,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,MAAM;IACpD,KAAK,kBAAkB,EAAE;UACpB,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IACvC,KAAK,IAAI,MACP,IACA,KAAK,MACN;;EAGL,eAAe,GAAG;GAChB,IAAI,MAAM,MAAM,kBAAkB,EAAE,EAAE;IACpC,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,MAAM;IACjD,KAAK,kBAAkB,EAAE;UACpB,IAAI,MAAM,IAAI;IACnB,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,MAAM;IACjD,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B,IAAI,MAAM,IAAI;IACnB,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,MAAM;IACjD,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,cAAc,GAAG;GACf,IAAI,MAAM,MAAM,kBAAkB,EAAE,EAAE;IACpC,KAAK,IAAI,SAAS,KAAK,cAAc,KAAK,MAAM;IAChD,KAAK,kBAAkB,EAAE;UACpB,IAAI,MAAM,IACf,KAAK,QAAQ;QACR,IAAI,MAAM,IAAI;IACnB,KAAK,IAAI,SAAS,KAAK,cAAc,KAAK,MAAM;IAChD,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,qBAAqB,GAAG;GACtB,IAAI,MAAM,IACR,KAAK,QAAQ;QACR,IAAI,MAAM,MAAM,kBAAkB,EAAE,EAAE;IAC3C,KAAK,IAAI,SAAS,KAAK,cAAc,KAAK,QAAQ,EAAE;IACpD,KAAK,kBAAkB,EAAE;IAEvB,KAAK,IAAI,MACP,IACA,KAAK,MACN;;;EAIP,mBAAmB,GAAG;GACpB,IAAI,MAAM,MAAM,kBAAkB,EAAE,EAAE;IACpC,KAAK,IAAI,cAAc,KAAK,cAAc,KAAK,MAAM;IACrD,KAAK,kBAAkB,EAAE;UACpB,IAAI,MAAM,IAAI;IACnB,KAAK,IAAI,cAAc,KAAK,cAAc,KAAK,MAAM;IACrD,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,kBAAkB,GAAG;GACnB,KAAK,eAAe,KAAK;GACzB,KAAK,QAAQ;GACb,KAAK,IAAI,gBAAgB,KAAK,MAAM;GACpC,KAAK,mBAAmB,EAAE;;EAE5B,mBAAmB,GAAG;GACpB,IAAI,MAAM,IACR,KAAK,QAAQ;QACR,IAAI,MAAM,MAAM,MAAM,IAAI;IAC/B,KAAK,IAAI,YAAY,GAAG,KAAK,aAAa;IAC1C,KAAK,eAAe;IACpB,KAAK,QAAQ;IACb,KAAK,oBAAoB,EAAE;UACtB,IAAI,CAAC,aAAa,EAAE,EAAE;IAC3B,KAAK,IAAI,YAAY,GAAG,KAAK,aAAa;IAC1C,KAAK,gBAAgB,EAAE;;;EAG3B,qBAAqB,GAAG;GACtB,IAAI,MAAM,IAAI;IACZ,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B,IAAI,MAAM,IAAI;IACnB,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B,IAAI,CAAC,aAAa,EAAE,EAAE;IAC3B,KAAK,eAAe,KAAK;IACzB,KAAK,QAAQ;IACb,KAAK,yBAAyB,EAAE;;;EAGpC,kBAAkB,GAAG,OAAO;GAC1B,IAAI,MAAM,SAAS,OAAO;IACxB,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,MAAM;IACpD,KAAK,eAAe;IACpB,KAAK,IAAI,YACP,UAAU,KAAK,IAAI,GACnB,KAAK,QAAQ,EACd;IACD,KAAK,QAAQ;UACR,IAAI,MAAM,IACf,KAAK,aAAa;;EAGtB,6BAA6B,GAAG;GAC9B,KAAK,kBAAkB,GAAG,GAAG;;EAE/B,6BAA6B,GAAG;GAC9B,KAAK,kBAAkB,GAAG,GAAG;;EAE/B,yBAAyB,GAAG;GAC1B,IAAI,aAAa,EAAE,IAAI,MAAM,IAAI;IAC/B,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,MAAM;IACpD,KAAK,eAAe;IACpB,KAAK,IAAI,YAAY,GAAG,KAAK,MAAM;IACnC,KAAK,QAAQ;IACb,KAAK,oBAAoB,EAAE;UACtB,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAC/D,KAAK,IAAI,MACP,IACA,KAAK,MACN;QACI,IAAI,MAAM,IACf,KAAK,aAAa;;EAGtB,uBAAuB,GAAG;GACxB,IAAI,MAAM,IAAI;IACZ,KAAK,QAAQ;IACb,KAAK,gBAAgB;UAErB,KAAK,QAAQ,MAAM,KAAK,KAAK;;EAGjC,mBAAmB,GAAG;GACpB,IAAI,MAAM,MAAM,KAAK,cAAc,GAAG,EAAE;IACtC,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,6BAA6B,GAAG;GAC9B,IAAI,MAAM,MAAM,KAAK,cAAc,GAAG,EAAE;IACtC,KAAK,IAAI,wBAAwB,KAAK,cAAc,KAAK,MAAM;IAC/D,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,mBAAmB,GAAG;GACpB,IAAI,MAAM,IAAI;IACZ,KAAK,QAAQ;IACb,KAAK,kBAAkB,UAAU;IACjC,KAAK,gBAAgB;IACrB,KAAK,eAAe,KAAK,QAAQ;UAEjC,KAAK,QAAQ;;EAGjB,sBAAsB,GAAG;GACvB,IAAI,MAAM,MAAM,KAAK,cAAc,GAAG,EAAE;IACtC,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,MAAM;IACjD,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,oBAAoB,GAAG;GACrB,IAAI,MAAM,UAAU,UAAU,IAC5B,KAAK,aAAa,UAAU,WAAW,EAAE;QACpC,IAAI,MAAM,UAAU,SAAS,IAClC,KAAK,aAAa,UAAU,UAAU,EAAE;QACnC;IACL,KAAK,QAAQ;IACb,KAAK,eAAe,EAAE;;;EAG1B,oBAAoB,GAAG;GACrB,IAAI,MAAM,UAAU,SAAS,IAC3B,KAAK,aAAa,UAAU,UAAU,EAAE;QACnC,IAAI,MAAM,UAAU,YAAY,IACrC,KAAK,aAAa,UAAU,aAAa,EAAE;QACtC;IACL,KAAK,QAAQ;IACb,KAAK,eAAe,EAAE;;;EAG1B,cAAc;GAEV,KAAK,YAAY,KAAK;GACtB,KAAK,QAAQ;GACb,KAAK,cAAc,KAAK;GACxB,KAAK,cAAc,YACjB,KAAK,cAAc,KAAK,KAAK,cAAc,KAAK,OAAO,aAAa,SAAS,OAAO,aAAa,UAClG;;EAGL,gBAAgB;GACd;IACE,MAAM,SAAS,KAAK,cAAc,MAAM,KAAK,QAAQ,KAAK,MAAM;IAChE,IAAI,UAAU,GAAG;KACf,KAAK,QAAQ,KAAK;KAClB,IAAI,WAAW,GACb,KAAK,QAAQ,KAAK;WAGpB,KAAK,QAAQ,KAAK,OAAO,SAAS;;;;;;;;EASxC,MAAM,OAAO;GACX,KAAK,SAAS;GACd,OAAO,KAAK,QAAQ,KAAK,OAAO,QAAQ;IACtC,MAAM,IAAI,KAAK,OAAO,WAAW,KAAK,MAAM;IAC5C,IAAI,MAAM,MAAM,KAAK,UAAU,IAC7B,KAAK,SAAS,KAAK,KAAK,MAAM;IAEhC,QAAQ,KAAK,OAAb;KACE,KAAK;MACH,KAAK,UAAU,EAAE;MACjB;KAEF,KAAK;MACH,KAAK,uBAAuB,EAAE;MAC9B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,wBAAwB,EAAE;MAC/B;KAEF,KAAK;MACH,KAAK,0BAA0B,EAAE;MACjC;KAEF,KAAK;MACH,KAAK,cAAc,EAAE;MACrB;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,6BAA6B,EAAE;MACpC;KAEF,KAAK;MACH,KAAK,gBAAgB,EAAE;MACvB;KAEF,KAAK;MACH,KAAK,eAAe,EAAE;MACtB;KAEF,KAAK;MACH,KAAK,cAAc,EAAE;MACrB;KAEF,KAAK;MACH,KAAK,qBAAqB,EAAE;MAC5B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,sBAAsB,EAAE;MAC7B;KAEF,KAAK;MACH,KAAK,oBAAoB,EAAE;MAC3B;KAEF,KAAK;MACH,KAAK,eAAe,EAAE;MACtB;KAEF,KAAK;MACH,KAAK,sBAAsB,EAAE;MAC7B;KAEF,KAAK;MACH,KAAK,sBAAsB,EAAE;MAC7B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,6BAA6B,EAAE;MACpC;KAEF,KAAK;MACH,KAAK,qBAAqB,EAAE;MAC5B;KAEF,KAAK;MACH,KAAK,0BAA0B,EAAE;MACjC;KAEF,KAAK;MACH,KAAK,yBAAyB,EAAE;MAChC;KAEF,KAAK;MACH,KAAK,oBAAoB,EAAE;MAC3B;KAEF,KAAK;MACH,KAAK,oBAAoB,EAAE;MAC3B;KAEF,KAAK;MACH,KAAK,yBAAyB,EAAE;MAChC;KAEF,KAAK;MACH,KAAK,sBAAsB,EAAE;MAC7B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,uBAAuB,EAAE;MAC9B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,6BAA6B,EAAE;MACpC;KAEF,KAAK;MACH,KAAK,eAAe;MACpB;;IAGJ,KAAK;;GAEP,KAAK,SAAS;GACd,KAAK,QAAQ;;;;;EAKf,UAAU;GACR,IAAI,KAAK,iBAAiB,KAAK;QACzB,KAAK,UAAU,KAAK,KAAK,UAAU,MAAM,KAAK,kBAAkB,GAAG;KACrE,KAAK,IAAI,OAAO,KAAK,cAAc,KAAK,MAAM;KAC9C,KAAK,eAAe,KAAK;WACpB,IAAI,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,IAAI;KACtE,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,MAAM;KACpD,KAAK,eAAe,KAAK;;;;EAI/B,SAAS;GACP,IAAI,KAAK,UAAU,IAAI;IACrB,KAAK,cAAc,KAAK;IACxB,KAAK,QAAQ,KAAK;;GAEpB,KAAK,oBAAoB;GACzB,KAAK,IAAI,OAAO;;;EAGlB,qBAAqB;GACnB,MAAM,WAAW,KAAK,OAAO;GAC7B,IAAI,KAAK,gBAAgB,UACvB;GAEF,IAAI,KAAK,UAAU,IACjB,IAAI,KAAK,oBAAoB,UAAU,UACrC,KAAK,IAAI,QAAQ,KAAK,cAAc,SAAS;QAE7C,KAAK,IAAI,UAAU,KAAK,cAAc,SAAS;QAE5C,IAAI,KAAK,UAAU,KAAK,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU;QACnR,KAAK,IAAI,OAAO,KAAK,cAAc,SAAS;;EAGhD,cAAc,IAAI,UAAU;GAExB,IAAI,KAAK,cAAc,KAAK,KAAK,cAAc,IAAI;IACjD,IAAI,KAAK,eAAe,KAAK,aAC3B,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,YAAY;IAE5D,KAAK,eAAe,KAAK,cAAc;IACvC,KAAK,QAAQ,KAAK,eAAe;IACjC,KAAK,IAAI,eACP,OAAO,cAAc,GAAG,EACxB,KAAK,aACL,KAAK,aACN;UACI;IACL,IAAI,KAAK,eAAe,KAAK,aAC3B,KAAK,IAAI,OAAO,KAAK,cAAc,KAAK,YAAY;IAEtD,KAAK,eAAe,KAAK,cAAc;IACvC,KAAK,QAAQ,KAAK,eAAe;IACjC,KAAK,IAAI,aACP,OAAO,cAAc,GAAG,EACxB,KAAK,aACL,KAAK,aACN;;;;CAMT,MAAM,2BAA2B;EAC/B,0BAA0B;EAC1B,wBAAwB;EACxB,gCAAgC;EAChC,wBAAwB;EACxB,kCAAkC;EAClC,4BAA4B;EAC5B,4BAA4B;EAC5B,oBAAoB;EACrB;CACD,MAAM,kBAAkB;GACrB,2BAA2B;GAC1B,SAAS;GACT,MAAM;GACP;GACA,yBAAyB;GACxB,UAAU,QAAQ,2FAA2F,IAAI,yCAAyC,IAAI;GAC9J,MAAM;GACP;GACA,iCAAiC;GAChC,SAAS;GACT,MAAM;GACP;GACA,yBAAyB;GACxB,SAAS;GACT,MAAM;GACP;GACA,mCAAmC;GAClC,SAAS;GACT,MAAM;GACP;GACA,6BAA6B,EAC5B,SAAS,yHACV;GACA,6BAA6B;GAC5B,SAAS;GACT,MAAM;GACP;GACA,qBAAqB;GACpB,SAAS;GACT,MAAM;GACP;EACF;CACD,SAAS,eAAe,KAAK,EAAE,gBAAgB;EAC7C,MAAM,QAAQ,gBAAgB,aAAa;EAC3C,IAAI,QAAQ,QACV,OAAO,SAAS;OAEhB,OAAO;;CAGX,SAAS,gBAAgB,KAAK,SAAS;EACrC,MAAM,OAAO,eAAe,QAAQ,QAAQ;EAC5C,MAAM,QAAQ,eAAe,KAAK,QAAQ;EAC1C,OAAO,SAAS,IAAI,UAAU,OAAO,UAAU;;CAEjD,SAAS,mBAAmB,KAAK,SAAS,KAAK,GAAG,MAAM;EAEtD,OADgB,gBAAgB,KAAK,QACvB;;CAEhB,SAAS,gBAAgB,KAAK,SAAS,KAAK,GAAG,MAAM;EAEnD,IADY,eAAe,KAAK,QACzB,KAAK,oBACV;EAEF,MAAM,EAAE,SAAS,SAAS,gBAAgB;EAC1C,MAAM,MAAM,gBAAgB,IAAI,IAAI,OAAO,YAAY,aAAa,QAAQ,GAAG,KAAK,GAAG,UAAU,OAAO;aAC7F,SAAS;EACpB,MAAM,MAAM,IAAI,YAAY,IAAI;EAChC,IAAI,OAAO;EACX,IAAI,KAAK,IAAI,MAAM;EACnB,QAAQ,OAAO,IAAI;;CAGrB,SAAS,eAAe,OAAO;EAC7B,MAAM;;CAER,SAAS,cAAc,KAAK;CAE5B,SAAS,oBAAoB,MAAM,KAAK,UAAU,mBAAmB;EACnE,MAAM,OAAO,YAAY,eAAe,SAAS,qBAAqB;EACtE,MAAM,QAAQ,IAAI,YAAY,OAAO,IAAI,CAAC;EAC1C,MAAM,OAAO;EACb,MAAM,MAAM;EACZ,OAAO;;CAET,MAAM,aAAa;EACjB,mCAAmC;EACnC,KAAK;EACL,yBAAyB;EACzB,KAAK;EACL,uBAAuB;EACvB,KAAK;EACL,2BAA2B;EAC3B,KAAK;EACL,iCAAiC;EACjC,KAAK;EACL,uBAAuB;EACvB,KAAK;EACL,gBAAgB;EAChB,KAAK;EACL,kBAAkB;EAClB,KAAK;EACL,wCAAwC;EACxC,KAAK;EACL,cAAc;EACd,KAAK;EACL,8BAA8B;EAC9B,MAAM;EACN,8BAA8B;EAC9B,MAAM;EACN,uCAAuC;EACvC,MAAM;EACN,2BAA2B;EAC3B,MAAM;EACN,wBAAwB;EACxB,MAAM;EACN,yCAAyC;EACzC,MAAM;EACN,kBAAkB;EAClB,MAAM;EACN,0CAA0C;EAC1C,MAAM;EACN,oDAAoD;EACpD,MAAM;EACN,gDAAgD;EAChD,MAAM;EACN,6BAA6B;EAC7B,MAAM;EACN,gDAAgD;EAChD,MAAM;EACN,6BAA6B;EAC7B,MAAM;EACN,qBAAqB;EACrB,MAAM;EACN,qBAAqB;EACrB,MAAM;EACN,+BAA+B;EAC/B,MAAM;EACN,4BAA4B;EAC5B,MAAM;EACN,4CAA4C;EAC5C,MAAM;EACN,wBAAwB;EACxB,MAAM;EACN,mBAAmB;EACnB,MAAM;EACN,2BAA2B;EAC3B,MAAM;EACN,yBAAyB;EACzB,MAAM;EACN,gCAAgC;EAChC,MAAM;EACN,kCAAkC;EAClC,MAAM;EACN,0BAA0B;EAC1B,MAAM;EACN,wBAAwB;EACxB,MAAM;EACN,gDAAgD;EAChD,MAAM;EACN,6BAA6B;EAC7B,MAAM;EACN,iCAAiC;EACjC,MAAM;EACN,6CAA6C;EAC7C,MAAM;EACN,sBAAsB;EACtB,MAAM;EACN,2BAA2B;EAC3B,MAAM;EACN,kCAAkC;EAClC,MAAM;EACN,+BAA+B;EAC/B,MAAM;EACN,sBAAsB;EACtB,MAAM;EACN,sBAAsB;EACtB,MAAM;EACN,wBAAwB;EACxB,MAAM;EACN,iCAAiC;EACjC,MAAM;EACN,6BAA6B;EAC7B,MAAM;EACN,+BAA+B;EAC/B,MAAM;EACN,iCAAiC;EACjC,MAAM;EACN,4BAA4B;EAC5B,MAAM;EACN,iBAAiB;EACjB,MAAM;EACN,uCAAuC;EACvC,MAAM;EACN,oBAAoB;EACpB,MAAM;EACP;CACD,MAAM,gBAAgB;GAEnB,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GAEL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GAEL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;;GAEL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GAEL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GAEL,KAAK;EACP;CAED,SAAS,gBAAgB,MAAM,cAAc,aAAa,OAAO,cAAc,EAAE,EAAE,WAA2B,uBAAO,OAAO,KAAK,EAAE;EACjI,MAAM,UAAU,KAAK,SAAS,YAAY,KAAK,KAAK,GAAG,SAAS,yBAAyB,KAAK,KAAK,GAAG,aAAa;EACnH,aAAa,KAAK,MAAM;GACtB,MAAM,MAAM,QAAQ;IAClB,UAAU,YAAY,KAAK,OAAO;IAClC,IAAI,UAAU,OAAO,KAAK,WAAW,KAAK,IAAI,CAAC,cAAc,SAAS,OAAO,KAAK,EAChF,OAAO,KAAK,MAAM;IAEpB,IAAI,KAAK,SAAS,cAAc;KAC9B,MAAM,UAAU,CAAC,CAAC,SAAS,KAAK;KAChC,MAAM,UAAU,uBAAuB,MAAM,QAAQ,YAAY;KACjE,IAAI,cAAc,WAAW,CAAC,SAC5B,aAAa,MAAM,QAAQ,aAAa,SAAS,QAAQ;WAEtD,IAAI,KAAK,SAAS,qBACxB,UAAU,OAAO,KAAK,IAAI,OAAO,UAAU,iBAC1C,KAAK,YAAY;SACZ,IAAI,eAAe,KAAK,EAC7B,IAAI,KAAK,UACP,KAAK,SAAS,SAAS,OAAO,aAAa,IAAI,SAAS,CAAC;SAEzD,mBACE,OACC,OAAO,oBAAoB,MAAM,IAAI,SAAS,CAChD;SAEE,IAAI,KAAK,SAAS,kBACvB,IAAI,KAAK,UACP,KAAK,SAAS,SAAS,OAAO,aAAa,IAAI,SAAS,CAAC;SAEzD,sBACE,OACC,OAAO,oBAAoB,MAAM,IAAI,SAAS,CAChD;SAEE,IAAI,KAAK,SAAS,mBACvB,IAAI,KAAK,UACP,KAAK,SAAS,SAAS,OAAO,aAAa,IAAI,SAAS,CAAC;SAEzD,oBACE,MACA,QACC,OAAO,oBAAoB,MAAM,IAAI,SAAS,CAChD;SAEE,IAAI,KAAK,SAAS,iBAAiB,KAAK,OAC7C,IAAI,KAAK,UACP,KAAK,SAAS,SAAS,OAAO,aAAa,IAAI,SAAS,CAAC;SAEzD,KAAK,MAAM,MAAM,mBAAmB,KAAK,MAAM,EAC7C,oBAAoB,MAAM,IAAI,SAAS;SAGtC,IAAI,eAAe,KAAK,EAC7B,IAAI,KAAK,UACP,KAAK,SAAS,SAAS,OAAO,aAAa,IAAI,SAAS,CAAC;SAEzD,iBACE,MACA,QACC,OAAO,oBAAoB,MAAM,IAAI,SAAS,CAChD;;GAIP,MAAM,MAAM,QAAQ;IAClB,UAAU,YAAY,KAAK;IAC3B,IAAI,SAAS,WAAW,KAAK,UAC3B,KAAK,MAAM,MAAM,KAAK,UAAU;KAC9B,SAAS;KACT,IAAI,SAAS,QAAQ,GACnB,OAAO,SAAS;;;GAKzB,CAAC;;CAEJ,SAAS,uBAAuB,IAAI,QAAQ,aAAa;EACvD,IAAI,CAAC,QACH,OAAO;EAET,IAAI,GAAG,SAAS,aACd,OAAO;EAET,IAAI,aAAa,IAAI,QAAQ,YAAY,YAAY,SAAS,GAAG,EAC/D,OAAO;EAET,QAAQ,OAAO,MAAf;GACE,KAAK;GACL,KAAK,qBACH,OAAO;GACT,KAAK,kBACH,OAAO,OAAO,QAAQ,MAAM,0BAA0B,QAAQ,YAAY;GAC5E,KAAK,gBACH,OAAO,0BAA0B,QAAQ,YAAY;;EAEzD,OAAO;;CAET,SAAS,0BAA0B,QAAQ,aAAa;EACtD,IAAI,WAAW,OAAO,SAAS,oBAAoB,OAAO,SAAS,iBAAiB;GAClF,IAAI,IAAI,YAAY;GACpB,OAAO,KAAK;IACV,MAAM,IAAI,YAAY;IACtB,IAAI,EAAE,SAAS,wBACb,OAAO;SACF,IAAI,EAAE,SAAS,oBAAoB,CAAC,EAAE,KAAK,SAAS,UAAU,EACnE;;;EAIN,OAAO;;CAET,SAAS,kBAAkB,aAAa;EACtC,IAAI,IAAI,YAAY;EACpB,OAAO,KAAK;GACV,MAAM,IAAI,YAAY;GACtB,IAAI,EAAE,SAAS,iBACb,OAAO;QACF,IAAI,EAAE,SAAS,oBACpB;;EAGJ,OAAO;;CAET,SAAS,mBAAmB,MAAM,SAAS;EACzC,KAAK,MAAM,KAAK,KAAK,QACnB,KAAK,MAAM,MAAM,mBAAmB,EAAE,EACpC,QAAQ,GAAG;;CAIjB,SAAS,sBAAsB,OAAO,SAAS;EAC7C,MAAM,OAAO,MAAM,SAAS,eAAe,MAAM,aAAa,MAAM;EACpE,KAAK,MAAM,QAAQ,MACjB,IAAI,KAAK,SAAS,uBAAuB;GACvC,IAAI,KAAK,SAAS;GAClB,KAAK,MAAM,QAAQ,KAAK,cACtB,KAAK,MAAM,MAAM,mBAAmB,KAAK,GAAG,EAC1C,QAAQ,GAAG;SAGV,IAAI,KAAK,SAAS,yBAAyB,KAAK,SAAS,oBAAoB;GAClF,IAAI,KAAK,WAAW,CAAC,KAAK,IAAI;GAC9B,QAAQ,KAAK,GAAG;SACX,IAAI,eAAe,KAAK,EAC7B,iBAAiB,MAAM,MAAM,QAAQ;OAChC,IAAI,KAAK,SAAS,mBACvB,oBAAoB,MAAM,MAAM,QAAQ;;CAI9C,SAAS,eAAe,MAAM;EAC5B,OAAO,KAAK,SAAS,oBAAoB,KAAK,SAAS,oBAAoB,KAAK,SAAS;;CAE3F,SAAS,iBAAiB,MAAM,OAAO,SAAS;EAC9C,MAAM,WAAW,KAAK,SAAS,iBAAiB,KAAK,OAAO,KAAK;EACjE,IAAI,YAAY,SAAS,SAAS,0BAA0B,SAAS,SAAS,QAAQ,QAAQ,CAAC,QAC7F,KAAK,MAAM,QAAQ,SAAS,cAC1B,KAAK,MAAM,MAAM,mBAAmB,KAAK,GAAG,EAC1C,QAAQ,GAAG;;CAKnB,SAAS,oBAAoB,MAAM,OAAO,SAAS;EACjD,KAAK,MAAM,MAAM,KAAK,OAAO;GAC3B,KAAK,MAAM,SAAS,GAAG,YACrB,IAAI,MAAM,SAAS,0BAA0B,MAAM,SAAS,QAAQ,QAAQ,CAAC,QAC3E,KAAK,MAAM,QAAQ,MAAM,cACvB,KAAK,MAAM,MAAM,mBAAmB,KAAK,GAAG,EAC1C,QAAQ,GAAG;GAKnB,sBAAsB,IAAI,QAAQ;;;CAGtC,SAAS,mBAAmB,OAAO,QAAQ,EAAE,EAAE;EAC7C,QAAQ,MAAM,MAAd;GACE,KAAK;IACH,MAAM,KAAK,MAAM;IACjB;GACF,KAAK;IACH,IAAI,SAAS;IACb,OAAO,OAAO,SAAS,oBACrB,SAAS,OAAO;IAElB,MAAM,KAAK,OAAO;IAClB;GACF,KAAK;IACH,KAAK,MAAM,QAAQ,MAAM,YACvB,IAAI,KAAK,SAAS,eAChB,mBAAmB,KAAK,UAAU,MAAM;SAExC,mBAAmB,KAAK,OAAO,MAAM;IAGzC;GACF,KAAK;IACH,MAAM,SAAS,SAAS,YAAY;KAClC,IAAI,SAAS,mBAAmB,SAAS,MAAM;MAC/C;IACF;GACF,KAAK;IACH,mBAAmB,MAAM,UAAU,MAAM;IACzC;GACF,KAAK;IACH,mBAAmB,MAAM,MAAM,MAAM;IACrC;;EAEJ,OAAO;;CAET,SAAS,aAAa,MAAM,UAAU;EACpC,IAAI,QAAQ,UACV,SAAS;OAET,SAAS,QAAQ;;CAGrB,SAAS,oBAAoB,MAAM,OAAO,UAAU;EAClD,MAAM,EAAE,SAAS;EACjB,IAAI,KAAK,YAAY,KAAK,SAAS,IAAI,KAAK,EAC1C;EAEF,aAAa,MAAM,SAAS;EAC5B,CAAC,KAAK,aAAa,KAAK,2BAA2B,IAAI,KAAK,GAAG,IAAI,KAAK;;CAE1E,MAAM,kBAAkB,SAAS;EAC/B,OAAO,8CAA8C,KAAK,KAAK,KAAK;;CAEtE,MAAM,oBAAoB,SAAS,SAAS,KAAK,SAAS,oBAAoB,KAAK,SAAS,mBAAmB,CAAC,KAAK;CACrH,MAAM,uBAAuB,MAAM,WAAW,iBAAiB,OAAO,IAAI,OAAO,QAAQ;CACzF,SAAS,aAAa,MAAM,QAAQ,aAAa;EAC/C,QAAQ,OAAO,MAAf;GAIE,KAAK;GACL,KAAK;IACH,IAAI,OAAO,aAAa,MACtB,OAAO,CAAC,CAAC,OAAO;IAElB,OAAO,OAAO,WAAW;GAC3B,KAAK,uBACH,OAAO,OAAO,WAAW;GAG3B,KAAK,sBACH,OAAO,OAAO,SAAS;GAGzB,KAAK,2BACH,OAAO,OAAO,SAAS;GAKzB,KAAK,eACH,OAAO;GAIT,KAAK;GACL,KAAK;GACL,KAAK;IACH,IAAI,OAAO,QAAQ,MACjB,OAAO,CAAC,CAAC,OAAO;IAElB,OAAO;GAKT,KAAK;IACH,IAAI,OAAO,QAAQ,MACjB,OAAO,CAAC,CAAC,OAAO;IAElB,OAAO,CAAC,eAAe,YAAY,SAAS;GAI9C,KAAK;IACH,IAAI,OAAO,QAAQ,MACjB,OAAO,CAAC,CAAC,OAAO;IAElB,OAAO;GACT,KAAK,wBACH,OAAO,OAAO,QAAQ;GAGxB,KAAK;GACL,KAAK,mBACH,OAAO,OAAO,eAAe;GAG/B,KAAK,wBACH,OAAO,OAAO,UAAU;GAG1B,KAAK,qBACH,OAAO,OAAO,UAAU;GAE1B,KAAK,oBACH,OAAO;GAET,KAAK,eACH,OAAO;GAET,KAAK,eACH,OAAO;GACT,KAAK;GACL,KAAK,qBACH,OAAO;GAGT,KAAK;GACL,KAAK,sBACH,OAAO;GAGT,KAAK;GACL,KAAK,0BACH,OAAO;GAIT,KAAK;IACH,IAAI,eAAe,OAAO,KAAK,IAAI,YAAY,QAC7C,OAAO;IAET,OAAO,OAAO,UAAU;GAM1B,KAAK;GACL,KAAK;GACL,KAAK,mBACH,OAAO;GAET,KAAK,mBACH,OAAO;GAET,KAAK,gBACH,OAAO;GAGT,KAAK;GACL,KAAK,gBACH,OAAO;GAGT,KAAK,gBACH,OAAO;GAGT,KAAK,sBACH,OAAO,OAAO,QAAQ;GAGxB,KAAK,gBACH,OAAO,OAAO,OAAO;GAGvB,KAAK;IACH,IAAI,OAAO,QAAQ,MACjB,OAAO,CAAC,CAAC,OAAO;IAElB,OAAO;;EAEX,OAAO;;CAET,MAAM,gBAAgB;EACpB;EAEA;EAEA;EAEA;EAEA;EAED;CACD,SAAS,aAAa,MAAM;EAC1B,IAAI,cAAc,SAAS,KAAK,KAAK,EACnC,OAAO,aAAa,KAAK,WAAW;OAEpC,OAAO;;CAIX,MAAM,eAAe,MAAM,EAAE,SAAS,KAAK,EAAE;CAC7C,SAAS,gBAAgB,KAAK;EAC5B,QAAQ,KAAR;GACE,KAAK;GACL,KAAK,YACH,OAAO;GACT,KAAK;GACL,KAAK,YACH,OAAO;GACT,KAAK;GACL,KAAK,cACH,OAAO;GACT,KAAK;GACL,KAAK,mBACH,OAAO;;;CAGb,MAAM,kBAAkB;CACxB,MAAM,sBAAsB,SAAS,CAAC,gBAAgB,KAAK,KAAK;CAChE,MAAM,wBAAwB;CAC9B,MAAM,mBAAmB;CACzB,MAAM,eAAe;CACrB,MAAM,gBAAgB,QAAQ,IAAI,SAAS,IAAI,IAAI,UAAU,IAAI,IAAI;CACrE,MAAM,6BAA6B,QAAQ;EACzC,MAAM,OAAO,aAAa,IAAI,CAAC,MAAM,CAAC,QAAQ,eAAe,MAAM,EAAE,MAAM,CAAC;EAC5E,IAAI,QAAQ;EACZ,IAAI,aAAa,EAAE;EACnB,IAAI,0BAA0B;EAC9B,IAAI,yBAAyB;EAC7B,IAAI,oBAAoB;EACxB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACpC,MAAM,OAAO,KAAK,OAAO,EAAE;GAC3B,QAAQ,OAAR;IACE,KAAK;KACH,IAAI,SAAS,KAAK;MAChB,WAAW,KAAK,MAAM;MACtB,QAAQ;MACR;YACK,IAAI,SAAS,KAAK;MACvB,WAAW,KAAK,MAAM;MACtB,QAAQ;MACR;YACK,IAAI,EAAE,MAAM,IAAI,wBAAwB,kBAAkB,KAAK,KAAK,EACzE,OAAO;KAET;IACF,KAAK;KACH,IAAI,SAAS,OAAO,SAAS,OAAO,SAAS,KAAK;MAChD,WAAW,KAAK,MAAM;MACtB,QAAQ;MACR,oBAAoB;YACf,IAAI,SAAS,KAClB;UACK,IAAI,SAAS;UACd,CAAC,EAAE,yBACL,QAAQ,WAAW,KAAK;;KAG5B;IACF,KAAK;KACH,IAAI,SAAS,OAAO,SAAS,OAAO,SAAS,KAAK;MAChD,WAAW,KAAK,MAAM;MACtB,QAAQ;MACR,oBAAoB;YACf,IAAI,SAAS,KAClB;UACK,IAAI,SAAS,KAAK;MACvB,IAAI,MAAM,KAAK,SAAS,GACtB,OAAO;MAET,IAAI,CAAC,EAAE,wBACL,QAAQ,WAAW,KAAK;;KAG5B;IACF,KAAK;KACH,IAAI,SAAS,mBAAmB;MAC9B,QAAQ,WAAW,KAAK;MACxB,oBAAoB;;KAEtB;;;EAGN,OAAO,CAAC,2BAA2B,CAAC;;CAEtC,MAAM,0BAA0B,KAAK,YAAY;EAC/C,IAAI;GACF,IAAI,MAAM,IAAI,OAAOA,SAAO,gBAAgB,aAAa,IAAI,EAAE,EAC7D,SAAS,QAAQ,oBAAoB,CAAC,GAAG,QAAQ,mBAAmB,aAAa,GAAG,CAAC,aAAa,EACnG,CAAC;GACF,MAAM,aAAa,IAAI;GACvB,OAAO,IAAI,SAAS,sBAAsB,IAAI,SAAS,8BAA8B,IAAI,SAAS,gBAAgB,IAAI,SAAS;WACxH,GAAG;GACV,OAAO;;;CAGX,MAAM,qBAAqB;CAC3B,MAAM,UAAU;CAChB,MAAM,yBAAyB,QAAQ,QAAQ,KAAK,aAAa,IAAI,CAAC;CACtE,MAAM,sBAAsB,KAAK,YAAY;EAC3C,IAAI;GACF,IAAI,MAAM,IAAI,OAAOA,SAAO,gBAAgB,aAAa,IAAI,EAAE,EAC7D,SAAS,QAAQ,oBAAoB,CAAC,GAAG,QAAQ,mBAAmB,aAAa,GAAG,CAAC,aAAa,EACnG,CAAC;GACF,IAAI,IAAI,SAAS,WAAW;IAC1B,MAAM,IAAI,KAAK;IACf,IAAI,IAAI,SAAS,uBACf,MAAM,IAAI;;GAGd,MAAM,aAAa,IAAI;GACvB,OAAO,IAAI,SAAS,wBAAwB,IAAI,SAAS;WAClD,GAAG;GACV,OAAO;;;CAGX,MAAM,iBAAiB;CACvB,SAAS,yBAAyB,KAAK,QAAQ,qBAAqB,OAAO,QAAQ;EACjF,OAAO,4BACL;GACE,QAAQ,IAAI;GACZ,MAAM,IAAI;GACV,QAAQ,IAAI;GACb,EACD,QACA,mBACD;;CAEH,SAAS,4BAA4B,KAAK,QAAQ,qBAAqB,OAAO,QAAQ;EACpF,IAAI,aAAa;EACjB,IAAI,iBAAiB;EACrB,KAAK,IAAI,IAAI,GAAG,IAAI,oBAAoB,KACtC,IAAI,OAAO,WAAW,EAAE,KAAK,IAAI;GAC/B;GACA,iBAAiB;;EAGrB,IAAI,UAAU;EACd,IAAI,QAAQ;EACZ,IAAI,SAAS,mBAAmB,KAAK,IAAI,SAAS,qBAAqB,qBAAqB;EAC5F,OAAO;;CAET,SAAS,OAAO,WAAW,KAAK;EAC9B,IAAI,CAAC,WACH,MAAM,IAAI,MAAM,OAAO,gCAAgC;;CAG3D,SAAS,QAAQ,MAAM,MAAM,aAAa,OAAO;EAC/C,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;GAC1C,MAAM,IAAI,KAAK,MAAM;GACrB,IAAI,EAAE,SAAS,MAAM,cAAc,EAAE,SAAS,OAAO,SAAS,KAAK,GAAG,EAAE,SAAS,OAAO,KAAK,KAAK,EAAE,KAAK,GACvG,OAAO;;;CAIb,SAAS,SAAS,MAAM,MAAM,cAAc,OAAO,aAAa,OAAO;EACrE,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;GAC1C,MAAM,IAAI,KAAK,MAAM;GACrB,IAAI,EAAE,SAAS,GAAG;IAChB,IAAI,aAAa;IACjB,IAAI,EAAE,SAAS,SAAS,EAAE,SAAS,aACjC,OAAO;UAEJ,IAAI,EAAE,SAAS,WAAW,EAAE,OAAO,eAAe,cAAc,EAAE,KAAK,KAAK,EACjF,OAAO;;;CAIb,SAAS,cAAc,KAAK,MAAM;EAChC,OAAO,CAAC,EAAE,OAAO,YAAY,IAAI,IAAI,IAAI,YAAY;;CAEvD,SAAS,mBAAmB,MAAM;EAChC,OAAO,KAAK,MAAM,MACf,MAAM,EAAE,SAAS,KAAK,EAAE,SAAS,WAAW,CAAC,EAAE,OAChD,EAAE,IAAI,SAAS,KACf,CAAC,EAAE,IAAI,UAER;;CAEH,SAAS,SAAS,MAAM;EACtB,OAAO,KAAK,SAAS,KAAK,KAAK,SAAS;;CAE1C,SAAS,OAAO,GAAG;EACjB,OAAO,EAAE,SAAS,KAAK,EAAE,SAAS;;CAEpC,SAAS,QAAQ,GAAG;EAClB,OAAO,EAAE,SAAS,KAAK,EAAE,SAAS;;CAEpC,SAAS,eAAe,MAAM;EAC5B,OAAO,KAAK,SAAS,KAAK,KAAK,YAAY;;CAE7C,SAAS,aAAa,MAAM;EAC1B,OAAO,KAAK,SAAS,KAAK,KAAK,YAAY;;CAE7C,MAAM,iCAAiC,IAAI,IAAI,CAAC,iBAAiB,qBAAqB,CAAC;CACvF,SAAS,qBAAqB,OAAO,WAAW,EAAE,EAAE;EAClD,IAAI,SAAS,CAAC,OAAO,SAAS,MAAM,IAAI,MAAM,SAAS,IAAI;GACzD,MAAM,SAAS,MAAM;GACrB,IAAI,CAAC,OAAO,SAAS,OAAO,IAAI,eAAe,IAAI,OAAO,EACxD,OAAO,qBACL,MAAM,UAAU,IAChB,SAAS,OAAO,MAAM,CACvB;;EAGL,OAAO,CAAC,OAAO,SAAS;;CAE1B,SAAS,WAAW,MAAM,MAAM,SAAS;EACvC,IAAI;EACJ,IAAI,QAAQ,KAAK,SAAS,KAAK,KAAK,QAAQ,KAAK,UAAU;EAC3D,IAAI,WAAW,EAAE;EACjB,IAAI;EACJ,IAAI,SAAS,CAAC,OAAO,SAAS,MAAM,IAAI,MAAM,SAAS,IAAI;GACzD,MAAM,MAAM,qBAAqB,MAAM;GACvC,QAAQ,IAAI;GACZ,WAAW,IAAI;GACf,aAAa,SAAS,SAAS,SAAS;;EAE1C,IAAI,SAAS,QAAQ,OAAO,SAAS,MAAM,EACzC,qBAAqB,uBAAuB,CAAC,KAAK,CAAC;OAC9C,IAAI,MAAM,SAAS,IAAI;GAC5B,MAAM,QAAQ,MAAM,UAAU;GAC9B,IAAI,CAAC,OAAO,SAAS,MAAM,IAAI,MAAM,SAAS;QACxC,CAAC,QAAQ,MAAM,MAAM,EACvB,MAAM,WAAW,QAAQ,KAAK;UAGhC,IAAI,MAAM,WAAW,aACnB,qBAAqB,qBAAqB,QAAQ,OAAO,YAAY,EAAE,CACrE,uBAAuB,CAAC,KAAK,CAAC,EAC9B,MACD,CAAC;QAEF,MAAM,UAAU,QAAQ,uBAAuB,CAAC,KAAK,CAAC,CAAC;GAG3D,CAAC,uBAAuB,qBAAqB;SACxC,IAAI,MAAM,SAAS,IAAI;GAC5B,IAAI,CAAC,QAAQ,MAAM,MAAM,EACvB,MAAM,WAAW,QAAQ,KAAK;GAEhC,qBAAqB;SAChB;GACL,qBAAqB,qBAAqB,QAAQ,OAAO,YAAY,EAAE,CACrE,uBAAuB,CAAC,KAAK,CAAC,EAC9B,MACD,CAAC;GACF,IAAI,cAAc,WAAW,WAAW,sBACtC,aAAa,SAAS,SAAS,SAAS;;EAG5C,IAAI,KAAK,SAAS,IAChB,IAAI,YACF,WAAW,UAAU,KAAK;OAE1B,KAAK,QAAQ;OAGf,IAAI,YACF,WAAW,UAAU,KAAK;OAE1B,KAAK,UAAU,KAAK;;CAI1B,SAAS,QAAQ,MAAM,OAAO;EAC5B,IAAI,SAAS;EACb,IAAI,KAAK,IAAI,SAAS,GAAG;GACvB,MAAM,cAAc,KAAK,IAAI;GAC7B,SAAS,MAAM,WAAW,MACvB,MAAM,EAAE,IAAI,SAAS,KAAK,EAAE,IAAI,YAAY,YAC9C;;EAEH,OAAO;;CAET,SAAS,eAAe,MAAM,MAAM;EAClC,OAAO,IAAI,KAAK,GAAG,KAAK,QAAQ,WAAW,aAAa,iBAAiB;GACvE,OAAO,gBAAgB,MAAM,MAAM,KAAK,WAAW,aAAa,CAAC,UAAU;IAC3E;;CAEJ,SAAS,YAAY,MAAM,KAAK;EAC9B,IAAI,CAAC,QAAQ,OAAO,KAAK,IAAI,CAAC,WAAW,GACvC,OAAO;EAET,QAAQ,KAAK,MAAb;GACE,KAAK;IACH,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;KAC1C,MAAM,IAAI,KAAK,MAAM;KACrB,IAAI,EAAE,SAAS,MAAM,YAAY,EAAE,KAAK,IAAI,IAAI,YAAY,EAAE,KAAK,IAAI,GACrE,OAAO;;IAGX,OAAO,KAAK,SAAS,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC;GACvD,KAAK;IACH,IAAI,YAAY,KAAK,QAAQ,IAAI,EAC/B,OAAO;IAET,OAAO,KAAK,SAAS,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC;GACvD,KAAK,GACH,OAAO,KAAK,SAAS,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC;GACvD,KAAK;IACH,IAAI,YAAY,KAAK,WAAW,IAAI,EAClC,OAAO;IAET,OAAO,KAAK,SAAS,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC;GACvD,KAAK,GACH,OAAO,CAAC,KAAK,YAAY,mBAAmB,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK;GAC1E,KAAK,GACH,OAAO,KAAK,SAAS,MAAM,MAAM,OAAO,SAAS,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC;GAC7E,KAAK;GACL,KAAK,IACH,OAAO,YAAY,KAAK,SAAS,IAAI;GACvC,KAAK;GACL,KAAK;GACL,KAAK,IACH,OAAO;GACT,SACE,OAAO;;;CAGb,SAAS,mBAAmB,MAAM;EAChC,IAAI,KAAK,SAAS,MAAM,KAAK,WAAW,WACtC,OAAO,KAAK,UAAU,GAAG;OAEzB,OAAO;;CAGX,MAAM,aAAa;CACnB,SAAS,gBAAgB,KAAK;EAC5B,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAC9B,IAAI,CAAC,aAAa,IAAI,WAAW,EAAE,CAAC,EAClC,OAAO;EAGX,OAAO;;CAET,SAAS,iBAAiB,MAAM;EAC9B,OAAO,KAAK,SAAS,KAAK,gBAAgB,KAAK,QAAQ,IAAI,KAAK,SAAS,MAAM,iBAAiB,KAAK,QAAQ;;CAE/G,SAAS,sBAAsB,MAAM;EACnC,OAAO,KAAK,SAAS,KAAK,iBAAiB,KAAK;;CAGlD,MAAM,uBAAuB;EAC3B,WAAW;EACX,IAAI;EACJ,YAAY,CAAC,MAAM,KAAK;EACxB,oBAAoB;EACpB,WAAW,OAAO;EAClB,UAAU,OAAO;EACjB,oBAAoB,OAAO;EAC3B,iBAAiB,OAAO;EACxB,SAAS;EACT,QAAQ;EACR,UAAU;EACV,mBAAmB;EACpB;CACD,IAAI,iBAAiB;CACrB,IAAI,cAAc;CAClB,IAAI,eAAe;CACnB,IAAI,iBAAiB;CACrB,IAAI,cAAc;CAClB,IAAI,mBAAmB;CACvB,IAAI,wBAAwB;CAC5B,IAAI,sBAAsB;CAC1B,IAAI,QAAQ;CACZ,IAAI,SAAS;CACb,IAAI,sBAAsB;CAC1B,MAAM,QAAQ,EAAE;CAChB,MAAM,YAAY,IAAI,UAAU,OAAO;EACrC,OAAO;EACP,OAAO,OAAO,KAAK;GACjB,OAAO,SAAS,OAAO,IAAI,EAAE,OAAO,IAAI;;EAE1C,aAAa,MAAM,OAAO,KAAK;GAC7B,OAAO,MAAM,OAAO,IAAI;;EAE1B,gBAAgB,OAAO,KAAK;GAC1B,IAAI,QACF,OAAO,OAAO,SAAS,OAAO,IAAI,EAAE,OAAO,IAAI;GAEjD,IAAI,aAAa,QAAQ,UAAU,cAAc;GACjD,IAAI,WAAW,MAAM,UAAU,eAAe;GAC9C,OAAO,aAAa,aAAa,WAAW,WAAW,CAAC,EACtD;GAEF,OAAO,aAAa,aAAa,WAAW,WAAW,EAAE,CAAC,EACxD;GAEF,IAAI,MAAM,SAAS,YAAY,SAAS;GACxC,IAAI,IAAI,SAAS,IAAI,EAEjB,MAAM,OAAO,WAAW,IAAI;GAGhC,QAAQ;IACN,MAAM;IACN,SAAS,UAAU,KAAK,OAAO,OAAO,YAAY,SAAS,CAAC;IAC5D,KAAK,OAAO,OAAO,IAAI;IACxB,CAAC;;EAEJ,cAAc,OAAO,KAAK;GACxB,MAAM,OAAO,SAAS,OAAO,IAAI;GACjC,iBAAiB;IACf,MAAM;IACN,KAAK;IACL,IAAI,eAAe,aAAa,MAAM,MAAM,IAAI,eAAe,GAAG;IAClE,SAAS;IAET,OAAO,EAAE;IACT,UAAU,EAAE;IACZ,KAAK,OAAO,QAAQ,GAAG,IAAI;IAC3B,aAAa,KAAK;IACnB;;EAEH,aAAa,KAAK;GAChB,WAAW,IAAI;;EAEjB,WAAW,OAAO,KAAK;GACrB,MAAM,OAAO,SAAS,OAAO,IAAI;GACjC,IAAI,CAAC,eAAe,UAAU,KAAK,EAAE;IACnC,IAAI,QAAQ;IACZ,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAEhC,IADU,MAAM,GACV,IAAI,aAAa,KAAK,KAAK,aAAa,EAAE;KAC9C,QAAQ;KACR,IAAI,IAAI,GACN,UAAU,IAAI,MAAM,GAAG,IAAI,MAAM,OAAO;KAE1C,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAEtB,WADW,MAAM,OACJ,EAAE,KAAK,IAAI,EAAE;KAE5B;;IAGJ,IAAI,CAAC,OACH,UAAU,IAAI,UAAU,OAAO,GAAG,CAAC;;;EAIzC,iBAAiB,KAAK;GACpB,MAAM,OAAO,eAAe;GAC5B,eAAe,gBAAgB;GAC/B,WAAW,IAAI;GACf,IAAI,MAAM,MAAM,MAAM,GAAG,QAAQ,MAC/B,WAAW,MAAM,OAAO,EAAE,IAAI;;EAGlC,aAAa,OAAO,KAAK;GACvB,cAAc;IACZ,MAAM;IACN,MAAM,SAAS,OAAO,IAAI;IAC1B,SAAS,OAAO,OAAO,IAAI;IAC3B,OAAO,KAAK;IACZ,KAAK,OAAO,MAAM;IACnB;;EAEH,UAAU,OAAO,KAAK;GACpB,MAAM,MAAM,SAAS,OAAO,IAAI;GAChC,MAAM,OAAO,QAAQ,OAAO,QAAQ,MAAM,SAAS,QAAQ,MAAM,OAAO,QAAQ,MAAM,SAAS,IAAI,MAAM,EAAE;GAC3G,IAAI,CAAC,UAAU,SAAS,IACtB,UAAU,IAAI,MAAM;GAEtB,IAAI,UAAU,SAAS,IACrB,cAAc;IACZ,MAAM;IACN,MAAM;IACN,SAAS,OAAO,OAAO,IAAI;IAC3B,OAAO,KAAK;IACZ,KAAK,OAAO,MAAM;IACnB;QACI;IACL,cAAc;KACZ,MAAM;KACN;KACA,SAAS;KACT,KAAK,KAAK;KACV,KAAK,KAAK;KACV,WAAW,QAAQ,MAAM,CAAC,uBAAuB,OAAO,CAAC,GAAG,EAAE;KAC9D,KAAK,OAAO,MAAM;KACnB;IACD,IAAI,SAAS,OAAO;KAClB,SAAS,UAAU,SAAS;KAC5B,sBAAsB;KACtB,MAAM,QAAQ,eAAe;KAC7B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAChC,IAAI,MAAM,GAAG,SAAS,GACpB,MAAM,KAAK,UAAU,MAAM,GAAG;;;;EAMxC,SAAS,OAAO,KAAK;GACnB,IAAI,UAAU,KAAK;GACnB,MAAM,MAAM,SAAS,OAAO,IAAI;GAChC,IAAI,UAAU,CAAC,OAAO,YAAY,EAAE;IAClC,YAAY,QAAQ;IACpB,UAAU,YAAY,SAAS,IAAI;UAC9B;IACL,MAAM,WAAW,IAAI,OAAO;IAC5B,YAAY,MAAM,UAChB,WAAW,MAAM,IAAI,MAAM,GAAG,GAAG,EACjC,UACA,OAAO,OAAO,IAAI,EAClB,WAAW,IAAI,EAChB;;;EAGL,cAAc,OAAO,KAAK;GACxB,MAAM,MAAM,SAAS,OAAO,IAAI;GAChC,IAAI,UAAU,CAAC,OAAO,YAAY,EAAE;IAClC,YAAY,QAAQ,MAAM;IAC1B,UAAU,YAAY,SAAS,IAAI;UAC9B,IAAI,YAAY,SAAS,QAAQ;IACtC,MAAM,MAAM,YAAY;IACxB,IAAI,KAAK;KACP,IAAI,WAAW,MAAM;KACrB,UAAU,IAAI,KAAK,IAAI;;UAEpB;IACL,MAAM,MAAM,uBAAuB,KAAK,MAAM,OAAO,OAAO,IAAI,CAAC;IACjE,YAAY,UAAU,KAAK,IAAI;;;EAGnC,aAAa,OAAO,KAAK;GACvB,oBAAoB,SAAS,OAAO,IAAI;GACxC,IAAI,wBAAwB,GAAG,wBAAwB;GACvD,sBAAsB;;EAExB,eAAe,MAAM,OAAO,KAAK;GAC/B,oBAAoB;GACpB,IAAI,wBAAwB,GAAG,wBAAwB;GACvD,sBAAsB;;EAExB,gBAAgB,KAAK;GACnB,MAAM,QAAQ,YAAY,IAAI,MAAM;GACpC,MAAM,OAAO,SAAS,OAAO,IAAI;GACjC,IAAI,YAAY,SAAS,GACvB,YAAY,UAAU;GAExB,IAAI,eAAe,MAAM,MACtB,OAAO,EAAE,SAAS,IAAI,EAAE,UAAU,EAAE,UAAU,KAChD,EACC,UAAU,GAAG,MAAM;;EAGvB,YAAY,OAAO,KAAK;GACtB,IAAI,kBAAkB,aAAa;IACjC,UAAU,YAAY,KAAK,IAAI;IAC/B,IAAI,UAAU,GACZ,IAAI,YAAY,SAAS,GAAG;KAC1B,IAAI,YAAY,SAAS,SACvB,mBAAmB,SAAS,iBAAiB,CAAC,MAAM;KAEtD,IAAI,UAAU,KAAK,CAAC,kBAClB,UAAU,IAAI,IAAI;KAEpB,YAAY,QAAQ;MAClB,MAAM;MACN,SAAS;MACT,KAAK,UAAU,IAAI,OAAO,uBAAuB,oBAAoB,GAAG,OAAO,wBAAwB,GAAG,sBAAsB,EAAE;MACnI;KACD,IAAI,UAAU,aAAa,eAAe,QAAQ,cAAc,YAAY,SAAS,UAAU,oBAAoB,qBAAqB,QACtI,UAAU,YAAY,YAAY,aAAa,EAAE,EAAE;WAEhD;KACL,IAAI,eAAe;KAEjB,IAAI,YAAY,SAAS,OACvB,eAAe;UACV,IAAI,YAAY,SAAS,QAC9B,eAAe;UACV,IAAI,YAAY,SAAS,QAAQ,iBAAiB,SAAS,IAAI,EACpE,eAAe;KAGnB,YAAY,MAAM,UAChB,kBACA,OACA,OAAO,uBAAuB,oBAAoB,EAClD,GACA,aACD;KACD,IAAI,YAAY,SAAS,OACvB,YAAY,iBAAiB,mBAAmB,YAAY,IAAI;KAElE,IAAI,YAAY;KAChB,IAAI,YAAY,SAAS,WAAW,YAAY,YAAY,UAAU,WACnE,QAAQ,IAAI,YAAY,OAC1B,IAAI,MAAM,mBACT,wBACA,gBACA,YAAY,KACZ,YAAY,IAAI,IAAI,OACrB,EAAE;MACD,YAAY,OAAO;MACnB,YAAY,UAAU,OAAO,WAAW,EAAE;;;IAIhD,IAAI,YAAY,SAAS,KAAK,YAAY,SAAS,OACjD,eAAe,MAAM,KAAK,YAAY;;GAG1C,mBAAmB;GACnB,wBAAwB,sBAAsB;;EAEhD,UAAU,OAAO,KAAK;GACpB,IAAI,eAAe,UACjB,QAAQ;IACN,MAAM;IACN,SAAS,SAAS,OAAO,IAAI;IAC7B,KAAK,OAAO,QAAQ,GAAG,MAAM,EAAE;IAChC,CAAC;;EAGN,QAAQ;GACN,MAAM,MAAM,aAAa;GACzB,IAAI,UAAU,UAAU,GACtB,QAAQ,UAAU,OAAlB;IACE,KAAK;IACL,KAAK;KACH,UAAU,GAAG,IAAI;KACjB;IACF,KAAK;IACL,KAAK;KACH,UACE,IACA,UAAU,aACX;KACD;IACF,KAAK;KACH,IAAI,UAAU,oBAAoB,UAAU,UAC1C,UAAU,GAAG,IAAI;UAEjB,UAAU,GAAG,IAAI;KAEnB;IACF,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,KAAK;IAEL,KAAK;KACH,UAAU,GAAG,IAAI;KACjB;;GAGN,KAAK,IAAI,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS;IACjD,WAAW,MAAM,QAAQ,MAAM,EAAE;IACjC,UAAU,IAAI,MAAM,OAAO,IAAI,MAAM,OAAO;;;EAGhD,QAAQ,OAAO,KAAK;GAClB,KAAK,MAAM,KAAK,MAAM,GAAG,KAAK,eAAe,QAAQ,GACnD,OAAO,SAAS,OAAO,IAAI,EAAE,OAAO,IAAI;QAExC,UAAU,GAAG,QAAQ,EAAE;;EAG3B,wBAAwB,OAAO;GAC7B,KAAK,MAAM,KAAK,MAAM,GAAG,KAAK,eAAe,QAAQ,GACnD,UACE,IACA,QAAQ,EACT;;EAGN,CAAC;CACF,MAAM,gBAAgB;CACtB,MAAM,gBAAgB;CACtB,SAAS,mBAAmB,OAAO;EACjC,MAAM,MAAM,MAAM;EAClB,MAAM,MAAM,MAAM;EAClB,MAAM,UAAU,IAAI,MAAM,WAAW;EACrC,IAAI,CAAC,SAAS;EACd,MAAM,GAAG,KAAK,OAAO;EACrB,MAAM,yBAAyB,SAAS,QAAQ,UAAU,UAAU;GAClE,MAAM,QAAQ,IAAI,MAAM,SAAS;GAEjC,OAAO,UACL,SACA,OACA,OAAO,OAJG,QAAQ,QAAQ,OAIR,EAClB,GACA,UAAU,IAAiB,EAC5B;;EAEH,MAAM,SAAS;GACb,QAAQ,sBAAsB,IAAI,MAAM,EAAE,IAAI,QAAQ,KAAK,IAAI,OAAO,CAAC;GACvE,OAAO,KAAK;GACZ,KAAK,KAAK;GACV,OAAO,KAAK;GACZ,WAAW;GACZ;EACD,IAAI,eAAe,IAAI,MAAM,CAAC,QAAQ,eAAe,GAAG,CAAC,MAAM;EAC/D,MAAM,gBAAgB,IAAI,QAAQ,aAAa;EAC/C,MAAM,gBAAgB,aAAa,MAAM,cAAc;EACvD,IAAI,eAAe;GACjB,eAAe,aAAa,QAAQ,eAAe,GAAG,CAAC,MAAM;GAC7D,MAAM,aAAa,cAAc,GAAG,MAAM;GAC1C,IAAI;GACJ,IAAI,YAAY;IACd,YAAY,IAAI,QAAQ,YAAY,gBAAgB,aAAa,OAAO;IACxE,OAAO,MAAM,sBAAsB,YAAY,WAAW,KAAK;;GAEjE,IAAI,cAAc,IAAI;IACpB,MAAM,eAAe,cAAc,GAAG,MAAM;IAC5C,IAAI,cACF,OAAO,QAAQ,sBACb,cACA,IAAI,QACF,cACA,OAAO,MAAM,YAAY,WAAW,SAAS,gBAAgB,aAAa,OAC3E,EACD,KACD;;;EAIP,IAAI,cACF,OAAO,QAAQ,sBAAsB,cAAc,eAAe,KAAK;EAEzE,OAAO;;CAET,SAAS,SAAS,OAAO,KAAK;EAC5B,OAAO,aAAa,MAAM,OAAO,IAAI;;CAEvC,SAAS,WAAW,KAAK;EACvB,IAAI,UAAU,WACZ,eAAe,WAAW,OAAO,MAAM,GAAG,MAAM,EAAE;EAEpD,QAAQ,eAAe;EACvB,MAAM,EAAE,KAAK,OAAO;EACpB,IAAI,OAAO,KAAK,eAAe,SAAS,IAAI,EAC1C;EAEF,IAAI,eAAe,UAAU,IAAI,EAC/B,WAAW,gBAAgB,IAAI;OAC1B;GACL,MAAM,QAAQ,eAAe;GAC7B,IAAI,OAAO,KAAK,OAAO,GACrB,UAAU,QAAQ;;EAGtB,iBAAiB;;CAEnB,SAAS,OAAO,SAAS,OAAO,KAAK;EACnC,MAAM,SAAS,MAAM,MAAM;EAC3B,MAAM,WAAW,OAAO,SAAS,OAAO,SAAS,SAAS;EAC1D,IAAI,YAAY,SAAS,SAAS,GAAG;GACnC,SAAS,WAAW;GACpB,UAAU,SAAS,KAAK,IAAI;SAE5B,OAAO,SAAS,KAAK;GACnB,MAAM;GACN;GACA,KAAK,OAAO,OAAO,IAAI;GACxB,CAAC;;CAGN,SAAS,WAAW,IAAI,KAAK,YAAY,OAAO;EAC9C,IAAI,WACF,UAAU,GAAG,KAAK,UAAU,KAAK,GAAG,CAAC;OAErC,UAAU,GAAG,KAAK,UAAU,KAAK,GAAG,GAAG,EAAE;EAE3C,IAAI,UAAU,WAAW;GACvB,IAAI,GAAG,SAAS,QACd,GAAG,SAAS,MAAM,OAAO,OAAO,EAAE,EAAE,GAAG,SAAS,GAAG,SAAS,SAAS,GAAG,IAAI,IAAI;QAEhF,GAAG,SAAS,MAAM,OAAO,OAAO,EAAE,EAAE,GAAG,SAAS,MAAM;GAExD,GAAG,SAAS,SAAS,SACnB,GAAG,SAAS,MAAM,QAClB,GAAG,SAAS,IAAI,OACjB;;EAEH,MAAM,EAAE,KAAK,IAAI,aAAa;EAC9B,IAAI,CAAC;OACC,QAAQ,QACV,GAAG,UAAU;QACR,IAAI,mBAAmB,GAAG,EAC/B,GAAG,UAAU;QACR,IAAI,YAAY,GAAG,EACxB,GAAG,UAAU;;EAGjB,IAAI,CAAC,UAAU,UACb,GAAG,WAAW,mBAAmB,SAAS;EAE5C,IAAI,OAAO,KAAK,eAAe,mBAAmB,IAAI,EAAE;GACtD,MAAM,QAAQ,SAAS;GACvB,IAAI,SAAS,MAAM,SAAS,GAC1B,MAAM,UAAU,MAAM,QAAQ,QAAQ,UAAU,GAAG;;EAGvD,IAAI,OAAO,KAAK,eAAe,SAAS,IAAI,EAC1C;EAEF,IAAI,wBAAwB,IAAI;GAC9B,SAAS,UAAU,SAAS;GAC5B,sBAAsB;;EAExB,IAAI,UAAU,UAAU,MAAM,KAAK,MAAM,GAAG,KAAK,eAAe,QAAQ,GACtE,UAAU,QAAQ;EAEpB;GACE,MAAM,QAAQ,GAAG;GACjB,IAAI,CAAC,UAAU,aAAa,gBAC1B,4BACA,eACD,IAAI,GAAG,QAAQ,cAAc,CAAC,mBAAmB,GAAG,EAAE;IACrD,MAAM,SAAS,MAAM,MAAM;IAC3B,MAAM,QAAQ,OAAO,SAAS,QAAQ,GAAG;IACzC,OAAO,SAAS,OAAO,OAAO,GAAG,GAAG,GAAG,SAAS;;GAElD,MAAM,qBAAqB,MAAM,MAC9B,MAAM,EAAE,SAAS,KAAK,EAAE,SAAS,kBACnC;GACD,IAAI,sBAAsB,mBACxB,4BACA,gBACA,mBAAmB,IACpB,IAAI,GAAG,SAAS,QACf,mBAAmB,QAAQ;IACzB,MAAM;IACN,SAAS,SACP,GAAG,SAAS,GAAG,IAAI,MAAM,QACzB,GAAG,SAAS,GAAG,SAAS,SAAS,GAAG,IAAI,IAAI,OAC7C;IACD,KAAK,mBAAmB;IACzB;;;CAIP,SAAS,UAAU,OAAO,GAAG;EAC3B,IAAI,IAAI;EACR,OAAO,aAAa,WAAW,EAAE,KAAK,KAAK,IAAI,aAAa,SAAS,GAAG;EACxE,OAAO;;CAET,SAAS,UAAU,OAAO,GAAG;EAC3B,IAAI,IAAI;EACR,OAAO,aAAa,WAAW,EAAE,KAAK,KAAK,KAAK,GAAG;EACnD,OAAO;;CAET,MAAM,qCAAqC,IAAI,IAAI;EAAC;EAAM;EAAQ;EAAW;EAAO;EAAO,CAAC;CAC5F,SAAS,mBAAmB,EAAE,KAAK,SAAS;EAC1C,IAAI,QAAQ;QACL,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAChC,IAAI,MAAM,GAAG,SAAS,KAAK,mBAAmB,IAAI,MAAM,GAAG,KAAK,EAC9D,OAAO;;EAIb,OAAO;;CAET,SAAS,YAAY,EAAE,KAAK,SAAS;EACnC,IAAI,eAAe,gBAAgB,IAAI,EACrC,OAAO;EAET,IAAI,QAAQ,eAAe,YAAY,IAAI,WAAW,EAAE,CAAC,IAAI,gBAAgB,IAAI,IAAI,eAAe,sBAAsB,eAAe,mBAAmB,IAAI,IAAI,eAAe,eAAe,CAAC,eAAe,YAAY,IAAI,EAChO,OAAO;EAET,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACrC,MAAM,IAAI,MAAM;GAChB,IAAI,EAAE,SAAS;QACT,EAAE,SAAS,QAAQ,EAAE;SACnB,EAAE,MAAM,QAAQ,WAAW,OAAO,EACpC,OAAO;UACF,IAAI,mBACT,0BACA,gBACA,EAAE,IACH,EACC,OAAO;;UAGN,IACP,EAAE,SAAS,UAAU,cAAc,EAAE,KAAK,KAAK,IAAI,mBACjD,0BACA,gBACA,EAAE,IACH,EACC,OAAO;;EAGX,OAAO;;CAET,SAAS,YAAY,GAAG;EACtB,OAAO,IAAI,MAAM,IAAI;;CAEvB,MAAM,mBAAmB;CACzB,SAAS,mBAAmB,OAAO;EACjC,MAAM,iBAAiB,eAAe,eAAe;EACrD,IAAI,oBAAoB;EACxB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACrC,MAAM,OAAO,MAAM;GACnB,IAAI,KAAK,SAAS,GAChB,IAAI,CAAC;QACC,gBAAgB,KAAK,QAAQ,EAAE;KACjC,MAAM,OAAO,MAAM,IAAI,MAAM,MAAM,IAAI,GAAG;KAC1C,MAAM,OAAO,MAAM,IAAI,MAAM,MAAM,IAAI,GAAG;KAC1C,IAAI,CAAC,QAAQ,CAAC,QAAQ,mBAAmB,SAAS,MAAM,SAAS,KAAK,SAAS,MAAM,SAAS,MAAM,SAAS,KAAK,SAAS,KAAK,eAAe,KAAK,QAAQ,IAAI;MAC9J,oBAAoB;MACpB,MAAM,KAAK;YAEX,KAAK,UAAU;WAEZ,IAAI,gBACT,KAAK,UAAU,SAAS,KAAK,QAAQ;UAGvC,KAAK,UAAU,KAAK,QAAQ,QAAQ,kBAAkB,KAAK;;EAIjE,OAAO,oBAAoB,MAAM,OAAO,QAAQ,GAAG;;CAErD,SAAS,eAAe,KAAK;EAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;GACnC,MAAM,IAAI,IAAI,WAAW,EAAE;GAC3B,IAAI,MAAM,MAAM,MAAM,IACpB,OAAO;;EAGX,OAAO;;CAET,SAAS,SAAS,KAAK;EACrB,IAAI,MAAM;EACV,IAAI,uBAAuB;EAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAC9B,IAAI,aAAa,IAAI,WAAW,EAAE,CAAC;OAC7B,CAAC,sBAAsB;IACzB,OAAO;IACP,uBAAuB;;SAEpB;GACL,OAAO,IAAI;GACX,uBAAuB;;EAG3B,OAAO;;CAET,SAAS,QAAQ,MAAM;EACrB,CAAC,MAAM,MAAM,aAAa,SAAS,KAAK,KAAK;;CAE/C,SAAS,OAAO,OAAO,KAAK;EAC1B,OAAO;GACL,OAAO,UAAU,OAAO,MAAM;GAE9B,KAAK,OAAO,OAAO,MAAM,UAAU,OAAO,IAAI;GAE9C,QAAQ,OAAO,OAAO,MAAM,SAAS,OAAO,IAAI;GACjD;;CAEH,SAAS,SAAS,KAAK;EACrB,OAAO,OAAO,IAAI,MAAM,QAAQ,IAAI,IAAI,OAAO;;CAEjD,SAAS,UAAU,KAAK,KAAK;EAC3B,IAAI,MAAM,UAAU,OAAO,IAAI;EAC/B,IAAI,SAAS,SAAS,IAAI,MAAM,QAAQ,IAAI;;CAE9C,SAAS,UAAU,KAAK;EACtB,MAAM,OAAO;GACX,MAAM;GACN,MAAM,IAAI;GACV,SAAS,OACP,IAAI,IAAI,MAAM,QACd,IAAI,IAAI,MAAM,SAAS,IAAI,QAAQ,OACpC;GACD,OAAO,KAAK;GACZ,KAAK,IAAI;GACV;EACD,IAAI,IAAI,KAAK;GACX,MAAM,MAAM,IAAI,IAAI;GACpB,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,QAAQ;IACvC,IAAI,MAAM;IACV,IAAI,MAAM;IACV,IAAI,IAAI;IACR,IAAI,IAAI;;GAEV,KAAK,QAAQ;IACX,MAAM;IACN,SAAS,IAAI,IAAI;IACjB;IACD;;EAEH,OAAO;;CAET,SAAS,UAAU,SAAS,WAAW,OAAO,KAAK,YAAY,GAAG,YAAY,GAAgB;EAC5F,MAAM,MAAM,uBAAuB,SAAS,UAAU,KAAK,UAAU;EACrE,IAAI,CAAC,YAAY,eAAe,qBAAqB,cAAc,KAAgB,QAAQ,MAAM,EAAE;GACjG,IAAI,mBAAmB,QAAQ,EAAE;IAC/B,IAAI,MAAM;IACV,OAAO;;GAET,IAAI;IACF,MAAM,UAAU,eAAe;IAC/B,MAAM,UAAU,EACd,SAAS,UAAU,CAAC,GAAG,SAAS,aAAa,GAAG,CAAC,aAAa,EAC/D;IACD,IAAI,cAAc,GAChB,IAAI,MAAMA,SAAO,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC;SAC3C,IAAI,cAAc,GACvB,IAAI,MAAMA,SAAO,gBAAgB,IAAI,QAAQ,QAAQ,QAAQ;SAE7D,IAAI,MAAMA,SAAO,gBAAgB,IAAI,QAAQ,IAAI,QAAQ;YAEpD,GAAG;IACV,IAAI,MAAM;IACV,UAAU,IAAI,IAAI,MAAM,QAAQ,EAAE,QAAQ;;;EAG9C,OAAO;;CAET,SAAS,UAAU,MAAM,OAAO,SAAS;EACvC,eAAe,QACb,oBAAoB,MAAM,OAAO,OAAO,MAAM,EAAE,KAAK,GAAG,QAAQ,CACjE;;CAEH,SAAS,QAAQ;EACf,UAAU,OAAO;EACjB,iBAAiB;EACjB,cAAc;EACd,mBAAmB;EACnB,wBAAwB;EACxB,sBAAsB;EACtB,MAAM,SAAS;;CAEjB,SAAS,UAAU,OAAO,SAAS;EACjC,OAAO;EACP,eAAe;EACf,iBAAiB,OAAO,OAAO,EAAE,EAAE,qBAAqB;EACxD,IAAI,SAAS;GACX,IAAI;GACJ,KAAK,OAAO,SACV,IAAI,QAAQ,QAAQ,MAClB,eAAe,OAAO,QAAQ;;EAIpC,UAAU,OAAO,eAAe,cAAc,SAAS,IAAI,eAAe,cAAc,QAAQ,IAAI;EACpG,UAAU,QAAQ,eAAe,OAAO,KAAK,eAAe,OAAO;EACnE,MAAM,aAAa,WAAW,QAAQ;EACtC,IAAI,YAAY;GACd,UAAU,gBAAgB,YAAY,WAAW,GAAG;GACpD,UAAU,iBAAiB,YAAY,WAAW,GAAG;;EAEvD,MAAM,OAAO,cAAc,WAAW,EAAE,EAAE,MAAM;EAChD,UAAU,MAAM,aAAa;EAC7B,KAAK,MAAM,OAAO,GAAG,MAAM,OAAO;EAClC,KAAK,WAAW,mBAAmB,KAAK,SAAS;EACjD,cAAc;EACd,OAAO;;CAGT,SAAS,YAAY,MAAM,SAAS;EAClC,KACE,MACA,KAAK,GACL,SAGA,CAAC,CAAC,qBAAqB,KAAK,CAC7B;;CAEH,SAAS,qBAAqB,MAAM;EAClC,MAAM,WAAW,KAAK,SAAS,QAAQ,MAAM,EAAE,SAAS,EAAE;EAC1D,OAAO,SAAS,WAAW,KAAK,SAAS,GAAG,SAAS,KAAK,CAAC,aAAa,SAAS,GAAG,GAAG,SAAS,KAAK;;CAEvG,SAAS,KAAK,MAAM,QAAQ,SAAS,iBAAiB,OAAO,QAAQ,OAAO;EAC1E,MAAM,EAAE,aAAa;EACrB,MAAM,UAAU,EAAE;EAClB,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;GACxC,MAAM,QAAQ,SAAS;GACvB,IAAI,MAAM,SAAS,KAAK,MAAM,YAAY,GAAG;IAC3C,MAAM,eAAe,iBAAiB,IAAI,gBAAgB,OAAO,QAAQ;IACzE,IAAI,eAAe;SACb,gBAAgB,GAAG;MACrB,MAAM,YAAY,YAAY;MAC9B,QAAQ,KAAK,MAAM;MACnB;;WAEG;KACL,MAAM,cAAc,MAAM;KAC1B,IAAI,YAAY,SAAS,IAAI;MAC3B,MAAM,OAAO,YAAY;MACzB,KAAK,SAAS,KAAK,KAAK,SAAS,OAAO,SAAS,MAAM,8BAA8B,OAAO,QAAQ,IAAI,GAAG;OACzG,MAAM,QAAQ,aAAa,MAAM;OACjC,IAAI,OACF,YAAY,QAAQ,QAAQ,MAAM,MAAM;;MAG5C,IAAI,YAAY,cACd,YAAY,eAAe,QAAQ,MAAM,YAAY,aAAa;;;UAInE,IAAI,MAAM,SAAS;SACH,iBAAiB,IAAI,gBAAgB,OAAO,QAAQ,KACrD,GAAG;KACrB,IAAI,MAAM,YAAY,SAAS,MAAM,MAAM,YAAY,UAAU,SAAS,GACxE,MAAM,YAAY,UAAU,KAC1B,KACD;KAEH,QAAQ,KAAK,MAAM;KACnB;;;GAGJ,IAAI,MAAM,SAAS,GAAG;IACpB,MAAM,cAAc,MAAM,YAAY;IACtC,IAAI,aACF,QAAQ,OAAO;IAEjB,KAAK,OAAO,MAAM,SAAS,OAAO,MAAM;IACxC,IAAI,aACF,QAAQ,OAAO;UAEZ,IAAI,MAAM,SAAS,IACxB,KAAK,OAAO,MAAM,SAAS,MAAM,SAAS,WAAW,GAAG,KAAK;QACxD,IAAI,MAAM,SAAS,GACxB,KAAK,IAAI,KAAK,GAAG,KAAK,MAAM,SAAS,QAAQ,MAC3C,KACE,MAAM,SAAS,KACf,MACA,SACA,MAAM,SAAS,IAAI,SAAS,WAAW,GACvC,MACD;;EAIP,IAAI,gBAAgB;EACpB,IAAI,QAAQ,WAAW,SAAS,UAAU,KAAK,SAAS;OAClD,KAAK,YAAY,KAAK,KAAK,eAAe,KAAK,YAAY,SAAS,MAAM,OAAO,QAAQ,KAAK,YAAY,SAAS,EAAE;IACvH,KAAK,YAAY,WAAW,mBAC1B,sBAAsB,KAAK,YAAY,SAAS,CACjD;IACD,gBAAgB;UACX,IAAI,KAAK,YAAY,KAAK,KAAK,eAAe,KAAK,YAAY,SAAS,MAAM,KAAK,YAAY,YAAY,CAAC,OAAO,QAAQ,KAAK,YAAY,SAAS,IAAI,KAAK,YAAY,SAAS,SAAS,IAAI;IACrM,MAAM,OAAO,YAAY,KAAK,aAAa,UAAU;IACrD,IAAI,MAAM;KACR,KAAK,UAAU,mBACb,sBAAsB,KAAK,QAAQ,CACpC;KACD,gBAAgB;;UAEb,IAAI,KAAK,YAAY,KAAK,UAAU,OAAO,SAAS,KAAK,OAAO,YAAY,KAAK,OAAO,eAAe,OAAO,YAAY,SAAS,MAAM,OAAO,YAAY,YAAY,CAAC,OAAO,QAAQ,OAAO,YAAY,SAAS,IAAI,OAAO,YAAY,SAAS,SAAS,IAAI;IACtQ,MAAM,WAAW,QAAQ,MAAM,QAAQ,KAAK;IAC5C,MAAM,OAAO,YAAY,SAAS,OAAO,YAAY,OAAO,aAAa,SAAS,IAAI;IACtF,IAAI,MAAM;KACR,KAAK,UAAU,mBACb,sBAAsB,KAAK,QAAQ,CACpC;KACD,gBAAgB;;;;EAItB,IAAI,CAAC,eACH,KAAK,MAAM,SAAS,SAClB,MAAM,cAAc,QAAQ,MAAM,MAAM,YAAY;EAGxD,SAAS,mBAAmB,OAAO;GACjC,MAAM,MAAM,QAAQ,MAAM,MAAM;GAChC,IAAI,kBAAkB;GACtB,OAAO;;EAET,SAAS,YAAY,OAAO,MAAM;GAChC,IAAI,MAAM,YAAY,CAAC,OAAO,QAAQ,MAAM,SAAS,IAAI,MAAM,SAAS,SAAS,IAAI;IACnF,MAAM,OAAO,MAAM,SAAS,WAAW,MACpC,MAAM,EAAE,QAAQ,QAAQ,EAAE,IAAI,YAAY,KAC5C;IACD,OAAO,QAAQ,KAAK;;;EAGxB,IAAI,QAAQ,UAAU,QAAQ,gBAC5B,QAAQ,eAAe,UAAU,SAAS,KAAK;;CAGnD,SAAS,gBAAgB,MAAM,SAAS;EACtC,MAAM,EAAE,kBAAkB;EAC1B,QAAQ,KAAK,MAAb;GACE,KAAK;IACH,IAAI,KAAK,YAAY,GACnB,OAAO;IAET,MAAM,SAAS,cAAc,IAAI,KAAK;IACtC,IAAI,WAAW,KAAK,GAClB,OAAO;IAET,MAAM,cAAc,KAAK;IACzB,IAAI,YAAY,SAAS,IACvB,OAAO;IAET,IAAI,YAAY,WAAW,KAAK,QAAQ,SAAS,KAAK,QAAQ,mBAAmB,KAAK,QAAQ,QAC5F,OAAO;IAET,IAAI,YAAY,cAAc,KAAK,GAAG;KACpC,IAAI,cAAc;KAClB,MAAM,qBAAqB,8BAA8B,MAAM,QAAQ;KACvE,IAAI,uBAAuB,GAAG;MAC5B,cAAc,IAAI,MAAM,EAAE;MAC1B,OAAO;;KAET,IAAI,qBAAqB,aACvB,cAAc;KAEhB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,KAAK;MAC7C,MAAM,YAAY,gBAAgB,KAAK,SAAS,IAAI,QAAQ;MAC5D,IAAI,cAAc,GAAG;OACnB,cAAc,IAAI,MAAM,EAAE;OAC1B,OAAO;;MAET,IAAI,YAAY,aACd,cAAc;;KAGlB,IAAI,cAAc,GAChB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;MAC1C,MAAM,IAAI,KAAK,MAAM;MACrB,IAAI,EAAE,SAAS,KAAK,EAAE,SAAS,UAAU,EAAE,KAAK;OAC9C,MAAM,UAAU,gBAAgB,EAAE,KAAK,QAAQ;OAC/C,IAAI,YAAY,GAAG;QACjB,cAAc,IAAI,MAAM,EAAE;QAC1B,OAAO;;OAET,IAAI,UAAU,aACZ,cAAc;;;KAKtB,IAAI,YAAY,SAAS;MACvB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAErC,IADU,KAAK,MAAM,GACf,SAAS,GAAG;OAChB,cAAc,IAAI,MAAM,EAAE;OAC1B,OAAO;;MAGX,QAAQ,aAAa,WAAW;MAChC,QAAQ,aACN,oBAAoB,QAAQ,OAAO,YAAY,YAAY,CAC5D;MACD,YAAY,UAAU;MACtB,QAAQ,OAAO,eAAe,QAAQ,OAAO,YAAY,YAAY,CAAC;;KAExE,cAAc,IAAI,MAAM,YAAY;KACpC,OAAO;WACF;KACL,cAAc,IAAI,MAAM,EAAE;KAC1B,OAAO;;GAEX,KAAK;GACL,KAAK,GACH,OAAO;GACT,KAAK;GACL,KAAK;GACL,KAAK,IACH,OAAO;GACT,KAAK;GACL,KAAK,IACH,OAAO,gBAAgB,KAAK,SAAS,QAAQ;GAC/C,KAAK,GACH,OAAO,KAAK;GACd,KAAK;IACH,IAAI,aAAa;IACjB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,KAAK;KAC7C,MAAM,QAAQ,KAAK,SAAS;KAC5B,IAAI,OAAO,SAAS,MAAM,IAAI,OAAO,SAAS,MAAM,EAClD;KAEF,MAAM,YAAY,gBAAgB,OAAO,QAAQ;KACjD,IAAI,cAAc,GAChB,OAAO;UACF,IAAI,YAAY,YACrB,aAAa;;IAGjB,OAAO;GACT,KAAK,IACH,OAAO;GACT,SACE,OAAO;;;CAGb,MAAM,wCAAwC,IAAI,IAAI;EACpD;EACA;EACA;EACA;EACD,CAAC;CACF,SAAS,4BAA4B,OAAO,SAAS;EACnD,IAAI,MAAM,SAAS,MAAM,CAAC,OAAO,SAAS,MAAM,OAAO,IAAI,sBAAsB,IAAI,MAAM,OAAO,EAAE;GAClG,MAAM,MAAM,MAAM,UAAU;GAC5B,IAAI,IAAI,SAAS,GACf,OAAO,gBAAgB,KAAK,QAAQ;QAC/B,IAAI,IAAI,SAAS,IACtB,OAAO,4BAA4B,KAAK,QAAQ;;EAGpD,OAAO;;CAET,SAAS,8BAA8B,MAAM,SAAS;EACpD,IAAI,aAAa;EACjB,MAAM,QAAQ,aAAa,KAAK;EAChC,IAAI,SAAS,MAAM,SAAS,IAAI;GAC9B,MAAM,EAAE,eAAe;GACvB,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;IAC1C,MAAM,EAAE,KAAK,UAAU,WAAW;IAClC,MAAM,UAAU,gBAAgB,KAAK,QAAQ;IAC7C,IAAI,YAAY,GACd,OAAO;IAET,IAAI,UAAU,YACZ,aAAa;IAEf,IAAI;IACJ,IAAI,MAAM,SAAS,GACjB,YAAY,gBAAgB,OAAO,QAAQ;SACtC,IAAI,MAAM,SAAS,IACxB,YAAY,4BAA4B,OAAO,QAAQ;SAEvD,YAAY;IAEd,IAAI,cAAc,GAChB,OAAO;IAET,IAAI,YAAY,YACd,aAAa;;;EAInB,OAAO;;CAET,SAAS,aAAa,MAAM;EAC1B,MAAM,cAAc,KAAK;EACzB,IAAI,YAAY,SAAS,IACvB,OAAO,YAAY;;CAIvB,SAAS,uBAAuB,MAAM,EACpC,WAAW,IACX,oBAAoB,OACpB,cAAc,OACd,MAAM,OACN,gBAAgB,OAChB,iBAAiB,EAAE,EACnB,sBAAsB,EAAE,EACxB,iBAAiB,MACjB,qBAAqB,OAAO,MAC5B,kBAAkB,OAAO,MACzB,oBAAoB,EAAE,EACtB,UAAU,MACV,UAAU,MACV,MAAM,OACN,QAAQ,OACR,aAAa,IACb,kBAAkB,OAAO,WACzB,SAAS,OACT,OAAO,OACP,UAAU,gBACV,SAAS,eACT,gBACC;EACD,MAAM,YAAY,SAAS,QAAQ,SAAS,GAAG,CAAC,MAAM,kBAAkB;EACxE,MAAM,UAAU;GAEd;GACA,UAAU,aAAa,OAAO,WAAW,OAAO,SAAS,UAAU,GAAG,CAAC;GACvE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GAEA;GACA,yBAAyB,IAAI,KAAK;GAClC,4BAA4B,IAAI,KAAK;GACrC,4BAA4B,IAAI,KAAK;GACrC,QAAQ,EAAE;GACV,SAAS,EAAE;GACX,QAAQ,EAAE;GACV,+BAA+B,IAAI,SAAS;GAC5C,oCAAoC,IAAI,SAAS;GACjD,OAAO;GACP,aAA6B,uBAAO,OAAO,KAAK;GAChD,QAAQ;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACR;GACD,QAAQ;GACR,aAAa;GACb,aAAa;GACb,YAAY;GACZ,SAAS;GAET,OAAO,MAAM;IACX,MAAM,QAAQ,QAAQ,QAAQ,IAAI,KAAK,IAAI;IAC3C,QAAQ,QAAQ,IAAI,MAAM,QAAQ,EAAE;IACpC,OAAO;;GAET,aAAa,MAAM;IACjB,MAAM,QAAQ,QAAQ,QAAQ,IAAI,KAAK;IACvC,IAAI,OAAO;KACT,MAAM,eAAe,QAAQ;KAC7B,IAAI,CAAC,cACH,QAAQ,QAAQ,OAAO,KAAK;UAE5B,QAAQ,QAAQ,IAAI,MAAM,aAAa;;;GAI7C,aAAa,MAAM;IACjB,OAAO,IAAI,cAAc,QAAQ,OAAO,KAAK;;GAE/C,YAAY,MAAM;IAChB,QAAQ,OAAO,SAAS,QAAQ,cAAc,QAAQ,cAAc;;GAEtE,WAAW,MAAM;IACf,MAAM,OAAO,QAAQ,OAAO;IAC5B,MAAM,eAAe,OAAO,KAAK,QAAQ,KAAK,GAAG,QAAQ,cAAc,QAAQ,aAAa;IAC5F,IAAI,CAAC,QAAQ,SAAS,QAAQ,aAAa;KACzC,QAAQ,cAAc;KACtB,QAAQ,eAAe;WAEvB,IAAI,QAAQ,aAAa,cAAc;KACrC,QAAQ;KACR,QAAQ,eAAe;;IAG3B,QAAQ,OAAO,SAAS,OAAO,cAAc,EAAE;;GAEjD,eAAe,OAAO;GACtB,eAAe,KAAK;IAEhB,IAAI,OAAO,SAAS,IAAI,EACtB,MAAM,IAAI;SACL,IAAI,IAAI,aACb,IAAI,YAAY,QAAQ,MAAM;SACzB,IAAI,IAAI,SAAS,GACtB,MAAM,IAAI,QAAQ;;GAIxB,kBAAkB,KAAK;IAEnB,IAAI,OAAO,SAAS,IAAI,EACtB,SAAS,IAAI;SACR,IAAI,IAAI,aACb,IAAI,YAAY,QAAQ,SAAS;SAC5B,IAAI,IAAI,SAAS,GACtB,SAAS,IAAI,QAAQ;;GAI3B,MAAM,KAAK;IACT,IAAI,OAAO,SAAS,IAAI,EAAE,MAAM,uBAAuB,IAAI;IAC3D,QAAQ,OAAO,KAAK,IAAI;IACxB,MAAM,aAAa,uBACjB,YAAY,QAAQ,OAAO,UAC3B,OACA,IAAI,KACJ,EACD;IACD,WAAW,UAAU;IACrB,OAAO;;GAET,MAAM,KAAK,UAAU,OAAO,UAAU,OAAO;IAC3C,MAAM,WAAW,sBACf,QAAQ,OAAO,QACf,KACA,SACA,QACD;IACD,QAAQ,OAAO,KAAK,SAAS;IAC7B,OAAO;;GAEV;EAEC,QAAQ,0BAA0B,IAAI,KAAK;EAE7C,SAAS,MAAM,IAAI;GACjB,MAAM,EAAE,gBAAgB;GACxB,IAAI,YAAY,QAAQ,KAAK,GAC3B,YAAY,MAAM;GAEpB,YAAY;;EAEd,SAAS,SAAS,IAAI;GACpB,QAAQ,YAAY;;EAEtB,OAAO;;CAET,SAAS,UAAU,MAAM,SAAS;EAChC,MAAM,UAAU,uBAAuB,MAAM,QAAQ;EACrD,aAAa,MAAM,QAAQ;EAC3B,IAAI,QAAQ,aACV,YAAY,MAAM,QAAQ;EAE5B,IAAI,CAAC,QAAQ,KACX,kBAAkB,MAAM,QAAQ;EAElC,KAAK,0BAA0B,IAAI,IAAI,CAAC,GAAG,QAAQ,QAAQ,MAAM,CAAC,CAAC;EACnE,KAAK,aAAa,CAAC,GAAG,QAAQ,WAAW;EACzC,KAAK,aAAa,CAAC,GAAG,QAAQ,WAAW;EACzC,KAAK,UAAU,QAAQ;EACvB,KAAK,SAAS,QAAQ;EACtB,KAAK,QAAQ,QAAQ;EACrB,KAAK,SAAS,QAAQ;EACtB,KAAK,cAAc;EAEjB,KAAK,UAAU,CAAC,GAAG,QAAQ,QAAQ;;CAGvC,SAAS,kBAAkB,MAAM,SAAS;EACxC,MAAM,EAAE,WAAW;EACnB,MAAM,EAAE,aAAa;EACrB,IAAI,SAAS,WAAW,GAAG;GACzB,MAAM,yBAAyB,qBAAqB,KAAK;GACzD,IAAI,0BAA0B,uBAAuB,aAAa;IAChE,MAAM,cAAc,uBAAuB;IAC3C,IAAI,YAAY,SAAS,IACvB,eAAe,aAAa,QAAQ;IAEtC,KAAK,cAAc;UAEnB,KAAK,cAAc,SAAS;SAEzB,IAAI,SAAS,SAAS,GAE3B,KAAK,cAAc,gBACjB,SACA,OAAO,SAAS,EAChB,KAAK,GACL,KAAK,UACL,IACA,KAAK,GACL,KAAK,GACL,MACA,KAAK,GACL,MACD;;CAGL,SAAS,iBAAiB,QAAQ,SAAS;EACzC,IAAI,IAAI;EACR,MAAM,oBAAoB;GACxB;;EAEF,OAAO,IAAI,OAAO,SAAS,QAAQ,KAAK;GACtC,MAAM,QAAQ,OAAO,SAAS;GAC9B,IAAI,OAAO,SAAS,MAAM,EAAE;GAC5B,QAAQ,cAAc,QAAQ;GAC9B,QAAQ,SAAS;GACjB,QAAQ,aAAa;GACrB,QAAQ,gBAAgB;GACxB,aAAa,OAAO,QAAQ;;;CAGhC,SAAS,aAAa,MAAM,SAAS;EACnC,QAAQ,cAAc;EACtB,MAAM,EAAE,mBAAmB;EAC3B,MAAM,UAAU,EAAE;EAClB,KAAK,IAAI,KAAK,GAAG,KAAK,eAAe,QAAQ,MAAM;GACjD,MAAM,SAAS,eAAe,IAAI,MAAM,QAAQ;GAChD,IAAI,QACF,IAAI,OAAO,QAAQ,OAAO,EACxB,QAAQ,KAAK,GAAG,OAAO;QAEvB,QAAQ,KAAK,OAAO;GAGxB,IAAI,CAAC,QAAQ,aACX;QAEA,OAAO,QAAQ;;EAGnB,QAAQ,KAAK,MAAb;GACE,KAAK;IACH,IAAI,CAAC,QAAQ,KACX,QAAQ,OAAO,eAAe;IAEhC;GACF,KAAK;IACH,IAAI,CAAC,QAAQ,KACX,QAAQ,OAAO,kBAAkB;IAEnC;GAEF,KAAK;IACH,KAAK,IAAI,KAAK,GAAG,KAAK,KAAK,SAAS,QAAQ,MAC1C,aAAa,KAAK,SAAS,KAAK,QAAQ;IAE1C;GACF,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;IACH,iBAAiB,MAAM,QAAQ;IAC/B;;EAEJ,QAAQ,cAAc;EACtB,IAAI,IAAI,QAAQ;EAChB,OAAO,KACL,QAAQ,IAAI;;CAGhB,SAAS,mCAAmC,MAAM,IAAI;EACpD,MAAM,UAAU,OAAO,SAAS,KAAK,IAAI,MAAM,MAAM,QAAQ,MAAM,KAAK,KAAK,EAAE;EAC/E,QAAQ,MAAM,YAAY;GACxB,IAAI,KAAK,SAAS,GAAG;IACnB,MAAM,EAAE,UAAU;IAClB,IAAI,KAAK,YAAY,KAAK,MAAM,KAAK,QAAQ,EAC3C;IAEF,MAAM,UAAU,EAAE;IAClB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;KACrC,MAAM,OAAO,MAAM;KACnB,IAAI,KAAK,SAAS,KAAK,QAAQ,KAAK,KAAK,EAAE;MACzC,MAAM,OAAO,GAAG,EAAE;MAClB;MACA,MAAM,SAAS,GAAG,MAAM,MAAM,QAAQ;MACtC,IAAI,QAAQ,QAAQ,KAAK,OAAO;;;IAGpC,OAAO;;;;CAKb,MAAM,kBAAkB;CACxB,MAAM,eAAe,MAAM,GAAG,cAAc,GAAG,KAAK,cAAc;CAClE,SAAS,qBAAqB,KAAK,EACjC,OAAO,YACP,oBAAoB,SAAS,UAC7B,YAAY,OACZ,WAAW,qBACX,UAAU,MACV,kBAAkB,OAClB,oBAAoB,OACpB,oBAAoB,OACpB,uBAAuB,uBACvB,MAAM,OACN,OAAO,OACP,QAAQ,SACP;EACD,MAAM,UAAU;GACd;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,QAAQ,IAAI;GACZ,MAAM;GACN,QAAQ;GACR,MAAM;GACN,QAAQ;GACR,aAAa;GACb,MAAM;GACN,KAAK,KAAK;GACV,OAAO,KAAK;IACV,OAAO,IAAI,cAAc;;GAE3B,KAAK,MAAM,eAAe,IAAe,MAAM;IAC7C,QAAQ,QAAQ;IAChB,IAAI,QAAQ,KAAK;KACf,IAAI,MAAM;MACR,IAAI;MACJ,IAAI,KAAK,SAAS,KAAK,CAAC,KAAK,UAAU;OACrC,MAAM,UAAU,KAAK,QAAQ,QAAQ,WAAW,GAAG;OACnD,IAAI,YAAY,KAAK,WAAW,mBAAmB,QAAQ,EACzD,OAAO;;MAGX,IAAI,KAAK,IAAI,QACX,WAAW,KAAK,IAAI,OAAO,KAAK;;KAGpC,IAAI,iBAAiB,IACnB,4BAA4B,SAAS,KAAK;UACrC;MACL,QAAQ,UAAU,KAAK;MACvB,IAAI,iBAAiB,IACnB,QAAQ,UAAU,KAAK;WAClB;OACL,IAAI,iBAAiB,IACnB,eAAe,KAAK,SAAS;OAE/B,QAAQ;OACR,QAAQ,SAAS,KAAK,SAAS;;;KAGnC,IAAI,QAAQ,KAAK,QAAQ,WAAW,KAAK,IAAI,QAC3C,WAAW,KAAK,IAAI,IAAI;;;GAI9B,SAAS;IACP,QAAQ,EAAE,QAAQ,YAAY;;GAEhC,SAAS,iBAAiB,OAAO;IAC/B,IAAI,gBACF,EAAE,QAAQ;SAEV,QAAQ,EAAE,QAAQ,YAAY;;GAGlC,UAAU;IACR,QAAQ,QAAQ,YAAY;;GAE/B;EACD,SAAS,QAAQ,GAAG;GAClB,QAAQ,KAAK,OAAO,KAAK,OAAO,EAAE,EAAE,EAAc;;EAEpD,SAAS,WAAW,KAAK,OAAO,MAAM;GACpC,MAAM,EAAE,QAAQ,cAAc,QAAQ;GACtC,IAAI,SAAS,QAAQ,CAAC,OAAO,IAAI,KAAK,EAAE,OAAO,IAAI,KAAK;GACxD,UAAU,IAAI;IACZ,cAAc,IAAI;IAClB,gBAAgB,IAAI,SAAS;IAE7B,eAAe,QAAQ;IACvB,iBAAiB,QAAQ,SAAS;IAClC,QAAQ;IACR;IACD,CAAC;;EAEJ,IAAI,WAAW;GACb,QAAQ,MAAM,IAAI,YAAY,oBAAoB;GAClD,QAAQ,IAAI,iBAAiB,UAAU,QAAQ,OAAO;GACtD,QAAQ,IAAI,SAAS,IAAI,SAAS;;EAEpC,OAAO;;CAET,SAAS,SAAS,KAAK,UAAU,EAAE,EAAE;EACnC,MAAM,UAAU,qBAAqB,KAAK,QAAQ;EAClD,IAAI,QAAQ,kBAAkB,QAAQ,iBAAiB,QAAQ;EAC/D,MAAM,EACJ,MACA,MACA,mBACA,QACA,UACA,SACA,SACA,QACE;EACJ,MAAM,UAAU,MAAM,KAAK,IAAI,QAAQ;EACvC,MAAM,aAAa,QAAQ,SAAS;EACpC,MAAM,eAAe,CAAC,qBAAqB,SAAS;EACpD,MAAM,aAAa,WAAW,QAAQ,SAAS;EAC/C,MAAM,iBAAiB,CAAC,CAAC,QAAQ;EACjC,MAAM,kBAAkB,iBAAiB,qBAAqB,KAAK,QAAQ,GAAG;EAC9E,IAAI,SAAS,UACX,kBAAkB,KAAK,iBAAiB,YAAY,eAAe;OAEnE,oBAAoB,KAAK,gBAAgB;EAE3C,MAAM,eAAe,MAAM,cAAc;EACzC,MAAM,OAAO,MAAM;GAAC;GAAQ;GAAS;GAAW;GAAS,GAAG,CAAC,QAAQ,SAAS;EAC9E,IAAI,QAAQ,mBAAmB,CAAC,QAAQ,QACtC,KAAK,KAAK,UAAU,UAAU,SAAS,WAAW;EAEpD,MAAM,YAAY,QAAQ,OAAO,KAAK,KAAK,QAAQ,GAAG,IAAI,OAAO,CAAC,KAAK,IAAI,GAAG,KAAK,KAAK,KAAK;EAC7F,IAAI,gBACF,KAAK,IAAI,UAAU,QAAQ;OAE3B,KAAK,YAAY,aAAa,GAAG,UAAU,KAAK;EAElD,QAAQ;EACR,IAAI,cAAc;GAChB,KAAK,gBAAgB;GACrB,QAAQ;GACR,IAAI,YAAY;IACd,KACE,WAAW,QAAQ,IAAI,YAAY,CAAC,KAAK,KAAK,CAAC;GAE/C,GACD;IACD,SAAS;;;EAGb,IAAI,IAAI,WAAW,QAAQ;GACzB,UAAU,IAAI,YAAY,aAAa,QAAQ;GAC/C,IAAI,IAAI,WAAW,UAAU,IAAI,QAAQ,GACvC,SAAS;;EAGb,IAAI,IAAI,WAAW,QAAQ;GACzB,UAAU,IAAI,YAAY,aAAa,QAAQ;GAC/C,IAAI,IAAI,QAAQ,GACd,SAAS;;EAGb,IAAI,IAAI,WAAW,IAAI,QAAQ,QAAQ;GACrC,SAAS;GACT,UAAU,IAAI,SAAS,UAAU,QAAQ;GACzC,SAAS;;EAEX,IAAI,IAAI,QAAQ,GAAG;GACjB,KAAK,OAAO;GACZ,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,OAAO,KAC7B,KAAK,GAAG,IAAI,IAAI,OAAO,GAAG,OAAO,IAAI;;EAGzC,IAAI,IAAI,WAAW,UAAU,IAAI,WAAW,UAAU,IAAI,OAAO;GAC/D,KAAK;GACN,EAAc;GACb,SAAS;;EAEX,IAAI,CAAC,KACH,KAAK,UAAU;EAEjB,IAAI,IAAI,aACN,QAAQ,IAAI,aAAa,QAAQ;OAEjC,KAAK,OAAO;EAEd,IAAI,cAAc;GAChB,UAAU;GACV,KAAK,IAAI;;EAEX,UAAU;EACV,KAAK,IAAI;EACT,OAAO;GACL;GACA,MAAM,QAAQ;GACd,UAAU,iBAAiB,gBAAgB,OAAO;GAClD,KAAK,QAAQ,MAAM,QAAQ,IAAI,QAAQ,GAAG,KAAK;GAChD;;CAEH,SAAS,oBAAoB,KAAK,SAAS;EACzC,MAAM,EACJ,KACA,mBACA,MACA,SACA,mBACA,mBACA,yBACE;EACJ,MAAM,aAAa,MAAM,WAAW,KAAK,UAAU,kBAAkB,CAAC,KAAK;EAC3E,MAAM,UAAU,MAAM,KAAK,IAAI,QAAQ;EACvC,IAAI,QAAQ,SAAS,GACnB,IAAI,mBACF,KACE,WAAW,QAAQ,IAAI,YAAY,CAAC,KAAK,KAAK,CAAC,OAAO,WAAW;GAEjE,GACD;OACI;GACL,KAAK,gBAAgB,WAAW;GACnC,GAAa;GACV,IAAI,IAAI,OAAO,QAQb,KAAK,WAPiB;IACpB;IACA;IACA;IACA;IACA;IACD,CAAC,QAAQ,WAAW,QAAQ,SAAS,OAAO,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,KACxC,CAAC;GACnC,GAAa;;EAId,IAAI,IAAI,cAAc,IAAI,WAAW,QACnC,KACE,WAAW,IAAI,WAAW,IAAI,YAAY,CAAC,KAAK,KAAK,CAAC,gBAAgB,qBAAqB;GAE3F,GACD;EAEH,UAAU,IAAI,QAAQ,QAAQ;EAC9B,SAAS;EACT,KAAK,UAAU;;CAEjB,SAAS,kBAAkB,KAAK,SAAS,YAAY,QAAQ;EAC3D,MAAM,EACJ,MACA,SACA,iBACA,mBACA,yBACE;EACJ,IAAI,IAAI,QAAQ,MAAM;GACpB,MAAM,UAAU,MAAM,KAAK,IAAI,QAAQ;GACvC,IAAI,iBAAiB;IACnB,KACE,YAAY,QAAQ,KAAK,MAAM,cAAc,GAAG,CAAC,KAAK,KAAK,CAAC,UAAU,KAAK,UAAU,kBAAkB,CAAC;GAExG,GACD;IACD,KACE;;QAEA,QAAQ,KAAK,MAAM,IAAI,cAAc,GAAG,KAAK,cAAc,KAAK,CAAC,KAAK,KAAK,CAAC;GAE5E,GACD;UAED,KACE,YAAY,QAAQ,KAAK,MAAM,GAAG,cAAc,GAAG,OAAO,cAAc,KAAK,CAAC,KAAK,KAAK,CAAC,UAAU,KAAK,UAAU,kBAAkB,CAAC;GAErI,GACD;;EAGL,IAAI,IAAI,cAAc,IAAI,WAAW,QACnC,KACE,YAAY,IAAI,WAAW,KAAK,MAAM,GAAG,cAAc,GAAG,OAAO,cAAc,KAAK,CAAC,KAAK,KAAK,CAAC,WAAW,qBAAqB;GAEhI,GACD;EAEH,IAAI,IAAI,QAAQ,QAAQ;GACtB,WAAW,IAAI,SAAS,QAAQ;GAChC,SAAS;;EAEX,UAAU,IAAI,QAAQ,QAAQ;EAC9B,SAAS;EACT,IAAI,CAAC,QACH,KAAK,UAAU;;CAGnB,SAAS,UAAU,QAAQ,MAAM,EAAE,QAAQ,MAAM,SAAS,QAAQ;EAChE,MAAM,WAAW,OACf,SAAS,WAAW,iBAAiB,SAAS,cAAc,oBAAoB,kBACjF;EACD,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;GACtC,IAAI,KAAK,OAAO;GAChB,MAAM,qBAAqB,GAAG,SAAS,SAAS;GAChD,IAAI,oBACF,KAAK,GAAG,MAAM,GAAG,GAAG;GAEtB,KACE,SAAS,eAAe,IAAI,KAAK,CAAC,KAAK,SAAS,GAAG,KAAK,UAAU,GAAG,GAAG,qBAAqB,WAAW,GAAG,GAAG,OAAO,MAAM,KAC5H;GACD,IAAI,IAAI,OAAO,SAAS,GACtB,SAAS;;;CAIf,SAAS,UAAU,QAAQ,SAAS;EAClC,IAAI,CAAC,OAAO,QACV;EAEF,QAAQ,OAAO;EACf,MAAM,EAAE,MAAM,YAAY;EAC1B,SAAS;EACT,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;GACtC,MAAM,MAAM,OAAO;GACnB,IAAI,KAAK;IACP,KAAK,kBAAkB,IAAI,EAAE,KAAK;IAClC,QAAQ,KAAK,QAAQ;IACrB,SAAS;;;EAGb,QAAQ,OAAO;;CAEjB,SAAS,WAAW,gBAAgB,SAAS;EAC3C,IAAI,CAAC,eAAe,QAClB;EAEF,eAAe,SAAS,YAAY;GAClC,QAAQ,KAAK,UAAU;GACvB,QAAQ,QAAQ,KAAK,QAAQ;GAC7B,QAAQ,KAAK,UAAU,QAAQ,KAAK,GAAG;GACvC,QAAQ,SAAS;IACjB;;CAEJ,SAAS,OAAO,GAAG;EACjB,OAAO,OAAO,SAAS,EAAE,IAAI,EAAE,SAAS,KAAK,EAAE,SAAS,KAAK,EAAE,SAAS,KAAK,EAAE,SAAS;;CAE1F,SAAS,mBAAmB,OAAO,SAAS;EAC1C,MAAM,aAAa,MAAM,SAAS,KAAK,MAAM,MAAM,MAAM,OAAO,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;EACzF,QAAQ,KAAK,IAAI;EACjB,cAAc,QAAQ,QAAQ;EAC9B,YAAY,OAAO,SAAS,WAAW;EACvC,cAAc,QAAQ,UAAU;EAChC,QAAQ,KAAK,IAAI;;CAEnB,SAAS,YAAY,OAAO,SAAS,aAAa,OAAO,QAAQ,MAAM;EACrE,MAAM,EAAE,MAAM,YAAY;EAC1B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACrC,MAAM,OAAO,MAAM;GACnB,IAAI,OAAO,SAAS,KAAK,EACvB,KAAK,MAAM,GAAiB;QACvB,IAAI,OAAO,QAAQ,KAAK,EAC7B,mBAAmB,MAAM,QAAQ;QAEjC,QAAQ,MAAM,QAAQ;GAExB,IAAI,IAAI,MAAM,SAAS,GACrB,IAAI,YAAY;IACd,SAAS,KAAK,IAAI;IAClB,SAAS;UAET,SAAS,KAAK,KAAK;;;CAK3B,SAAS,QAAQ,MAAM,SAAS;EAC9B,IAAI,OAAO,SAAS,KAAK,EAAE;GACzB,QAAQ,KAAK,MAAM,GAAiB;GACpC;;EAEF,IAAI,OAAO,SAAS,KAAK,EAAE;GACzB,QAAQ,KAAK,QAAQ,OAAO,KAAK,CAAC;GAClC;;EAEF,QAAQ,KAAK,MAAb;GACE,KAAK;GACL,KAAK;GACL,KAAK;IACH,QAAQ,KAAK,aAAa,QAAQ;IAClC;GACF,KAAK;IACH,QAAQ,MAAM,QAAQ;IACtB;GACF,KAAK;IACH,cAAc,MAAM,QAAQ;IAC5B;GACF,KAAK;IACH,iBAAiB,MAAM,QAAQ;IAC/B;GACF,KAAK;IACH,QAAQ,KAAK,aAAa,QAAQ;IAClC;GACF,KAAK;IACH,sBAAsB,MAAM,QAAQ;IACpC;GACF,KAAK;IACH,WAAW,MAAM,QAAQ;IACzB;GACF,KAAK;IACH,aAAa,MAAM,QAAQ;IAC3B;GACF,KAAK;IACH,kBAAkB,MAAM,QAAQ;IAChC;GACF,KAAK;IACH,oBAAoB,MAAM,QAAQ;IAClC;GACF,KAAK;IACH,mBAAmB,MAAM,QAAQ;IACjC;GACF,KAAK;IACH,sBAAsB,MAAM,QAAQ;IACpC;GACF,KAAK;IACH,yBAAyB,MAAM,QAAQ;IACvC;GACF,KAAK;IACH,mBAAmB,MAAM,QAAQ;IACjC;GACF,KAAK;IACH,YAAY,KAAK,MAAM,SAAS,MAAM,MAAM;IAC5C;GAEF,KAAK;IACH,mBAAmB,MAAM,QAAQ;IACjC;GACF,KAAK;IACH,eAAe,MAAM,QAAQ;IAC7B;GACF,KAAK;IACH,wBAAwB,MAAM,QAAQ;IACtC;GACF,KAAK;IACH,sBAAsB,MAAM,QAAQ;IACpC;GACF,KAAK;IACH,mBAAmB,MAAM,QAAQ;IACjC;;;CAGN,SAAS,QAAQ,MAAM,SAAS;EAC9B,QAAQ,KAAK,KAAK,UAAU,KAAK,QAAQ,EAAE,IAAkB,KAAK;;CAEpE,SAAS,cAAc,MAAM,SAAS;EACpC,MAAM,EAAE,SAAS,aAAa;EAC9B,QAAQ,KACN,WAAW,KAAK,UAAU,QAAQ,GAAG,SACrC,IACA,KACD;;CAEH,SAAS,iBAAiB,MAAM,SAAS;EACvC,MAAM,EAAE,MAAM,QAAQ,SAAS;EAC/B,IAAI,MAAM,KAAK,gBAAgB;EAC/B,KAAK,GAAG,OAAO,kBAAkB,CAAC,GAAG;EACrC,QAAQ,KAAK,SAAS,QAAQ;EAC9B,KAAK,IAAI;;CAEX,SAAS,sBAAsB,MAAM,SAAS;EAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,KAAK;GAC7C,MAAM,QAAQ,KAAK,SAAS;GAC5B,IAAI,OAAO,SAAS,MAAM,EACxB,QAAQ,KAAK,OAAO,GAAiB;QAErC,QAAQ,OAAO,QAAQ;;;CAI7B,SAAS,2BAA2B,MAAM,SAAS;EACjD,MAAM,EAAE,SAAS;EACjB,IAAI,KAAK,SAAS,GAAG;GACnB,KAAK,IAAI;GACT,sBAAsB,MAAM,QAAQ;GACpC,KAAK,IAAI;SACJ,IAAI,KAAK,UAEd,KADa,mBAAmB,KAAK,QAAQ,GAAG,KAAK,UAAU,KAAK,UAAU,KAAK,QAAQ,EAChF,IAAe,KAAK;OAE/B,KAAK,IAAI,KAAK,QAAQ,IAAI,IAAkB,KAAK;;CAGrD,SAAS,WAAW,MAAM,SAAS;EACjC,MAAM,EAAE,MAAM,QAAQ,SAAS;EAC/B,IAAI,MACF,KAAK,gBAAgB;EAEvB,KACE,GAAG,OAAO,eAAe,CAAC,GAAG,KAAK,UAAU,KAAK,QAAQ,CAAC,IAC1D,IACA,KACD;;CAEH,SAAS,aAAa,MAAM,SAAS;EACnC,MAAM,EAAE,MAAM,QAAQ,SAAS;EAC/B,MAAM,EACJ,KACA,OACA,UACA,WACA,cACA,YACA,SACA,iBACA,gBACE;EACJ,IAAI;EACJ,IAAI,WAEA,kBAAkB,OAAO,UAAU;EAGvC,IAAI,YACF,KAAK,OAAO,gBAAgB,GAAG,IAAI;EAErC,IAAI,SACF,KAAK,IAAI,OAAO,WAAW,CAAC,GAAG,kBAAkB,SAAS,GAAG,KAAK;EAEpE,IAAI,MACF,KAAK,gBAAgB;EAGvB,KAAK,OADc,UAAU,oBAAoB,QAAQ,OAAO,YAAY,GAAG,eAAe,QAAQ,OAAO,YAAY,CAClG,GAAG,KAAK,IAAe,KAAK;EACnD,YACE,gBAAgB;GAAC;GAAK;GAAO;GAAU;GAAiB;GAAa,CAAC,EACtE,QACD;EACD,KAAK,IAAI;EACT,IAAI,SACF,KAAK,IAAI;EAEX,IAAI,YAAY;GACd,KAAK,KAAK;GACV,QAAQ,YAAY,QAAQ;GAC5B,KAAK,IAAI;;;CAGb,SAAS,gBAAgB,MAAM;EAC7B,IAAI,IAAI,KAAK;EACb,OAAO,KACL,IAAI,KAAK,MAAM,MAAM;EAEvB,OAAO,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK,QAAQ,OAAO,OAAO;;CAEzD,SAAS,kBAAkB,MAAM,SAAS;EACxC,MAAM,EAAE,MAAM,QAAQ,SAAS;EAC/B,MAAM,SAAS,OAAO,SAAS,KAAK,OAAO,GAAG,KAAK,SAAS,OAAO,KAAK,OAAO;EAC/E,IAAI,MACF,KAAK,gBAAgB;EAEvB,KAAK,SAAS,KAAK,IAAe,KAAK;EACvC,YAAY,KAAK,WAAW,QAAQ;EACpC,KAAK,IAAI;;CAEX,SAAS,oBAAoB,MAAM,SAAS;EAC1C,MAAM,EAAE,MAAM,QAAQ,UAAU,YAAY;EAC5C,MAAM,EAAE,eAAe;EACvB,IAAI,CAAC,WAAW,QAAQ;GACtB,KAAK,MAAM,IAAe,KAAK;GAC/B;;EAEF,MAAM,aAAa,WAAW,SAAS,KAAK,WAAW,MAAM,MAAM,EAAE,MAAM,SAAS,EAAE;EACtF,KAAK,aAAa,MAAM,KAAK;EAC7B,cAAc,QAAQ;EACtB,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;GAC1C,MAAM,EAAE,KAAK,UAAU,WAAW;GAClC,2BAA2B,KAAK,QAAQ;GACxC,KAAK,KAAK;GACV,QAAQ,OAAO,QAAQ;GACvB,IAAI,IAAI,WAAW,SAAS,GAAG;IAC7B,KAAK,IAAI;IACT,SAAS;;;EAGb,cAAc,UAAU;EACxB,KAAK,aAAa,MAAM,KAAK;;CAE/B,SAAS,mBAAmB,MAAM,SAAS;EACzC,mBAAmB,KAAK,UAAU,QAAQ;;CAE5C,SAAS,sBAAsB,MAAM,SAAS;EAC5C,MAAM,EAAE,MAAM,QAAQ,aAAa;EACnC,MAAM,EAAE,QAAQ,SAAS,MAAM,SAAS,WAAW;EACnD,IAAI,QACF,KAAK,IAAI,cAAc,UAAU,GAAG;EAEtC,KAAK,KAAK,IAAe,KAAK;EAC9B,IAAI,OAAO,QAAQ,OAAO,EACxB,YAAY,QAAQ,QAAQ;OACvB,IAAI,QACT,QAAQ,QAAQ,QAAQ;EAE1B,KAAK,QAAQ;EACb,IAAI,WAAW,MAAM;GACnB,KAAK,IAAI;GACT,QAAQ;;EAEV,IAAI,SAAS;GACX,IAAI,SACF,KAAK,UAAU;GAEjB,IAAI,OAAO,QAAQ,QAAQ,EACzB,mBAAmB,SAAS,QAAQ;QAEpC,QAAQ,SAAS,QAAQ;SAEtB,IAAI,MACT,QAAQ,MAAM,QAAQ;EAExB,IAAI,WAAW,MAAM;GACnB,UAAU;GACV,KAAK,IAAI;;EAEX,IAAI,QAAQ;GACV,IAAI,KAAK,iBACP,KAAK,oBAAoB;GAE3B,KAAK,IAAI;;;CAGb,SAAS,yBAAyB,MAAM,SAAS;EAC/C,MAAM,EAAE,MAAM,YAAY,WAAW,SAAS,gBAAgB;EAC9D,MAAM,EAAE,MAAM,QAAQ,UAAU,YAAY;EAC5C,IAAI,KAAK,SAAS,GAAG;GACnB,MAAM,cAAc,CAAC,mBAAmB,KAAK,QAAQ;GACrD,eAAe,KAAK,IAAI;GACxB,cAAc,MAAM,QAAQ;GAC5B,eAAe,KAAK,IAAI;SACnB;GACL,KAAK,IAAI;GACT,QAAQ,MAAM,QAAQ;GACtB,KAAK,IAAI;;EAEX,eAAe,QAAQ;EACvB,QAAQ;EACR,eAAe,KAAK,IAAI;EACxB,KAAK,KAAK;EACV,QAAQ,YAAY,QAAQ;EAC5B,QAAQ;EACR,eAAe,SAAS;EACxB,eAAe,KAAK,IAAI;EACxB,KAAK,KAAK;EACV,MAAM,WAAW,UAAU,SAAS;EACpC,IAAI,CAAC,UACH,QAAQ;EAEV,QAAQ,WAAW,QAAQ;EAC3B,IAAI,CAAC,UACH,QAAQ;EAEV,eAAe,SACb,KAED;;CAEH,SAAS,mBAAmB,MAAM,SAAS;EACzC,MAAM,EAAE,MAAM,QAAQ,QAAQ,UAAU,YAAY;EACpD,MAAM,EAAE,mBAAmB,oBAAoB;EAC/C,IAAI,iBACF,KAAK,QAAQ;EAEf,KAAK,UAAU,KAAK,MAAM,QAAQ;EAClC,IAAI,mBAAmB;GACrB,QAAQ;GACR,KAAK,GAAG,OAAO,mBAAmB,CAAC,KAAK;GACxC,IAAI,KAAK,SAAS,KAAK,SAAS;GAChC,KAAK,KAAK;GACV,SAAS;GACT,KAAK,IAAI;;EAEX,KAAK,UAAU,KAAK,MAAM,MAAM;EAChC,QAAQ,KAAK,OAAO,QAAQ;EAC5B,IAAI,mBAAmB;GACrB,KAAK,kBAAkB,KAAK,MAAM,GAAG;GACrC,SAAS;GACT,KAAK,GAAG,OAAO,mBAAmB,CAAC,MAAM;GACzC,SAAS;GACT,KAAK,UAAU,KAAK,MAAM,GAAG;GAC7B,UAAU;;EAEZ,KAAK,IAAI;EACT,IAAI,iBACF,KAAK,KAAK;;CAGd,SAAS,mBAAmB,MAAM,SAAS;EACzC,MAAM,EAAE,MAAM,QAAQ,aAAa;EACnC,KAAK,IAAI;EACT,MAAM,IAAI,KAAK,SAAS;EACxB,MAAM,aAAa,IAAI;EACvB,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK;GAC1B,MAAM,IAAI,KAAK,SAAS;GACxB,IAAI,OAAO,SAAS,EAAE,EACpB,KAAK,EAAE,QAAQ,cAAc,OAAO,EAAE,GAAiB;QAClD;IACL,KAAK,KAAK;IACV,IAAI,YAAY,QAAQ;IACxB,QAAQ,GAAG,QAAQ;IACnB,IAAI,YAAY,UAAU;IAC1B,KAAK,IAAI;;;EAGb,KAAK,IAAI;;CAEX,SAAS,eAAe,MAAM,SAAS;EACrC,MAAM,EAAE,MAAM,QAAQ,aAAa;EACnC,MAAM,EAAE,MAAM,YAAY,cAAc;EACxC,KAAK,OAAO;EACZ,QAAQ,MAAM,QAAQ;EACtB,KAAK,MAAM;EACX,QAAQ;EACR,QAAQ,YAAY,QAAQ;EAC5B,UAAU;EACV,KAAK,IAAI;EACT,IAAI,WAAW;GACb,KAAK,SAAS;GACd,IAAI,UAAU,SAAS,IACrB,eAAe,WAAW,QAAQ;QAC7B;IACL,KAAK,IAAI;IACT,QAAQ;IACR,QAAQ,WAAW,QAAQ;IAC3B,UAAU;IACV,KAAK,IAAI;;;;CAIf,SAAS,wBAAwB,MAAM,SAAS;EAC9C,QAAQ,KAAK,MAAM,QAAQ;EAC3B,QAAQ,KAAK,MAAM;EACnB,QAAQ,KAAK,OAAO,QAAQ;;CAE9B,SAAS,sBAAsB,MAAM,SAAS;EAC5C,QAAQ,KAAK,IAAI;EACjB,YAAY,KAAK,aAAa,QAAQ;EACtC,QAAQ,KAAK,IAAI;;CAEnB,SAAS,mBAAmB,EAAE,WAAW,SAAS;EAChD,QAAQ,KAAK,UAAU;EACvB,IAAI,OAAO,QAAQ,QAAQ,EACzB,mBAAmB,SAAS,QAAQ;OAEpC,QAAQ,SAAS,QAAQ;;CAI7B,MAAM,uBAAuC,uBAAO,QAAQ,uBAAuB;CACnF,MAAM,uBAAuB,MAAM,YAAY;EAC7C,IAAI,KAAK,SAAS,GAChB,KAAK,UAAU,kBACb,KAAK,SACL,QACD;OACI,IAAI,KAAK,SAAS,GAAG;GAC1B,MAAM,OAAO,QAAQ,MAAM,OAAO;GAClC,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;IAC1C,MAAM,MAAM,KAAK,MAAM;IACvB,IAAI,IAAI,SAAS,KAAK,IAAI,SAAS,OAAO;KACxC,MAAM,MAAM,IAAI;KAChB,MAAM,MAAM,IAAI;KAChB,IAAI,OAAO,IAAI,SAAS,KAAK,EAAE,IAAI,SAAS,QAAQ,QACpD,EAAE,QAAQ,QAAQ,mBAAmB,IAAI,KAAK,IAAI,OAAO,IAAI,SAAS,KAAK,IAAI,YAAY,QACzF,IAAI,MAAM,kBACR,KACA,SAEA,IAAI,SAAS,OACd;KAEH,IAAI,OAAO,IAAI,SAAS,KAAK,CAAC,IAAI,UAChC,IAAI,MAAM,kBAAkB,KAAK,QAAQ;;;;;CAMnD,SAAS,kBAAkB,MAAM,SAAS,WAAW,OAAO,kBAAkB,OAAO,YAAY,OAAO,OAAO,QAAQ,YAAY,EAAE;EACnI,IAAI,CAAC,QAAQ,qBAAqB,CAAC,KAAK,QAAQ,MAAM,EACpD,OAAO;EAET,MAAM,EAAE,QAAQ,oBAAoB;EACpC,MAAM,qBAAqB,KAAK,QAAQ,OAAO;GAC7C,MAAM,OAAO,OAAO,OAAO,iBAAiB,IAAI,IAAI,gBAAgB;GACpE,IAAI,QAAQ;IACV,MAAM,mBAAmB,UAAU,OAAO,SAAS,0BAA0B,OAAO,SAAS;IAC7F,MAAM,cAAc,UAAU,OAAO,SAAS,sBAAsB,OAAO,aAAa;IACxF,MAAM,0BAA0B,UAAU,0BAA0B,QAAQ,YAAY;IACxF,MAAM,kBAAkB,UAAU,kBAAkB,YAAY;IAChE,MAAM,iBAAiB,SAAS;KAC9B,MAAM,UAAU,GAAG,QAAQ,aAAa,MAAM,CAAC,GAAG,KAAK;KACvD,OAAO,kBAAkB,IAAI,QAAQ,KAAK;;IAE5C,IAAI,QAAQ,KAAK,IAAI,SAAS,0BAA0B,UAAU,MAChE,OAAO;SACF,IAAI,SAAS,aAClB,OAAO,GAAG,IAAI;SACT,IAAI,SAAS,mBAClB,OAAO,oBAAoB,eAAe,0BAA0B,GAAG,IAAI,UAAU,cAAc,IAAI;SAClG,IAAI,SAAS,aAClB,IAAI,kBAAkB;KACpB,MAAM,EAAE,OAAO,MAAM,aAAa;KAElC,MAAM,aAAa,oBACjB,kBACE,uBAHS,OAAO,MAAM,KAAK,QAAQ,GAAG,KAAK,MAAM,EAGtB,EAAE,MAAM,EACnC,SACA,OACA,OACA,SACD,CACF;KACD,OAAO,GAAG,QAAQ,aAAa,OAAO,CAAC,GAAG,IAAI,GAAG,QAAQ,OAAO;IACtE,GAAG,KAAK,IAAI,SAAS,SAAS,GAAG,WAAW,KAAK;WACtC,IAAI,aAAa;KACtB,GAAG,QAAQ,OAAO;KAClB,GAAG,MAAM,OAAO;KAChB,MAAM,EAAE,QAAQ,UAAU,aAAa;KACvC,MAAM,SAAS,WAAW,WAAW;KACrC,MAAM,UAAU,WAAW,KAAK;KAChC,OAAO,GAAG,QAAQ,aAAa,OAAO,CAAC,GAAG,IAAI,GAAG,QAAQ,OAAO;IACtE,GAAG,KAAK,SAAS,IAAI,QAAQ,QAAQ,KAAK,SAAS,MAAM;WAC9C,IAAI,yBACT,OAAO;SAEP,OAAO,cAAc,IAAI;SAEtB,IAAI,SAAS,SAClB,OAAO,OAAO,kBAAkB,IAAI;SAC/B,IAAI,SAAS,iBAClB,OAAO,OAAO,kBAAkB,gBAAgB,eAAe,KAAK;UAGtE,IAAI,QAAQ,KAAK,WAAW,QAAQ,IAAI,SAAS,iBAC/C,OAAO,UAAU;QACZ,IAAI,SAAS,iBAClB,OAAO,WAAW,gBAAgB,eAAe,KAAK;QACjD,IAAI,MACT,OAAO,IAAI,KAAK,GAAG;GAGvB,OAAO,QAAQ;;EAEjB,MAAM,SAAS,KAAK;EACpB,IAAI,MAAM,KAAK;EACf,IAAI,QAAQ,OACV,OAAO;EAET,IAAI,QAAQ,QAAQ,CAAC,OAAO,mBAAmB,OAAO,EAAE;GACtD,MAAM,sBAAsB,QAAQ,YAAY;GAChD,MAAM,kBAAkB,OAAO,kBAAkB,OAAO;GACxD,MAAM,YAAY,qBAAqB,OAAO;GAC9C,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,mBAAmB,gBAAgB,UAAU;IACpG,IAAI,QAAQ,gBAAgB,QAAQ,EAClC,KAAK,YAAY;IAEnB,KAAK,UAAU,kBAAkB,OAAO;UACnC,IAAI,CAAC,qBACV,IAAI,WACF,KAAK,YAAY;QAEjB,KAAK,YAAY;GAGrB,OAAO;;EAET,IAAI,CAAC,KAAK;GACR,MAAM,SAAS,kBAAkB,IAAI,OAAO,KAAK,IAAI,OAAO,GAAG,WAAW,SAAS;GACnF,IAAI;IACF,MAAMA,SAAO,gBAAgB,QAAQ;KACnC,YAAY;KACZ,SAAS,QAAQ;KAClB,CAAC;YACK,GAAG;IACV,QAAQ,QACN,oBACE,IACA,KAAK,KACL,KAAK,GACL,EAAE,QACH,CACF;IACD,OAAO;;;EAGX,MAAM,MAAM,EAAE;EACd,MAAM,cAAc,EAAE;EACtB,MAAM,WAAW,OAAO,OAAO,QAAQ,YAAY;EACnD,gBACE,MACC,OAAO,QAAQ,GAAG,cAAc,YAAY;GAC3C,IAAI,oBAAoB,OAAO,OAAO,EACpC;GAEF,IAAI,MAAM,KAAK,WAAW,WAAW,EACnC;GAEF,MAAM,aAAa,gBAAgB,UAAU,MAAM;GACnD,IAAI,cAAc,CAAC,SAAS;IAC1B,IAAI,iBAAiB,OAAO,IAAI,OAAO,WACrC,MAAM,SAAS,GAAG,MAAM,KAAK;IAE/B,MAAM,OAAO,kBAAkB,MAAM,MAAM,QAAQ,MAAM;IACzD,IAAI,KAAK,MAAM;UACV;IACL,IAAI,EAAE,cAAc,aAAa,CAAC,UAAU,OAAO,SAAS,oBAAoB,OAAO,SAAS,mBAAmB,OAAO,SAAS,qBACjI,MAAM,aAAa;IAErB,IAAI,KAAK,MAAM;;KAGnB,MAEA,aACA,SACD;EACD,MAAM,WAAW,EAAE;EACnB,IAAI,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM;EACrC,IAAI,SAAS,IAAI,MAAM;GACrB,MAAM,QAAQ,GAAG,QAAQ;GACzB,MAAM,MAAM,GAAG,MAAM;GACrB,MAAM,OAAO,IAAI,IAAI;GACrB,MAAM,cAAc,OAAO,MAAM,OAAO,KAAK,MAAM,IAAI,GAAG,MAAM;GAChE,IAAI,YAAY,UAAU,GAAG,QAC3B,SAAS,KAAK,eAAe,GAAG,UAAU,IAAI;GAEhD,MAAM,SAAS,OAAO,MAAM,OAAO,IAAI;GACvC,SAAS,KACP,uBACE,GAAG,MACH,OACA;IACE,OAAO,yBAAyB,KAAK,IAAI,OAAO,QAAQ,MAAM;IAC9D,KAAK,yBAAyB,KAAK,IAAI,OAAO,QAAQ,IAAI;IAC1D;IACD,EACD,GAAG,aAAa,IAAI,EACrB,CACF;GACD,IAAI,MAAM,IAAI,SAAS,KAAK,MAAM,OAAO,QACvC,SAAS,KAAK,OAAO,MAAM,IAAI,CAAC;IAElC;EACF,IAAI;EACJ,IAAI,SAAS,QAAQ;GACnB,MAAM,yBAAyB,UAAU,KAAK,IAAI;GAClD,IAAI,MAAM;SACL;GACL,MAAM;GACN,IAAI,YAAY;;EAElB,IAAI,cAAc,OAAO,KAAK,SAAS;EACvC,OAAO;;CAET,SAAS,UAAU,IAAI;EACrB,IAAI,OAAO,kBAAkB,GAAG,KAAK,EACnC,OAAO;EAET,IAAI,GAAG,SAAS,WACd,OAAO;EAET,OAAO;;CAET,SAAS,oBAAoB,KAAK;EAChC,IAAI,OAAO,SAAS,IAAI,EACtB,OAAO;OACF,IAAI,IAAI,SAAS,GACtB,OAAO,IAAI;OAEX,OAAO,IAAI,SAAS,IAAI,oBAAoB,CAAC,KAAK,GAAG;;CAGzD,SAAS,QAAQ,MAAM;EACrB,OAAO,SAAS,iBAAiB,SAAS;;CAG5C,MAAM,cAAc,mCAClB,0BACC,MAAM,KAAK,YAAY;EACtB,OAAO,UAAU,MAAM,KAAK,UAAU,QAAQ,QAAQ,WAAW;GAC/D,MAAM,WAAW,QAAQ,OAAO;GAChC,IAAI,IAAI,SAAS,QAAQ,OAAO;GAChC,IAAI,MAAM;GACV,OAAO,OAAO,GAAG;IACf,MAAM,UAAU,SAAS;IACzB,IAAI,WAAW,QAAQ,SAAS,GAC9B,OAAO,QAAQ,SAAS;;GAG5B,aAAa;IACX,IAAI,QACF,OAAO,cAAc,2BACnB,QACA,KACA,QACD;SACI;KACL,MAAM,kBAAkB,mBAAmB,OAAO,YAAY;KAC9D,gBAAgB,YAAY,2BAC1B,QACA,MAAM,OAAO,SAAS,SAAS,GAC/B,QACD;;;IAGL;GAEL;CACD,SAAS,UAAU,MAAM,KAAK,SAAS,gBAAgB;EACrD,IAAI,IAAI,SAAS,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,MAAM,GAAG;GAChE,MAAM,MAAM,IAAI,MAAM,IAAI,IAAI,MAAM,KAAK;GACzC,QAAQ,QACN,oBAAoB,IAAI,IAAI,IAAI,CACjC;GACD,IAAI,MAAM,uBAAuB,QAAQ,OAAO,IAAI;;EAEtD,IAAI,QAAQ,qBAAqB,IAAI,KACnC,IAAI,MAAM,kBAAkB,IAAI,KAAK,QAAQ;EAE/C,IAAI,IAAI,SAAS,MAAM;GACrB,MAAM,SAAS,eAAe,MAAM,IAAI;GACxC,MAAM,SAAS;IACb,MAAM;IACN,KAAK,SAAS,KAAK,IAAI;IACvB,UAAU,CAAC,OAAO;IACnB;GACD,QAAQ,YAAY,OAAO;GAC3B,IAAI,gBACF,OAAO,eAAe,QAAQ,QAAQ,KAAK;SAExC;GACL,MAAM,WAAW,QAAQ,OAAO;GAChC,IAAI,IAAI,SAAS,QAAQ,KAAK;GAC9B,OAAO,OAAO,IAAI;IAChB,MAAM,UAAU,SAAS;IACzB,IAAI,WAAW,sBAAsB,QAAQ,EAAE;KAC7C,QAAQ,WAAW,QAAQ;KAC3B;;IAEF,IAAI,WAAW,QAAQ,SAAS,GAAG;KACjC,KAAK,IAAI,SAAS,aAAa,IAAI,SAAS,WAAW,QAAQ,SAAS,QAAQ,SAAS,SAAS,GAAG,cAAc,KAAK,GACtH,QAAQ,QACN,oBAAoB,IAAI,KAAK,IAAI,CAClC;KAEH,QAAQ,YAAY;KACpB,MAAM,SAAS,eAAe,MAAM,IAAI;KACxC;MACE,MAAM,MAAM,OAAO;MACnB,IAAI,KACF,QAAQ,SAAS,SAAS,EAAE,cAAc;OACxC,IAAI,UAAU,SAAS,IAAI,EACzB,QAAQ,QACN,oBACE,IACA,OAAO,QAAQ,IAChB,CACF;QAEH;;KAGN,QAAQ,SAAS,KAAK,OAAO;KAC7B,MAAM,SAAS,kBAAkB,eAAe,SAAS,QAAQ,MAAM;KACvE,aAAa,QAAQ,QAAQ;KAC7B,IAAI,QAAQ,QAAQ;KACpB,QAAQ,cAAc;WAEtB,QAAQ,QACN,oBAAoB,IAAI,KAAK,IAAI,CAClC;IAEH;;;;CAIN,SAAS,eAAe,MAAM,KAAK;EACjC,MAAM,eAAe,KAAK,YAAY;EACtC,OAAO;GACL,MAAM;GACN,KAAK,KAAK;GACV,WAAW,IAAI,SAAS,SAAS,KAAK,IAAI,IAAI;GAC9C,UAAU,gBAAgB,CAAC,QAAQ,MAAM,MAAM,GAAG,KAAK,WAAW,CAAC,KAAK;GACxE,SAAS,SAAS,MAAM,MAAM;GAC9B;GACD;;CAEH,SAAS,2BAA2B,QAAQ,UAAU,SAAS;EAC7D,IAAI,OAAO,WACT,OAAO,4BACL,OAAO,WACP,0BAA0B,QAAQ,UAAU,QAAQ,EAGpD,qBAAqB,QAAQ,OAAO,eAAe,EAAE,CACnD,QACA,OACD,CAAC,CACH;OAED,OAAO,0BAA0B,QAAQ,UAAU,QAAQ;;CAG/D,SAAS,0BAA0B,QAAQ,UAAU,SAAS;EAC5D,MAAM,EAAE,WAAW;EACnB,MAAM,cAAc,qBAClB,OACA,uBACE,GAAG,YACH,OACA,SACA,EACD,CACF;EACD,MAAM,EAAE,aAAa;EACrB,MAAM,aAAa,SAAS;EAE5B,IAD4B,SAAS,WAAW,KAAK,WAAW,SAAS,GAEvE,IAAI,SAAS,WAAW,KAAK,WAAW,SAAS,IAAI;GACnD,MAAM,YAAY,WAAW;GAC7B,WAAW,WAAW,aAAa,QAAQ;GAC3C,OAAO;SAGP,OAAO,gBACL,SACA,OAAO,SAAS,EAChB,uBAAuB,CAAC,YAAY,CAAC,EACrC,UACA,IACA,KAAK,GACL,KAAK,GACL,MACA,OACA,OACA,OAAO,IACR;OAEE;GACL,MAAM,MAAM,WAAW;GACvB,MAAM,YAAY,mBAAmB,IAAI;GACzC,IAAI,UAAU,SAAS,IACrB,eAAe,WAAW,QAAQ;GAEpC,WAAW,WAAW,aAAa,QAAQ;GAC3C,OAAO;;;CAGX,SAAS,UAAU,GAAG,GAAG;EACvB,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MACrB,OAAO;EAET,IAAI,EAAE,SAAS;OACT,EAAE,MAAM,YAAY,EAAE,MAAM,SAC9B,OAAO;SAEJ;GACL,MAAM,MAAM,EAAE;GACd,MAAM,YAAY,EAAE;GACpB,IAAI,IAAI,SAAS,UAAU,MACzB,OAAO;GAET,IAAI,IAAI,SAAS,KAAK,IAAI,aAAa,UAAU,YAAY,IAAI,YAAY,UAAU,SACrF,OAAO;;EAGX,OAAO;;CAET,SAAS,mBAAmB,MAAM;EAChC,OAAO,MACL,IAAI,KAAK,SAAS,IAChB,IAAI,KAAK,UAAU,SAAS,IAC1B,OAAO,KAAK;OAEZ,OAAO;OAEJ,IAAI,KAAK,SAAS,IACvB,OAAO,KAAK;;CAKlB,MAAM,eAAe,mCACnB,QACC,MAAM,KAAK,YAAY;EACtB,MAAM,EAAE,QAAQ,iBAAiB;EACjC,OAAO,WAAW,MAAM,KAAK,UAAU,YAAY;GACjD,MAAM,YAAY,qBAAqB,OAAO,YAAY,EAAE,CAC1D,QAAQ,OACT,CAAC;GACF,MAAM,aAAa,eAAe,KAAK;GACvC,MAAM,OAAO,QAAQ,MAAM,OAAO;GAClC,MAAM,UAAU,SAAS,MAAM,OAAO,OAAO,KAAK;GAClD,MAAM,WAAW,WAAW,QAAQ,SAAS;GAC7C,IAAI,SAAS,YAAY,QAAQ,SAAS,IAAI,QAAQ,QAAQ,uBAAuB,QAAQ,MAAM,SAAS,KAAK,GAAG,KAAK,IAAI,QAAQ;GACrI,MAAM,cAAc,SAAS,qBAAqB,OAAO,OAAO,GAAG;GAEjE,IAAI,cAAc,MAChB,KAAK,MAAM,kBACT,KAAK,KACL,QACD;GAEH,KAAK,cAAc,SAAS,eAAe,UAAU;IACnD,SAAS,QAAQ,MAAM,YAAY,QAAQ,kBACzC,YAAY,OACZ,QACD;IACD,IAAI,MACF,QAAQ,mBAAmB,IAAI,KAAK;;GAI1C,MAAM,mBAAmB,QAAQ,OAAO,SAAS,KAAK,QAAQ,OAAO,YAAY;GACjF,MAAM,eAAe,mBAAmB,KAAK,UAAU,MAAM;GAC7D,QAAQ,cAAc,gBACpB,SACA,OAAO,SAAS,EAChB,KAAK,GACL,WACA,cACA,KAAK,GACL,KAAK,GACL,MACA,CAAC,kBACD,OACA,KAAK,IACN;GACD,aAAa;IACX,IAAI;IACJ,MAAM,EAAE,aAAa;IACrB,IAAI,YACF,KAAK,SAAS,MAAM,MAAM;KACxB,IAAI,EAAE,SAAS,GAAG;MAChB,MAAM,MAAM,SAAS,GAAG,MAAM;MAC9B,IAAI,KAAK;OACP,QAAQ,QACN,oBACE,IACA,IAAI,IACL,CACF;OACD,OAAO;;;MAGX;IAEJ,MAAM,sBAAsB,SAAS,WAAW,KAAK,SAAS,GAAG,SAAS;IAC1E,MAAM,aAAa,aAAa,KAAK,GAAG,OAAO,cAAc,KAAK,SAAS,WAAW,KAAK,aAAa,KAAK,SAAS,GAAG,GAAG,KAAK,SAAS,KAAK;IAC/I,IAAI,YAAY;KACd,aAAa,WAAW;KACxB,IAAI,cAAc,aAChB,WAAW,YAAY,aAAa,QAAQ;WAEzC,IAAI,qBACT,aAAa,gBACX,SACA,OAAO,SAAS,EAChB,cAAc,uBAAuB,CAAC,YAAY,CAAC,GAAG,KAAK,GAC3D,KAAK,UACL,IACA,KAAK,GACL,KAAK,GACL,MACA,KAAK,GACL,MACD;SACI;KACL,aAAa,SAAS,GAAG;KACzB,IAAI,cAAc,aAChB,WAAW,YAAY,aAAa,QAAQ;KAE9C,IAAI,WAAW,YAAY,CAAC,kBAC1B,IAAI,WAAW,SAAS;MACtB,aAAa,WAAW;MACxB,aACE,oBAAoB,QAAQ,OAAO,WAAW,YAAY,CAC3D;YAED,aACE,eAAe,QAAQ,OAAO,WAAW,YAAY,CACtD;KAGL,WAAW,UAAU,CAAC;KACtB,IAAI,WAAW,SAAS;MACtB,OAAO,WAAW;MAClB,OAAO,oBAAoB,QAAQ,OAAO,WAAW,YAAY,CAAC;YAElE,OAAO,eAAe,QAAQ,OAAO,WAAW,YAAY,CAAC;;IAGjE,IAAI,MAAM;KACR,MAAM,OAAO,yBACX,oBAAoB,QAAQ,aAAa,CACvC,uBAAuB,UAAU,CAClC,CAAC,CACH;KACD,KAAK,OAAO,qBAAqB;MAC/B,yBAAyB;OAAC;OAAmB,KAAK;OAAK;OAAI,CAAC;MAC5D,yBAAyB;OACvB;OACA,GAAG,SAAS,CAAC,wBAAwB,OAAO,GAAG,EAAE;OACjD,OAAO,QAAQ,aACb,aACD,CAAC;OACH,CAAC;MACF,yBAAyB,CAAC,kBAAkB,WAAW,CAAC;MACxD,uBAAuB,qBAAqB;MAC5C,uBAAuB,eAAe;MACvC,CAAC;KACF,UAAU,UAAU,KAClB,MACA,uBAAuB,SAAS,EAChC,uBAAuB,OAAO,QAAQ,OAAO,OAAO,CAAC,CACtD;KACD,QAAQ,OAAO,KAAK,KAAK;WAEzB,UAAU,UAAU,KAClB,yBACE,oBAAoB,QAAQ,YAAY,EACxC,YACA,KACD,CACF;;IAGL;GAEL;CACD,SAAS,WAAW,MAAM,KAAK,SAAS,gBAAgB;EACtD,IAAI,CAAC,IAAI,KAAK;GACZ,QAAQ,QACN,oBAAoB,IAAI,IAAI,IAAI,CACjC;GACD;;EAEF,MAAM,cAAc,IAAI;EACxB,IAAI,CAAC,aAAa;GAChB,QAAQ,QACN,oBAAoB,IAAI,IAAI,IAAI,CACjC;GACD;;EAEF,uBAAuB,aAAa,QAAQ;EAC5C,MAAM,EAAE,gBAAgB,mBAAmB,WAAW;EACtD,MAAM,EAAE,QAAQ,OAAO,KAAK,UAAU;EACtC,MAAM,UAAU;GACd,MAAM;GACN,KAAK,IAAI;GACT;GACA,YAAY;GACZ,UAAU;GACV,kBAAkB;GAClB;GACA,UAAU,eAAe,KAAK,GAAG,KAAK,WAAW,CAAC,KAAK;GACxD;EACD,QAAQ,YAAY,QAAQ;EAC5B,OAAO;EACP,IAAI,QAAQ,mBAAmB;GAC7B,SAAS,eAAe,MAAM;GAC9B,OAAO,eAAe,IAAI;GAC1B,SAAS,eAAe,MAAM;;EAEhC,MAAM,SAAS,kBAAkB,eAAe,QAAQ;EACxD,aAAa;GACX,OAAO;GACP,IAAI,QAAQ,mBAAmB;IAC7B,SAAS,kBAAkB,MAAM;IACjC,OAAO,kBAAkB,IAAI;IAC7B,SAAS,kBAAkB,MAAM;;GAEnC,IAAI,QAAQ,QAAQ;;;CAGxB,SAAS,uBAAuB,QAAQ,SAAS;EAC/C,IAAI,OAAO,WAAW;EACtB,IAAI,QAAQ,mBAAmB;GAC7B,OAAO,SAAS,kBACd,OAAO,QACP,QACD;GACD,IAAI,OAAO,KACT,OAAO,MAAM,kBACX,OAAO,KACP,SACA,KACD;GAEH,IAAI,OAAO,OACT,OAAO,QAAQ,kBACb,OAAO,OACP,SACA,KACD;GAEH,IAAI,OAAO,OACT,OAAO,QAAQ,kBACb,OAAO,OACP,SACA,KACD;;EAGL,OAAO,YAAY;;CAErB,SAAS,oBAAoB,EAAE,OAAO,KAAK,SAAS,WAAW,EAAE,EAAE;EACjE,OAAO,iBAAiB;GAAC;GAAO;GAAK;GAAO,GAAG;GAAS,CAAC;;CAE3D,SAAS,iBAAiB,MAAM;EAC9B,IAAI,IAAI,KAAK;EACb,OAAO,KACL,IAAI,KAAK,IAAI;EAEf,OAAO,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK,KAAK,OAAO,OAAO,uBAAuB,IAAI,OAAO,KAAK,EAAE,EAAE,MAAM,CAAC;;CAGxG,MAAM,kBAAkB,uBAAuB,aAAa,MAAM;CAClE,MAAM,mBAAmB,MAAM,YAAY;EACzC,IAAI,KAAK,SAAS,MAAM,KAAK,YAAY,KAAK,KAAK,YAAY,IAAI;GACjE,MAAM,QAAQ,QAAQ,MAAM,OAAO;GACnC,IAAI,OAAO;IACT,MAAM,YAAY,MAAM;IACxB,IAAI,QAAQ,mBACV,aAAa,QAAQ,eAAe,UAAU;IAEhD,QAAQ,OAAO;IACf,aAAa;KACX,IAAI,QAAQ,mBACV,aAAa,QAAQ,kBAAkB,UAAU;KAEnD,QAAQ,OAAO;;;;;CAKvB,MAAM,uBAAuB,MAAM,YAAY;EAC7C,IAAI;EACJ,IAAI,eAAe,KAAK,IAAI,KAAK,MAAM,KAAK,QAAQ,KAAK,OAAO,QAAQ,MAAM,MAAM,GAAG;GACrF,MAAM,SAAS,KAAK;GACpB,IAAI,QAAQ;IACV,uBAAuB,QAAQ,QAAQ;IACvC,MAAM,EAAE,OAAO,KAAK,UAAU;IAC9B,MAAM,EAAE,gBAAgB,sBAAsB;IAC9C,SAAS,eAAe,MAAM;IAC9B,OAAO,eAAe,IAAI;IAC1B,SAAS,eAAe,MAAM;IAC9B,aAAa;KACX,SAAS,kBAAkB,MAAM;KACjC,OAAO,kBAAkB,IAAI;KAC7B,SAAS,kBAAkB,MAAM;;;;;CAKzC,MAAM,qBAAqB,OAAO,UAAU,UAAU,QAAQ,yBAC5D,OACA,UACA,OACA,MACA,SAAS,SAAS,SAAS,GAAG,MAAM,IACrC;CACD,SAAS,WAAW,MAAM,SAAS,cAAc,mBAAmB;EAClE,QAAQ,OAAO,SAAS;EACxB,MAAM,EAAE,UAAU,QAAQ;EAC1B,MAAM,kBAAkB,EAAE;EAC1B,MAAM,eAAe,EAAE;EACvB,IAAI,kBAAkB,QAAQ,OAAO,QAAQ,KAAK,QAAQ,OAAO,OAAO;EACxE,IAAI,CAAC,QAAQ,OAAO,QAAQ,mBAC1B,kBAAkB,KAAK,MAAM,MAC1B,SAAS,QAAQ,KAAK,KAAK,YAAY,KAAK,KAAK,QAAQ,YAAY,IAAI,YAAY,KAAK,KAAK,QAAQ,YAAY,EACrH,IAAI,SAAS,MAAM,UAAU,YAAY,OAAO,QAAQ,YAAY,CAAC;EAExE,MAAM,kBAAkB,QAAQ,MAAM,QAAQ,KAAK;EACnD,IAAI,iBAAiB;GACnB,MAAM,EAAE,KAAK,QAAQ;GACrB,IAAI,OAAO,CAAC,YAAY,IAAI,EAC1B,kBAAkB;GAEpB,gBAAgB,KACd,qBACE,OAAO,uBAAuB,WAAW,KAAK,EAC9C,YAAY,KAAK,KAAK,GAAG,UAAU,IAAI,CACxC,CACF;;EAEH,IAAI,mBAAmB;EACvB,IAAI,sBAAsB;EAC1B,MAAM,0BAA0B,EAAE;EAClC,MAAM,gCAAgC,IAAI,KAAK;EAC/C,IAAI,yBAAyB;EAC7B,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;GACxC,MAAM,cAAc,SAAS;GAC7B,IAAI;GACJ,IAAI,CAAC,eAAe,YAAY,IAAI,EAAE,UAAU,QAAQ,aAAa,QAAQ,KAAK,GAAG;IACnF,IAAI,YAAY,SAAS,GACvB,wBAAwB,KAAK,YAAY;IAE3C;;GAEF,IAAI,iBAAiB;IACnB,QAAQ,QACN,oBAAoB,IAAI,QAAQ,IAAI,CACrC;IACD;;GAEF,mBAAmB;GACnB,MAAM,EAAE,UAAU,cAAc,KAAK,YAAY;GACjD,MAAM,EACJ,KAAK,WAAW,uBAAuB,WAAW,KAAK,EACvD,KAAK,WACL,KAAK,WACH;GACJ,IAAI;GACJ,IAAI,YAAY,SAAS,EACvB,iBAAiB,WAAW,SAAS,UAAU;QAE/C,kBAAkB;GAEpB,MAAM,OAAO,QAAQ,aAAa,MAAM;GACxC,MAAM,eAAe,YAAY,WAAW,MAAM,cAAc,QAAQ;GACxE,IAAI;GACJ,IAAI;GACJ,IAAI,MAAM,QAAQ,aAAa,KAAK,EAAE;IACpC,kBAAkB;IAClB,aAAa,KACX,4BACE,IAAI,KACJ,iBAAiB,UAAU,cAAc,yBAAyB,EAClE,gBACD,CACF;UACI,IAAI,QAAQ,QACjB,aACA,kBACA,KAED,EAAE;IACD,IAAI,IAAI;IACR,IAAI;IACJ,OAAO,KAAK;KACV,OAAO,SAAS;KAChB,IAAI,CAAC,sBAAsB,KAAK,EAC9B;;IAGJ,IAAI,QAAQ,eAAe,KAAK,IAAI,QAAQ,MAAM,iBAAiB,EAAE;KACnE,IAAI,cAAc,aAAa,aAAa,SAAS;KACrD,OAAO,YAAY,UAAU,SAAS,IACpC,cAAc,YAAY;KAE5B,YAAY,YAAY,MAAM,MAAM,4BAClC,MAAM,KACN,iBACE,UACA,cACA,yBACD,EACD,gBACD,GAAG,iBAAiB,UAAU,cAAc,yBAAyB;WAEtE,QAAQ,QACN,oBAAoB,IAAI,MAAM,IAAI,CACnC;UAEE,IAAI,MAAM;IACf,kBAAkB;IAClB,MAAM,cAAc,KAAK;IACzB,IAAI,aAAa;KACf,uBAAuB,aAAa,QAAQ;KAC5C,aAAa,KACX,qBAAqB,QAAQ,OAAO,YAAY,EAAE,CAChD,YAAY,QACZ,yBACE,oBAAoB,YAAY,EAChC,iBAAiB,UAAU,aAAa,EACxC,KACD,CACF,CAAC,CACH;WAED,QAAQ,QACN,oBACE,IACA,KAAK,IACN,CACF;UAEE;IACL,IAAI,gBAAgB;KAClB,IAAI,cAAc,IAAI,eAAe,EAAE;MACrC,QAAQ,QACN,oBACE,IACA,OACD,CACF;MACD;;KAEF,cAAc,IAAI,eAAe;KACjC,IAAI,mBAAmB,WACrB,sBAAsB;;IAG1B,gBAAgB,KAAK,qBAAqB,UAAU,aAAa,CAAC;;;EAGtE,IAAI,CAAC,iBAAiB;GACpB,MAAM,4BAA4B,OAAO,cAAc;IACrD,MAAM,KAAK,YAAY,OAAO,KAAK,GAAG,WAAW,IAAI;IACrD,IAAI,QAAQ,cACV,GAAG,kBAAkB;IAEvB,OAAO,qBAAqB,WAAW,GAAG;;GAE5C,IAAI,CAAC,kBACH,gBAAgB,KAAK,yBAAyB,KAAK,GAAG,SAAS,CAAC;QAC3D,IAAI,wBAAwB,UAGnC,CAAC,wBAAwB,MAAM,iBAAiB,EAC9C,IAAI,qBACF,QAAQ,QACN,oBACE,IACA,wBAAwB,GAAG,IAC5B,CACF;QAED,gBAAgB,KACd,yBAAyB,KAAK,GAAG,wBAAwB,CAC1D;;EAIP,MAAM,WAAW,kBAAkB,IAAI,kBAAkB,KAAK,SAAS,GAAG,IAAI;EAC9E,IAAI,QAAQ,uBACV,gBAAgB,OACd,qBACE,KAGA,uBACE,WAAY,IACZ,MACD,CACF,CACF,EACD,IACD;EACD,IAAI,aAAa,QACf,QAAQ,qBAAqB,QAAQ,OAAO,aAAa,EAAE,CACzD,OACA,sBAAsB,aAAa,CACpC,CAAC;EAEJ,OAAO;GACL;GACA;GACD;;CAEH,SAAS,iBAAiB,MAAM,IAAI,OAAO;EACzC,MAAM,QAAQ,CACZ,qBAAqB,QAAQ,KAAK,EAClC,qBAAqB,MAAM,GAAG,CAC/B;EACD,IAAI,SAAS,MACX,MAAM,KACJ,qBAAqB,OAAO,uBAAuB,OAAO,MAAM,EAAE,KAAK,CAAC,CACzE;EAEH,OAAO,uBAAuB,MAAM;;CAEtC,SAAS,kBAAkB,UAAU;EACnC,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;GACxC,MAAM,QAAQ,SAAS;GACvB,QAAQ,MAAM,MAAd;IACE,KAAK;KACH,IAAI,MAAM,YAAY,KAAK,kBAAkB,MAAM,SAAS,EAC1D,OAAO;KAET;IACF,KAAK;KACH,IAAI,kBAAkB,MAAM,SAAS,EAAE,OAAO;KAC9C;IACF,KAAK;IACL,KAAK;KACH,IAAI,kBAAkB,MAAM,SAAS,EAAE,OAAO;KAC9C;;;EAGN,OAAO;;CAGT,MAAM,qCAAqC,IAAI,SAAS;CACxD,MAAM,oBAAoB,MAAM,YAAY;EAC1C,OAAO,SAAS,uBAAuB;GACrC,OAAO,QAAQ;GACf,IAAI,EAAE,KAAK,SAAS,MAAM,KAAK,YAAY,KAAK,KAAK,YAAY,KAC/D;GAEF,MAAM,EAAE,KAAK,UAAU;GACvB,MAAM,cAAc,KAAK,YAAY;GACrC,IAAI,WAAW,cAAc,qBAAqB,MAAM,QAAQ,GAAG,IAAI,IAAI;GAC3E,MAAM,qBAAqB,OAAO,SAAS,SAAS,IAAI,SAAS,WAAW;GAC5E,IAAI;GACJ,IAAI;GACJ,IAAI,YAAY;GAChB,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI,iBAEF,sBAAsB,aAAa,YAAY,aAAa,YAAY,CAAC,gBAIxE,QAAQ,SAAS,QAAQ,mBAAmB,QAAQ;GAEvD,IAAI,MAAM,SAAS,GAAG;IACpB,MAAM,mBAAmB,WACvB,MACA,SACA,KAAK,GACL,aACA,mBACD;IACD,aAAa,iBAAiB;IAC9B,YAAY,iBAAiB;IAC7B,mBAAmB,iBAAiB;IACpC,MAAM,aAAa,iBAAiB;IACpC,kBAAkB,cAAc,WAAW,SAAS,sBAClD,WAAW,KAAK,QAAQ,mBAAmB,KAAK,QAAQ,CAAC,CAC1D,GAAG,KAAK;IACT,IAAI,iBAAiB,gBACnB,iBAAiB;;GAGrB,IAAI,KAAK,SAAS,SAAS,GAAG;IAC5B,IAAI,aAAa,YAAY;KAC3B,iBAAiB;KACjB,aAAa;;IAKf,IAH2B,eAC3B,aAAa,YACb,aAAa,YACW;KACtB,MAAM,EAAE,OAAO,oBAAoB,WAAW,MAAM,QAAQ;KAC5D,gBAAgB;KAChB,IAAI,iBACF,aAAa;WAEV,IAAI,KAAK,SAAS,WAAW,KAAK,aAAa,UAAU;KAC9D,MAAM,QAAQ,KAAK,SAAS;KAC5B,MAAM,OAAO,MAAM;KACnB,MAAM,sBAAsB,SAAS,KAAK,SAAS;KACnD,IAAI,uBAAuB,gBAAgB,OAAO,QAAQ,KAAK,GAC7D,aAAa;KAEf,IAAI,uBAAuB,SAAS,GAClC,gBAAgB;UAEhB,gBAAgB,KAAK;WAGvB,gBAAgB,KAAK;;GAGzB,IAAI,oBAAoB,iBAAiB,QACvC,oBAAoB,0BAA0B,iBAAiB;GAEjE,KAAK,cAAc,gBACjB,SACA,UACA,YACA,eACA,cAAc,IAAI,KAAK,IAAI,WAC3B,mBACA,iBACA,CAAC,CAAC,gBACF,OACA,aACA,KAAK,IACN;;;CAGL,SAAS,qBAAqB,MAAM,SAAS,MAAM,OAAO;EACxD,IAAI,EAAE,QAAQ;EACd,MAAM,oBAAoB,eAAe,IAAI;EAC7C,MAAM,SAAS,SACb,MACA,MACA,OACA,KAED;EACD,IAAI;OACE,qBAAqB,gBACvB,0BACA,QACD,EAAE;IACD,IAAI;IACJ,IAAI,OAAO,SAAS,GAClB,MAAM,OAAO,SAAS,uBAAuB,OAAO,MAAM,SAAS,KAAK;SACnE;KACL,MAAM,OAAO;KACb,IAAI,CAAC,KAAK;MACR,MAAM,uBAAuB,MAAM,OAAO,OAAO,IAAI,IAAI;MAEvD,MAAM,OAAO,MAAM,kBAAkB,KAAK,QAAQ;;;IAIxD,IAAI,KACF,OAAO,qBAAqB,QAAQ,OAAO,0BAA0B,EAAE,CACrE,IACD,CAAC;UAEC,IAAI,OAAO,SAAS,KAAK,OAAO,MAAM,QAAQ,WAAW,OAAO,EACrE,MAAM,OAAO,MAAM,QAAQ,MAAM,EAAE;;EAGvC,MAAM,UAAU,gBAAgB,IAAI,IAAI,QAAQ,mBAAmB,IAAI;EACvE,IAAI,SAAS;GACX,IAAI,CAAC,KAAK,QAAQ,OAAO,QAAQ;GACjC,OAAO;;EAET;GACE,MAAM,YAAY,sBAAsB,KAAK,QAAQ;GACrD,IAAI,WACF,OAAO;GAET,MAAM,WAAW,IAAI,QAAQ,IAAI;GACjC,IAAI,WAAW,GAAG;IAChB,MAAM,KAAK,sBAAsB,IAAI,MAAM,GAAG,SAAS,EAAE,QAAQ;IACjE,IAAI,IACF,OAAO,KAAK,IAAI,MAAM,SAAS;;;EAIrC,IAAI,QAAQ,YAAY,OAAO,WAAW,OAAO,SAAS,IAAI,CAAC,KAAK,QAAQ,UAAU;GACpF,QAAQ,OAAO,kBAAkB;GACjC,QAAQ,WAAW,IAAI,MAAM,SAAS;GACtC,OAAO,eAAe,KAAK,YAAY;;EAEzC,QAAQ,OAAO,kBAAkB;EACjC,QAAQ,WAAW,IAAI,IAAI;EAC3B,OAAO,eAAe,KAAK,YAAY;;CAEzC,SAAS,sBAAsB,MAAM,SAAS;EAC5C,MAAM,WAAW,QAAQ;EACzB,IAAI,CAAC,YAAY,SAAS,oBAAoB,OAC5C;EAEF,MAAM,YAAY,OAAO,SAAS,KAAK;EACvC,MAAM,aAAa,OAAO,WAAW,UAAU;EAC/C,MAAM,aAAa,SAAS;GAC1B,IAAI,SAAS,UAAU,MACrB,OAAO;GAET,IAAI,SAAS,eAAe,MAC1B,OAAO;GAET,IAAI,SAAS,gBAAgB,MAC3B,OAAO;;EAGX,MAAM,YAAY,UAAU,cAAc,IAAI,UAAU,uBAAuB,IAAI,UAAU,gBAAgB;EAC7G,IAAI,WACF,OAAO,QAAQ,SAEb,YACE,UAAU,KAAK,UAAU,UAAU,CAAC;EAE1C,MAAM,eAAe,UAAU,YAAY,IAAI,UAAU,YAAY,IAAI,UAAU,kBAAkB;EACrG,IAAI,cACF,OAAO,QAAQ,SAEb,GAAG,QAAQ,aAAa,MAAM,CAAC,GAAG,aAAa,KAC7C,UAAU,KAAK,UAAU,aAAa,CAAC;EAE7C,MAAM,YAAY,UAAU,QAAQ;EACpC,IAAI,WACF,OAAO,GAAG,QAAQ,aAAa,MAAM,CAAC,GAAG,QAAQ,SAAS,YAAY,SAAS,GAAG,KAAK,UAAU,UAAU,CAAC;;CAGhH,SAAS,WAAW,MAAM,SAAS,QAAQ,KAAK,OAAO,aAAa,oBAAoB,MAAM,OAAO;EACnG,MAAM,EAAE,KAAK,KAAK,YAAY,aAAa;EAC3C,IAAI,aAAa,EAAE;EACnB,MAAM,YAAY,EAAE;EACpB,MAAM,oBAAoB,EAAE;EAC5B,MAAM,cAAc,SAAS,SAAS;EACtC,IAAI,iBAAiB;EACrB,IAAI,YAAY;EAChB,IAAI,SAAS;EACb,IAAI,kBAAkB;EACtB,IAAI,kBAAkB;EACtB,IAAI,2BAA2B;EAC/B,IAAI,iBAAiB;EACrB,IAAI,eAAe;EACnB,MAAM,mBAAmB,EAAE;EAC3B,MAAM,gBAAgB,QAAQ;GAC5B,IAAI,WAAW,QAAQ;IACrB,UAAU,KACR,uBAAuB,iBAAiB,WAAW,EAAE,WAAW,CACjE;IACD,aAAa,EAAE;;GAEjB,IAAI,KAAK,UAAU,KAAK,IAAI;;EAE9B,MAAM,0BAA0B;GAC9B,IAAI,QAAQ,OAAO,OAAO,GACxB,WAAW,KACT,qBACE,uBAAuB,WAAW,KAAK,EACvC,uBAAuB,OAAO,CAC/B,CACF;;EAGL,MAAM,oBAAoB,EAAE,KAAK,YAAY;GAC3C,IAAI,YAAY,IAAI,EAAE;IACpB,MAAM,OAAO,IAAI;IACjB,MAAM,iBAAiB,OAAO,KAAK,KAAK;IACxC,IAAI,mBAAmB,CAAC,eAAe,uBAEvC,KAAK,aAAa,KAAK,aACvB,SAAS,yBACT,CAAC,OAAO,eAAe,KAAK,EAC1B,2BAA2B;IAE7B,IAAI,kBAAkB,OAAO,eAAe,KAAK,EAC/C,eAAe;IAEjB,IAAI,kBAAkB,MAAM,SAAS,IACnC,QAAQ,MAAM,UAAU;IAE1B,IAAI,MAAM,SAAS,OAAO,MAAM,SAAS,KAAK,MAAM,SAAS,MAAM,gBAAgB,OAAO,QAAQ,GAAG,GACnG;IAEF,IAAI,SAAS,OACX,SAAS;SACJ,IAAI,SAAS,SAClB,kBAAkB;SACb,IAAI,SAAS,SAClB,kBAAkB;SACb,IAAI,SAAS,SAAS,CAAC,iBAAiB,SAAS,KAAK,EAC3D,iBAAiB,KAAK,KAAK;IAE7B,IAAI,gBAAgB,SAAS,WAAW,SAAS,YAAY,CAAC,iBAAiB,SAAS,KAAK,EAC3F,iBAAiB,KAAK,KAAK;UAG7B,iBAAiB;;EAGrB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACrC,MAAM,OAAO,MAAM;GACnB,IAAI,KAAK,SAAS,GAAG;IACnB,MAAM,EAAE,KAAK,MAAM,SAAS,UAAU;IACtC,IAAI,WAAW;IACf,IAAI,SAAS,OAAO;KAClB,SAAS;KACT,mBAAmB;KACnB,IAAI,SAAS,QAAQ,QAAQ;MAC3B,MAAM,UAAU,QAAQ,gBAAgB,MAAM;MAC9C,IAAI,YAAY,eAAe,YAAY,eAAe,YAAY,mBAAmB;OACvF,WAAW;OACX,WAAW,KACT,qBACE,uBAAuB,WAAW,KAAK,EACvC,uBAAuB,MAAM,SAAS,MAAM,MAAM,IAAI,CACvD,CACF;;;;IAIP,IAAI,SAAS,SAAS,eAAe,IAAI,IAAI,SAAS,MAAM,QAAQ,WAAW,OAAO,IAAI,gBACxF,0BACA,QACD,GACC;IAEF,WAAW,KACT,qBACE,uBAAuB,MAAM,MAAM,QAAQ,EAC3C,uBACE,QAAQ,MAAM,UAAU,IACxB,UACA,QAAQ,MAAM,MAAM,IACrB,CACF,CACF;UACI;IACL,MAAM,EAAE,MAAM,KAAK,KAAK,KAAK,cAAc;IAC3C,MAAM,UAAU,SAAS;IACzB,MAAM,QAAQ,SAAS;IACvB,IAAI,SAAS,QAAQ;KACnB,IAAI,CAAC,aACH,QAAQ,QACN,oBAAoB,IAAI,IAAI,CAC7B;KAEH;;IAEF,IAAI,SAAS,UAAU,SAAS,QAC9B;IAEF,IAAI,SAAS,QAAQ,WAAW,cAAc,KAAK,KAAK,KAAK,eAAe,IAAI,IAAI,gBAClF,0BACA,QACD,GACC;IAEF,IAAI,SAAS,KACX;IAEF,IAEE,WAAW,cAAc,KAAK,MAAM,IAEpC,SAAS,eAAe,cAAc,KAAK,oBAAoB,EAE/D,iBAAiB;IAEnB,IAAI,WAAW,cAAc,KAAK,MAAM,EACtC,mBAAmB;IAErB,IAAI,CAAC,QAAQ,WAAW,QAAQ;KAC9B,iBAAiB;KACjB,IAAI,KACF,IAAI,SAAS;MAET,cAAc;MACd,IAAI,gBACF,gCACA,QACD,EAAE;OACD,UAAU,QAAQ,IAAI;OACtB;;MAGJ,mBAAmB;MACnB,cAAc;MACd,UAAU,KAAK,IAAI;YAEnB,aAAa;MACX,MAAM;MACN;MACA,QAAQ,QAAQ,OAAO,YAAY;MACnC,WAAW,cAAc,CAAC,IAAI,GAAG,CAAC,KAAK,OAAO;MAC/C,CAAC;UAGJ,QAAQ,QACN,oBACE,UAAU,KAAK,IACf,IACD,CACF;KAEH;;IAEF,IAAI,WAAW,UAAU,MAAM,QAAQ,IAAI,YAAY,OAAO,EAC5D,aAAa;IAEf,MAAM,qBAAqB,QAAQ,oBAAoB;IACvD,IAAI,oBAAoB;KACtB,MAAM,EAAE,OAAO,QAAQ,gBAAgB,mBAAmB,MAAM,MAAM,QAAQ;KAC9E,CAAC,OAAO,OAAO,QAAQ,iBAAiB;KACxC,IAAI,SAAS,OAAO,CAAC,YAAY,IAAI,EACnC,aAAa,uBAAuB,QAAQ,WAAW,CAAC;UAExD,WAAW,KAAK,GAAG,OAAO;KAE5B,IAAI,aAAa;MACf,kBAAkB,KAAK,KAAK;MAC5B,IAAI,OAAO,SAAS,YAAY,EAC9B,mBAAmB,IAAI,MAAM,YAAY;;WAGxC,IAAI,CAAC,OAAO,mBAAmB,KAAK,EAAE;KAC3C,kBAAkB,KAAK,KAAK;KAC5B,IAAI,aACF,iBAAiB;;;;EAKzB,IAAI,kBAAkB,KAAK;EAC3B,IAAI,UAAU,QAAQ;GACpB,cAAc;GACd,IAAI,UAAU,SAAS,GACrB,kBAAkB,qBAChB,QAAQ,OAAO,YAAY,EAC3B,WACA,WACD;QAED,kBAAkB,UAAU;SAEzB,IAAI,WAAW,QACpB,kBAAkB,uBAChB,iBAAiB,WAAW,EAC5B,WACD;EAEH,IAAI,gBACF,aAAa;OACR;GACL,IAAI,mBAAmB,CAAC,aACtB,aAAa;GAEf,IAAI,mBAAmB,CAAC,aACtB,aAAa;GAEf,IAAI,iBAAiB,QACnB,aAAa;GAEf,IAAI,0BACF,aAAa;;EAGjB,IAAI,CAAC,mBAAmB,cAAc,KAAK,cAAc,QAAQ,UAAU,gBAAgB,kBAAkB,SAAS,IACpH,aAAa;EAEf,IAAI,CAAC,QAAQ,SAAS,iBACpB,QAAQ,gBAAgB,MAAxB;GACE,KAAK;IACH,IAAI,gBAAgB;IACpB,IAAI,gBAAgB;IACpB,IAAI,gBAAgB;IACpB,KAAK,IAAI,IAAI,GAAG,IAAI,gBAAgB,WAAW,QAAQ,KAAK;KAC1D,MAAM,MAAM,gBAAgB,WAAW,GAAG;KAC1C,IAAI,YAAY,IAAI;UACd,IAAI,YAAY,SAClB,gBAAgB;WACX,IAAI,IAAI,YAAY,SACzB,gBAAgB;YAEb,IAAI,CAAC,IAAI,cACd,gBAAgB;;IAGpB,MAAM,YAAY,gBAAgB,WAAW;IAC7C,MAAM,YAAY,gBAAgB,WAAW;IAC7C,IAAI,CAAC,eAAe;KAClB,IAAI,aAAa,CAAC,YAAY,UAAU,MAAM,EAC5C,UAAU,QAAQ,qBAChB,QAAQ,OAAO,gBAAgB,EAC/B,CAAC,UAAU,MAAM,CAClB;KAEH,IAAI,cAEH,mBAAmB,UAAU,MAAM,SAAS,KAAK,UAAU,MAAM,QAAQ,MAAM,CAAC,OAAO,OAExF,UAAU,MAAM,SAAS,KACvB,UAAU,QAAQ,qBAChB,QAAQ,OAAO,gBAAgB,EAC/B,CAAC,UAAU,MAAM,CAClB;WAGH,kBAAkB,qBAChB,QAAQ,OAAO,gBAAgB,EAC/B,CAAC,gBAAgB,CAClB;IAEH;GACF,KAAK,IACH;GACF;IACE,kBAAkB,qBAChB,QAAQ,OAAO,gBAAgB,EAC/B,CACE,qBAAqB,QAAQ,OAAO,qBAAqB,EAAE,CACzD,gBACD,CAAC,CACH,CACF;IACD;;EAGN,OAAO;GACL,OAAO;GACP,YAAY;GACZ;GACA;GACA;GACD;;CAEH,SAAS,iBAAiB,YAAY;EACpC,MAAM,6BAA6B,IAAI,KAAK;EAC5C,MAAM,UAAU,EAAE;EAClB,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;GAC1C,MAAM,OAAO,WAAW;GACxB,IAAI,KAAK,IAAI,SAAS,KAAK,CAAC,KAAK,IAAI,UAAU;IAC7C,QAAQ,KAAK,KAAK;IAClB;;GAEF,MAAM,OAAO,KAAK,IAAI;GACtB,MAAM,WAAW,WAAW,IAAI,KAAK;GACrC,IAAI;QACE,SAAS,WAAW,SAAS,WAAW,OAAO,KAAK,KAAK,EAC3D,aAAa,UAAU,KAAK;UAEzB;IACL,WAAW,IAAI,MAAM,KAAK;IAC1B,QAAQ,KAAK,KAAK;;;EAGtB,OAAO;;CAET,SAAS,aAAa,UAAU,UAAU;EACxC,IAAI,SAAS,MAAM,SAAS,IAC1B,SAAS,MAAM,SAAS,KAAK,SAAS,MAAM;OAE5C,SAAS,QAAQ,sBACf,CAAC,SAAS,OAAO,SAAS,MAAM,EAChC,SAAS,IACV;;CAGL,SAAS,mBAAmB,KAAK,SAAS;EACxC,MAAM,UAAU,EAAE;EAClB,MAAM,UAAU,mBAAmB,IAAI,IAAI;EAC3C,IAAI,SACF,QAAQ,KAAK,QAAQ,aAAa,QAAQ,CAAC;OACtC;GACL,MAAM,YAAY,sBAAsB,OAAO,IAAI,MAAM,QAAQ;GACjE,IAAI,WACF,QAAQ,KAAK,UAAU;QAClB;IACL,QAAQ,OAAO,kBAAkB;IACjC,QAAQ,WAAW,IAAI,IAAI,KAAK;IAChC,QAAQ,KAAK,eAAe,IAAI,MAAM,YAAY,CAAC;;;EAGvD,MAAM,EAAE,QAAQ;EAChB,IAAI,IAAI,KAAK,QAAQ,KAAK,IAAI,IAAI;EAClC,IAAI,IAAI,KAAK;GACX,IAAI,CAAC,IAAI,KACP,QAAQ,KAAK,SAAS;GAExB,QAAQ,KAAK,IAAI,IAAI;;EAEvB,IAAI,OAAO,KAAK,IAAI,UAAU,CAAC,QAAQ;GACrC,IAAI,CAAC,IAAI,KAAK;IACZ,IAAI,CAAC,IAAI,KACP,QAAQ,KAAK,SAAS;IAExB,QAAQ,KAAK,SAAS;;GAExB,MAAM,iBAAiB,uBAAuB,QAAQ,OAAO,IAAI;GACjE,QAAQ,KACN,uBACE,IAAI,UAAU,KACX,aAAa,qBAAqB,UAAU,eAAe,CAC7D,EACD,IACD,CACF;;EAEH,OAAO,sBAAsB,SAAS,IAAI,IAAI;;CAEhD,SAAS,0BAA0B,OAAO;EACxC,IAAI,mBAAmB;EACvB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAI,GAAG,KAAK;GAC5C,oBAAoB,KAAK,UAAU,MAAM,GAAG;GAC5C,IAAI,IAAI,IAAI,GAAG,oBAAoB;;EAErC,OAAO,mBAAmB;;CAE5B,SAAS,eAAe,KAAK;EAC3B,OAAO,QAAQ,eAAe,QAAQ;;CAGxC,MAAM,uBAAuB,MAAM,YAAY;EAC7C,IAAI,aAAa,KAAK,EAAE;GACtB,MAAM,EAAE,UAAU,QAAQ;GAC1B,MAAM,EAAE,UAAU,cAAc,kBAAkB,MAAM,QAAQ;GAChE,MAAM,WAAW;IACf,QAAQ,oBAAoB,gBAAgB;IAC5C;IACA;IACA;IACA;IACD;GACD,IAAI,cAAc;GAClB,IAAI,WAAW;IACb,SAAS,KAAK;IACd,cAAc;;GAEhB,IAAI,SAAS,QAAQ;IACnB,SAAS,KAAK,yBAAyB,EAAE,EAAE,UAAU,OAAO,OAAO,IAAI;IACvE,cAAc;;GAEhB,IAAI,QAAQ,WAAW,CAAC,QAAQ,SAC9B,cAAc;GAEhB,SAAS,OAAO,YAAY;GAC5B,KAAK,cAAc,qBACjB,QAAQ,OAAO,YAAY,EAC3B,UACA,IACD;;;CAGL,SAAS,kBAAkB,MAAM,SAAS;EACxC,IAAI,WAAW;EACf,IAAI,YAAY,KAAK;EACrB,MAAM,eAAe,EAAE;EACvB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;GAC1C,MAAM,IAAI,KAAK,MAAM;GACrB,IAAI,EAAE,SAAS;QACT,EAAE,OACJ,IAAI,EAAE,SAAS,QACb,WAAW,KAAK,UAAU,EAAE,MAAM,QAAQ;SACrC;KACL,EAAE,OAAO,OAAO,SAAS,EAAE,KAAK;KAChC,aAAa,KAAK,EAAE;;UAIxB,IAAI,EAAE,SAAS,UAAU,cAAc,EAAE,KAAK,OAAO;QAC/C,EAAE,KACJ,WAAW,EAAE;SACR,IAAI,EAAE,OAAO,EAAE,IAAI,SAAS,GAAG;KAEpC,WAAW,EAAE,MAAM,uBADN,OAAO,SAAS,EAAE,IAAI,QACW,EAAE,OAAO,EAAE,IAAI,IAAI;KAE/D,WAAW,EAAE,MAAM,kBAAkB,EAAE,KAAK,QAAQ;;UAGnD;IACL,IAAI,EAAE,SAAS,UAAU,EAAE,OAAO,YAAY,EAAE,IAAI,EAClD,EAAE,IAAI,UAAU,OAAO,SAAS,EAAE,IAAI,QAAQ;IAEhD,aAAa,KAAK,EAAE;;;EAI1B,IAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,EAAE,OAAO,eAAe,WAC5B,MACA,SACA,cACA,OACA,MACD;GACD,YAAY;GACZ,IAAI,WAAW,QACb,QAAQ,QACN,oBACE,IACA,WAAW,GAAG,IACf,CACF;;EAGL,OAAO;GACL;GACA;GACD;;CAGH,MAAM,eAAe,KAAK,MAAM,SAAS,cAAc;EACrD,MAAM,EAAE,KAAK,WAAW,QAAQ;EAChC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,QACzB,QAAQ,QAAQ,oBAAoB,IAAI,IAAI,CAAC;EAE/C,IAAI;EACJ,IAAI,IAAI,SAAS,GACf,IAAI,IAAI,UAAU;GAChB,IAAI,UAAU,IAAI;GAClB,IAAI,QAAQ,WAAW,OAAO,EAC5B,UAAU,SAAS,QAAQ,MAAM,EAAE;GAWrC,YAAY,uBATQ,KAAK,YAAY,KAAK,QAAQ,WAAW,QAAQ,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAG7F,OAAO,aAAa,OAAO,SAAS,QAAQ,CAAC,GAI7C,MAAM,WAEwC,MAAM,IAAI,IAAI;SAE9D,YAAY,yBAAyB;GACnC,GAAG,QAAQ,aAAa,eAAe,CAAC;GACxC;GACA;GACD,CAAC;OAEC;GACL,YAAY;GACZ,UAAU,SAAS,QAAQ,GAAG,QAAQ,aAAa,eAAe,CAAC,GAAG;GACtE,UAAU,SAAS,KAAK,IAAI;;EAE9B,IAAI,MAAM,IAAI;EACd,IAAI,OAAO,CAAC,IAAI,QAAQ,MAAM,EAC5B,MAAM,KAAK;EAEb,IAAI,cAAc,QAAQ,iBAAiB,CAAC,OAAO,CAAC,QAAQ;EAC5D,IAAI,KAAK;GACP,MAAM,cAAc,mBAAmB,KAAK,QAAQ;GACpD,MAAM,oBAAoB,EAAE,eAAe,eAAe,KAAK,QAAQ;GACvE,MAAM,wBAAwB,IAAI,QAAQ,SAAS,IAAI;GACvD,IAAI,QAAQ,mBAAmB;IAC7B,qBAAqB,QAAQ,eAAe,SAAS;IACrD,MAAM,IAAI,MAAM,kBACd,KACA,SACA,OACA,sBACD;IACD,qBAAqB,QAAQ,kBAAkB,SAAS;IACxD,cAAc,QAAQ,iBACtB,CAAC,QAAQ,WAET,EAAE,IAAI,SAAS,KAAK,IAAI,YAAY,MAKpC,EAAE,eAAe,KAAK,YAAY,MAElC,CAAC,YAAY,KAAK,QAAQ,YAAY;IACtC,IAAI,eAAe,aACjB,IAAI,IAAI,SAAS,GACf,IAAI,UAAU,GAAG,IAAI,QAAQ,MAAM,IAAI,QAAQ;SAE/C,IAAI,WAAW;KAAC,GAAG,IAAI;KAAU;KAAQ,GAAG,IAAI;KAAU;KAAY;;GAI5E,IAAI,qBAAqB,eAAe,aACtC,MAAM,yBAAyB;IAC7B,GAAG,oBAAoB,QAAQ,OAAO,kBAAkB,WAAW,GAAG,QAAQ,OAAO;;IAEzF,GAAG,WAAW,MAAM,wBAAwB,MAAM;IAC9C;IACA,wBAAwB,MAAM;IAC/B,CAAC;;EAGN,IAAI,MAAM,EACR,OAAO,CACL,qBACE,WACA,OAAO,uBAAuB,YAAY,OAAO,IAAI,CACtD,CACF,EACF;EACD,IAAI,WACF,MAAM,UAAU,IAAI;EAEtB,IAAI,aACF,IAAI,MAAM,GAAG,QAAQ,QAAQ,MAAM,IAAI,MAAM,GAAG,MAAM;EAExD,IAAI,MAAM,SAAS,MAAM,EAAE,IAAI,eAAe,KAAK;EACnD,OAAO;;CAGT,MAAM,iBAAiB,KAAK,OAAO,YAAY;EAC7C,MAAM,EAAE,WAAW,QAAQ;EAC3B,MAAM,MAAM,IAAI;EAChB,IAAI,EAAE,QAAQ;EACd,IAAI,OAAO,IAAI,SAAS,KAAK,CAAC,IAAI,QAAQ,MAAM,EAAE;GAE9C,QAAQ,QACN,oBAAoB,IAAI,IAAI,CAC7B;GACD,OAAO,EACL,OAAO,CACL,qBAAqB,KAAK,uBAAuB,IAAI,MAAM,IAAI,CAAC,CACjE,EACF;;EAGL,IAAI,IAAI,SAAS,GAAG;GAClB,IAAI,SAAS,QAAQ,IAAI;GACzB,IAAI,SAAS,KAAK,UAAU;SACvB,IAAI,CAAC,IAAI,UACd,IAAI,UAAU,IAAI,UAAU,GAAG,IAAI,QAAQ,UAAU;EAEvD,IAAI,UAAU,MAAM,QAAQ,IAAI,YAAY,QAAQ,EAClD,IAAI,IAAI,SAAS,GACf,IAAI,IAAI,UACN,IAAI,UAAU,OAAO,SAAS,IAAI,QAAQ;OAE1C,IAAI,UAAU,GAAG,QAAQ,aAAa,SAAS,CAAC,GAAG,IAAI,QAAQ;OAE5D;GACL,IAAI,SAAS,QAAQ,GAAG,QAAQ,aAAa,SAAS,CAAC,GAAG;GAC1D,IAAI,SAAS,KAAK,IAAI;;EAG1B,IAAI,CAAC,QAAQ,OAAO;GAClB,IAAI,UAAU,MAAM,QAAQ,IAAI,YAAY,OAAO,EACjD,aAAa,KAAK,IAAI;GAExB,IAAI,UAAU,MAAM,QAAQ,IAAI,YAAY,OAAO,EACjD,aAAa,KAAK,IAAI;;EAG1B,OAAO,EACL,OAAO,CAAC,qBAAqB,KAAK,IAAI,CAAC,EACxC;;CAEH,MAAM,gBAAgB,KAAK,WAAW;EACpC,IAAI,IAAI,SAAS,GACf,IAAI,IAAI,UACN,IAAI,UAAU,SAAS,IAAI;OAE3B,IAAI,UAAU,KAAK,OAAO,KAAK,IAAI,QAAQ;OAExC;GACL,IAAI,SAAS,QAAQ,IAAI,OAAO,OAAO;GACvC,IAAI,SAAS,KAAK,IAAI;;;CAI1B,MAAM,iBAAiB,MAAM,YAAY;EACvC,IAAI,KAAK,SAAS,KAAK,KAAK,SAAS,KAAK,KAAK,SAAS,MAAM,KAAK,SAAS,IAC1E,aAAa;GACX,MAAM,WAAW,KAAK;GACtB,IAAI,mBAAmB,KAAK;GAC5B,IAAI,UAAU;GACd,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;IACxC,MAAM,QAAQ,SAAS;IACvB,IAAI,SAAS,MAAM,EAAE;KACnB,UAAU;KACV,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;MAC5C,MAAM,OAAO,SAAS;MACtB,IAAI,SAAS,KAAK,EAAE;OAClB,IAAI,CAAC,kBACH,mBAAmB,SAAS,KAAK,yBAC/B,CAAC,MAAM,EACP,MAAM,IACP;OAEH,iBAAiB,SAAS,KAAK,OAAO,KAAK;OAC3C,SAAS,OAAO,GAAG,EAAE;OACrB;aACK;OACL,mBAAmB,KAAK;OACxB;;;;;GAKR,IAAI,CAAC,WAIL,SAAS,WAAW,MAAM,KAAK,SAAS,KAAK,KAAK,SAAS,KAAK,KAAK,YAAY,KAKjF,CAAC,KAAK,MAAM,MACT,MAAM,EAAE,SAAS,KAAK,CAAC,QAAQ,oBAAoB,EAAE,MACvD,IAGD,EAAE,KAAK,QAAQ,cACb;GAEF,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;IACxC,MAAM,QAAQ,SAAS;IACvB,IAAI,SAAS,MAAM,IAAI,MAAM,SAAS,GAAG;KACvC,MAAM,WAAW,EAAE;KACnB,IAAI,MAAM,SAAS,KAAK,MAAM,YAAY,KACxC,SAAS,KAAK,MAAM;KAEtB,IAAI,CAAC,QAAQ,OAAO,gBAAgB,OAAO,QAAQ,KAAK,GACtD,SAAS,KACP,IACD;KAEH,SAAS,KAAK;MACZ,MAAM;MACN,SAAS;MACT,KAAK,MAAM;MACX,aAAa,qBACX,QAAQ,OAAO,YAAY,EAC3B,SACD;MACF;;;;;CAOX,MAAM,yBAAyB,IAAI,SAAS;CAC5C,MAAM,iBAAiB,MAAM,YAAY;EACvC,IAAI,KAAK,SAAS,KAAK,QAAQ,MAAM,QAAQ,KAAK,EAAE;GAClD,IAAI,OAAO,IAAI,KAAK,IAAI,QAAQ,WAAW,QAAQ,OACjD;GAEF,OAAO,IAAI,KAAK;GAChB,QAAQ,UAAU;GAClB,QAAQ,OAAO,mBAAmB;GAClC,aAAa;IACX,QAAQ,UAAU;IAClB,MAAM,MAAM,QAAQ;IACpB,IAAI,IAAI,aACN,IAAI,cAAc,QAAQ,MACxB,IAAI,aACJ,MACA,KACD;;;;CAMT,MAAM,kBAAkB,KAAK,MAAM,YAAY;EAC7C,MAAM,EAAE,KAAK,QAAQ;EACrB,IAAI,CAAC,KAAK;GACR,QAAQ,QACN,oBAAoB,IAAI,IAAI,IAAI,CACjC;GACD,OAAO,sBAAsB;;EAE/B,MAAM,SAAS,IAAI,IAAI,OAAO,MAAM;EACpC,MAAM,YAAY,IAAI,SAAS,IAAI,IAAI,UAAU;EACjD,MAAM,cAAc,QAAQ,gBAAgB;EAC5C,IAAI,gBAAgB,WAAW,gBAAgB,iBAAiB;GAC9D,QAAQ,QAAQ,oBAAoB,IAAI,IAAI,IAAI,CAAC;GACjD,OAAO,sBAAsB;;EAE/B,IAAI,gBAAgB,mBAAmB,gBAAgB,eAAe;GACpE,QAAQ,QAAQ,oBAAoB,IAAI,IAAI,IAAI,CAAC;GACjD,OAAO,sBAAsB;;EAE/B,MAAM,WAAW,QAAQ,WAAW,gBAAgB,eAAe,gBAAgB,eAAe,gBAAgB;EAClH,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,mBAAmB,KAAK,QAAQ,IAAI,CAAC,UAAU;GACvE,QAAQ,QACN,oBAAoB,IAAI,IAAI,IAAI,CACjC;GACD,OAAO,sBAAsB;;EAE/B,IAAI,QAAQ,qBAAqB,mBAAmB,UAAU,IAAI,QAAQ,YAAY,YAAY;GAChG,QAAQ,QACN,oBAAoB,IAAI,IAAI,IAAI,CACjC;GACD,OAAO,sBAAsB;;EAE/B,MAAM,WAAW,MAAM,MAAM,uBAAuB,cAAc,KAAK;EACvE,MAAM,YAAY,MAAM,YAAY,IAAI,GAAG,YAAY,OAAO,SAAS,IAAI,QAAQ,KAAK,yBAAyB,CAAC,oBAAkB,IAAI,CAAC,GAAG;EAC5I,IAAI;EACJ,MAAM,WAAW,QAAQ,OAAO,kBAAkB;EAClD,IAAI,UACF,IAAI,gBAAgB,aAClB,gBAAgB,yBAAyB;GACvC,GAAG,SAAS;GACZ,uBAAuB,QAAQ,OAAO,IAAI,IAAI;GAC9C;GACD,CAAC;OACG;GACL,MAAM,gBAAgB,gBAAgB,cAAc,GAAG,OAAO,aAAa;GAC3E,gBAAgB,yBAAyB;IACvC,GAAG,SAAS,OAAO,QAAQ,aAAa,OAAO,CAAC,GAAG,OAAO;IAC1D,uBAAuB,QAAQ,OAAO,IAAI,IAAI;IAC9C,sBAAsB,cAAc;IACrC,CAAC;;OAGJ,gBAAgB,yBAAyB;GACvC,GAAG,SAAS;GACZ;GACA;GACD,CAAC;EAEJ,MAAM,QAAQ,CAEZ,qBAAqB,UAAU,IAAI,IAAI,EAEvC,qBAAqB,WAAW,cAAc,CAC/C;EACD,IAAI,QAAQ,qBAAqB,CAAC,QAAQ,WAAW,QAAQ,iBAAiB,CAAC,YAAY,KAAK,QAAQ,YAAY,EAClH,MAAM,GAAG,QAAQ,QAAQ,MAAM,MAAM,GAAG,MAAM;EAEhD,IAAI,IAAI,UAAU,UAAU,KAAK,YAAY,GAAG;GAC9C,MAAM,YAAY,IAAI,UAAU,KAAK,MAAM,EAAE,QAAQ,CAAC,KAAK,OAAO,mBAAmB,EAAE,GAAG,IAAI,KAAK,UAAU,EAAE,IAAI,SAAS,CAAC,KAAK,KAAK;GACvI,MAAM,eAAe,MAAM,YAAY,IAAI,GAAG,GAAG,IAAI,QAAQ,aAAa,yBAAyB,CAAC,KAAK,mBAAiB,CAAC,GAAG;GAC9H,MAAM,KACJ,qBACE,cACA,uBACE,KAAK,UAAU,KACf,OACA,IAAI,KACJ,EACD,CACF,CACF;;EAEH,OAAO,qBAAqB,MAAM;;CAEpC,SAAS,qBAAqB,QAAQ,EAAE,EAAE;EACxC,OAAO,EAAE,OAAO;;CAGlB,MAAM,sBAAsB;CAC5B,MAAM,mBAAmB,MAAM,YAAY;EACzC,IAAI,CAAC,gBAAgB,oBAAoB,QAAQ,EAC/C;EAEF,IAAI,KAAK,SAAS,GAChB,cAAc,KAAK,SAAS,QAAQ;OAC/B,IAAI,KAAK,SAAS,GACvB,KAAK,MAAM,SAAS,SAAS;GAC3B,IAAI,KAAK,SAAS,KAAK,KAAK,SAAS,SAAS,KAAK,KACjD,cAAc,KAAK,KAAK,QAAQ;IAElC;;CAGN,SAAS,cAAc,MAAM,SAAS;EACpC,IAAI,KAAK,SAAS,GAChB,YAAY,MAAM,QAAQ;OAE1B,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,KAAK;GAC7C,MAAM,QAAQ,KAAK,SAAS;GAC5B,IAAI,OAAO,UAAU,UAAU;GAC/B,IAAI,MAAM,SAAS,GACjB,YAAY,OAAO,QAAQ;QACtB,IAAI,MAAM,SAAS,GACxB,cAAc,OAAO,QAAQ;QACxB,IAAI,MAAM,SAAS,GACxB,cAAc,MAAM,SAAS,QAAQ;;;CAK7C,SAAS,YAAY,MAAM,SAAS;EAClC,MAAM,MAAM,KAAK;EACjB,IAAI,WAAW;EACf,IAAI,WAAW;EACf,IAAI,mBAAmB;EACvB,IAAI,UAAU;EACd,IAAI,QAAQ;EACZ,IAAI,SAAS;EACb,IAAI,QAAQ;EACZ,IAAI,kBAAkB;EACtB,IAAI,GAAG,MAAM,GAAG,YAAY,UAAU,EAAE;EACxC,KAAK,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;GAC/B,OAAO;GACP,IAAI,IAAI,WAAW,EAAE;GACrB,IAAI;QACE,MAAM,MAAM,SAAS,IAAI,WAAW;UACnC,IAAI;QACL,MAAM,MAAM,SAAS,IAAI,WAAW;UACnC,IAAI;QACL,MAAM,MAAM,SAAS,IAAI,mBAAmB;UAC3C,IAAI;QACL,MAAM,MAAM,SAAS,IAAI,UAAU;UAClC,IAAI,MAAM,OACjB,IAAI,WAAW,IAAI,EAAE,KAAK,OAAO,IAAI,WAAW,IAAI,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,OACtF,IAAI,eAAe,KAAK,GAAG;IACzB,kBAAkB,IAAI;IACtB,aAAa,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM;UAEnC,YAAY;QAET;IACL,QAAQ,GAAR;KACE,KAAK;MACH,WAAW;MACX;KAEF,KAAK;MACH,WAAW;MACX;KAEF,KAAK;MACH,mBAAmB;MACnB;KAEF,KAAK;MACH;MACA;KAEF,KAAK;MACH;MACA;KAEF,KAAK;MACH;MACA;KAEF,KAAK;MACH;MACA;KAEF,KAAK;MACH;MACA;KAEF,KAAK;MACH;MACA;;IAEJ,IAAI,MAAM,IAAI;KACZ,IAAI,IAAI,IAAI;KACZ,IAAI;KACJ,OAAO,KAAK,GAAG,KAAK;MAClB,IAAI,IAAI,OAAO,EAAE;MACjB,IAAI,MAAM,KAAK;;KAEjB,IAAI,CAAC,KAAK,CAAC,oBAAoB,KAAK,EAAE,EACpC,UAAU;;;;EAKlB,IAAI,eAAe,KAAK,GACtB,aAAa,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM;OAC9B,IAAI,oBAAoB,GAC7B,YAAY;EAEd,SAAS,aAAa;GACpB,QAAQ,KAAK,IAAI,MAAM,iBAAiB,EAAE,CAAC,MAAM,CAAC;GAClD,kBAAkB,IAAI;;EAExB,IAAI,QAAQ,QAAQ;GAClB,KAAK,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAC9B,aAAa,WAAW,YAAY,QAAQ,IAAI,QAAQ;GAE1D,KAAK,UAAU;GACf,KAAK,MAAM,KAAK;;;CAGpB,SAAS,WAAW,KAAK,QAAQ,SAAS;EACxC,QAAQ,OAAO,eAAe;EAC9B,MAAM,IAAI,OAAO,QAAQ,IAAI;EAC7B,IAAI,IAAI,GAAG;GACT,QAAQ,QAAQ,IAAI,OAAO;GAC3B,OAAO,GAAG,eAAe,QAAQ,SAAS,CAAC,GAAG,IAAI;SAC7C;GACL,MAAM,OAAO,OAAO,MAAM,GAAG,EAAE;GAC/B,MAAM,OAAO,OAAO,MAAM,IAAI,EAAE;GAChC,QAAQ,QAAQ,IAAI,KAAK;GACzB,OAAO,GAAG,eAAe,MAAM,SAAS,CAAC,GAAG,MAAM,SAAS,MAAM,MAAM,OAAO;;;CAIlF,MAAM,uBAAuB,IAAI,SAAS;CAC1C,MAAM,iBAAiB,MAAM,YAAY;EACvC,IAAI,KAAK,SAAS,GAAG;GACnB,MAAM,MAAM,QAAQ,MAAM,OAAO;GACjC,IAAI,CAAC,OAAO,KAAK,IAAI,KAAK,IAAI,QAAQ,OACpC;GAEF,KAAK,IAAI,KAAK;GACd,aAAa;IACX,MAAM,cAAc,KAAK,eAAe,QAAQ,YAAY;IAC5D,IAAI,eAAe,YAAY,SAAS,IAAI;KAC1C,IAAI,KAAK,YAAY,GACnB,eAAe,aAAa,QAAQ;KAEtC,KAAK,cAAc,qBAAqB,QAAQ,OAAO,UAAU,EAAE;MACjE,IAAI;MACJ,yBAAyB,KAAK,GAAG,YAAY;MAC7C;MACA,OAAO,QAAQ,OAAO,OAAO;MAC9B,CAAC;KACF,QAAQ,OAAO,KAAK,KAAK;;;;;CAMjC,MAAM,2BAA2B,MAAM,YAAY;EACjD,IAAI,KAAK,SAAS;QACX,MAAM,QAAQ,KAAK,OACtB,IAAI,KAAK,SAAS,KAAK,KAAK,SAAS,WAAW,CAAC,KAAK,OACtD,UAAU,KAAK,KAAK;IAClB,MAAM,MAAM,KAAK;IACjB,IAAI,IAAI,SAAS,KAAK,CAAC,IAAI,UAAU;KACnC,QAAQ,QACN,oBACE,IACA,IAAI,IACL,CACF;KACD,KAAK,MAAM,uBAAuB,IAAI,MAAM,IAAI,IAAI;WAC/C;KACL,MAAM,WAAW,OAAO,SAAS,IAAI,QAAQ;KAC7C,IAAI,sBAAsB,KAAK,SAAS,GAAG,IAC3C,SAAS,OAAO,KACd,KAAK,MAAM,uBAAuB,UAAU,OAAO,IAAI,IAAI;;;;;CAQvE,SAAS,uBAAuB,mBAAmB;EACjD,OAAO,CACL;GACE;GACA;GACA;GACA;GACA;GACA,GAAG,CAAC,gBAAgB;GACpB,GAAG,oBAAoB,CAErB,qBACA,oBACD,GAAG,EAAE;GACN;GACA;GACA;GACA;GACD,EACD;GACE,IAAI;GACJ,MAAM;GACN,OAAO;GACR,CACF;;CAEH,SAAS,YAAY,QAAQ,UAAU,EAAE,EAAE;EACzC,MAAM,UAAU,QAAQ,WAAW;EACnC,MAAM,eAAe,QAAQ,SAAS;EACtC,MAAM,oBAAoB,QAAQ,sBAAsB,QAAQ;EAChE,IAAI,CAAC,qBAAqB,QAAQ,eAChC,QAAQ,oBAAoB,GAAG,CAAC;EAElC,IAAI,QAAQ,WAAW,CAAC,cACtB,QAAQ,oBAAoB,GAAG,CAAC;EAElC,MAAM,kBAAkB,OAAO,OAAO,EAAE,EAAE,SAAS,EACjD,mBACD,CAAC;EACF,MAAM,MAAM,OAAO,SAAS,OAAO,GAAG,UAAU,QAAQ,gBAAgB,GAAG;EAC3E,MAAM,CAAC,gBAAgB,uBAAuB,uBAAuB,kBAAkB;EACvF,IAAI,QAAQ,MAAM;GAChB,MAAM,EAAE,sBAAsB;GAC9B,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,SAAS,aAAa,EACjE,QAAQ,oBAAoB,CAAC,GAAG,qBAAqB,EAAE,EAAE,aAAa;;EAG1E,UACE,KACA,OAAO,OAAO,EAAE,EAAE,iBAAiB;GACjC,gBAAgB,CACd,GAAG,gBACH,GAAG,QAAQ,kBAAkB,EAAE,CAEhC;GACD,qBAAqB,OAAO,OAC1B,EAAE,EACF,qBACA,QAAQ,uBAAuB,EAAE,CAElC;GACF,CAAC,CACH;EACD,OAAO,SAAS,KAAK,gBAAgB;;CAGvC,MAAM,eAAe;EACnB,QAAQ;EACR,SAAS;EACT,iBAAiB;EACjB,aAAa;EACb,eAAe;EACf,wBAAwB;EACxB,mBAAmB;EACnB,aAAa;EACb,WAAW;EACX,iBAAiB;EAClB;CAED,MAAM,gCAAgC,EAAE,OAAO,EAAE,EAAE;CAEnD,QAAQ,oBAAoB,OAAO;CACnC,QAAQ,kBAAkB;CAC1B,QAAQ,eAAe;CACvB,QAAQ,WAAW;CACnB,QAAQ,aAAa;CACrB,QAAQ,eAAe;CACvB,QAAQ,iBAAiB;CACzB,QAAQ,uBAAuB;CAC/B,QAAQ,uBAAuB;CAC/B,QAAQ,eAAe;CACvB,QAAQ,gBAAgB;CACxB,QAAQ,cAAc;CACtB,QAAQ,eAAe;CACvB,QAAQ,2BAA2B;CACnC,QAAQ,gBAAgB;CACxB,QAAQ,eAAe;CACvB,QAAQ,aAAa;CACrB,QAAQ,WAAW;CACnB,QAAQ,uBAAuB;CAC/B,QAAQ,eAAe;CACvB,QAAQ,SAAS;CACjB,QAAQ,aAAa;CACrB,QAAQ,cAAc;CACtB,QAAQ,kBAAkB;CAC1B,QAAQ,kBAAkB;CAC1B,QAAQ,kBAAkB;CAC1B,QAAQ,aAAa;CACrB,QAAQ,YAAY;CACpB,QAAQ,aAAa;CACrB,QAAQ,eAAe;CACvB,QAAQ,gBAAgB;CACxB,QAAQ,cAAc;CACtB,QAAQ,cAAc;CACtB,QAAQ,oBAAoB;CAC5B,QAAQ,oBAAoB;CAC5B,QAAQ,4BAA4B;CACpC,QAAQ,iBAAiB;CACzB,QAAQ,qBAAqB;CAC7B,QAAQ,WAAW;CACnB,QAAQ,WAAW;CACnB,QAAQ,oBAAoB;CAC5B,QAAQ,cAAc;CACtB,QAAQ,iBAAiB;CACzB,QAAQ,gBAAgB;CACxB,QAAQ,QAAQ;CAChB,QAAQ,WAAW;CACnB,QAAQ,kBAAkB;CAC1B,QAAQ,YAAY;CACpB,QAAQ,2BAA2B;CACnC,QAAQ,8BAA8B;CACtC,QAAQ,SAAS;CACjB,QAAQ,cAAc;CACtB,QAAQ,YAAY;CACpB,QAAQ,qBAAqB;CAC7B,QAAQ,aAAa;CACrB,QAAQ,aAAa;CACrB,QAAQ,qBAAqB;CAC7B,QAAQ,iBAAiB;CACzB,QAAQ,wBAAwB;CAChC,QAAQ,6BAA6B;CACrC,QAAQ,uBAAuB;CAC/B,QAAQ,wBAAwB;CAChC,QAAQ,uBAAuB;CAC/B,QAAQ,sBAAsB;CAC9B,QAAQ,2BAA2B;CACnC,QAAQ,8BAA8B;CACtC,QAAQ,sBAAsB;CAC9B,QAAQ,2BAA2B;CACnC,QAAQ,oBAAoB;CAC5B,QAAQ,sBAAsB;CAC9B,QAAQ,yBAAyB;CACjC,QAAQ,uBAAuB;CAC/B,QAAQ,wBAAwB;CAChC,QAAQ,aAAa;CACrB,QAAQ,2BAA2B;CACnC,QAAQ,yBAAyB;CACjC,QAAQ,qCAAqC;CAC7C,QAAQ,wBAAwB;CAChC,QAAQ,yBAAyB;CACjC,QAAQ,kBAAkB;CAC1B,QAAQ,gBAAgB;CACxB,QAAQ,qBAAqB;CAC7B,QAAQ,UAAU;CAClB,QAAQ,WAAW;CACnB,QAAQ,aAAa;CACrB,QAAQ,WAAW;CACnB,QAAQ,yBAAyB;CACjC,QAAQ,kBAAkB;CAC1B,QAAQ,qBAAqB;CAC7B,QAAQ,sBAAsB;CAC9B,QAAQ,iBAAiB;CACzB,QAAQ,qBAAqB;CAC7B,QAAQ,cAAc;CACtB,QAAQ,gBAAgB;CACxB,QAAQ,aAAa;CACrB,QAAQ,kBAAkB;CAC1B,QAAQ,wBAAwB;CAChC,QAAQ,kBAAkB;CAC1B,QAAQ,iBAAiB;CACzB,QAAQ,wBAAwB;CAChC,QAAQ,qBAAqB;CAC7B,QAAQ,iBAAiB;CACzB,QAAQ,4BAA4B;CACpC,QAAQ,oBAAoB;CAC5B,QAAQ,qBAAqB;CAC7B,QAAQ,4BAA4B;CACpC,QAAQ,yBAAyB;CACjC,QAAQ,yBAAyB;CACjC,QAAQ,qBAAqB;CAC7B,QAAQ,eAAe;CACvB,QAAQ,gBAAgB;CACxB,QAAQ,cAAc;CACtB,QAAQ,mBAAmB;CAC3B,QAAQ,sBAAsB;CAC9B,QAAQ,iBAAiB;CACzB,QAAQ,SAAS;CACjB,QAAQ,SAAS;CACjB,QAAQ,UAAU;CAClB,QAAQ,mBAAmB;CAC3B,QAAQ,UAAU;CAClB,QAAQ,yBAAyB;CACjC,QAAQ,oBAAoB;CAC5B,QAAQ,aAAa;CACrB,QAAQ,YAAY;CACpB,QAAQ,oBAAoB;CAC5B,QAAQ,yBAAyB;CACjC,QAAQ,uBAAuB;CAC/B,QAAQ,sBAAsB;CAC9B,QAAQ,iBAAiB;CACzB,QAAQ,kBAAkB;CAC1B,QAAQ,sBAAsB;CAC9B,QAAQ,YAAY;CACpB,QAAQ,gBAAgB;CACxB,QAAQ,mBAAmB;CAC3B,QAAQ,sBAAsB;CAC9B,QAAQ,iBAAiB;CACzB,QAAQ,cAAc;CACtB,QAAQ,0BAA0B;CAClC,QAAQ,eAAe;CACvB,QAAQ,eAAe;CACvB,QAAQ,wBAAwB;CAChC,QAAQ,wBAAwB;CAChC,QAAQ,qBAAqB;CAC7B,QAAQ,kBAAkB;CAC1B,QAAQ,kBAAkB;;;;;;;;;;CC/lN1B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,MAAM,CAAC;CAE7D,IAAI,SAAA,gBAAA;CACJ,IAAI,SAAA,gBAAA;CACJ,IAAI,SAAA,UAAiB,gBAAgB;CACrC,IAAI,eAAA,uBAAA;CACJ,IAAI,cAAA,oBAAA;CAEJ,MAAM,WAA2B,uBAAO,WAAY;CACpD,MAAM,WAA2B,uBAAO,WAAY;CACpD,MAAM,WAA2B,uBAAO,WAAY;CACpD,MAAM,aAA6B,uBAAO,YAAa;CACvD,MAAM,kBAAkC,uBACtC,iBACD;CACD,MAAM,aAA6B,uBAAO,YAAa;CACvD,MAAM,eAA+B,uBAAO,cAAe;CAC3D,MAAM,uBAAuC,uBAC3C,qBACD;CACD,MAAM,eAA+B,uBAAO,cAAe;CAC3D,MAAM,uBAAuC,uBAC3C,qBACD;CACD,MAAM,iBAAiC,uBACrC,qBACD;CACD,MAAM,cAA8B,uBAClC,kBACD;CACD,MAAM,gBAAgC,uBACpC,oBACD;CACD,MAAM,oBAAoC,uBACxC,mBACD;CACD,MAAM,4BAA4C,uBAChD,0BACD;CACD,MAAM,oBAAoC,uBACxC,mBACD;CACD,MAAM,iBAAiC,uBACrC,gBACD;CACD,MAAM,kBAAkC,uBACtC,iBACD;CACD,MAAM,cAA8B,uBAAO,aAAc;CACzD,MAAM,cAA8B,uBAAO,aAAc;CACzD,MAAM,eAA+B,uBAAO,cAAe;CAC3D,MAAM,oBAAoC,uBACxC,kBACD;CACD,MAAM,cAA8B,uBAAO,aAAc;CACzD,MAAM,kBAAkC,uBACtC,iBACD;CACD,MAAM,kBAAkC,uBACtC,iBACD;CACD,MAAM,kBAAkC,uBACtC,iBACD;CACD,MAAM,uBAAuC,uBAC3C,qBACD;CACD,MAAM,cAA8B,uBAAO,aAAc;CACzD,MAAM,WAA2B,uBAAO,WAAY;CACpD,MAAM,aAA6B,uBAAO,aAAc;CACxD,MAAM,iBAAiC,uBACrC,eACD;CACD,MAAM,qBAAqC,uBACzC,mBACD;CACD,MAAM,gBAAgC,uBAAO,cAAe;CAC5D,MAAM,eAA+B,uBAAO,aAAc;CAC1D,MAAM,WAA2B,uBAAO,UAAW;CACnD,MAAM,QAAwB,uBAAO,QAAS;CAC9C,MAAM,SAAyB,uBAAO,QAAS;CAC/C,MAAM,YAA4B,uBAAO,WAAY;CACrD,MAAM,eAA+B,uBAAO,aAAc;CAC1D,MAAM,gBAAgB;GACnB,WAAW;GACX,WAAW;GACX,WAAW;GACX,aAAa;GACb,kBAAkB;GAClB,aAAa;GACb,eAAe;GACf,uBAAuB;GACvB,eAAe;GACf,uBAAuB;GACvB,iBAAiB;GACjB,cAAc;GACd,gBAAgB;GAChB,oBAAoB;GACpB,4BAA4B;GAC5B,oBAAoB;GACpB,iBAAiB;GACjB,kBAAkB;GAClB,cAAc;GACd,cAAc;GACd,eAAe;GACf,oBAAoB;GACpB,cAAc;GACd,kBAAkB;GAClB,kBAAkB;GAClB,kBAAkB;GAClB,uBAAuB;GACvB,cAAc;GACd,WAAW;GACX,aAAa;GACb,iBAAiB;GACjB,qBAAqB;GACrB,gBAAgB;GAChB,eAAe;GACf,WAAW;GACX,QAAQ;GACR,SAAS;GACT,YAAY;GACZ,eAAe;EACjB;CACD,SAAS,uBAAuB,SAAS;EACvC,OAAO,sBAAsB,QAAQ,CAAC,SAAS,MAAM;GACnD,cAAc,KAAK,QAAQ;IAC3B;;CAGJ,MAAM,aAAa;EACjB,QAAQ;EACR,KAAK;EACL,OAAO;EACP,KAAK;EACL,WAAW;EACX,KAAK;EACN;CACD,MAAM,YAAY;EAChB,QAAQ;EACR,KAAK;EACL,WAAW;EACX,KAAK;EACL,QAAQ;EACR,KAAK;EACL,WAAW;EACX,KAAK;EACL,qBAAqB;EACrB,KAAK;EACL,iBAAiB;EACjB,KAAK;EACL,aAAa;EACb,KAAK;EACL,aAAa;EACb,KAAK;EACL,uBAAuB;EACvB,KAAK;EACL,MAAM;EACN,KAAK;EACL,aAAa;EACb,MAAM;EACN,OAAO;EACP,MAAM;EACN,aAAa;EACb,MAAM;EACN,cAAc;EACd,MAAM;EACN,sBAAsB;EACtB,MAAM;EACN,wBAAwB;EACxB,MAAM;EACN,eAAe;EACf,MAAM;EACN,uBAAuB;EACvB,MAAM;EACN,0BAA0B;EAC1B,MAAM;EACN,6BAA6B;EAC7B,MAAM;EACN,uBAAuB;EACvB,MAAM;EACN,sBAAsB;EACtB,MAAM;EACN,uBAAuB;EACvB,MAAM;EACN,mBAAmB;EACnB,MAAM;EACN,4BAA4B;EAC5B,MAAM;EACN,0BAA0B;EAC1B,MAAM;EACN,uBAAuB;EACvB,MAAM;EACP;CACD,MAAM,eAAe;EACnB,WAAW;EACX,KAAK;EACL,aAAa;EACb,KAAK;EACL,QAAQ;EACR,KAAK;EACL,YAAY;EACZ,KAAK;EACN;CACD,MAAM,gBAAgB;EACpB,gBAAgB;EAChB,KAAK;EACL,kBAAkB;EAClB,KAAK;EACL,aAAa;EACb,KAAK;EACL,iBAAiB;EACjB,KAAK;EACN;CACD,MAAM,UAAU;EACd,OAAO;GAAE,MAAM;GAAG,QAAQ;GAAG,QAAQ;GAAG;EACxC,KAAK;GAAE,MAAM;GAAG,QAAQ;GAAG,QAAQ;GAAG;EACtC,QAAQ;EACT;CACD,SAAS,WAAW,UAAU,SAAS,IAAI;EACzC,OAAO;GACL,MAAM;GACN;GACA;GACA,yBAAyB,IAAI,KAAK;GAClC,YAAY,EAAE;GACd,YAAY,EAAE;GACd,QAAQ,EAAE;GACV,SAAS,EAAE;GACX,QAAQ,EAAE;GACV,OAAO;GACP,aAAa,KAAK;GAClB,KAAK;GACN;;CAEH,SAAS,gBAAgB,SAAS,KAAK,OAAO,UAAU,WAAW,cAAc,YAAY,UAAU,OAAO,kBAAkB,OAAO,cAAc,OAAO,MAAM,SAAS;EACzK,IAAI,SAAS;GACX,IAAI,SAAS;IACX,QAAQ,OAAO,WAAW;IAC1B,QAAQ,OAAO,oBAAoB,QAAQ,OAAO,YAAY,CAAC;UAE/D,QAAQ,OAAO,eAAe,QAAQ,OAAO,YAAY,CAAC;GAE5D,IAAI,YACF,QAAQ,OAAO,gBAAgB;;EAGnC,OAAO;GACL,MAAM;GACN;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;;CAEH,SAAS,sBAAsB,UAAU,MAAM,SAAS;EACtD,OAAO;GACL,MAAM;GACN;GACA;GACD;;CAEH,SAAS,uBAAuB,YAAY,MAAM,SAAS;EACzD,OAAO;GACL,MAAM;GACN;GACA;GACD;;CAEH,SAAS,qBAAqB,KAAK,OAAO;EACxC,OAAO;GACL,MAAM;GACN,KAAK;GACL,KAAK,OAAO,SAAS,IAAI,GAAG,uBAAuB,KAAK,KAAK,GAAG;GAChE;GACD;;CAEH,SAAS,uBAAuB,SAAS,WAAW,OAAO,MAAM,SAAS,YAAY,GAAG;EACvF,OAAO;GACL,MAAM;GACN;GACA;GACA;GACA,WAAW,WAAW,IAAI;GAC3B;;CAEH,SAAS,oBAAoB,SAAS,KAAK;EACzC,OAAO;GACL,MAAM;GACN;GACA,SAAS,OAAO,SAAS,QAAQ,GAAG,uBAAuB,SAAS,OAAO,IAAI,GAAG;GACnF;;CAEH,SAAS,yBAAyB,UAAU,MAAM,SAAS;EACzD,OAAO;GACL,MAAM;GACN;GACA;GACD;;CAEH,SAAS,qBAAqB,QAAQ,OAAO,EAAE,EAAE,MAAM,SAAS;EAC9D,OAAO;GACL,MAAM;GACN;GACA;GACA,WAAW;GACZ;;CAEH,SAAS,yBAAyB,QAAQ,UAAU,KAAK,GAAG,UAAU,OAAO,SAAS,OAAO,MAAM,SAAS;EAC1G,OAAO;GACL,MAAM;GACN;GACA;GACA;GACA;GACA;GACD;;CAEH,SAAS,4BAA4B,MAAM,YAAY,WAAW,UAAU,MAAM;EAChF,OAAO;GACL,MAAM;GACN;GACA;GACA;GACA;GACA,KAAK;GACN;;CAEH,SAAS,sBAAsB,OAAO,OAAO,oBAAoB,OAAO,UAAU,OAAO;EACvF,OAAO;GACL,MAAM;GACN;GACA;GACA;GACA;GACA,iBAAiB;GACjB,KAAK;GACN;;CAEH,SAAS,qBAAqB,MAAM;EAClC,OAAO;GACL,MAAM;GACN;GACA,KAAK;GACN;;CAEH,SAAS,sBAAsB,UAAU;EACvC,OAAO;GACL,MAAM;GACN;GACA,KAAK;GACN;;CAEH,SAAS,kBAAkB,MAAM,YAAY,WAAW;EACtD,OAAO;GACL,MAAM;GACN;GACA;GACA;GACA,KAAK;GACN;;CAEH,SAAS,2BAA2B,MAAM,OAAO;EAC/C,OAAO;GACL,MAAM;GACN;GACA;GACA,KAAK;GACN;;CAEH,SAAS,yBAAyB,aAAa;EAC7C,OAAO;GACL,MAAM;GACN;GACA,KAAK;GACN;;CAEH,SAAS,sBAAsB,SAAS;EACtC,OAAO;GACL,MAAM;GACN;GACA,KAAK;GACN;;CAEH,SAAS,eAAe,KAAK,aAAa;EACxC,OAAO,OAAO,cAAc,eAAe;;CAE7C,SAAS,oBAAoB,KAAK,aAAa;EAC7C,OAAO,OAAO,cAAc,eAAe;;CAE7C,SAAS,eAAe,MAAM,EAAE,QAAQ,cAAc,SAAS;EAC7D,IAAI,CAAC,KAAK,SAAS;GACjB,KAAK,UAAU;GACf,aAAa,eAAe,OAAO,KAAK,YAAY,CAAC;GACrD,OAAO,WAAW;GAClB,OAAO,oBAAoB,OAAO,KAAK,YAAY,CAAC;;;CAIxD,MAAM,wBAAwB,IAAI,WAAW,CAAC,KAAK,IAAI,CAAC;CACxD,MAAM,yBAAyB,IAAI,WAAW,CAAC,KAAK,IAAI,CAAC;CACzD,SAAS,eAAe,GAAG;EACzB,OAAO,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,KAAK;;CAEhD,SAAS,aAAa,GAAG;EACvB,OAAO,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM;;CAE9D,SAAS,kBAAkB,GAAG;EAC5B,OAAO,MAAM,MAAM,MAAM,MAAM,aAAa,EAAE;;CAEhD,SAAS,YAAY,KAAK;EACxB,MAAM,MAAM,IAAI,WAAW,IAAI,OAAO;EACtC,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAC9B,IAAI,KAAK,IAAI,WAAW,EAAE;EAE5B,OAAO;;CAET,MAAM,YAAY;EAChB,OAAO,IAAI,WAAW;GAAC;GAAI;GAAI;GAAI;GAAI;GAAI;GAAG,CAAC;EAE/C,UAAU,IAAI,WAAW;GAAC;GAAI;GAAI;GAAG,CAAC;EAEtC,YAAY,IAAI,WAAW;GAAC;GAAI;GAAI;GAAG,CAAC;EAExC,WAAW,IAAI,WAAW;GAAC;GAAI;GAAI;GAAK;GAAI;GAAK;GAAK;GAAK;GAAI,CAAC;EAEhE,UAAU,IAAI,WAAW;GAAC;GAAI;GAAI;GAAK;GAAK;GAAK;GAAK;GAAI,CAAC;EAE3D,UAAU,IAAI,WAAW;GAAC;GAAI;GAAI;GAAK;GAAK;GAAK;GAAK;GAAI,CAAC;EAE3D,aAAa,IAAI,WAAW;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAAC;EAEH;CACD,IAAM,YAAN,MAAgB;EACd,YAAY,OAAO,KAAK;GACtB,KAAK,QAAQ;GACb,KAAK,MAAM;;GAEX,KAAK,QAAQ;;GAEb,KAAK,SAAS;;GAEd,KAAK,eAAe;;GAEpB,KAAK,QAAQ;;GAEb,KAAK,cAAc;;GAEnB,KAAK,YAAY;;GAEjB,KAAK,WAAW;;GAEhB,KAAK,QAAQ;;GAEb,KAAK,SAAS;;GAEd,KAAK,WAAW,EAAE;GAClB,KAAK,OAAO;GACZ,KAAK,gBAAgB;GACrB,KAAK,iBAAiB;GACtB,KAAK,iBAAiB;GACtB,KAAK,kBAAkB,KAAK;GAC5B,KAAK,gBAAgB;GAEnB,KAAK,gBAAgB,IAAI,OAAO,cAC9B,OAAO,iBACN,IAAI,aAAa,KAAK,cAAc,IAAI,SAAS,CACnD;;EAGL,IAAI,YAAY;GACd,OAAO,KAAK,SAAS,KAAK,KAAK,MAAM,WAAW;;EAElD,QAAQ;GACN,KAAK,QAAQ;GACb,KAAK,OAAO;GACZ,KAAK,SAAS;GACd,KAAK,eAAe;GACpB,KAAK,QAAQ;GACb,KAAK,YAAY;GACjB,KAAK,WAAW;GAChB,KAAK,kBAAkB,KAAK;GAC5B,KAAK,SAAS,SAAS;GACvB,KAAK,gBAAgB;GACrB,KAAK,iBAAiB;;;;;;;;EAQxB,OAAO,OAAO;GACZ,IAAI,OAAO;GACX,IAAI,SAAS,QAAQ;GACrB,MAAM,SAAS,KAAK,SAAS;GAC7B,IAAI,IAAI;GACR,IAAI,SAAS,KAAK;IAChB,IAAI,IAAI;IACR,IAAI,IAAI;IACR,OAAO,IAAI,IAAI,GAAG;KAChB,MAAM,IAAI,IAAI,MAAM;KACpB,KAAK,SAAS,KAAK,QAAQ,IAAI,IAAI,IAAI;;IAEzC,IAAI;UAEJ,KAAK,IAAI,IAAI,SAAS,GAAG,KAAK,GAAG,KAC/B,IAAI,QAAQ,KAAK,SAAS,IAAI;IAC5B,IAAI;IACJ;;GAIN,IAAI,KAAK,GAAG;IACV,OAAO,IAAI;IACX,SAAS,QAAQ,KAAK,SAAS;;GAEjC,OAAO;IACL;IACA;IACA,QAAQ;IACT;;EAEH,OAAO;GACL,OAAO,KAAK,OAAO,WAAW,KAAK,QAAQ,EAAE;;EAE/C,UAAU,GAAG;GACX,IAAI,MAAM,IAAI;IACZ,IAAI,KAAK,QAAQ,KAAK,cACpB,KAAK,IAAI,OAAO,KAAK,cAAc,KAAK,MAAM;IAEhD,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK;UACpB,IAAI,MAAM,IACf,KAAK,aAAa;QACb,IAAI,CAAC,KAAK,UAAU,MAAM,KAAK,cAAc,IAAI;IACtD,KAAK,QAAQ;IACb,KAAK,iBAAiB;IACtB,KAAK,uBAAuB,EAAE;;;EAGlC,uBAAuB,GAAG;GACxB,IAAI,MAAM,KAAK,cAAc,KAAK,iBAChC,IAAI,KAAK,mBAAmB,KAAK,cAAc,SAAS,GAAG;IACzD,MAAM,QAAQ,KAAK,QAAQ,IAAI,KAAK,cAAc;IAClD,IAAI,QAAQ,KAAK,cACf,KAAK,IAAI,OAAO,KAAK,cAAc,MAAM;IAE3C,KAAK,QAAQ;IACb,KAAK,eAAe;UAEpB,KAAK;QAEF,IAAI,KAAK,UAAU;IACxB,KAAK,QAAQ;IACb,KAAK,cAAc,EAAE;UAChB;IACL,KAAK,QAAQ;IACb,KAAK,UAAU,EAAE;;;EAGrB,mBAAmB,GAAG;GACpB,IAAI,MAAM,KAAK,eAAe,IAAI;IAChC,KAAK,QAAQ;IACb,KAAK,iBAAiB;IACtB,KAAK,wBAAwB,EAAE;;;EAGnC,wBAAwB,GAAG;GACzB,IAAI,MAAM,KAAK,eAAe,KAAK,iBACjC,IAAI,KAAK,mBAAmB,KAAK,eAAe,SAAS,GAAG;IAC1D,KAAK,IAAI,gBAAgB,KAAK,cAAc,KAAK,QAAQ,EAAE;IAC3D,IAAI,KAAK,UACP,KAAK,QAAQ;SAEb,KAAK,QAAQ;IAEf,KAAK,eAAe,KAAK,QAAQ;UAEjC,KAAK;QAEF;IACL,KAAK,QAAQ;IACb,KAAK,mBAAmB,EAAE;;;EAG9B,0BAA0B,GAAG;GAC3B,MAAM,QAAQ,KAAK,kBAAkB,KAAK,gBAAgB;GAQ1D,IAAI,EAPY,QAEd,kBAAkB,EAAE,IAGnB,IAAI,QAAQ,KAAK,gBAAgB,KAAK,iBAGvC,KAAK,WAAW;QACX,IAAI,CAAC,OAAO;IACjB,KAAK;IACL;;GAEF,KAAK,gBAAgB;GACrB,KAAK,QAAQ;GACb,KAAK,eAAe,EAAE;;;EAGxB,cAAc,GAAG;GACf,IAAI,KAAK,kBAAkB,KAAK,gBAAgB,QAAQ;IACtD,IAAI,MAAM,MAAM,aAAa,EAAE,EAAE;KAC/B,MAAM,YAAY,KAAK,QAAQ,KAAK,gBAAgB;KACpD,IAAI,KAAK,eAAe,WAAW;MACjC,MAAM,cAAc,KAAK;MACzB,KAAK,QAAQ;MACb,KAAK,IAAI,OAAO,KAAK,cAAc,UAAU;MAC7C,KAAK,QAAQ;;KAEf,KAAK,eAAe,YAAY;KAChC,KAAK,sBAAsB,EAAE;KAC7B,KAAK,WAAW;KAChB;;IAEF,KAAK,gBAAgB;;GAEvB,KAAK,IAAI,QAAQ,KAAK,gBAAgB,KAAK,gBACzC,KAAK,iBAAiB;QACjB,IAAI,KAAK,kBAAkB;QAC5B,KAAK,oBAAoB,UAAU,YAAY,KAAK,oBAAoB,UAAU,eAAe,CAAC,KAAK;SACrG,MAAM,IACR,KAAK,aAAa;UACb,IAAI,CAAC,KAAK,UAAU,MAAM,KAAK,cAAc,IAAI;MACtD,KAAK,QAAQ;MACb,KAAK,iBAAiB;MACtB,KAAK,uBAAuB,EAAE;;WAE3B,IAAI,KAAK,cAAc,GAAG,EAC/B,KAAK,gBAAgB;UAGvB,KAAK,gBAAgB,OAAO,MAAM,GAAG;;EAGzC,mBAAmB,GAAG;GACpB,IAAI,MAAM,UAAU,MAAM,KAAK;QACzB,EAAE,KAAK,kBAAkB,UAAU,MAAM,QAAQ;KACnD,KAAK,QAAQ;KACb,KAAK,kBAAkB,UAAU;KACjC,KAAK,gBAAgB;KACrB,KAAK,eAAe,KAAK,QAAQ;;UAE9B;IACL,KAAK,gBAAgB;IACrB,KAAK,QAAQ;IACb,KAAK,mBAAmB,EAAE;;;;;;;;;EAS9B,cAAc,GAAG;GACf,OAAO,EAAE,KAAK,QAAQ,KAAK,OAAO,QAAQ;IACxC,MAAM,KAAK,KAAK,OAAO,WAAW,KAAK,MAAM;IAC7C,IAAI,OAAO,IACT,KAAK,SAAS,KAAK,KAAK,MAAM;IAEhC,IAAI,OAAO,GACT,OAAO;;GAGX,KAAK,QAAQ,KAAK,OAAO,SAAS;GAClC,OAAO;;;;;;;;;;EAUT,mBAAmB,GAAG;GACpB,IAAI,MAAM,KAAK,gBAAgB,KAAK;QAC9B,EAAE,KAAK,kBAAkB,KAAK,gBAAgB,QAAQ;KACxD,IAAI,KAAK,oBAAoB,UAAU,UACrC,KAAK,IAAI,QAAQ,KAAK,cAAc,KAAK,QAAQ,EAAE;UAEnD,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,QAAQ,EAAE;KAEvD,KAAK,gBAAgB;KACrB,KAAK,eAAe,KAAK,QAAQ;KACjC,KAAK,QAAQ;;UAEV,IAAI,KAAK,kBAAkB;QAC5B,KAAK,cAAc,KAAK,gBAAgB,GAAG,EAC7C,KAAK,gBAAgB;UAElB,IAAI,MAAM,KAAK,gBAAgB,KAAK,gBAAgB,IACzD,KAAK,gBAAgB;;EAGzB,aAAa,UAAU,QAAQ;GAC7B,KAAK,YAAY,UAAU,OAAO;GAClC,KAAK,QAAQ;;EAEf,YAAY,UAAU,QAAQ;GAC5B,KAAK,WAAW;GAChB,KAAK,kBAAkB;GACvB,KAAK,gBAAgB;;EAEvB,mBAAmB,GAAG;GACpB,IAAI,MAAM,IAAI;IACZ,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B,IAAI,MAAM,IAAI;IACnB,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B,IAAI,eAAe,EAAE,EAAE;IAC5B,KAAK,eAAe,KAAK;IACzB,IAAI,KAAK,SAAS,GAChB,KAAK,QAAQ;SACR,IAAI,KAAK,WACd,KAAK,QAAQ;SACR,IAAI,CAAC,KAAK,OACf,IAAI,MAAM,KACR,KAAK,QAAQ;SAEb,KAAK,QAAQ,MAAM,MAAM,KAAK;SAGhC,KAAK,QAAQ;UAEV,IAAI,MAAM,IACf,KAAK,QAAQ;QACR;IACL,KAAK,QAAQ;IACb,KAAK,UAAU,EAAE;;;EAGrB,eAAe,GAAG;GAChB,IAAI,kBAAkB,EAAE,EACtB,KAAK,cAAc,EAAE;;EAGzB,sBAAsB,GAAG;GACvB,IAAI,kBAAkB,EAAE,EAAE;IACxB,MAAM,MAAM,KAAK,OAAO,MAAM,KAAK,cAAc,KAAK,MAAM;IAC5D,IAAI,QAAQ,YACV,KAAK,YAAY,YAAY,OAAO,IAAI,EAAE,EAAE;IAE9C,KAAK,cAAc,EAAE;;;EAGzB,cAAc,GAAG;GACf,KAAK,IAAI,cAAc,KAAK,cAAc,KAAK,MAAM;GACrD,KAAK,eAAe;GACpB,KAAK,QAAQ;GACb,KAAK,oBAAoB,EAAE;;EAE7B,0BAA0B,GAAG;GAC3B,IAAI,aAAa,EAAE;QAAS,IAAI,MAAM,IAAI;IAEtC,KAAK,IAAI,MAAM,IAAI,KAAK,MAAM;IAEhC,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B;IACL,KAAK,QAAQ,eAAe,EAAE,GAAG,IAAI;IACrC,KAAK,eAAe,KAAK;;;EAG7B,sBAAsB,GAAG;GACvB,IAAI,MAAM,MAAM,aAAa,EAAE,EAAE;IAC/B,KAAK,IAAI,WAAW,KAAK,cAAc,KAAK,MAAM;IAClD,KAAK,eAAe;IACpB,KAAK,QAAQ;IACb,KAAK,yBAAyB,EAAE;;;EAGpC,yBAAyB,GAAG;GAC1B,IAAI,MAAM,IAAI;IACZ,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,oBAAoB,GAAG;GACrB,IAAI,MAAM,IAAI;IACZ,KAAK,IAAI,aAAa,KAAK,MAAM;IACjC,IAAI,KAAK,UACP,KAAK,QAAQ;SAEb,KAAK,QAAQ;IAEf,KAAK,eAAe,KAAK,QAAQ;UAC5B,IAAI,MAAM,IAAI;IACnB,KAAK,QAAQ;IACb,IAAI,KAAK,MAAM,KAAK,IAClB,KAAK,IAAI,MAAM,IAAI,KAAK,MAAM;UAE3B,IAAI,MAAM,MAAM,KAAK,MAAM,KAAK,IAAI;IACzC,KAAK,IAAI,aAAa,KAAK,MAAM;IACjC,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK;UACpB,IAAI,CAAC,aAAa,EAAE,EAAE;IAC3B,IAAI,MAAM,IACR,KAAK,IAAI,MACP,IACA,KAAK,MACN;IAEH,KAAK,gBAAgB,EAAE;;;EAG3B,gBAAgB,GAAG;GACjB,IAAI,MAAM,OAAO,KAAK,MAAM,KAAK,IAAI;IACnC,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK;UACpB,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;IACvD,KAAK,IAAI,UAAU,KAAK,OAAO,KAAK,QAAQ,EAAE;IAC9C,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B;IACL,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK;;;EAG7B,sBAAsB,GAAG;GACvB,IAAI,MAAM,IAAI;IACZ,KAAK,IAAI,iBAAiB,KAAK,MAAM;IACrC,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;IACjC,KAAK,WAAW;UACX,IAAI,CAAC,aAAa,EAAE,EAAE;IAC3B,KAAK,QAAQ;IACb,KAAK,oBAAoB,EAAE;;;EAG/B,gBAAgB,GAAG;GACjB,IAAI,MAAM,MAAM,kBAAkB,EAAE,EAAE;IACpC,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,MAAM;IACpD,KAAK,kBAAkB,EAAE;UACpB,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IACvC,KAAK,IAAI,MACP,IACA,KAAK,MACN;;EAGL,eAAe,GAAG;GAChB,IAAI,MAAM,MAAM,kBAAkB,EAAE,EAAE;IACpC,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,MAAM;IACjD,KAAK,kBAAkB,EAAE;UACpB,IAAI,MAAM,IAAI;IACnB,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,MAAM;IACjD,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B,IAAI,MAAM,IAAI;IACnB,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,MAAM;IACjD,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,cAAc,GAAG;GACf,IAAI,MAAM,MAAM,kBAAkB,EAAE,EAAE;IACpC,KAAK,IAAI,SAAS,KAAK,cAAc,KAAK,MAAM;IAChD,KAAK,kBAAkB,EAAE;UACpB,IAAI,MAAM,IACf,KAAK,QAAQ;QACR,IAAI,MAAM,IAAI;IACnB,KAAK,IAAI,SAAS,KAAK,cAAc,KAAK,MAAM;IAChD,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,qBAAqB,GAAG;GACtB,IAAI,MAAM,IACR,KAAK,QAAQ;QACR,IAAI,MAAM,MAAM,kBAAkB,EAAE,EAAE;IAC3C,KAAK,IAAI,SAAS,KAAK,cAAc,KAAK,QAAQ,EAAE;IACpD,KAAK,kBAAkB,EAAE;IAEvB,KAAK,IAAI,MACP,IACA,KAAK,MACN;;;EAIP,mBAAmB,GAAG;GACpB,IAAI,MAAM,MAAM,kBAAkB,EAAE,EAAE;IACpC,KAAK,IAAI,cAAc,KAAK,cAAc,KAAK,MAAM;IACrD,KAAK,kBAAkB,EAAE;UACpB,IAAI,MAAM,IAAI;IACnB,KAAK,IAAI,cAAc,KAAK,cAAc,KAAK,MAAM;IACrD,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,kBAAkB,GAAG;GACnB,KAAK,eAAe,KAAK;GACzB,KAAK,QAAQ;GACb,KAAK,IAAI,gBAAgB,KAAK,MAAM;GACpC,KAAK,mBAAmB,EAAE;;EAE5B,mBAAmB,GAAG;GACpB,IAAI,MAAM,IACR,KAAK,QAAQ;QACR,IAAI,MAAM,MAAM,MAAM,IAAI;IAC/B,KAAK,IAAI,YAAY,GAAG,KAAK,aAAa;IAC1C,KAAK,eAAe;IACpB,KAAK,QAAQ;IACb,KAAK,oBAAoB,EAAE;UACtB,IAAI,CAAC,aAAa,EAAE,EAAE;IAC3B,KAAK,IAAI,YAAY,GAAG,KAAK,aAAa;IAC1C,KAAK,gBAAgB,EAAE;;;EAG3B,qBAAqB,GAAG;GACtB,IAAI,MAAM,IAAI;IACZ,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B,IAAI,MAAM,IAAI;IACnB,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;UAC5B,IAAI,CAAC,aAAa,EAAE,EAAE;IAC3B,KAAK,eAAe,KAAK;IACzB,KAAK,QAAQ;IACb,KAAK,yBAAyB,EAAE;;;EAGpC,kBAAkB,GAAG,OAAO;GAC1B,IAAI,MAAM,SAAS,OAAO;IACxB,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,MAAM;IACpD,KAAK,eAAe;IACpB,KAAK,IAAI,YACP,UAAU,KAAK,IAAI,GACnB,KAAK,QAAQ,EACd;IACD,KAAK,QAAQ;UACR,IAAI,MAAM,IACf,KAAK,aAAa;;EAGtB,6BAA6B,GAAG;GAC9B,KAAK,kBAAkB,GAAG,GAAG;;EAE/B,6BAA6B,GAAG;GAC9B,KAAK,kBAAkB,GAAG,GAAG;;EAE/B,yBAAyB,GAAG;GAC1B,IAAI,aAAa,EAAE,IAAI,MAAM,IAAI;IAC/B,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,MAAM;IACpD,KAAK,eAAe;IACpB,KAAK,IAAI,YAAY,GAAG,KAAK,MAAM;IACnC,KAAK,QAAQ;IACb,KAAK,oBAAoB,EAAE;UACtB,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAC/D,KAAK,IAAI,MACP,IACA,KAAK,MACN;QACI,IAAI,MAAM,IACf,KAAK,aAAa;;EAGtB,uBAAuB,GAAG;GACxB,IAAI,MAAM,IAAI;IACZ,KAAK,QAAQ;IACb,KAAK,gBAAgB;UAErB,KAAK,QAAQ,MAAM,KAAK,KAAK;;EAGjC,mBAAmB,GAAG;GACpB,IAAI,MAAM,MAAM,KAAK,cAAc,GAAG,EAAE;IACtC,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,6BAA6B,GAAG;GAC9B,IAAI,MAAM,MAAM,KAAK,cAAc,GAAG,EAAE;IACtC,KAAK,IAAI,wBAAwB,KAAK,cAAc,KAAK,MAAM;IAC/D,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,mBAAmB,GAAG;GACpB,IAAI,MAAM,IAAI;IACZ,KAAK,QAAQ;IACb,KAAK,kBAAkB,UAAU;IACjC,KAAK,gBAAgB;IACrB,KAAK,eAAe,KAAK,QAAQ;UAEjC,KAAK,QAAQ;;EAGjB,sBAAsB,GAAG;GACvB,IAAI,MAAM,MAAM,KAAK,cAAc,GAAG,EAAE;IACtC,KAAK,IAAI,UAAU,KAAK,cAAc,KAAK,MAAM;IACjD,KAAK,QAAQ;IACb,KAAK,eAAe,KAAK,QAAQ;;;EAGrC,oBAAoB,GAAG;GACrB,IAAI,MAAM,UAAU,UAAU,IAC5B,KAAK,aAAa,UAAU,WAAW,EAAE;QACpC,IAAI,MAAM,UAAU,SAAS,IAClC,KAAK,aAAa,UAAU,UAAU,EAAE;QACnC;IACL,KAAK,QAAQ;IACb,KAAK,eAAe,EAAE;;;EAG1B,oBAAoB,GAAG;GACrB,IAAI,MAAM,UAAU,SAAS,IAC3B,KAAK,aAAa,UAAU,UAAU,EAAE;QACnC,IAAI,MAAM,UAAU,YAAY,IACrC,KAAK,aAAa,UAAU,aAAa,EAAE;QACtC;IACL,KAAK,QAAQ;IACb,KAAK,eAAe,EAAE;;;EAG1B,cAAc;GAEV,KAAK,YAAY,KAAK;GACtB,KAAK,QAAQ;GACb,KAAK,cAAc,KAAK;GACxB,KAAK,cAAc,YACjB,KAAK,cAAc,KAAK,KAAK,cAAc,KAAK,OAAO,aAAa,SAAS,OAAO,aAAa,UAClG;;EAGL,gBAAgB;GACd;IACE,MAAM,SAAS,KAAK,cAAc,MAAM,KAAK,QAAQ,KAAK,MAAM;IAChE,IAAI,UAAU,GAAG;KACf,KAAK,QAAQ,KAAK;KAClB,IAAI,WAAW,GACb,KAAK,QAAQ,KAAK;WAGpB,KAAK,QAAQ,KAAK,OAAO,SAAS;;;;;;;;EASxC,MAAM,OAAO;GACX,KAAK,SAAS;GACd,OAAO,KAAK,QAAQ,KAAK,OAAO,QAAQ;IACtC,MAAM,IAAI,KAAK,OAAO,WAAW,KAAK,MAAM;IAC5C,IAAI,MAAM,MAAM,KAAK,UAAU,IAC7B,KAAK,SAAS,KAAK,KAAK,MAAM;IAEhC,QAAQ,KAAK,OAAb;KACE,KAAK;MACH,KAAK,UAAU,EAAE;MACjB;KAEF,KAAK;MACH,KAAK,uBAAuB,EAAE;MAC9B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,wBAAwB,EAAE;MAC/B;KAEF,KAAK;MACH,KAAK,0BAA0B,EAAE;MACjC;KAEF,KAAK;MACH,KAAK,cAAc,EAAE;MACrB;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,6BAA6B,EAAE;MACpC;KAEF,KAAK;MACH,KAAK,gBAAgB,EAAE;MACvB;KAEF,KAAK;MACH,KAAK,eAAe,EAAE;MACtB;KAEF,KAAK;MACH,KAAK,cAAc,EAAE;MACrB;KAEF,KAAK;MACH,KAAK,qBAAqB,EAAE;MAC5B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,sBAAsB,EAAE;MAC7B;KAEF,KAAK;MACH,KAAK,oBAAoB,EAAE;MAC3B;KAEF,KAAK;MACH,KAAK,eAAe,EAAE;MACtB;KAEF,KAAK;MACH,KAAK,sBAAsB,EAAE;MAC7B;KAEF,KAAK;MACH,KAAK,sBAAsB,EAAE;MAC7B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,6BAA6B,EAAE;MACpC;KAEF,KAAK;MACH,KAAK,qBAAqB,EAAE;MAC5B;KAEF,KAAK;MACH,KAAK,0BAA0B,EAAE;MACjC;KAEF,KAAK;MACH,KAAK,yBAAyB,EAAE;MAChC;KAEF,KAAK;MACH,KAAK,oBAAoB,EAAE;MAC3B;KAEF,KAAK;MACH,KAAK,oBAAoB,EAAE;MAC3B;KAEF,KAAK;MACH,KAAK,yBAAyB,EAAE;MAChC;KAEF,KAAK;MACH,KAAK,sBAAsB,EAAE;MAC7B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,uBAAuB,EAAE;MAC9B;KAEF,KAAK;MACH,KAAK,mBAAmB,EAAE;MAC1B;KAEF,KAAK;MACH,KAAK,6BAA6B,EAAE;MACpC;KAEF,KAAK;MACH,KAAK,eAAe;MACpB;;IAGJ,KAAK;;GAEP,KAAK,SAAS;GACd,KAAK,QAAQ;;;;;EAKf,UAAU;GACR,IAAI,KAAK,iBAAiB,KAAK;QACzB,KAAK,UAAU,KAAK,KAAK,UAAU,MAAM,KAAK,kBAAkB,GAAG;KACrE,KAAK,IAAI,OAAO,KAAK,cAAc,KAAK,MAAM;KAC9C,KAAK,eAAe,KAAK;WACpB,IAAI,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,IAAI;KACtE,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,MAAM;KACpD,KAAK,eAAe,KAAK;;;;EAI/B,SAAS;GACP,IAAI,KAAK,UAAU,IAAI;IACrB,KAAK,cAAc,KAAK;IACxB,KAAK,QAAQ,KAAK;;GAEpB,KAAK,oBAAoB;GACzB,KAAK,IAAI,OAAO;;;EAGlB,qBAAqB;GACnB,MAAM,WAAW,KAAK,OAAO;GAC7B,IAAI,KAAK,gBAAgB,UACvB;GAEF,IAAI,KAAK,UAAU,IACjB,IAAI,KAAK,oBAAoB,UAAU,UACrC,KAAK,IAAI,QAAQ,KAAK,cAAc,SAAS;QAE7C,KAAK,IAAI,UAAU,KAAK,cAAc,SAAS;QAE5C,IAAI,KAAK,UAAU,KAAK,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK,UAAU;QACnR,KAAK,IAAI,OAAO,KAAK,cAAc,SAAS;;EAGhD,cAAc,IAAI,UAAU;GAExB,IAAI,KAAK,cAAc,KAAK,KAAK,cAAc,IAAI;IACjD,IAAI,KAAK,eAAe,KAAK,aAC3B,KAAK,IAAI,aAAa,KAAK,cAAc,KAAK,YAAY;IAE5D,KAAK,eAAe,KAAK,cAAc;IACvC,KAAK,QAAQ,KAAK,eAAe;IACjC,KAAK,IAAI,eACP,OAAO,cAAc,GAAG,EACxB,KAAK,aACL,KAAK,aACN;UACI;IACL,IAAI,KAAK,eAAe,KAAK,aAC3B,KAAK,IAAI,OAAO,KAAK,cAAc,KAAK,YAAY;IAEtD,KAAK,eAAe,KAAK,cAAc;IACvC,KAAK,QAAQ,KAAK,eAAe;IACjC,KAAK,IAAI,aACP,OAAO,cAAc,GAAG,EACxB,KAAK,aACL,KAAK,aACN;;;;CAMT,MAAM,2BAA2B;EAC/B,0BAA0B;EAC1B,wBAAwB;EACxB,gCAAgC;EAChC,wBAAwB;EACxB,kCAAkC;EAClC,4BAA4B;EAC5B,4BAA4B;EAC5B,oBAAoB;EACrB;CACD,MAAM,kBAAkB;GACrB,2BAA2B;GAC1B,SAAS;GACT,MAAM;GACP;GACA,yBAAyB;GACxB,UAAU,QAAQ,2FAA2F,IAAI,yCAAyC,IAAI;GAC9J,MAAM;GACP;GACA,iCAAiC;GAChC,SAAS;GACT,MAAM;GACP;GACA,yBAAyB;GACxB,SAAS;GACT,MAAM;GACP;GACA,mCAAmC;GAClC,SAAS;GACT,MAAM;GACP;GACA,6BAA6B,EAC5B,SAAS,yHACV;GACA,6BAA6B;GAC5B,SAAS;GACT,MAAM;GACP;GACA,qBAAqB;GACpB,SAAS;GACT,MAAM;GACP;EACF;CACD,SAAS,eAAe,KAAK,EAAE,gBAAgB;EAC7C,MAAM,QAAQ,gBAAgB,aAAa;EAC3C,IAAI,QAAQ,QACV,OAAO,SAAS;OAEhB,OAAO;;CAGX,SAAS,gBAAgB,KAAK,SAAS;EACrC,MAAM,OAAO,eAAe,QAAQ,QAAQ;EAC5C,MAAM,QAAQ,eAAe,KAAK,QAAQ;EAC1C,OAAO,SAAS,IAAI,UAAU,OAAO,UAAU;;CAEjD,SAAS,mBAAmB,KAAK,SAAS,KAAK,GAAG,MAAM;EACtD,MAAM,UAAU,gBAAgB,KAAK,QAAQ;EAC7C,IAAI,SACF,gBAAgB,KAAK,SAAS,KAAK,GAAG,KAAK;EAE7C,OAAO;;CAET,SAAS,gBAAgB,KAAK,SAAS,KAAK,GAAG,MAAM;EAEnD,IADY,eAAe,KAAK,QACzB,KAAK,oBACV;EAEF,MAAM,EAAE,SAAS,SAAS,gBAAgB;EAC1C,MAAM,MAAM,gBAAgB,IAAI,IAAI,OAAO,YAAY,aAAa,QAAQ,GAAG,KAAK,GAAG,UAAU,OAAO;aAC7F,SAAS;EACpB,MAAM,MAAM,IAAI,YAAY,IAAI;EAChC,IAAI,OAAO;EACX,IAAI,KAAK,IAAI,MAAM;EACnB,QAAQ,OAAO,IAAI;;CAGrB,SAAS,eAAe,OAAO;EAC7B,MAAM;;CAER,SAAS,cAAc,KAAK;EAC1B,QAAQ,KAAK,cAAc,IAAI,UAAU;;CAE3C,SAAS,oBAAoB,MAAM,KAAK,UAAU,mBAAmB;EACnE,MAAM,OAAO,YAAY,eAAe,SAAS,qBAAqB;EACtE,MAAM,QAAQ,IAAI,YAAY,OAAO,IAAI,CAAC;EAC1C,MAAM,OAAO;EACb,MAAM,MAAM;EACZ,OAAO;;CAET,MAAM,aAAa;EACjB,mCAAmC;EACnC,KAAK;EACL,yBAAyB;EACzB,KAAK;EACL,uBAAuB;EACvB,KAAK;EACL,2BAA2B;EAC3B,KAAK;EACL,iCAAiC;EACjC,KAAK;EACL,uBAAuB;EACvB,KAAK;EACL,gBAAgB;EAChB,KAAK;EACL,kBAAkB;EAClB,KAAK;EACL,wCAAwC;EACxC,KAAK;EACL,cAAc;EACd,KAAK;EACL,8BAA8B;EAC9B,MAAM;EACN,8BAA8B;EAC9B,MAAM;EACN,uCAAuC;EACvC,MAAM;EACN,2BAA2B;EAC3B,MAAM;EACN,wBAAwB;EACxB,MAAM;EACN,yCAAyC;EACzC,MAAM;EACN,kBAAkB;EAClB,MAAM;EACN,0CAA0C;EAC1C,MAAM;EACN,oDAAoD;EACpD,MAAM;EACN,gDAAgD;EAChD,MAAM;EACN,6BAA6B;EAC7B,MAAM;EACN,gDAAgD;EAChD,MAAM;EACN,6BAA6B;EAC7B,MAAM;EACN,qBAAqB;EACrB,MAAM;EACN,qBAAqB;EACrB,MAAM;EACN,+BAA+B;EAC/B,MAAM;EACN,4BAA4B;EAC5B,MAAM;EACN,4CAA4C;EAC5C,MAAM;EACN,wBAAwB;EACxB,MAAM;EACN,mBAAmB;EACnB,MAAM;EACN,2BAA2B;EAC3B,MAAM;EACN,yBAAyB;EACzB,MAAM;EACN,gCAAgC;EAChC,MAAM;EACN,kCAAkC;EAClC,MAAM;EACN,0BAA0B;EAC1B,MAAM;EACN,wBAAwB;EACxB,MAAM;EACN,gDAAgD;EAChD,MAAM;EACN,6BAA6B;EAC7B,MAAM;EACN,iCAAiC;EACjC,MAAM;EACN,6CAA6C;EAC7C,MAAM;EACN,sBAAsB;EACtB,MAAM;EACN,2BAA2B;EAC3B,MAAM;EACN,kCAAkC;EAClC,MAAM;EACN,+BAA+B;EAC/B,MAAM;EACN,sBAAsB;EACtB,MAAM;EACN,sBAAsB;EACtB,MAAM;EACN,wBAAwB;EACxB,MAAM;EACN,iCAAiC;EACjC,MAAM;EACN,6BAA6B;EAC7B,MAAM;EACN,+BAA+B;EAC/B,MAAM;EACN,iCAAiC;EACjC,MAAM;EACN,4BAA4B;EAC5B,MAAM;EACN,iBAAiB;EACjB,MAAM;EACN,uCAAuC;EACvC,MAAM;EACN,oBAAoB;EACpB,MAAM;EACP;CACD,MAAM,gBAAgB;GAEnB,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GAEL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GAEL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;;GAEL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GAEL,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;GAEL,KAAK;EACP;CAED,SAAS,gBAAgB,MAAM,cAAc,aAAa,OAAO,cAAc,EAAE,EAAE,WAA2B,uBAAO,OAAO,KAAK,EAAE;EACjI,MAAM,UAAU,KAAK,SAAS,YAAY,KAAK,KAAK,GAAG,SAAS,yBAAyB,KAAK,KAAK,GAAG,aAAa;EACnH,aAAa,KAAK,MAAM;GACtB,MAAM,MAAM,QAAQ;IAClB,UAAU,YAAY,KAAK,OAAO;IAClC,IAAI,UAAU,OAAO,KAAK,WAAW,KAAK,IAAI,CAAC,cAAc,SAAS,OAAO,KAAK,EAChF,OAAO,KAAK,MAAM;IAEpB,IAAI,KAAK,SAAS,cAAc;KAC9B,MAAM,UAAU,CAAC,CAAC,SAAS,KAAK;KAChC,MAAM,UAAU,uBAAuB,MAAM,QAAQ,YAAY;KACjE,IAAI,cAAc,WAAW,CAAC,SAC5B,aAAa,MAAM,QAAQ,aAAa,SAAS,QAAQ;WAEtD,IAAI,KAAK,SAAS,qBACxB,UAAU,OAAO,KAAK,IAAI,OAAO,UAAU,iBAC1C,KAAK,YAAY;SACZ,IAAI,eAAe,KAAK,EAC7B,IAAI,KAAK,UACP,KAAK,SAAS,SAAS,OAAO,aAAa,IAAI,SAAS,CAAC;SAEzD,mBACE,OACC,OAAO,oBAAoB,MAAM,IAAI,SAAS,CAChD;SAEE,IAAI,KAAK,SAAS,kBACvB,IAAI,KAAK,UACP,KAAK,SAAS,SAAS,OAAO,aAAa,IAAI,SAAS,CAAC;SAEzD,sBACE,OACC,OAAO,oBAAoB,MAAM,IAAI,SAAS,CAChD;SAEE,IAAI,KAAK,SAAS,mBACvB,IAAI,KAAK,UACP,KAAK,SAAS,SAAS,OAAO,aAAa,IAAI,SAAS,CAAC;SAEzD,oBACE,MACA,QACC,OAAO,oBAAoB,MAAM,IAAI,SAAS,CAChD;SAEE,IAAI,KAAK,SAAS,iBAAiB,KAAK,OAC7C,IAAI,KAAK,UACP,KAAK,SAAS,SAAS,OAAO,aAAa,IAAI,SAAS,CAAC;SAEzD,KAAK,MAAM,MAAM,mBAAmB,KAAK,MAAM,EAC7C,oBAAoB,MAAM,IAAI,SAAS;SAGtC,IAAI,eAAe,KAAK,EAC7B,IAAI,KAAK,UACP,KAAK,SAAS,SAAS,OAAO,aAAa,IAAI,SAAS,CAAC;SAEzD,iBACE,MACA,QACC,OAAO,oBAAoB,MAAM,IAAI,SAAS,CAChD;;GAIP,MAAM,MAAM,QAAQ;IAClB,UAAU,YAAY,KAAK;IAC3B,IAAI,SAAS,WAAW,KAAK,UAC3B,KAAK,MAAM,MAAM,KAAK,UAAU;KAC9B,SAAS;KACT,IAAI,SAAS,QAAQ,GACnB,OAAO,SAAS;;;GAKzB,CAAC;;CAEJ,SAAS,uBAAuB,IAAI,QAAQ,aAAa;EACvD,IAAI,CAAC,QACH,OAAO;EAET,IAAI,GAAG,SAAS,aACd,OAAO;EAET,IAAI,aAAa,IAAI,QAAQ,YAAY,YAAY,SAAS,GAAG,EAC/D,OAAO;EAET,QAAQ,OAAO,MAAf;GACE,KAAK;GACL,KAAK,qBACH,OAAO;GACT,KAAK,kBACH,OAAO,OAAO,QAAQ,MAAM,0BAA0B,QAAQ,YAAY;GAC5E,KAAK,gBACH,OAAO,0BAA0B,QAAQ,YAAY;;EAEzD,OAAO;;CAET,SAAS,0BAA0B,QAAQ,aAAa;EACtD,IAAI,WAAW,OAAO,SAAS,oBAAoB,OAAO,SAAS,iBAAiB;GAClF,IAAI,IAAI,YAAY;GACpB,OAAO,KAAK;IACV,MAAM,IAAI,YAAY;IACtB,IAAI,EAAE,SAAS,wBACb,OAAO;SACF,IAAI,EAAE,SAAS,oBAAoB,CAAC,EAAE,KAAK,SAAS,UAAU,EACnE;;;EAIN,OAAO;;CAET,SAAS,kBAAkB,aAAa;EACtC,IAAI,IAAI,YAAY;EACpB,OAAO,KAAK;GACV,MAAM,IAAI,YAAY;GACtB,IAAI,EAAE,SAAS,iBACb,OAAO;QACF,IAAI,EAAE,SAAS,oBACpB;;EAGJ,OAAO;;CAET,SAAS,mBAAmB,MAAM,SAAS;EACzC,KAAK,MAAM,KAAK,KAAK,QACnB,KAAK,MAAM,MAAM,mBAAmB,EAAE,EACpC,QAAQ,GAAG;;CAIjB,SAAS,sBAAsB,OAAO,SAAS;EAC7C,MAAM,OAAO,MAAM,SAAS,eAAe,MAAM,aAAa,MAAM;EACpE,KAAK,MAAM,QAAQ,MACjB,IAAI,KAAK,SAAS,uBAAuB;GACvC,IAAI,KAAK,SAAS;GAClB,KAAK,MAAM,QAAQ,KAAK,cACtB,KAAK,MAAM,MAAM,mBAAmB,KAAK,GAAG,EAC1C,QAAQ,GAAG;SAGV,IAAI,KAAK,SAAS,yBAAyB,KAAK,SAAS,oBAAoB;GAClF,IAAI,KAAK,WAAW,CAAC,KAAK,IAAI;GAC9B,QAAQ,KAAK,GAAG;SACX,IAAI,eAAe,KAAK,EAC7B,iBAAiB,MAAM,MAAM,QAAQ;OAChC,IAAI,KAAK,SAAS,mBACvB,oBAAoB,MAAM,MAAM,QAAQ;;CAI9C,SAAS,eAAe,MAAM;EAC5B,OAAO,KAAK,SAAS,oBAAoB,KAAK,SAAS,oBAAoB,KAAK,SAAS;;CAE3F,SAAS,iBAAiB,MAAM,OAAO,SAAS;EAC9C,MAAM,WAAW,KAAK,SAAS,iBAAiB,KAAK,OAAO,KAAK;EACjE,IAAI,YAAY,SAAS,SAAS,0BAA0B,SAAS,SAAS,QAAQ,QAAQ,CAAC,QAC7F,KAAK,MAAM,QAAQ,SAAS,cAC1B,KAAK,MAAM,MAAM,mBAAmB,KAAK,GAAG,EAC1C,QAAQ,GAAG;;CAKnB,SAAS,oBAAoB,MAAM,OAAO,SAAS;EACjD,KAAK,MAAM,MAAM,KAAK,OAAO;GAC3B,KAAK,MAAM,SAAS,GAAG,YACrB,IAAI,MAAM,SAAS,0BAA0B,MAAM,SAAS,QAAQ,QAAQ,CAAC,QAC3E,KAAK,MAAM,QAAQ,MAAM,cACvB,KAAK,MAAM,MAAM,mBAAmB,KAAK,GAAG,EAC1C,QAAQ,GAAG;GAKnB,sBAAsB,IAAI,QAAQ;;;CAGtC,SAAS,mBAAmB,OAAO,QAAQ,EAAE,EAAE;EAC7C,QAAQ,MAAM,MAAd;GACE,KAAK;IACH,MAAM,KAAK,MAAM;IACjB;GACF,KAAK;IACH,IAAI,SAAS;IACb,OAAO,OAAO,SAAS,oBACrB,SAAS,OAAO;IAElB,MAAM,KAAK,OAAO;IAClB;GACF,KAAK;IACH,KAAK,MAAM,QAAQ,MAAM,YACvB,IAAI,KAAK,SAAS,eAChB,mBAAmB,KAAK,UAAU,MAAM;SAExC,mBAAmB,KAAK,OAAO,MAAM;IAGzC;GACF,KAAK;IACH,MAAM,SAAS,SAAS,YAAY;KAClC,IAAI,SAAS,mBAAmB,SAAS,MAAM;MAC/C;IACF;GACF,KAAK;IACH,mBAAmB,MAAM,UAAU,MAAM;IACzC;GACF,KAAK;IACH,mBAAmB,MAAM,MAAM,MAAM;IACrC;;EAEJ,OAAO;;CAET,SAAS,aAAa,MAAM,UAAU;EACpC,IAAI,QAAQ,UACV,SAAS;OAET,SAAS,QAAQ;;CAGrB,SAAS,oBAAoB,MAAM,OAAO,UAAU;EAClD,MAAM,EAAE,SAAS;EACjB,IAAI,KAAK,YAAY,KAAK,SAAS,IAAI,KAAK,EAC1C;EAEF,aAAa,MAAM,SAAS;EAC5B,CAAC,KAAK,aAAa,KAAK,2BAA2B,IAAI,KAAK,GAAG,IAAI,KAAK;;CAE1E,MAAM,kBAAkB,SAAS;EAC/B,OAAO,8CAA8C,KAAK,KAAK,KAAK;;CAEtE,MAAM,oBAAoB,SAAS,SAAS,KAAK,SAAS,oBAAoB,KAAK,SAAS,mBAAmB,CAAC,KAAK;CACrH,MAAM,uBAAuB,MAAM,WAAW,iBAAiB,OAAO,IAAI,OAAO,QAAQ;CACzF,SAAS,aAAa,MAAM,QAAQ,aAAa;EAC/C,QAAQ,OAAO,MAAf;GAIE,KAAK;GACL,KAAK;IACH,IAAI,OAAO,aAAa,MACtB,OAAO,CAAC,CAAC,OAAO;IAElB,OAAO,OAAO,WAAW;GAC3B,KAAK,uBACH,OAAO,OAAO,WAAW;GAG3B,KAAK,sBACH,OAAO,OAAO,SAAS;GAGzB,KAAK,2BACH,OAAO,OAAO,SAAS;GAKzB,KAAK,eACH,OAAO;GAIT,KAAK;GACL,KAAK;GACL,KAAK;IACH,IAAI,OAAO,QAAQ,MACjB,OAAO,CAAC,CAAC,OAAO;IAElB,OAAO;GAKT,KAAK;IACH,IAAI,OAAO,QAAQ,MACjB,OAAO,CAAC,CAAC,OAAO;IAElB,OAAO,CAAC,eAAe,YAAY,SAAS;GAI9C,KAAK;IACH,IAAI,OAAO,QAAQ,MACjB,OAAO,CAAC,CAAC,OAAO;IAElB,OAAO;GACT,KAAK,wBACH,OAAO,OAAO,QAAQ;GAGxB,KAAK;GACL,KAAK,mBACH,OAAO,OAAO,eAAe;GAG/B,KAAK,wBACH,OAAO,OAAO,UAAU;GAG1B,KAAK,qBACH,OAAO,OAAO,UAAU;GAE1B,KAAK,oBACH,OAAO;GAET,KAAK,eACH,OAAO;GAET,KAAK,eACH,OAAO;GACT,KAAK;GACL,KAAK,qBACH,OAAO;GAGT,KAAK;GACL,KAAK,sBACH,OAAO;GAGT,KAAK;GACL,KAAK,0BACH,OAAO;GAIT,KAAK;IACH,IAAI,eAAe,OAAO,KAAK,IAAI,YAAY,QAC7C,OAAO;IAET,OAAO,OAAO,UAAU;GAM1B,KAAK;GACL,KAAK;GACL,KAAK,mBACH,OAAO;GAET,KAAK,mBACH,OAAO;GAET,KAAK,gBACH,OAAO;GAGT,KAAK;GACL,KAAK,gBACH,OAAO;GAGT,KAAK,gBACH,OAAO;GAGT,KAAK,sBACH,OAAO,OAAO,QAAQ;GAGxB,KAAK,gBACH,OAAO,OAAO,OAAO;GAGvB,KAAK;IACH,IAAI,OAAO,QAAQ,MACjB,OAAO,CAAC,CAAC,OAAO;IAElB,OAAO;;EAEX,OAAO;;CAET,MAAM,gBAAgB;EACpB;EAEA;EAEA;EAEA;EAEA;EAED;CACD,SAAS,aAAa,MAAM;EAC1B,IAAI,cAAc,SAAS,KAAK,KAAK,EACnC,OAAO,aAAa,KAAK,WAAW;OAEpC,OAAO;;CAIX,MAAM,eAAe,MAAM,EAAE,SAAS,KAAK,EAAE;CAC7C,SAAS,gBAAgB,KAAK;EAC5B,QAAQ,KAAR;GACE,KAAK;GACL,KAAK,YACH,OAAO;GACT,KAAK;GACL,KAAK,YACH,OAAO;GACT,KAAK;GACL,KAAK,cACH,OAAO;GACT,KAAK;GACL,KAAK,mBACH,OAAO;;;CAGb,MAAM,kBAAkB;CACxB,MAAM,sBAAsB,SAAS,CAAC,gBAAgB,KAAK,KAAK;CAChE,MAAM,wBAAwB;CAC9B,MAAM,mBAAmB;CACzB,MAAM,eAAe;CACrB,MAAM,gBAAgB,QAAQ,IAAI,SAAS,IAAI,IAAI,UAAU,IAAI,IAAI;CACrE,MAAM,6BAA6B,QAAQ;EACzC,MAAM,OAAO,aAAa,IAAI,CAAC,MAAM,CAAC,QAAQ,eAAe,MAAM,EAAE,MAAM,CAAC;EAC5E,IAAI,QAAQ;EACZ,IAAI,aAAa,EAAE;EACnB,IAAI,0BAA0B;EAC9B,IAAI,yBAAyB;EAC7B,IAAI,oBAAoB;EACxB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GACpC,MAAM,OAAO,KAAK,OAAO,EAAE;GAC3B,QAAQ,OAAR;IACE,KAAK;KACH,IAAI,SAAS,KAAK;MAChB,WAAW,KAAK,MAAM;MACtB,QAAQ;MACR;YACK,IAAI,SAAS,KAAK;MACvB,WAAW,KAAK,MAAM;MACtB,QAAQ;MACR;YACK,IAAI,EAAE,MAAM,IAAI,wBAAwB,kBAAkB,KAAK,KAAK,EACzE,OAAO;KAET;IACF,KAAK;KACH,IAAI,SAAS,OAAO,SAAS,OAAO,SAAS,KAAK;MAChD,WAAW,KAAK,MAAM;MACtB,QAAQ;MACR,oBAAoB;YACf,IAAI,SAAS,KAClB;UACK,IAAI,SAAS;UACd,CAAC,EAAE,yBACL,QAAQ,WAAW,KAAK;;KAG5B;IACF,KAAK;KACH,IAAI,SAAS,OAAO,SAAS,OAAO,SAAS,KAAK;MAChD,WAAW,KAAK,MAAM;MACtB,QAAQ;MACR,oBAAoB;YACf,IAAI,SAAS,KAClB;UACK,IAAI,SAAS,KAAK;MACvB,IAAI,MAAM,KAAK,SAAS,GACtB,OAAO;MAET,IAAI,CAAC,EAAE,wBACL,QAAQ,WAAW,KAAK;;KAG5B;IACF,KAAK;KACH,IAAI,SAAS,mBAAmB;MAC9B,QAAQ,WAAW,KAAK;MACxB,oBAAoB;;KAEtB;;;EAGN,OAAO,CAAC,2BAA2B,CAAC;;CAEtC,MAAM,0BAA0B,KAAK,YAAY;EAC/C,IAAI;GACF,IAAI,MAAM,IAAI,OAAO,OAAO,gBAAgB,aAAa,IAAI,EAAE,EAC7D,SAAS,QAAQ,oBAAoB,CAAC,GAAG,QAAQ,mBAAmB,aAAa,GAAG,CAAC,aAAa,EACnG,CAAC;GACF,MAAM,aAAa,IAAI;GACvB,OAAO,IAAI,SAAS,sBAAsB,IAAI,SAAS,8BAA8B,IAAI,SAAS,gBAAgB,IAAI,SAAS;WACxH,GAAG;GACV,OAAO;;;CAGX,MAAM,qBAAqB;CAC3B,MAAM,UAAU;CAChB,MAAM,yBAAyB,QAAQ,QAAQ,KAAK,aAAa,IAAI,CAAC;CACtE,MAAM,sBAAsB,KAAK,YAAY;EAC3C,IAAI;GACF,IAAI,MAAM,IAAI,OAAO,OAAO,gBAAgB,aAAa,IAAI,EAAE,EAC7D,SAAS,QAAQ,oBAAoB,CAAC,GAAG,QAAQ,mBAAmB,aAAa,GAAG,CAAC,aAAa,EACnG,CAAC;GACF,IAAI,IAAI,SAAS,WAAW;IAC1B,MAAM,IAAI,KAAK;IACf,IAAI,IAAI,SAAS,uBACf,MAAM,IAAI;;GAGd,MAAM,aAAa,IAAI;GACvB,OAAO,IAAI,SAAS,wBAAwB,IAAI,SAAS;WAClD,GAAG;GACV,OAAO;;;CAGX,MAAM,iBAAiB;CACvB,SAAS,yBAAyB,KAAK,QAAQ,qBAAqB,OAAO,QAAQ;EACjF,OAAO,4BACL;GACE,QAAQ,IAAI;GACZ,MAAM,IAAI;GACV,QAAQ,IAAI;GACb,EACD,QACA,mBACD;;CAEH,SAAS,4BAA4B,KAAK,QAAQ,qBAAqB,OAAO,QAAQ;EACpF,IAAI,aAAa;EACjB,IAAI,iBAAiB;EACrB,KAAK,IAAI,IAAI,GAAG,IAAI,oBAAoB,KACtC,IAAI,OAAO,WAAW,EAAE,KAAK,IAAI;GAC/B;GACA,iBAAiB;;EAGrB,IAAI,UAAU;EACd,IAAI,QAAQ;EACZ,IAAI,SAAS,mBAAmB,KAAK,IAAI,SAAS,qBAAqB,qBAAqB;EAC5F,OAAO;;CAET,SAAS,OAAO,WAAW,KAAK;EAC9B,IAAI,CAAC,WACH,MAAM,IAAI,MAAM,OAAO,gCAAgC;;CAG3D,SAAS,QAAQ,MAAM,MAAM,aAAa,OAAO;EAC/C,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;GAC1C,MAAM,IAAI,KAAK,MAAM;GACrB,IAAI,EAAE,SAAS,MAAM,cAAc,EAAE,SAAS,OAAO,SAAS,KAAK,GAAG,EAAE,SAAS,OAAO,KAAK,KAAK,EAAE,KAAK,GACvG,OAAO;;;CAIb,SAAS,SAAS,MAAM,MAAM,cAAc,OAAO,aAAa,OAAO;EACrE,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;GAC1C,MAAM,IAAI,KAAK,MAAM;GACrB,IAAI,EAAE,SAAS,GAAG;IAChB,IAAI,aAAa;IACjB,IAAI,EAAE,SAAS,SAAS,EAAE,SAAS,aACjC,OAAO;UAEJ,IAAI,EAAE,SAAS,WAAW,EAAE,OAAO,eAAe,cAAc,EAAE,KAAK,KAAK,EACjF,OAAO;;;CAIb,SAAS,cAAc,KAAK,MAAM;EAChC,OAAO,CAAC,EAAE,OAAO,YAAY,IAAI,IAAI,IAAI,YAAY;;CAEvD,SAAS,mBAAmB,MAAM;EAChC,OAAO,KAAK,MAAM,MACf,MAAM,EAAE,SAAS,KAAK,EAAE,SAAS,WAAW,CAAC,EAAE,OAChD,EAAE,IAAI,SAAS,KACf,CAAC,EAAE,IAAI,UAER;;CAEH,SAAS,SAAS,MAAM;EACtB,OAAO,KAAK,SAAS,KAAK,KAAK,SAAS;;CAE1C,SAAS,OAAO,GAAG;EACjB,OAAO,EAAE,SAAS,KAAK,EAAE,SAAS;;CAEpC,SAAS,QAAQ,GAAG;EAClB,OAAO,EAAE,SAAS,KAAK,EAAE,SAAS;;CAEpC,SAAS,eAAe,MAAM;EAC5B,OAAO,KAAK,SAAS,KAAK,KAAK,YAAY;;CAE7C,SAAS,aAAa,MAAM;EAC1B,OAAO,KAAK,SAAS,KAAK,KAAK,YAAY;;CAE7C,MAAM,iCAAiC,IAAI,IAAI,CAAC,iBAAiB,qBAAqB,CAAC;CACvF,SAAS,qBAAqB,OAAO,WAAW,EAAE,EAAE;EAClD,IAAI,SAAS,CAAC,OAAO,SAAS,MAAM,IAAI,MAAM,SAAS,IAAI;GACzD,MAAM,SAAS,MAAM;GACrB,IAAI,CAAC,OAAO,SAAS,OAAO,IAAI,eAAe,IAAI,OAAO,EACxD,OAAO,qBACL,MAAM,UAAU,IAChB,SAAS,OAAO,MAAM,CACvB;;EAGL,OAAO,CAAC,OAAO,SAAS;;CAE1B,SAAS,WAAW,MAAM,MAAM,SAAS;EACvC,IAAI;EACJ,IAAI,QAAQ,KAAK,SAAS,KAAK,KAAK,QAAQ,KAAK,UAAU;EAC3D,IAAI,WAAW,EAAE;EACjB,IAAI;EACJ,IAAI,SAAS,CAAC,OAAO,SAAS,MAAM,IAAI,MAAM,SAAS,IAAI;GACzD,MAAM,MAAM,qBAAqB,MAAM;GACvC,QAAQ,IAAI;GACZ,WAAW,IAAI;GACf,aAAa,SAAS,SAAS,SAAS;;EAE1C,IAAI,SAAS,QAAQ,OAAO,SAAS,MAAM,EACzC,qBAAqB,uBAAuB,CAAC,KAAK,CAAC;OAC9C,IAAI,MAAM,SAAS,IAAI;GAC5B,MAAM,QAAQ,MAAM,UAAU;GAC9B,IAAI,CAAC,OAAO,SAAS,MAAM,IAAI,MAAM,SAAS;QACxC,CAAC,QAAQ,MAAM,MAAM,EACvB,MAAM,WAAW,QAAQ,KAAK;UAGhC,IAAI,MAAM,WAAW,aACnB,qBAAqB,qBAAqB,QAAQ,OAAO,YAAY,EAAE,CACrE,uBAAuB,CAAC,KAAK,CAAC,EAC9B,MACD,CAAC;QAEF,MAAM,UAAU,QAAQ,uBAAuB,CAAC,KAAK,CAAC,CAAC;GAG3D,CAAC,uBAAuB,qBAAqB;SACxC,IAAI,MAAM,SAAS,IAAI;GAC5B,IAAI,CAAC,QAAQ,MAAM,MAAM,EACvB,MAAM,WAAW,QAAQ,KAAK;GAEhC,qBAAqB;SAChB;GACL,qBAAqB,qBAAqB,QAAQ,OAAO,YAAY,EAAE,CACrE,uBAAuB,CAAC,KAAK,CAAC,EAC9B,MACD,CAAC;GACF,IAAI,cAAc,WAAW,WAAW,sBACtC,aAAa,SAAS,SAAS,SAAS;;EAG5C,IAAI,KAAK,SAAS,IAChB,IAAI,YACF,WAAW,UAAU,KAAK;OAE1B,KAAK,QAAQ;OAGf,IAAI,YACF,WAAW,UAAU,KAAK;OAE1B,KAAK,UAAU,KAAK;;CAI1B,SAAS,QAAQ,MAAM,OAAO;EAC5B,IAAI,SAAS;EACb,IAAI,KAAK,IAAI,SAAS,GAAG;GACvB,MAAM,cAAc,KAAK,IAAI;GAC7B,SAAS,MAAM,WAAW,MACvB,MAAM,EAAE,IAAI,SAAS,KAAK,EAAE,IAAI,YAAY,YAC9C;;EAEH,OAAO;;CAET,SAAS,eAAe,MAAM,MAAM;EAClC,OAAO,IAAI,KAAK,GAAG,KAAK,QAAQ,WAAW,aAAa,iBAAiB;GACvE,OAAO,gBAAgB,MAAM,MAAM,KAAK,WAAW,aAAa,CAAC,UAAU;IAC3E;;CAEJ,SAAS,YAAY,MAAM,KAAK;EAC9B,IAAI,CAAC,QAAQ,OAAO,KAAK,IAAI,CAAC,WAAW,GACvC,OAAO;EAET,QAAQ,KAAK,MAAb;GACE,KAAK;IACH,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;KAC1C,MAAM,IAAI,KAAK,MAAM;KACrB,IAAI,EAAE,SAAS,MAAM,YAAY,EAAE,KAAK,IAAI,IAAI,YAAY,EAAE,KAAK,IAAI,GACrE,OAAO;;IAGX,OAAO,KAAK,SAAS,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC;GACvD,KAAK;IACH,IAAI,YAAY,KAAK,QAAQ,IAAI,EAC/B,OAAO;IAET,OAAO,KAAK,SAAS,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC;GACvD,KAAK,GACH,OAAO,KAAK,SAAS,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC;GACvD,KAAK;IACH,IAAI,YAAY,KAAK,WAAW,IAAI,EAClC,OAAO;IAET,OAAO,KAAK,SAAS,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC;GACvD,KAAK,GACH,OAAO,CAAC,KAAK,YAAY,mBAAmB,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK;GAC1E,KAAK,GACH,OAAO,KAAK,SAAS,MAAM,MAAM,OAAO,SAAS,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC;GAC7E,KAAK;GACL,KAAK,IACH,OAAO,YAAY,KAAK,SAAS,IAAI;GACvC,KAAK;GACL,KAAK;GACL,KAAK,IACH,OAAO;GACT,SACE,OAAO;;;CAGb,SAAS,mBAAmB,MAAM;EAChC,IAAI,KAAK,SAAS,MAAM,KAAK,WAAW,WACtC,OAAO,KAAK,UAAU,GAAG;OAEzB,OAAO;;CAGX,MAAM,aAAa;CACnB,SAAS,gBAAgB,KAAK;EAC5B,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAC9B,IAAI,CAAC,aAAa,IAAI,WAAW,EAAE,CAAC,EAClC,OAAO;EAGX,OAAO;;CAET,SAAS,iBAAiB,MAAM;EAC9B,OAAO,KAAK,SAAS,KAAK,gBAAgB,KAAK,QAAQ,IAAI,KAAK,SAAS,MAAM,iBAAiB,KAAK,QAAQ;;CAE/G,SAAS,sBAAsB,MAAM;EACnC,OAAO,KAAK,SAAS,KAAK,iBAAiB,KAAK;;CAGlD,MAAM,uBAAuB;EAC3B,WAAW;EACX,IAAI;EACJ,YAAY,CAAC,MAAM,KAAK;EACxB,oBAAoB;EACpB,WAAW,OAAO;EAClB,UAAU,OAAO;EACjB,oBAAoB,OAAO;EAC3B,iBAAiB,OAAO;EACxB,SAAS;EACT,QAAQ;EACR,UAAU;EACV,mBAAmB;EACpB;CACD,IAAI,iBAAiB;CACrB,IAAI,cAAc;CAClB,IAAI,eAAe;CACnB,IAAI,iBAAiB;CACrB,IAAI,cAAc;CAClB,IAAI,mBAAmB;CACvB,IAAI,wBAAwB;CAC5B,IAAI,sBAAsB;CAC1B,IAAI,QAAQ;CACZ,IAAI,SAAS;CACb,IAAI,sBAAsB;CAC1B,MAAM,QAAQ,EAAE;CAChB,MAAM,YAAY,IAAI,UAAU,OAAO;EACrC,OAAO;EACP,OAAO,OAAO,KAAK;GACjB,OAAO,SAAS,OAAO,IAAI,EAAE,OAAO,IAAI;;EAE1C,aAAa,MAAM,OAAO,KAAK;GAC7B,OAAO,MAAM,OAAO,IAAI;;EAE1B,gBAAgB,OAAO,KAAK;GAC1B,IAAI,QACF,OAAO,OAAO,SAAS,OAAO,IAAI,EAAE,OAAO,IAAI;GAEjD,IAAI,aAAa,QAAQ,UAAU,cAAc;GACjD,IAAI,WAAW,MAAM,UAAU,eAAe;GAC9C,OAAO,aAAa,aAAa,WAAW,WAAW,CAAC,EACtD;GAEF,OAAO,aAAa,aAAa,WAAW,WAAW,EAAE,CAAC,EACxD;GAEF,IAAI,MAAM,SAAS,YAAY,SAAS;GACxC,IAAI,IAAI,SAAS,IAAI,EAEjB,MAAM,OAAO,WAAW,IAAI;GAGhC,QAAQ;IACN,MAAM;IACN,SAAS,UAAU,KAAK,OAAO,OAAO,YAAY,SAAS,CAAC;IAC5D,KAAK,OAAO,OAAO,IAAI;IACxB,CAAC;;EAEJ,cAAc,OAAO,KAAK;GACxB,MAAM,OAAO,SAAS,OAAO,IAAI;GACjC,iBAAiB;IACf,MAAM;IACN,KAAK;IACL,IAAI,eAAe,aAAa,MAAM,MAAM,IAAI,eAAe,GAAG;IAClE,SAAS;IAET,OAAO,EAAE;IACT,UAAU,EAAE;IACZ,KAAK,OAAO,QAAQ,GAAG,IAAI;IAC3B,aAAa,KAAK;IACnB;;EAEH,aAAa,KAAK;GAChB,WAAW,IAAI;;EAEjB,WAAW,OAAO,KAAK;GACrB,MAAM,OAAO,SAAS,OAAO,IAAI;GACjC,IAAI,CAAC,eAAe,UAAU,KAAK,EAAE;IACnC,IAAI,QAAQ;IACZ,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAEhC,IADU,MAAM,GACV,IAAI,aAAa,KAAK,KAAK,aAAa,EAAE;KAC9C,QAAQ;KACR,IAAI,IAAI,GACN,UAAU,IAAI,MAAM,GAAG,IAAI,MAAM,OAAO;KAE1C,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,KAEtB,WADW,MAAM,OACJ,EAAE,KAAK,IAAI,EAAE;KAE5B;;IAGJ,IAAI,CAAC,OACH,UAAU,IAAI,UAAU,OAAO,GAAG,CAAC;;;EAIzC,iBAAiB,KAAK;GACpB,MAAM,OAAO,eAAe;GAC5B,eAAe,gBAAgB;GAC/B,WAAW,IAAI;GACf,IAAI,MAAM,MAAM,MAAM,GAAG,QAAQ,MAC/B,WAAW,MAAM,OAAO,EAAE,IAAI;;EAGlC,aAAa,OAAO,KAAK;GACvB,cAAc;IACZ,MAAM;IACN,MAAM,SAAS,OAAO,IAAI;IAC1B,SAAS,OAAO,OAAO,IAAI;IAC3B,OAAO,KAAK;IACZ,KAAK,OAAO,MAAM;IACnB;;EAEH,UAAU,OAAO,KAAK;GACpB,MAAM,MAAM,SAAS,OAAO,IAAI;GAChC,MAAM,OAAO,QAAQ,OAAO,QAAQ,MAAM,SAAS,QAAQ,MAAM,OAAO,QAAQ,MAAM,SAAS,IAAI,MAAM,EAAE;GAC3G,IAAI,CAAC,UAAU,SAAS,IACtB,UAAU,IAAI,MAAM;GAEtB,IAAI,UAAU,SAAS,IACrB,cAAc;IACZ,MAAM;IACN,MAAM;IACN,SAAS,OAAO,OAAO,IAAI;IAC3B,OAAO,KAAK;IACZ,KAAK,OAAO,MAAM;IACnB;QACI;IACL,cAAc;KACZ,MAAM;KACN;KACA,SAAS;KACT,KAAK,KAAK;KACV,KAAK,KAAK;KACV,WAAW,QAAQ,MAAM,CAAC,uBAAuB,OAAO,CAAC,GAAG,EAAE;KAC9D,KAAK,OAAO,MAAM;KACnB;IACD,IAAI,SAAS,OAAO;KAClB,SAAS,UAAU,SAAS;KAC5B,sBAAsB;KACtB,MAAM,QAAQ,eAAe;KAC7B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAChC,IAAI,MAAM,GAAG,SAAS,GACpB,MAAM,KAAK,UAAU,MAAM,GAAG;;;;EAMxC,SAAS,OAAO,KAAK;GACnB,IAAI,UAAU,KAAK;GACnB,MAAM,MAAM,SAAS,OAAO,IAAI;GAChC,IAAI,UAAU,CAAC,OAAO,YAAY,EAAE;IAClC,YAAY,QAAQ;IACpB,UAAU,YAAY,SAAS,IAAI;UAC9B;IACL,MAAM,WAAW,IAAI,OAAO;IAC5B,YAAY,MAAM,UAChB,WAAW,MAAM,IAAI,MAAM,GAAG,GAAG,EACjC,UACA,OAAO,OAAO,IAAI,EAClB,WAAW,IAAI,EAChB;;;EAGL,cAAc,OAAO,KAAK;GACxB,MAAM,MAAM,SAAS,OAAO,IAAI;GAChC,IAAI,UAAU,CAAC,OAAO,YAAY,EAAE;IAClC,YAAY,QAAQ,MAAM;IAC1B,UAAU,YAAY,SAAS,IAAI;UAC9B,IAAI,YAAY,SAAS,QAAQ;IACtC,MAAM,MAAM,YAAY;IACxB,IAAI,KAAK;KACP,IAAI,WAAW,MAAM;KACrB,UAAU,IAAI,KAAK,IAAI;;UAEpB;IACL,MAAM,MAAM,uBAAuB,KAAK,MAAM,OAAO,OAAO,IAAI,CAAC;IACjE,YAAY,UAAU,KAAK,IAAI;;;EAGnC,aAAa,OAAO,KAAK;GACvB,oBAAoB,SAAS,OAAO,IAAI;GACxC,IAAI,wBAAwB,GAAG,wBAAwB;GACvD,sBAAsB;;EAExB,eAAe,MAAM,OAAO,KAAK;GAC/B,oBAAoB;GACpB,IAAI,wBAAwB,GAAG,wBAAwB;GACvD,sBAAsB;;EAExB,gBAAgB,KAAK;GACnB,MAAM,QAAQ,YAAY,IAAI,MAAM;GACpC,MAAM,OAAO,SAAS,OAAO,IAAI;GACjC,IAAI,YAAY,SAAS,GACvB,YAAY,UAAU;GAExB,IAAI,eAAe,MAAM,MACtB,OAAO,EAAE,SAAS,IAAI,EAAE,UAAU,EAAE,UAAU,KAChD,EACC,UAAU,GAAG,MAAM;;EAGvB,YAAY,OAAO,KAAK;GACtB,IAAI,kBAAkB,aAAa;IACjC,UAAU,YAAY,KAAK,IAAI;IAC/B,IAAI,UAAU,GACZ,IAAI,YAAY,SAAS,GAAG;KAC1B,IAAI,YAAY,SAAS,SACvB,mBAAmB,SAAS,iBAAiB,CAAC,MAAM;KAEtD,IAAI,UAAU,KAAK,CAAC,kBAClB,UAAU,IAAI,IAAI;KAEpB,YAAY,QAAQ;MAClB,MAAM;MACN,SAAS;MACT,KAAK,UAAU,IAAI,OAAO,uBAAuB,oBAAoB,GAAG,OAAO,wBAAwB,GAAG,sBAAsB,EAAE;MACnI;KACD,IAAI,UAAU,aAAa,eAAe,QAAQ,cAAc,YAAY,SAAS,UAAU,oBAAoB,qBAAqB,QACtI,UAAU,YAAY,YAAY,aAAa,EAAE,EAAE;WAEhD;KACL,IAAI,eAAe;KAEjB,IAAI,YAAY,SAAS,OACvB,eAAe;UACV,IAAI,YAAY,SAAS,QAC9B,eAAe;UACV,IAAI,YAAY,SAAS,QAAQ,iBAAiB,SAAS,IAAI,EACpE,eAAe;KAGnB,YAAY,MAAM,UAChB,kBACA,OACA,OAAO,uBAAuB,oBAAoB,EAClD,GACA,aACD;KACD,IAAI,YAAY,SAAS,OACvB,YAAY,iBAAiB,mBAAmB,YAAY,IAAI;KAElE,IAAI,YAAY;KAChB,IAAI,YAAY,SAAS,WAAW,YAAY,YAAY,UAAU,WACnE,QAAQ,IAAI,YAAY,OAC1B,IAAI,MAAM,mBACT,wBACA,gBACA,YAAY,KACZ,YAAY,IAAI,IAAI,OACrB,EAAE;MACD,YAAY,OAAO;MACnB,YAAY,UAAU,OAAO,WAAW,EAAE;;;IAIhD,IAAI,YAAY,SAAS,KAAK,YAAY,SAAS,OACjD,eAAe,MAAM,KAAK,YAAY;;GAG1C,mBAAmB;GACnB,wBAAwB,sBAAsB;;EAEhD,UAAU,OAAO,KAAK;GACpB,IAAI,eAAe,UACjB,QAAQ;IACN,MAAM;IACN,SAAS,SAAS,OAAO,IAAI;IAC7B,KAAK,OAAO,QAAQ,GAAG,MAAM,EAAE;IAChC,CAAC;;EAGN,QAAQ;GACN,MAAM,MAAM,aAAa;GACzB,IAAI,UAAU,UAAU,GACtB,QAAQ,UAAU,OAAlB;IACE,KAAK;IACL,KAAK;KACH,UAAU,GAAG,IAAI;KACjB;IACF,KAAK;IACL,KAAK;KACH,UACE,IACA,UAAU,aACX;KACD;IACF,KAAK;KACH,IAAI,UAAU,oBAAoB,UAAU,UAC1C,UAAU,GAAG,IAAI;UAEjB,UAAU,GAAG,IAAI;KAEnB;IACF,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,KAAK;IAEL,KAAK;KACH,UAAU,GAAG,IAAI;KACjB;;GAGN,KAAK,IAAI,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS;IACjD,WAAW,MAAM,QAAQ,MAAM,EAAE;IACjC,UAAU,IAAI,MAAM,OAAO,IAAI,MAAM,OAAO;;;EAGhD,QAAQ,OAAO,KAAK;GAClB,KAAK,MAAM,KAAK,MAAM,GAAG,KAAK,eAAe,QAAQ,GACnD,OAAO,SAAS,OAAO,IAAI,EAAE,OAAO,IAAI;QAExC,UAAU,GAAG,QAAQ,EAAE;;EAG3B,wBAAwB,OAAO;GAC7B,KAAK,MAAM,KAAK,MAAM,GAAG,KAAK,eAAe,QAAQ,GACnD,UACE,IACA,QAAQ,EACT;;EAGN,CAAC;CACF,MAAM,gBAAgB;CACtB,MAAM,gBAAgB;CACtB,SAAS,mBAAmB,OAAO;EACjC,MAAM,MAAM,MAAM;EAClB,MAAM,MAAM,MAAM;EAClB,MAAM,UAAU,IAAI,MAAM,WAAW;EACrC,IAAI,CAAC,SAAS;EACd,MAAM,GAAG,KAAK,OAAO;EACrB,MAAM,yBAAyB,SAAS,QAAQ,UAAU,UAAU;GAClE,MAAM,QAAQ,IAAI,MAAM,SAAS;GAEjC,OAAO,UACL,SACA,OACA,OAAO,OAJG,QAAQ,QAAQ,OAIR,EAClB,GACA,UAAU,IAAiB,EAC5B;;EAEH,MAAM,SAAS;GACb,QAAQ,sBAAsB,IAAI,MAAM,EAAE,IAAI,QAAQ,KAAK,IAAI,OAAO,CAAC;GACvE,OAAO,KAAK;GACZ,KAAK,KAAK;GACV,OAAO,KAAK;GACZ,WAAW;GACZ;EACD,IAAI,eAAe,IAAI,MAAM,CAAC,QAAQ,eAAe,GAAG,CAAC,MAAM;EAC/D,MAAM,gBAAgB,IAAI,QAAQ,aAAa;EAC/C,MAAM,gBAAgB,aAAa,MAAM,cAAc;EACvD,IAAI,eAAe;GACjB,eAAe,aAAa,QAAQ,eAAe,GAAG,CAAC,MAAM;GAC7D,MAAM,aAAa,cAAc,GAAG,MAAM;GAC1C,IAAI;GACJ,IAAI,YAAY;IACd,YAAY,IAAI,QAAQ,YAAY,gBAAgB,aAAa,OAAO;IACxE,OAAO,MAAM,sBAAsB,YAAY,WAAW,KAAK;;GAEjE,IAAI,cAAc,IAAI;IACpB,MAAM,eAAe,cAAc,GAAG,MAAM;IAC5C,IAAI,cACF,OAAO,QAAQ,sBACb,cACA,IAAI,QACF,cACA,OAAO,MAAM,YAAY,WAAW,SAAS,gBAAgB,aAAa,OAC3E,EACD,KACD;;;EAIP,IAAI,cACF,OAAO,QAAQ,sBAAsB,cAAc,eAAe,KAAK;EAEzE,OAAO;;CAET,SAAS,SAAS,OAAO,KAAK;EAC5B,OAAO,aAAa,MAAM,OAAO,IAAI;;CAEvC,SAAS,WAAW,KAAK;EACvB,IAAI,UAAU,WACZ,eAAe,WAAW,OAAO,MAAM,GAAG,MAAM,EAAE;EAEpD,QAAQ,eAAe;EACvB,MAAM,EAAE,KAAK,OAAO;EACpB,IAAI,OAAO,KAAK,eAAe,SAAS,IAAI,EAC1C;EAEF,IAAI,eAAe,UAAU,IAAI,EAC/B,WAAW,gBAAgB,IAAI;OAC1B;GACL,MAAM,QAAQ,eAAe;GAC7B,IAAI,OAAO,KAAK,OAAO,GACrB,UAAU,QAAQ;;EAGtB,iBAAiB;;CAEnB,SAAS,OAAO,SAAS,OAAO,KAAK;EACnC,MAAM,SAAS,MAAM,MAAM;EAC3B,MAAM,WAAW,OAAO,SAAS,OAAO,SAAS,SAAS;EAC1D,IAAI,YAAY,SAAS,SAAS,GAAG;GACnC,SAAS,WAAW;GACpB,UAAU,SAAS,KAAK,IAAI;SAE5B,OAAO,SAAS,KAAK;GACnB,MAAM;GACN;GACA,KAAK,OAAO,OAAO,IAAI;GACxB,CAAC;;CAGN,SAAS,WAAW,IAAI,KAAK,YAAY,OAAO;EAC9C,IAAI,WACF,UAAU,GAAG,KAAK,UAAU,KAAK,GAAG,CAAC;OAErC,UAAU,GAAG,KAAK,UAAU,KAAK,GAAG,GAAG,EAAE;EAE3C,IAAI,UAAU,WAAW;GACvB,IAAI,GAAG,SAAS,QACd,GAAG,SAAS,MAAM,OAAO,OAAO,EAAE,EAAE,GAAG,SAAS,GAAG,SAAS,SAAS,GAAG,IAAI,IAAI;QAEhF,GAAG,SAAS,MAAM,OAAO,OAAO,EAAE,EAAE,GAAG,SAAS,MAAM;GAExD,GAAG,SAAS,SAAS,SACnB,GAAG,SAAS,MAAM,QAClB,GAAG,SAAS,IAAI,OACjB;;EAEH,MAAM,EAAE,KAAK,IAAI,aAAa;EAC9B,IAAI,CAAC;OACC,QAAQ,QACV,GAAG,UAAU;QACR,IAAI,mBAAmB,GAAG,EAC/B,GAAG,UAAU;QACR,IAAI,YAAY,GAAG,EACxB,GAAG,UAAU;;EAGjB,IAAI,CAAC,UAAU,UACb,GAAG,WAAW,mBAAmB,SAAS;EAE5C,IAAI,OAAO,KAAK,eAAe,mBAAmB,IAAI,EAAE;GACtD,MAAM,QAAQ,SAAS;GACvB,IAAI,SAAS,MAAM,SAAS,GAC1B,MAAM,UAAU,MAAM,QAAQ,QAAQ,UAAU,GAAG;;EAGvD,IAAI,OAAO,KAAK,eAAe,SAAS,IAAI,EAC1C;EAEF,IAAI,wBAAwB,IAAI;GAC9B,SAAS,UAAU,SAAS;GAC5B,sBAAsB;;EAExB,IAAI,UAAU,UAAU,MAAM,KAAK,MAAM,GAAG,KAAK,eAAe,QAAQ,GACtE,UAAU,QAAQ;EAEpB;GACE,MAAM,QAAQ,GAAG;GACjB,IAAI,gBACF,kCACA,eACD,EAAE;IACD,IAAI,QAAQ;IACZ,IAAI,SAAS;IACb,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;KACrC,MAAM,IAAI,MAAM;KAChB,IAAI,EAAE,SAAS;UACT,EAAE,SAAS,MACb,QAAQ;WACH,IAAI,EAAE,SAAS,OACpB,SAAS;;KAGb,IAAI,SAAS,QAAQ;MACnB,gBACE,kCACA,gBACA,GAAG,IACJ;MACD;;;;GAIN,IAAI,CAAC,UAAU,aAAa,gBAC1B,4BACA,eACD,IAAI,GAAG,QAAQ,cAAc,CAAC,mBAAmB,GAAG,EAAE;IACrD,gBACE,4BACA,gBACA,GAAG,IACJ;IACD,MAAM,SAAS,MAAM,MAAM;IAC3B,MAAM,QAAQ,OAAO,SAAS,QAAQ,GAAG;IACzC,OAAO,SAAS,OAAO,OAAO,GAAG,GAAG,GAAG,SAAS;;GAElD,MAAM,qBAAqB,MAAM,MAC9B,MAAM,EAAE,SAAS,KAAK,EAAE,SAAS,kBACnC;GACD,IAAI,sBAAsB,mBACxB,4BACA,gBACA,mBAAmB,IACpB,IAAI,GAAG,SAAS,QACf,mBAAmB,QAAQ;IACzB,MAAM;IACN,SAAS,SACP,GAAG,SAAS,GAAG,IAAI,MAAM,QACzB,GAAG,SAAS,GAAG,SAAS,SAAS,GAAG,IAAI,IAAI,OAC7C;IACD,KAAK,mBAAmB;IACzB;;;CAIP,SAAS,UAAU,OAAO,GAAG;EAC3B,IAAI,IAAI;EACR,OAAO,aAAa,WAAW,EAAE,KAAK,KAAK,IAAI,aAAa,SAAS,GAAG;EACxE,OAAO;;CAET,SAAS,UAAU,OAAO,GAAG;EAC3B,IAAI,IAAI;EACR,OAAO,aAAa,WAAW,EAAE,KAAK,KAAK,KAAK,GAAG;EACnD,OAAO;;CAET,MAAM,qCAAqC,IAAI,IAAI;EAAC;EAAM;EAAQ;EAAW;EAAO;EAAO,CAAC;CAC5F,SAAS,mBAAmB,EAAE,KAAK,SAAS;EAC1C,IAAI,QAAQ;QACL,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAChC,IAAI,MAAM,GAAG,SAAS,KAAK,mBAAmB,IAAI,MAAM,GAAG,KAAK,EAC9D,OAAO;;EAIb,OAAO;;CAET,SAAS,YAAY,EAAE,KAAK,SAAS;EACnC,IAAI,eAAe,gBAAgB,IAAI,EACrC,OAAO;EAET,IAAI,QAAQ,eAAe,YAAY,IAAI,WAAW,EAAE,CAAC,IAAI,gBAAgB,IAAI,IAAI,eAAe,sBAAsB,eAAe,mBAAmB,IAAI,IAAI,eAAe,eAAe,CAAC,eAAe,YAAY,IAAI,EAChO,OAAO;EAET,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACrC,MAAM,IAAI,MAAM;GAChB,IAAI,EAAE,SAAS;QACT,EAAE,SAAS,QAAQ,EAAE;SACnB,EAAE,MAAM,QAAQ,WAAW,OAAO,EACpC,OAAO;UACF,IAAI,mBACT,0BACA,gBACA,EAAE,IACH,EACC,OAAO;;UAGN,IACP,EAAE,SAAS,UAAU,cAAc,EAAE,KAAK,KAAK,IAAI,mBACjD,0BACA,gBACA,EAAE,IACH,EACC,OAAO;;EAGX,OAAO;;CAET,SAAS,YAAY,GAAG;EACtB,OAAO,IAAI,MAAM,IAAI;;CAEvB,MAAM,mBAAmB;CACzB,SAAS,mBAAmB,OAAO;EACjC,MAAM,iBAAiB,eAAe,eAAe;EACrD,IAAI,oBAAoB;EACxB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACrC,MAAM,OAAO,MAAM;GACnB,IAAI,KAAK,SAAS,GAChB,IAAI,CAAC;QACC,gBAAgB,KAAK,QAAQ,EAAE;KACjC,MAAM,OAAO,MAAM,IAAI,MAAM,MAAM,IAAI,GAAG;KAC1C,MAAM,OAAO,MAAM,IAAI,MAAM,MAAM,IAAI,GAAG;KAC1C,IAAI,CAAC,QAAQ,CAAC,QAAQ,mBAAmB,SAAS,MAAM,SAAS,KAAK,SAAS,MAAM,SAAS,MAAM,SAAS,KAAK,SAAS,KAAK,eAAe,KAAK,QAAQ,IAAI;MAC9J,oBAAoB;MACpB,MAAM,KAAK;YAEX,KAAK,UAAU;WAEZ,IAAI,gBACT,KAAK,UAAU,SAAS,KAAK,QAAQ;UAGvC,KAAK,UAAU,KAAK,QAAQ,QAAQ,kBAAkB,KAAK;;EAIjE,OAAO,oBAAoB,MAAM,OAAO,QAAQ,GAAG;;CAErD,SAAS,eAAe,KAAK;EAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;GACnC,MAAM,IAAI,IAAI,WAAW,EAAE;GAC3B,IAAI,MAAM,MAAM,MAAM,IACpB,OAAO;;EAGX,OAAO;;CAET,SAAS,SAAS,KAAK;EACrB,IAAI,MAAM;EACV,IAAI,uBAAuB;EAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAC9B,IAAI,aAAa,IAAI,WAAW,EAAE,CAAC;OAC7B,CAAC,sBAAsB;IACzB,OAAO;IACP,uBAAuB;;SAEpB;GACL,OAAO,IAAI;GACX,uBAAuB;;EAG3B,OAAO;;CAET,SAAS,QAAQ,MAAM;EACrB,CAAC,MAAM,MAAM,aAAa,SAAS,KAAK,KAAK;;CAE/C,SAAS,OAAO,OAAO,KAAK;EAC1B,OAAO;GACL,OAAO,UAAU,OAAO,MAAM;GAE9B,KAAK,OAAO,OAAO,MAAM,UAAU,OAAO,IAAI;GAE9C,QAAQ,OAAO,OAAO,MAAM,SAAS,OAAO,IAAI;GACjD;;CAEH,SAAS,SAAS,KAAK;EACrB,OAAO,OAAO,IAAI,MAAM,QAAQ,IAAI,IAAI,OAAO;;CAEjD,SAAS,UAAU,KAAK,KAAK;EAC3B,IAAI,MAAM,UAAU,OAAO,IAAI;EAC/B,IAAI,SAAS,SAAS,IAAI,MAAM,QAAQ,IAAI;;CAE9C,SAAS,UAAU,KAAK;EACtB,MAAM,OAAO;GACX,MAAM;GACN,MAAM,IAAI;GACV,SAAS,OACP,IAAI,IAAI,MAAM,QACd,IAAI,IAAI,MAAM,SAAS,IAAI,QAAQ,OACpC;GACD,OAAO,KAAK;GACZ,KAAK,IAAI;GACV;EACD,IAAI,IAAI,KAAK;GACX,MAAM,MAAM,IAAI,IAAI;GACpB,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,QAAQ;IACvC,IAAI,MAAM;IACV,IAAI,MAAM;IACV,IAAI,IAAI;IACR,IAAI,IAAI;;GAEV,KAAK,QAAQ;IACX,MAAM;IACN,SAAS,IAAI,IAAI;IACjB;IACD;;EAEH,OAAO;;CAET,SAAS,UAAU,SAAS,WAAW,OAAO,KAAK,YAAY,GAAG,YAAY,GAAgB;EAC5F,MAAM,MAAM,uBAAuB,SAAS,UAAU,KAAK,UAAU;EACrE,IAAI,CAAC,YAAY,eAAe,qBAAqB,cAAc,KAAgB,QAAQ,MAAM,EAAE;GACjG,IAAI,mBAAmB,QAAQ,EAAE;IAC/B,IAAI,MAAM;IACV,OAAO;;GAET,IAAI;IACF,MAAM,UAAU,eAAe;IAC/B,MAAM,UAAU,EACd,SAAS,UAAU,CAAC,GAAG,SAAS,aAAa,GAAG,CAAC,aAAa,EAC/D;IACD,IAAI,cAAc,GAChB,IAAI,MAAM,OAAO,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC;SAC3C,IAAI,cAAc,GACvB,IAAI,MAAM,OAAO,gBAAgB,IAAI,QAAQ,QAAQ,QAAQ;SAE7D,IAAI,MAAM,OAAO,gBAAgB,IAAI,QAAQ,IAAI,QAAQ;YAEpD,GAAG;IACV,IAAI,MAAM;IACV,UAAU,IAAI,IAAI,MAAM,QAAQ,EAAE,QAAQ;;;EAG9C,OAAO;;CAET,SAAS,UAAU,MAAM,OAAO,SAAS;EACvC,eAAe,QACb,oBAAoB,MAAM,OAAO,OAAO,MAAM,EAAE,KAAK,GAAG,QAAQ,CACjE;;CAEH,SAAS,QAAQ;EACf,UAAU,OAAO;EACjB,iBAAiB;EACjB,cAAc;EACd,mBAAmB;EACnB,wBAAwB;EACxB,sBAAsB;EACtB,MAAM,SAAS;;CAEjB,SAAS,UAAU,OAAO,SAAS;EACjC,OAAO;EACP,eAAe;EACf,iBAAiB,OAAO,OAAO,EAAE,EAAE,qBAAqB;EACxD,IAAI,SAAS;GACX,IAAI;GACJ,KAAK,OAAO,SACV,IAAI,QAAQ,QAAQ,MAClB,eAAe,OAAO,QAAQ;;EAKlC,IAAI,eAAe,gBACjB,QAAQ,KACN,kGACD;EAGL,UAAU,OAAO,eAAe,cAAc,SAAS,IAAI,eAAe,cAAc,QAAQ,IAAI;EACpG,UAAU,QAAQ,eAAe,OAAO,KAAK,eAAe,OAAO;EACnE,MAAM,aAAa,WAAW,QAAQ;EACtC,IAAI,YAAY;GACd,UAAU,gBAAgB,YAAY,WAAW,GAAG;GACpD,UAAU,iBAAiB,YAAY,WAAW,GAAG;;EAEvD,MAAM,OAAO,cAAc,WAAW,EAAE,EAAE,MAAM;EAChD,UAAU,MAAM,aAAa;EAC7B,KAAK,MAAM,OAAO,GAAG,MAAM,OAAO;EAClC,KAAK,WAAW,mBAAmB,KAAK,SAAS;EACjD,cAAc;EACd,OAAO;;CAGT,SAAS,YAAY,MAAM,SAAS;EAClC,KACE,MACA,KAAK,GACL,SAGA,CAAC,CAAC,qBAAqB,KAAK,CAC7B;;CAEH,SAAS,qBAAqB,MAAM;EAClC,MAAM,WAAW,KAAK,SAAS,QAAQ,MAAM,EAAE,SAAS,EAAE;EAC1D,OAAO,SAAS,WAAW,KAAK,SAAS,GAAG,SAAS,KAAK,CAAC,aAAa,SAAS,GAAG,GAAG,SAAS,KAAK;;CAEvG,SAAS,KAAK,MAAM,QAAQ,SAAS,iBAAiB,OAAO,QAAQ,OAAO;EAC1E,MAAM,EAAE,aAAa;EACrB,MAAM,UAAU,EAAE;EAClB,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;GACxC,MAAM,QAAQ,SAAS;GACvB,IAAI,MAAM,SAAS,KAAK,MAAM,YAAY,GAAG;IAC3C,MAAM,eAAe,iBAAiB,IAAI,gBAAgB,OAAO,QAAQ;IACzE,IAAI,eAAe;SACb,gBAAgB,GAAG;MACrB,MAAM,YAAY,YAAY;MAC9B,QAAQ,KAAK,MAAM;MACnB;;WAEG;KACL,MAAM,cAAc,MAAM;KAC1B,IAAI,YAAY,SAAS,IAAI;MAC3B,MAAM,OAAO,YAAY;MACzB,KAAK,SAAS,KAAK,KAAK,SAAS,OAAO,SAAS,MAAM,8BAA8B,OAAO,QAAQ,IAAI,GAAG;OACzG,MAAM,QAAQ,aAAa,MAAM;OACjC,IAAI,OACF,YAAY,QAAQ,QAAQ,MAAM,MAAM;;MAG5C,IAAI,YAAY,cACd,YAAY,eAAe,QAAQ,MAAM,YAAY,aAAa;;;UAInE,IAAI,MAAM,SAAS;SACH,iBAAiB,IAAI,gBAAgB,OAAO,QAAQ,KACrD,GAAG;KACrB,IAAI,MAAM,YAAY,SAAS,MAAM,MAAM,YAAY,UAAU,SAAS,GACxE,MAAM,YAAY,UAAU,KAC1B,SAAa,OAAO,eAAe,IAAI,KACxC;KAEH,QAAQ,KAAK,MAAM;KACnB;;;GAGJ,IAAI,MAAM,SAAS,GAAG;IACpB,MAAM,cAAc,MAAM,YAAY;IACtC,IAAI,aACF,QAAQ,OAAO;IAEjB,KAAK,OAAO,MAAM,SAAS,OAAO,MAAM;IACxC,IAAI,aACF,QAAQ,OAAO;UAEZ,IAAI,MAAM,SAAS,IACxB,KAAK,OAAO,MAAM,SAAS,MAAM,SAAS,WAAW,GAAG,KAAK;QACxD,IAAI,MAAM,SAAS,GACxB,KAAK,IAAI,KAAK,GAAG,KAAK,MAAM,SAAS,QAAQ,MAC3C,KACE,MAAM,SAAS,KACf,MACA,SACA,MAAM,SAAS,IAAI,SAAS,WAAW,GACvC,MACD;;EAIP,IAAI,gBAAgB;EACpB,IAAI,QAAQ,WAAW,SAAS,UAAU,KAAK,SAAS;OAClD,KAAK,YAAY,KAAK,KAAK,eAAe,KAAK,YAAY,SAAS,MAAM,OAAO,QAAQ,KAAK,YAAY,SAAS,EAAE;IACvH,KAAK,YAAY,WAAW,mBAC1B,sBAAsB,KAAK,YAAY,SAAS,CACjD;IACD,gBAAgB;UACX,IAAI,KAAK,YAAY,KAAK,KAAK,eAAe,KAAK,YAAY,SAAS,MAAM,KAAK,YAAY,YAAY,CAAC,OAAO,QAAQ,KAAK,YAAY,SAAS,IAAI,KAAK,YAAY,SAAS,SAAS,IAAI;IACrM,MAAM,OAAO,YAAY,KAAK,aAAa,UAAU;IACrD,IAAI,MAAM;KACR,KAAK,UAAU,mBACb,sBAAsB,KAAK,QAAQ,CACpC;KACD,gBAAgB;;UAEb,IAAI,KAAK,YAAY,KAAK,UAAU,OAAO,SAAS,KAAK,OAAO,YAAY,KAAK,OAAO,eAAe,OAAO,YAAY,SAAS,MAAM,OAAO,YAAY,YAAY,CAAC,OAAO,QAAQ,OAAO,YAAY,SAAS,IAAI,OAAO,YAAY,SAAS,SAAS,IAAI;IACtQ,MAAM,WAAW,QAAQ,MAAM,QAAQ,KAAK;IAC5C,MAAM,OAAO,YAAY,SAAS,OAAO,YAAY,OAAO,aAAa,SAAS,IAAI;IACtF,IAAI,MAAM;KACR,KAAK,UAAU,mBACb,sBAAsB,KAAK,QAAQ,CACpC;KACD,gBAAgB;;;;EAItB,IAAI,CAAC,eACH,KAAK,MAAM,SAAS,SAClB,MAAM,cAAc,QAAQ,MAAM,MAAM,YAAY;EAGxD,SAAS,mBAAmB,OAAO;GACjC,MAAM,MAAM,QAAQ,MAAM,MAAM;GAChC,IAAI,kBAAkB;GACtB,OAAO;;EAET,SAAS,YAAY,OAAO,MAAM;GAChC,IAAI,MAAM,YAAY,CAAC,OAAO,QAAQ,MAAM,SAAS,IAAI,MAAM,SAAS,SAAS,IAAI;IACnF,MAAM,OAAO,MAAM,SAAS,WAAW,MACpC,MAAM,EAAE,QAAQ,QAAQ,EAAE,IAAI,YAAY,KAC5C;IACD,OAAO,QAAQ,KAAK;;;EAGxB,IAAI,QAAQ,UAAU,QAAQ,gBAC5B,QAAQ,eAAe,UAAU,SAAS,KAAK;;CAGnD,SAAS,gBAAgB,MAAM,SAAS;EACtC,MAAM,EAAE,kBAAkB;EAC1B,QAAQ,KAAK,MAAb;GACE,KAAK;IACH,IAAI,KAAK,YAAY,GACnB,OAAO;IAET,MAAM,SAAS,cAAc,IAAI,KAAK;IACtC,IAAI,WAAW,KAAK,GAClB,OAAO;IAET,MAAM,cAAc,KAAK;IACzB,IAAI,YAAY,SAAS,IACvB,OAAO;IAET,IAAI,YAAY,WAAW,KAAK,QAAQ,SAAS,KAAK,QAAQ,mBAAmB,KAAK,QAAQ,QAC5F,OAAO;IAET,IAAI,YAAY,cAAc,KAAK,GAAG;KACpC,IAAI,cAAc;KAClB,MAAM,qBAAqB,8BAA8B,MAAM,QAAQ;KACvE,IAAI,uBAAuB,GAAG;MAC5B,cAAc,IAAI,MAAM,EAAE;MAC1B,OAAO;;KAET,IAAI,qBAAqB,aACvB,cAAc;KAEhB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,KAAK;MAC7C,MAAM,YAAY,gBAAgB,KAAK,SAAS,IAAI,QAAQ;MAC5D,IAAI,cAAc,GAAG;OACnB,cAAc,IAAI,MAAM,EAAE;OAC1B,OAAO;;MAET,IAAI,YAAY,aACd,cAAc;;KAGlB,IAAI,cAAc,GAChB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;MAC1C,MAAM,IAAI,KAAK,MAAM;MACrB,IAAI,EAAE,SAAS,KAAK,EAAE,SAAS,UAAU,EAAE,KAAK;OAC9C,MAAM,UAAU,gBAAgB,EAAE,KAAK,QAAQ;OAC/C,IAAI,YAAY,GAAG;QACjB,cAAc,IAAI,MAAM,EAAE;QAC1B,OAAO;;OAET,IAAI,UAAU,aACZ,cAAc;;;KAKtB,IAAI,YAAY,SAAS;MACvB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAErC,IADU,KAAK,MAAM,GACf,SAAS,GAAG;OAChB,cAAc,IAAI,MAAM,EAAE;OAC1B,OAAO;;MAGX,QAAQ,aAAa,WAAW;MAChC,QAAQ,aACN,oBAAoB,QAAQ,OAAO,YAAY,YAAY,CAC5D;MACD,YAAY,UAAU;MACtB,QAAQ,OAAO,eAAe,QAAQ,OAAO,YAAY,YAAY,CAAC;;KAExE,cAAc,IAAI,MAAM,YAAY;KACpC,OAAO;WACF;KACL,cAAc,IAAI,MAAM,EAAE;KAC1B,OAAO;;GAEX,KAAK;GACL,KAAK,GACH,OAAO;GACT,KAAK;GACL,KAAK;GACL,KAAK,IACH,OAAO;GACT,KAAK;GACL,KAAK,IACH,OAAO,gBAAgB,KAAK,SAAS,QAAQ;GAC/C,KAAK,GACH,OAAO,KAAK;GACd,KAAK;IACH,IAAI,aAAa;IACjB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,KAAK;KAC7C,MAAM,QAAQ,KAAK,SAAS;KAC5B,IAAI,OAAO,SAAS,MAAM,IAAI,OAAO,SAAS,MAAM,EAClD;KAEF,MAAM,YAAY,gBAAgB,OAAO,QAAQ;KACjD,IAAI,cAAc,GAChB,OAAO;UACF,IAAI,YAAY,YACrB,aAAa;;IAGjB,OAAO;GACT,KAAK,IACH,OAAO;GACT,SACE,OAAO;;;CAGb,MAAM,wCAAwC,IAAI,IAAI;EACpD;EACA;EACA;EACA;EACD,CAAC;CACF,SAAS,4BAA4B,OAAO,SAAS;EACnD,IAAI,MAAM,SAAS,MAAM,CAAC,OAAO,SAAS,MAAM,OAAO,IAAI,sBAAsB,IAAI,MAAM,OAAO,EAAE;GAClG,MAAM,MAAM,MAAM,UAAU;GAC5B,IAAI,IAAI,SAAS,GACf,OAAO,gBAAgB,KAAK,QAAQ;QAC/B,IAAI,IAAI,SAAS,IACtB,OAAO,4BAA4B,KAAK,QAAQ;;EAGpD,OAAO;;CAET,SAAS,8BAA8B,MAAM,SAAS;EACpD,IAAI,aAAa;EACjB,MAAM,QAAQ,aAAa,KAAK;EAChC,IAAI,SAAS,MAAM,SAAS,IAAI;GAC9B,MAAM,EAAE,eAAe;GACvB,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;IAC1C,MAAM,EAAE,KAAK,UAAU,WAAW;IAClC,MAAM,UAAU,gBAAgB,KAAK,QAAQ;IAC7C,IAAI,YAAY,GACd,OAAO;IAET,IAAI,UAAU,YACZ,aAAa;IAEf,IAAI;IACJ,IAAI,MAAM,SAAS,GACjB,YAAY,gBAAgB,OAAO,QAAQ;SACtC,IAAI,MAAM,SAAS,IACxB,YAAY,4BAA4B,OAAO,QAAQ;SAEvD,YAAY;IAEd,IAAI,cAAc,GAChB,OAAO;IAET,IAAI,YAAY,YACd,aAAa;;;EAInB,OAAO;;CAET,SAAS,aAAa,MAAM;EAC1B,MAAM,cAAc,KAAK;EACzB,IAAI,YAAY,SAAS,IACvB,OAAO,YAAY;;CAIvB,SAAS,uBAAuB,MAAM,EACpC,WAAW,IACX,oBAAoB,OACpB,cAAc,OACd,MAAM,OACN,gBAAgB,OAChB,iBAAiB,EAAE,EACnB,sBAAsB,EAAE,EACxB,iBAAiB,MACjB,qBAAqB,OAAO,MAC5B,kBAAkB,OAAO,MACzB,oBAAoB,EAAE,EACtB,UAAU,MACV,UAAU,MACV,MAAM,OACN,QAAQ,OACR,aAAa,IACb,kBAAkB,OAAO,WACzB,SAAS,OACT,OAAO,OACP,UAAU,gBACV,SAAS,eACT,gBACC;EACD,MAAM,YAAY,SAAS,QAAQ,SAAS,GAAG,CAAC,MAAM,kBAAkB;EACxE,MAAM,UAAU;GAEd;GACA,UAAU,aAAa,OAAO,WAAW,OAAO,SAAS,UAAU,GAAG,CAAC;GACvE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GAEA;GACA,yBAAyB,IAAI,KAAK;GAClC,4BAA4B,IAAI,KAAK;GACrC,4BAA4B,IAAI,KAAK;GACrC,QAAQ,EAAE;GACV,SAAS,EAAE;GACX,QAAQ,EAAE;GACV,+BAA+B,IAAI,SAAS;GAC5C,oCAAoC,IAAI,SAAS;GACjD,OAAO;GACP,aAA6B,uBAAO,OAAO,KAAK;GAChD,QAAQ;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACR;GACD,QAAQ;GACR,aAAa;GACb,aAAa;GACb,YAAY;GACZ,SAAS;GAET,OAAO,MAAM;IACX,MAAM,QAAQ,QAAQ,QAAQ,IAAI,KAAK,IAAI;IAC3C,QAAQ,QAAQ,IAAI,MAAM,QAAQ,EAAE;IACpC,OAAO;;GAET,aAAa,MAAM;IACjB,MAAM,QAAQ,QAAQ,QAAQ,IAAI,KAAK;IACvC,IAAI,OAAO;KACT,MAAM,eAAe,QAAQ;KAC7B,IAAI,CAAC,cACH,QAAQ,QAAQ,OAAO,KAAK;UAE5B,QAAQ,QAAQ,IAAI,MAAM,aAAa;;;GAI7C,aAAa,MAAM;IACjB,OAAO,IAAI,cAAc,QAAQ,OAAO,KAAK;;GAE/C,YAAY,MAAM;IAEd,IAAI,CAAC,QAAQ,aACX,MAAM,IAAI,MAAM,0CAA0C;IAE5D,IAAI,CAAC,QAAQ,QACX,MAAM,IAAI,MAAM,4BAA4B;IAGhD,QAAQ,OAAO,SAAS,QAAQ,cAAc,QAAQ,cAAc;;GAEtE,WAAW,MAAM;IACf,IAAI,CAAC,QAAQ,QACX,MAAM,IAAI,MAAM,2BAA2B;IAE7C,MAAM,OAAO,QAAQ,OAAO;IAC5B,MAAM,eAAe,OAAO,KAAK,QAAQ,KAAK,GAAG,QAAQ,cAAc,QAAQ,aAAa;IAC5F,IAAI,eAAe,GACjB,MAAM,IAAI,MAAM,sDAAsD;IAExE,IAAI,CAAC,QAAQ,SAAS,QAAQ,aAAa;KACzC,QAAQ,cAAc;KACtB,QAAQ,eAAe;WAEvB,IAAI,QAAQ,aAAa,cAAc;KACrC,QAAQ;KACR,QAAQ,eAAe;;IAG3B,QAAQ,OAAO,SAAS,OAAO,cAAc,EAAE;;GAEjD,eAAe,OAAO;GACtB,eAAe,KAAK;IAEhB,IAAI,OAAO,SAAS,IAAI,EACtB,MAAM,IAAI;SACL,IAAI,IAAI,aACb,IAAI,YAAY,QAAQ,MAAM;SACzB,IAAI,IAAI,SAAS,GACtB,MAAM,IAAI,QAAQ;;GAIxB,kBAAkB,KAAK;IAEnB,IAAI,OAAO,SAAS,IAAI,EACtB,SAAS,IAAI;SACR,IAAI,IAAI,aACb,IAAI,YAAY,QAAQ,SAAS;SAC5B,IAAI,IAAI,SAAS,GACtB,SAAS,IAAI,QAAQ;;GAI3B,MAAM,KAAK;IACT,IAAI,OAAO,SAAS,IAAI,EAAE,MAAM,uBAAuB,IAAI;IAC3D,QAAQ,OAAO,KAAK,IAAI;IACxB,MAAM,aAAa,uBACjB,YAAY,QAAQ,OAAO,UAC3B,OACA,IAAI,KACJ,EACD;IACD,WAAW,UAAU;IACrB,OAAO;;GAET,MAAM,KAAK,UAAU,OAAO,UAAU,OAAO;IAC3C,MAAM,WAAW,sBACf,QAAQ,OAAO,QACf,KACA,SACA,QACD;IACD,QAAQ,OAAO,KAAK,SAAS;IAC7B,OAAO;;GAEV;EAEC,QAAQ,0BAA0B,IAAI,KAAK;EAE7C,SAAS,MAAM,IAAI;GACjB,MAAM,EAAE,gBAAgB;GACxB,IAAI,YAAY,QAAQ,KAAK,GAC3B,YAAY,MAAM;GAEpB,YAAY;;EAEd,SAAS,SAAS,IAAI;GACpB,QAAQ,YAAY;;EAEtB,OAAO;;CAET,SAAS,UAAU,MAAM,SAAS;EAChC,MAAM,UAAU,uBAAuB,MAAM,QAAQ;EACrD,aAAa,MAAM,QAAQ;EAC3B,IAAI,QAAQ,aACV,YAAY,MAAM,QAAQ;EAE5B,IAAI,CAAC,QAAQ,KACX,kBAAkB,MAAM,QAAQ;EAElC,KAAK,0BAA0B,IAAI,IAAI,CAAC,GAAG,QAAQ,QAAQ,MAAM,CAAC,CAAC;EACnE,KAAK,aAAa,CAAC,GAAG,QAAQ,WAAW;EACzC,KAAK,aAAa,CAAC,GAAG,QAAQ,WAAW;EACzC,KAAK,UAAU,QAAQ;EACvB,KAAK,SAAS,QAAQ;EACtB,KAAK,QAAQ,QAAQ;EACrB,KAAK,SAAS,QAAQ;EACtB,KAAK,cAAc;EAEjB,KAAK,UAAU,CAAC,GAAG,QAAQ,QAAQ;;CAGvC,SAAS,kBAAkB,MAAM,SAAS;EACxC,MAAM,EAAE,WAAW;EACnB,MAAM,EAAE,aAAa;EACrB,IAAI,SAAS,WAAW,GAAG;GACzB,MAAM,yBAAyB,qBAAqB,KAAK;GACzD,IAAI,0BAA0B,uBAAuB,aAAa;IAChE,MAAM,cAAc,uBAAuB;IAC3C,IAAI,YAAY,SAAS,IACvB,eAAe,aAAa,QAAQ;IAEtC,KAAK,cAAc;UAEnB,KAAK,cAAc,SAAS;SAEzB,IAAI,SAAS,SAAS,GAAG;GAC9B,IAAI,YAAY;GAChB,IAAI,SAAS,QAAQ,MAAM,EAAE,SAAS,EAAE,CAAC,WAAW,GAClD,aAAa;GAEf,KAAK,cAAc,gBACjB,SACA,OAAO,SAAS,EAChB,KAAK,GACL,KAAK,UACL,WACA,KAAK,GACL,KAAK,GACL,MACA,KAAK,GACL,MACD;;;CAGL,SAAS,iBAAiB,QAAQ,SAAS;EACzC,IAAI,IAAI;EACR,MAAM,oBAAoB;GACxB;;EAEF,OAAO,IAAI,OAAO,SAAS,QAAQ,KAAK;GACtC,MAAM,QAAQ,OAAO,SAAS;GAC9B,IAAI,OAAO,SAAS,MAAM,EAAE;GAC5B,QAAQ,cAAc,QAAQ;GAC9B,QAAQ,SAAS;GACjB,QAAQ,aAAa;GACrB,QAAQ,gBAAgB;GACxB,aAAa,OAAO,QAAQ;;;CAGhC,SAAS,aAAa,MAAM,SAAS;EACnC,QAAQ,cAAc;EACtB,MAAM,EAAE,mBAAmB;EAC3B,MAAM,UAAU,EAAE;EAClB,KAAK,IAAI,KAAK,GAAG,KAAK,eAAe,QAAQ,MAAM;GACjD,MAAM,SAAS,eAAe,IAAI,MAAM,QAAQ;GAChD,IAAI,QACF,IAAI,OAAO,QAAQ,OAAO,EACxB,QAAQ,KAAK,GAAG,OAAO;QAEvB,QAAQ,KAAK,OAAO;GAGxB,IAAI,CAAC,QAAQ,aACX;QAEA,OAAO,QAAQ;;EAGnB,QAAQ,KAAK,MAAb;GACE,KAAK;IACH,IAAI,CAAC,QAAQ,KACX,QAAQ,OAAO,eAAe;IAEhC;GACF,KAAK;IACH,IAAI,CAAC,QAAQ,KACX,QAAQ,OAAO,kBAAkB;IAEnC;GAEF,KAAK;IACH,KAAK,IAAI,KAAK,GAAG,KAAK,KAAK,SAAS,QAAQ,MAC1C,aAAa,KAAK,SAAS,KAAK,QAAQ;IAE1C;GACF,KAAK;GACL,KAAK;GACL,KAAK;GACL,KAAK;IACH,iBAAiB,MAAM,QAAQ;IAC/B;;EAEJ,QAAQ,cAAc;EACtB,IAAI,IAAI,QAAQ;EAChB,OAAO,KACL,QAAQ,IAAI;;CAGhB,SAAS,mCAAmC,MAAM,IAAI;EACpD,MAAM,UAAU,OAAO,SAAS,KAAK,IAAI,MAAM,MAAM,QAAQ,MAAM,KAAK,KAAK,EAAE;EAC/E,QAAQ,MAAM,YAAY;GACxB,IAAI,KAAK,SAAS,GAAG;IACnB,MAAM,EAAE,UAAU;IAClB,IAAI,KAAK,YAAY,KAAK,MAAM,KAAK,QAAQ,EAC3C;IAEF,MAAM,UAAU,EAAE;IAClB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;KACrC,MAAM,OAAO,MAAM;KACnB,IAAI,KAAK,SAAS,KAAK,QAAQ,KAAK,KAAK,EAAE;MACzC,MAAM,OAAO,GAAG,EAAE;MAClB;MACA,MAAM,SAAS,GAAG,MAAM,MAAM,QAAQ;MACtC,IAAI,QAAQ,QAAQ,KAAK,OAAO;;;IAGpC,OAAO;;;;CAKb,MAAM,kBAAkB;CACxB,MAAM,eAAe,MAAM,GAAG,cAAc,GAAG,KAAK,cAAc;CAClE,SAAS,qBAAqB,KAAK,EACjC,OAAO,YACP,oBAAoB,SAAS,UAC7B,YAAY,OACZ,WAAW,qBACX,UAAU,MACV,kBAAkB,OAClB,oBAAoB,OACpB,oBAAoB,OACpB,uBAAuB,uBACvB,MAAM,OACN,OAAO,OACP,QAAQ,SACP;EACD,MAAM,UAAU;GACd;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,QAAQ,IAAI;GACZ,MAAM;GACN,QAAQ;GACR,MAAM;GACN,QAAQ;GACR,aAAa;GACb,MAAM;GACN,KAAK,KAAK;GACV,OAAO,KAAK;IACV,OAAO,IAAI,cAAc;;GAE3B,KAAK,MAAM,eAAe,IAAe,MAAM;IAC7C,QAAQ,QAAQ;IAChB,IAAI,QAAQ,KAAK;KACf,IAAI,MAAM;MACR,IAAI;MACJ,IAAI,KAAK,SAAS,KAAK,CAAC,KAAK,UAAU;OACrC,MAAM,UAAU,KAAK,QAAQ,QAAQ,WAAW,GAAG;OACnD,IAAI,YAAY,KAAK,WAAW,mBAAmB,QAAQ,EACzD,OAAO;;MAGX,IAAI,KAAK,IAAI,QACX,WAAW,KAAK,IAAI,OAAO,KAAK;;KAGpC,IAAI,iBAAiB,IACnB,4BAA4B,SAAS,KAAK;UACrC;MACL,QAAQ,UAAU,KAAK;MACvB,IAAI,iBAAiB,IACnB,QAAQ,UAAU,KAAK;WAClB;OACL,IAAI,iBAAiB,IACnB,eAAe,KAAK,SAAS;OAE/B,QAAQ;OACR,QAAQ,SAAS,KAAK,SAAS;;;KAGnC,IAAI,QAAQ,KAAK,QAAQ,WAAW,KAAK,IAAI,QAC3C,WAAW,KAAK,IAAI,IAAI;;;GAI9B,SAAS;IACP,QAAQ,EAAE,QAAQ,YAAY;;GAEhC,SAAS,iBAAiB,OAAO;IAC/B,IAAI,gBACF,EAAE,QAAQ;SAEV,QAAQ,EAAE,QAAQ,YAAY;;GAGlC,UAAU;IACR,QAAQ,QAAQ,YAAY;;GAE/B;EACD,SAAS,QAAQ,GAAG;GAClB,QAAQ,KAAK,OAAO,KAAK,OAAO,EAAE,EAAE,EAAc;;EAEpD,SAAS,WAAW,KAAK,OAAO,MAAM;GACpC,MAAM,EAAE,QAAQ,cAAc,QAAQ;GACtC,IAAI,SAAS,QAAQ,CAAC,OAAO,IAAI,KAAK,EAAE,OAAO,IAAI,KAAK;GACxD,UAAU,IAAI;IACZ,cAAc,IAAI;IAClB,gBAAgB,IAAI,SAAS;IAE7B,eAAe,QAAQ;IACvB,iBAAiB,QAAQ,SAAS;IAClC,QAAQ;IACR;IACD,CAAC;;EAEJ,IAAI,WAAW;GACb,QAAQ,MAAM,IAAI,YAAY,oBAAoB;GAClD,QAAQ,IAAI,iBAAiB,UAAU,QAAQ,OAAO;GACtD,QAAQ,IAAI,SAAS,IAAI,SAAS;;EAEpC,OAAO;;CAET,SAAS,SAAS,KAAK,UAAU,EAAE,EAAE;EACnC,MAAM,UAAU,qBAAqB,KAAK,QAAQ;EAClD,IAAI,QAAQ,kBAAkB,QAAQ,iBAAiB,QAAQ;EAC/D,MAAM,EACJ,MACA,MACA,mBACA,QACA,UACA,SACA,SACA,QACE;EACJ,MAAM,UAAU,MAAM,KAAK,IAAI,QAAQ;EACvC,MAAM,aAAa,QAAQ,SAAS;EACpC,MAAM,eAAe,CAAC,qBAAqB,SAAS;EACpD,MAAM,aAAa,WAAW,QAAQ,SAAS;EAC/C,MAAM,iBAAiB,CAAC,CAAC,QAAQ;EACjC,MAAM,kBAAkB,iBAAiB,qBAAqB,KAAK,QAAQ,GAAG;EAC9E,IAAI,SAAS,UACX,kBAAkB,KAAK,iBAAiB,YAAY,eAAe;OAEnE,oBAAoB,KAAK,gBAAgB;EAE3C,MAAM,eAAe,MAAM,cAAc;EACzC,MAAM,OAAO,MAAM;GAAC;GAAQ;GAAS;GAAW;GAAS,GAAG,CAAC,QAAQ,SAAS;EAC9E,IAAI,QAAQ,mBAAmB,CAAC,QAAQ,QACtC,KAAK,KAAK,UAAU,UAAU,SAAS,WAAW;EAEpD,MAAM,YAAY,QAAQ,OAAO,KAAK,KAAK,QAAQ,GAAG,IAAI,OAAO,CAAC,KAAK,IAAI,GAAG,KAAK,KAAK,KAAK;EAC7F,IAAI,gBACF,KAAK,IAAI,UAAU,QAAQ;OAE3B,KAAK,YAAY,aAAa,GAAG,UAAU,KAAK;EAElD,QAAQ;EACR,IAAI,cAAc;GAChB,KAAK,gBAAgB;GACrB,QAAQ;GACR,IAAI,YAAY;IACd,KACE,WAAW,QAAQ,IAAI,YAAY,CAAC,KAAK,KAAK,CAAC;GAE/C,GACD;IACD,SAAS;;;EAGb,IAAI,IAAI,WAAW,QAAQ;GACzB,UAAU,IAAI,YAAY,aAAa,QAAQ;GAC/C,IAAI,IAAI,WAAW,UAAU,IAAI,QAAQ,GACvC,SAAS;;EAGb,IAAI,IAAI,WAAW,QAAQ;GACzB,UAAU,IAAI,YAAY,aAAa,QAAQ;GAC/C,IAAI,IAAI,QAAQ,GACd,SAAS;;EAGb,IAAI,IAAI,WAAW,IAAI,QAAQ,QAAQ;GACrC,SAAS;GACT,UAAU,IAAI,SAAS,UAAU,QAAQ;GACzC,SAAS;;EAEX,IAAI,IAAI,QAAQ,GAAG;GACjB,KAAK,OAAO;GACZ,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,OAAO,KAC7B,KAAK,GAAG,IAAI,IAAI,OAAO,GAAG,OAAO,IAAI;;EAGzC,IAAI,IAAI,WAAW,UAAU,IAAI,WAAW,UAAU,IAAI,OAAO;GAC/D,KAAK;GACN,EAAc;GACb,SAAS;;EAEX,IAAI,CAAC,KACH,KAAK,UAAU;EAEjB,IAAI,IAAI,aACN,QAAQ,IAAI,aAAa,QAAQ;OAEjC,KAAK,OAAO;EAEd,IAAI,cAAc;GAChB,UAAU;GACV,KAAK,IAAI;;EAEX,UAAU;EACV,KAAK,IAAI;EACT,OAAO;GACL;GACA,MAAM,QAAQ;GACd,UAAU,iBAAiB,gBAAgB,OAAO;GAClD,KAAK,QAAQ,MAAM,QAAQ,IAAI,QAAQ,GAAG,KAAK;GAChD;;CAEH,SAAS,oBAAoB,KAAK,SAAS;EACzC,MAAM,EACJ,KACA,mBACA,MACA,SACA,mBACA,mBACA,yBACE;EACJ,MAAM,aAAa,MAAM,WAAW,KAAK,UAAU,kBAAkB,CAAC,KAAK;EAC3E,MAAM,UAAU,MAAM,KAAK,IAAI,QAAQ;EACvC,IAAI,QAAQ,SAAS,GACnB,IAAI,mBACF,KACE,WAAW,QAAQ,IAAI,YAAY,CAAC,KAAK,KAAK,CAAC,OAAO,WAAW;GAEjE,GACD;OACI;GACL,KAAK,gBAAgB,WAAW;GACnC,GAAa;GACV,IAAI,IAAI,OAAO,QAQb,KAAK,WAPiB;IACpB;IACA;IACA;IACA;IACA;IACD,CAAC,QAAQ,WAAW,QAAQ,SAAS,OAAO,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,KACxC,CAAC;GACnC,GAAa;;EAId,IAAI,IAAI,cAAc,IAAI,WAAW,QACnC,KACE,WAAW,IAAI,WAAW,IAAI,YAAY,CAAC,KAAK,KAAK,CAAC,gBAAgB,qBAAqB;GAE3F,GACD;EAEH,UAAU,IAAI,QAAQ,QAAQ;EAC9B,SAAS;EACT,KAAK,UAAU;;CAEjB,SAAS,kBAAkB,KAAK,SAAS,YAAY,QAAQ;EAC3D,MAAM,EACJ,MACA,SACA,iBACA,mBACA,yBACE;EACJ,IAAI,IAAI,QAAQ,MAAM;GACpB,MAAM,UAAU,MAAM,KAAK,IAAI,QAAQ;GACvC,IAAI,iBAAiB;IACnB,KACE,YAAY,QAAQ,KAAK,MAAM,cAAc,GAAG,CAAC,KAAK,KAAK,CAAC,UAAU,KAAK,UAAU,kBAAkB,CAAC;GAExG,GACD;IACD,KACE;;QAEA,QAAQ,KAAK,MAAM,IAAI,cAAc,GAAG,KAAK,cAAc,KAAK,CAAC,KAAK,KAAK,CAAC;GAE5E,GACD;UAED,KACE,YAAY,QAAQ,KAAK,MAAM,GAAG,cAAc,GAAG,OAAO,cAAc,KAAK,CAAC,KAAK,KAAK,CAAC,UAAU,KAAK,UAAU,kBAAkB,CAAC;GAErI,GACD;;EAGL,IAAI,IAAI,cAAc,IAAI,WAAW,QACnC,KACE,YAAY,IAAI,WAAW,KAAK,MAAM,GAAG,cAAc,GAAG,OAAO,cAAc,KAAK,CAAC,KAAK,KAAK,CAAC,WAAW,qBAAqB;GAEhI,GACD;EAEH,IAAI,IAAI,QAAQ,QAAQ;GACtB,WAAW,IAAI,SAAS,QAAQ;GAChC,SAAS;;EAEX,UAAU,IAAI,QAAQ,QAAQ;EAC9B,SAAS;EACT,IAAI,CAAC,QACH,KAAK,UAAU;;CAGnB,SAAS,UAAU,QAAQ,MAAM,EAAE,QAAQ,MAAM,SAAS,QAAQ;EAChE,MAAM,WAAW,OACf,SAAS,WAAW,iBAAiB,SAAS,cAAc,oBAAoB,kBACjF;EACD,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;GACtC,IAAI,KAAK,OAAO;GAChB,MAAM,qBAAqB,GAAG,SAAS,SAAS;GAChD,IAAI,oBACF,KAAK,GAAG,MAAM,GAAG,GAAG;GAEtB,KACE,SAAS,eAAe,IAAI,KAAK,CAAC,KAAK,SAAS,GAAG,KAAK,UAAU,GAAG,GAAG,qBAAqB,WAAW,GAAG,GAAG,OAAO,MAAM,KAC5H;GACD,IAAI,IAAI,OAAO,SAAS,GACtB,SAAS;;;CAIf,SAAS,UAAU,QAAQ,SAAS;EAClC,IAAI,CAAC,OAAO,QACV;EAEF,QAAQ,OAAO;EACf,MAAM,EAAE,MAAM,YAAY;EAC1B,SAAS;EACT,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;GACtC,MAAM,MAAM,OAAO;GACnB,IAAI,KAAK;IACP,KAAK,kBAAkB,IAAI,EAAE,KAAK;IAClC,QAAQ,KAAK,QAAQ;IACrB,SAAS;;;EAGb,QAAQ,OAAO;;CAEjB,SAAS,WAAW,gBAAgB,SAAS;EAC3C,IAAI,CAAC,eAAe,QAClB;EAEF,eAAe,SAAS,YAAY;GAClC,QAAQ,KAAK,UAAU;GACvB,QAAQ,QAAQ,KAAK,QAAQ;GAC7B,QAAQ,KAAK,UAAU,QAAQ,KAAK,GAAG;GACvC,QAAQ,SAAS;IACjB;;CAEJ,SAAS,OAAO,GAAG;EACjB,OAAO,OAAO,SAAS,EAAE,IAAI,EAAE,SAAS,KAAK,EAAE,SAAS,KAAK,EAAE,SAAS,KAAK,EAAE,SAAS;;CAE1F,SAAS,mBAAmB,OAAO,SAAS;EAC1C,MAAM,aAAa,MAAM,SAAS,KAAK,MAAM,MAAM,MAAM,OAAO,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;EACzF,QAAQ,KAAK,IAAI;EACjB,cAAc,QAAQ,QAAQ;EAC9B,YAAY,OAAO,SAAS,WAAW;EACvC,cAAc,QAAQ,UAAU;EAChC,QAAQ,KAAK,IAAI;;CAEnB,SAAS,YAAY,OAAO,SAAS,aAAa,OAAO,QAAQ,MAAM;EACrE,MAAM,EAAE,MAAM,YAAY;EAC1B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACrC,MAAM,OAAO,MAAM;GACnB,IAAI,OAAO,SAAS,KAAK,EACvB,KAAK,MAAM,GAAiB;QACvB,IAAI,OAAO,QAAQ,KAAK,EAC7B,mBAAmB,MAAM,QAAQ;QAEjC,QAAQ,MAAM,QAAQ;GAExB,IAAI,IAAI,MAAM,SAAS,GACrB,IAAI,YAAY;IACd,SAAS,KAAK,IAAI;IAClB,SAAS;UAET,SAAS,KAAK,KAAK;;;CAK3B,SAAS,QAAQ,MAAM,SAAS;EAC9B,IAAI,OAAO,SAAS,KAAK,EAAE;GACzB,QAAQ,KAAK,MAAM,GAAiB;GACpC;;EAEF,IAAI,OAAO,SAAS,KAAK,EAAE;GACzB,QAAQ,KAAK,QAAQ,OAAO,KAAK,CAAC;GAClC;;EAEF,QAAQ,KAAK,MAAb;GACE,KAAK;GACL,KAAK;GACL,KAAK;IACH,OACE,KAAK,eAAe,MACpB,uFACD;IACD,QAAQ,KAAK,aAAa,QAAQ;IAClC;GACF,KAAK;IACH,QAAQ,MAAM,QAAQ;IACtB;GACF,KAAK;IACH,cAAc,MAAM,QAAQ;IAC5B;GACF,KAAK;IACH,iBAAiB,MAAM,QAAQ;IAC/B;GACF,KAAK;IACH,QAAQ,KAAK,aAAa,QAAQ;IAClC;GACF,KAAK;IACH,sBAAsB,MAAM,QAAQ;IACpC;GACF,KAAK;IACH,WAAW,MAAM,QAAQ;IACzB;GACF,KAAK;IACH,aAAa,MAAM,QAAQ;IAC3B;GACF,KAAK;IACH,kBAAkB,MAAM,QAAQ;IAChC;GACF,KAAK;IACH,oBAAoB,MAAM,QAAQ;IAClC;GACF,KAAK;IACH,mBAAmB,MAAM,QAAQ;IACjC;GACF,KAAK;IACH,sBAAsB,MAAM,QAAQ;IACpC;GACF,KAAK;IACH,yBAAyB,MAAM,QAAQ;IACvC;GACF,KAAK;IACH,mBAAmB,MAAM,QAAQ;IACjC;GACF,KAAK;IACH,YAAY,KAAK,MAAM,SAAS,MAAM,MAAM;IAC5C;GAEF,KAAK;IACH,mBAAmB,MAAM,QAAQ;IACjC;GACF,KAAK;IACH,eAAe,MAAM,QAAQ;IAC7B;GACF,KAAK;IACH,wBAAwB,MAAM,QAAQ;IACtC;GACF,KAAK;IACH,sBAAsB,MAAM,QAAQ;IACpC;GACF,KAAK;IACH,mBAAmB,MAAM,QAAQ;IACjC;;GAEF,KAAK,IACH;GACF;IAEI,OAAO,OAAO,gCAAgC,KAAK,OAAO;IAE1D,OAAOC;;;CAIf,SAAS,QAAQ,MAAM,SAAS;EAC9B,QAAQ,KAAK,KAAK,UAAU,KAAK,QAAQ,EAAE,IAAkB,KAAK;;CAEpE,SAAS,cAAc,MAAM,SAAS;EACpC,MAAM,EAAE,SAAS,aAAa;EAC9B,QAAQ,KACN,WAAW,KAAK,UAAU,QAAQ,GAAG,SACrC,IACA,KACD;;CAEH,SAAS,iBAAiB,MAAM,SAAS;EACvC,MAAM,EAAE,MAAM,QAAQ,SAAS;EAC/B,IAAI,MAAM,KAAK,gBAAgB;EAC/B,KAAK,GAAG,OAAO,kBAAkB,CAAC,GAAG;EACrC,QAAQ,KAAK,SAAS,QAAQ;EAC9B,KAAK,IAAI;;CAEX,SAAS,sBAAsB,MAAM,SAAS;EAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,KAAK;GAC7C,MAAM,QAAQ,KAAK,SAAS;GAC5B,IAAI,OAAO,SAAS,MAAM,EACxB,QAAQ,KAAK,OAAO,GAAiB;QAErC,QAAQ,OAAO,QAAQ;;;CAI7B,SAAS,2BAA2B,MAAM,SAAS;EACjD,MAAM,EAAE,SAAS;EACjB,IAAI,KAAK,SAAS,GAAG;GACnB,KAAK,IAAI;GACT,sBAAsB,MAAM,QAAQ;GACpC,KAAK,IAAI;SACJ,IAAI,KAAK,UAEd,KADa,mBAAmB,KAAK,QAAQ,GAAG,KAAK,UAAU,KAAK,UAAU,KAAK,QAAQ,EAChF,IAAe,KAAK;OAE/B,KAAK,IAAI,KAAK,QAAQ,IAAI,IAAkB,KAAK;;CAGrD,SAAS,WAAW,MAAM,SAAS;EACjC,MAAM,EAAE,MAAM,QAAQ,SAAS;EAC/B,IAAI,MACF,KAAK,gBAAgB;EAEvB,KACE,GAAG,OAAO,eAAe,CAAC,GAAG,KAAK,UAAU,KAAK,QAAQ,CAAC,IAC1D,IACA,KACD;;CAEH,SAAS,aAAa,MAAM,SAAS;EACnC,MAAM,EAAE,MAAM,QAAQ,SAAS;EAC/B,MAAM,EACJ,KACA,OACA,UACA,WACA,cACA,YACA,SACA,iBACA,gBACE;EACJ,IAAI;EACJ,IAAI,WAEA,IAAI,YAAY,GACd,kBAAkB,YAAY,OAAO,OAAO,eAAe,WAAW;OAGtE,kBAAkB,YAAY,OADZ,OAAO,KAAK,OAAO,eAAe,CAAC,IAAI,OAAO,CAAC,QAAQ,MAAM,IAAI,KAAK,YAAY,EAAE,CAAC,KAAK,MAAM,OAAO,eAAe,GAAG,CAAC,KAAK,KACnG,CAAC;EAIrD,IAAI,YACF,KAAK,OAAO,gBAAgB,GAAG,IAAI;EAErC,IAAI,SACF,KAAK,IAAI,OAAO,WAAW,CAAC,GAAG,kBAAkB,SAAS,GAAG,KAAK;EAEpE,IAAI,MACF,KAAK,gBAAgB;EAGvB,KAAK,OADc,UAAU,oBAAoB,QAAQ,OAAO,YAAY,GAAG,eAAe,QAAQ,OAAO,YAAY,CAClG,GAAG,KAAK,IAAe,KAAK;EACnD,YACE,gBAAgB;GAAC;GAAK;GAAO;GAAU;GAAiB;GAAa,CAAC,EACtE,QACD;EACD,KAAK,IAAI;EACT,IAAI,SACF,KAAK,IAAI;EAEX,IAAI,YAAY;GACd,KAAK,KAAK;GACV,QAAQ,YAAY,QAAQ;GAC5B,KAAK,IAAI;;;CAGb,SAAS,gBAAgB,MAAM;EAC7B,IAAI,IAAI,KAAK;EACb,OAAO,KACL,IAAI,KAAK,MAAM,MAAM;EAEvB,OAAO,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK,QAAQ,OAAO,OAAO;;CAEzD,SAAS,kBAAkB,MAAM,SAAS;EACxC,MAAM,EAAE,MAAM,QAAQ,SAAS;EAC/B,MAAM,SAAS,OAAO,SAAS,KAAK,OAAO,GAAG,KAAK,SAAS,OAAO,KAAK,OAAO;EAC/E,IAAI,MACF,KAAK,gBAAgB;EAEvB,KAAK,SAAS,KAAK,IAAe,KAAK;EACvC,YAAY,KAAK,WAAW,QAAQ;EACpC,KAAK,IAAI;;CAEX,SAAS,oBAAoB,MAAM,SAAS;EAC1C,MAAM,EAAE,MAAM,QAAQ,UAAU,YAAY;EAC5C,MAAM,EAAE,eAAe;EACvB,IAAI,CAAC,WAAW,QAAQ;GACtB,KAAK,MAAM,IAAe,KAAK;GAC/B;;EAEF,MAAM,aAAa,WAAW,SAAS,KAAK,WAAW,MAAM,MAAM,EAAE,MAAM,SAAS,EAAE;EACtF,KAAK,aAAa,MAAM,KAAK;EAC7B,cAAc,QAAQ;EACtB,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;GAC1C,MAAM,EAAE,KAAK,UAAU,WAAW;GAClC,2BAA2B,KAAK,QAAQ;GACxC,KAAK,KAAK;GACV,QAAQ,OAAO,QAAQ;GACvB,IAAI,IAAI,WAAW,SAAS,GAAG;IAC7B,KAAK,IAAI;IACT,SAAS;;;EAGb,cAAc,UAAU;EACxB,KAAK,aAAa,MAAM,KAAK;;CAE/B,SAAS,mBAAmB,MAAM,SAAS;EACzC,mBAAmB,KAAK,UAAU,QAAQ;;CAE5C,SAAS,sBAAsB,MAAM,SAAS;EAC5C,MAAM,EAAE,MAAM,QAAQ,aAAa;EACnC,MAAM,EAAE,QAAQ,SAAS,MAAM,SAAS,WAAW;EACnD,IAAI,QACF,KAAK,IAAI,cAAc,UAAU,GAAG;EAEtC,KAAK,KAAK,IAAe,KAAK;EAC9B,IAAI,OAAO,QAAQ,OAAO,EACxB,YAAY,QAAQ,QAAQ;OACvB,IAAI,QACT,QAAQ,QAAQ,QAAQ;EAE1B,KAAK,QAAQ;EACb,IAAI,WAAW,MAAM;GACnB,KAAK,IAAI;GACT,QAAQ;;EAEV,IAAI,SAAS;GACX,IAAI,SACF,KAAK,UAAU;GAEjB,IAAI,OAAO,QAAQ,QAAQ,EACzB,mBAAmB,SAAS,QAAQ;QAEpC,QAAQ,SAAS,QAAQ;SAEtB,IAAI,MACT,QAAQ,MAAM,QAAQ;EAExB,IAAI,WAAW,MAAM;GACnB,UAAU;GACV,KAAK,IAAI;;EAEX,IAAI,QAAQ;GACV,IAAI,KAAK,iBACP,KAAK,oBAAoB;GAE3B,KAAK,IAAI;;;CAGb,SAAS,yBAAyB,MAAM,SAAS;EAC/C,MAAM,EAAE,MAAM,YAAY,WAAW,SAAS,gBAAgB;EAC9D,MAAM,EAAE,MAAM,QAAQ,UAAU,YAAY;EAC5C,IAAI,KAAK,SAAS,GAAG;GACnB,MAAM,cAAc,CAAC,mBAAmB,KAAK,QAAQ;GACrD,eAAe,KAAK,IAAI;GACxB,cAAc,MAAM,QAAQ;GAC5B,eAAe,KAAK,IAAI;SACnB;GACL,KAAK,IAAI;GACT,QAAQ,MAAM,QAAQ;GACtB,KAAK,IAAI;;EAEX,eAAe,QAAQ;EACvB,QAAQ;EACR,eAAe,KAAK,IAAI;EACxB,KAAK,KAAK;EACV,QAAQ,YAAY,QAAQ;EAC5B,QAAQ;EACR,eAAe,SAAS;EACxB,eAAe,KAAK,IAAI;EACxB,KAAK,KAAK;EACV,MAAM,WAAW,UAAU,SAAS;EACpC,IAAI,CAAC,UACH,QAAQ;EAEV,QAAQ,WAAW,QAAQ;EAC3B,IAAI,CAAC,UACH,QAAQ;EAEV,eAAe,SACb,KAED;;CAEH,SAAS,mBAAmB,MAAM,SAAS;EACzC,MAAM,EAAE,MAAM,QAAQ,QAAQ,UAAU,YAAY;EACpD,MAAM,EAAE,mBAAmB,oBAAoB;EAC/C,IAAI,iBACF,KAAK,QAAQ;EAEf,KAAK,UAAU,KAAK,MAAM,QAAQ;EAClC,IAAI,mBAAmB;GACrB,QAAQ;GACR,KAAK,GAAG,OAAO,mBAAmB,CAAC,KAAK;GACxC,IAAI,KAAK,SAAS,KAAK,SAAS;GAChC,KAAK,KAAK;GACV,SAAS;GACT,KAAK,IAAI;;EAEX,KAAK,UAAU,KAAK,MAAM,MAAM;EAChC,QAAQ,KAAK,OAAO,QAAQ;EAC5B,IAAI,mBAAmB;GACrB,KAAK,kBAAkB,KAAK,MAAM,GAAG;GACrC,SAAS;GACT,KAAK,GAAG,OAAO,mBAAmB,CAAC,MAAM;GACzC,SAAS;GACT,KAAK,UAAU,KAAK,MAAM,GAAG;GAC7B,UAAU;;EAEZ,KAAK,IAAI;EACT,IAAI,iBACF,KAAK,KAAK;;CAGd,SAAS,mBAAmB,MAAM,SAAS;EACzC,MAAM,EAAE,MAAM,QAAQ,aAAa;EACnC,KAAK,IAAI;EACT,MAAM,IAAI,KAAK,SAAS;EACxB,MAAM,aAAa,IAAI;EACvB,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK;GAC1B,MAAM,IAAI,KAAK,SAAS;GACxB,IAAI,OAAO,SAAS,EAAE,EACpB,KAAK,EAAE,QAAQ,cAAc,OAAO,EAAE,GAAiB;QAClD;IACL,KAAK,KAAK;IACV,IAAI,YAAY,QAAQ;IACxB,QAAQ,GAAG,QAAQ;IACnB,IAAI,YAAY,UAAU;IAC1B,KAAK,IAAI;;;EAGb,KAAK,IAAI;;CAEX,SAAS,eAAe,MAAM,SAAS;EACrC,MAAM,EAAE,MAAM,QAAQ,aAAa;EACnC,MAAM,EAAE,MAAM,YAAY,cAAc;EACxC,KAAK,OAAO;EACZ,QAAQ,MAAM,QAAQ;EACtB,KAAK,MAAM;EACX,QAAQ;EACR,QAAQ,YAAY,QAAQ;EAC5B,UAAU;EACV,KAAK,IAAI;EACT,IAAI,WAAW;GACb,KAAK,SAAS;GACd,IAAI,UAAU,SAAS,IACrB,eAAe,WAAW,QAAQ;QAC7B;IACL,KAAK,IAAI;IACT,QAAQ;IACR,QAAQ,WAAW,QAAQ;IAC3B,UAAU;IACV,KAAK,IAAI;;;;CAIf,SAAS,wBAAwB,MAAM,SAAS;EAC9C,QAAQ,KAAK,MAAM,QAAQ;EAC3B,QAAQ,KAAK,MAAM;EACnB,QAAQ,KAAK,OAAO,QAAQ;;CAE9B,SAAS,sBAAsB,MAAM,SAAS;EAC5C,QAAQ,KAAK,IAAI;EACjB,YAAY,KAAK,aAAa,QAAQ;EACtC,QAAQ,KAAK,IAAI;;CAEnB,SAAS,mBAAmB,EAAE,WAAW,SAAS;EAChD,QAAQ,KAAK,UAAU;EACvB,IAAI,OAAO,QAAQ,QAAQ,EACzB,mBAAmB,SAAS,QAAQ;OAEpC,QAAQ,SAAS,QAAQ;;CAI7B,MAAM,uBAAuC,uBAAO,QAAQ,uBAAuB;CACnF,MAAM,uBAAuB,MAAM,YAAY;EAC7C,IAAI,KAAK,SAAS,GAChB,KAAK,UAAU,kBACb,KAAK,SACL,QACD;OACI,IAAI,KAAK,SAAS,GAAG;GAC1B,MAAM,OAAO,QAAQ,MAAM,OAAO;GAClC,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;IAC1C,MAAM,MAAM,KAAK,MAAM;IACvB,IAAI,IAAI,SAAS,KAAK,IAAI,SAAS,OAAO;KACxC,MAAM,MAAM,IAAI;KAChB,MAAM,MAAM,IAAI;KAChB,IAAI,OAAO,IAAI,SAAS,KAAK,EAAE,IAAI,SAAS,QAAQ,QACpD,EAAE,QAAQ,QAAQ,mBAAmB,IAAI,KAAK,IAAI,OAAO,IAAI,SAAS,KAAK,IAAI,YAAY,QACzF,IAAI,MAAM,kBACR,KACA,SAEA,IAAI,SAAS,OACd;KAEH,IAAI,OAAO,IAAI,SAAS,KAAK,CAAC,IAAI,UAChC,IAAI,MAAM,kBAAkB,KAAK,QAAQ;;;;;CAMnD,SAAS,kBAAkB,MAAM,SAAS,WAAW,OAAO,kBAAkB,OAAO,YAAY,OAAO,OAAO,QAAQ,YAAY,EAAE;EACnI,IAAI,CAAC,QAAQ,qBAAqB,CAAC,KAAK,QAAQ,MAAM,EACpD,OAAO;EAET,MAAM,EAAE,QAAQ,oBAAoB;EACpC,MAAM,qBAAqB,KAAK,QAAQ,OAAO;GAC7C,MAAM,OAAO,OAAO,OAAO,iBAAiB,IAAI,IAAI,gBAAgB;GACpE,IAAI,QAAQ;IACV,MAAM,mBAAmB,UAAU,OAAO,SAAS,0BAA0B,OAAO,SAAS;IAC7F,MAAM,cAAc,UAAU,OAAO,SAAS,sBAAsB,OAAO,aAAa;IACxF,MAAM,0BAA0B,UAAU,0BAA0B,QAAQ,YAAY;IACxF,MAAM,kBAAkB,UAAU,kBAAkB,YAAY;IAChE,MAAM,iBAAiB,SAAS;KAC9B,MAAM,UAAU,GAAG,QAAQ,aAAa,MAAM,CAAC,GAAG,KAAK;KACvD,OAAO,kBAAkB,IAAI,QAAQ,KAAK;;IAE5C,IAAI,QAAQ,KAAK,IAAI,SAAS,0BAA0B,UAAU,MAChE,OAAO;SACF,IAAI,SAAS,aAClB,OAAO,GAAG,IAAI;SACT,IAAI,SAAS,mBAClB,OAAO,oBAAoB,eAAe,0BAA0B,GAAG,IAAI,UAAU,cAAc,IAAI;SAClG,IAAI,SAAS,aAClB,IAAI,kBAAkB;KACpB,MAAM,EAAE,OAAO,MAAM,aAAa;KAElC,MAAM,aAAa,oBACjB,kBACE,uBAHS,OAAO,MAAM,KAAK,QAAQ,GAAG,KAAK,MAAM,EAGtB,EAAE,MAAM,EACnC,SACA,OACA,OACA,SACD,CACF;KACD,OAAO,GAAG,QAAQ,aAAa,OAAO,CAAC,GAAG,IAAI,GAAG,QAAQ,OAAO;IACtE,GAAG,KAAK,IAAI,SAAS,SAAS,GAAG,WAAW,KAAK;WACtC,IAAI,aAAa;KACtB,GAAG,QAAQ,OAAO;KAClB,GAAG,MAAM,OAAO;KAChB,MAAM,EAAE,QAAQ,UAAU,aAAa;KACvC,MAAM,SAAS,WAAW,WAAW;KACrC,MAAM,UAAU,WAAW,KAAK;KAChC,OAAO,GAAG,QAAQ,aAAa,OAAO,CAAC,GAAG,IAAI,GAAG,QAAQ,OAAO;IACtE,GAAG,KAAK,SAAS,IAAI,QAAQ,QAAQ,KAAK,SAAS,MAAM;WAC9C,IAAI,yBACT,OAAO;SAEP,OAAO,cAAc,IAAI;SAEtB,IAAI,SAAS,SAClB,OAAO,OAAO,kBAAkB,IAAI;SAC/B,IAAI,SAAS,iBAClB,OAAO,OAAO,kBAAkB,gBAAgB,eAAe,KAAK;UAGtE,IAAI,QAAQ,KAAK,WAAW,QAAQ,IAAI,SAAS,iBAC/C,OAAO,UAAU;QACZ,IAAI,SAAS,iBAClB,OAAO,WAAW,gBAAgB,eAAe,KAAK;QACjD,IAAI,MACT,OAAO,IAAI,KAAK,GAAG;GAGvB,OAAO,QAAQ;;EAEjB,MAAM,SAAS,KAAK;EACpB,IAAI,MAAM,KAAK;EACf,IAAI,QAAQ,OACV,OAAO;EAET,IAAI,QAAQ,QAAQ,CAAC,OAAO,mBAAmB,OAAO,EAAE;GACtD,MAAM,sBAAsB,QAAQ,YAAY;GAChD,MAAM,kBAAkB,OAAO,kBAAkB,OAAO;GACxD,MAAM,YAAY,qBAAqB,OAAO;GAC9C,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,cAAc,CAAC,mBAAmB,gBAAgB,UAAU;IACpG,IAAI,QAAQ,gBAAgB,QAAQ,EAClC,KAAK,YAAY;IAEnB,KAAK,UAAU,kBAAkB,OAAO;UACnC,IAAI,CAAC,qBACV,IAAI,WACF,KAAK,YAAY;QAEjB,KAAK,YAAY;GAGrB,OAAO;;EAET,IAAI,CAAC,KAAK;GACR,MAAM,SAAS,kBAAkB,IAAI,OAAO,KAAK,IAAI,OAAO,GAAG,WAAW,SAAS;GACnF,IAAI;IACF,MAAM,OAAO,gBAAgB,QAAQ;KACnC,YAAY;KACZ,SAAS,QAAQ;KAClB,CAAC;YACK,GAAG;IACV,QAAQ,QACN,oBACE,IACA,KAAK,KACL,KAAK,GACL,EAAE,QACH,CACF;IACD,OAAO;;;EAGX,MAAM,MAAM,EAAE;EACd,MAAM,cAAc,EAAE;EACtB,MAAM,WAAW,OAAO,OAAO,QAAQ,YAAY;EACnD,gBACE,MACC,OAAO,QAAQ,GAAG,cAAc,YAAY;GAC3C,IAAI,oBAAoB,OAAO,OAAO,EACpC;GAEF,IAAI,MAAM,KAAK,WAAW,WAAW,EACnC;GAEF,MAAM,aAAa,gBAAgB,UAAU,MAAM;GACnD,IAAI,cAAc,CAAC,SAAS;IAC1B,IAAI,iBAAiB,OAAO,IAAI,OAAO,WACrC,MAAM,SAAS,GAAG,MAAM,KAAK;IAE/B,MAAM,OAAO,kBAAkB,MAAM,MAAM,QAAQ,MAAM;IACzD,IAAI,KAAK,MAAM;UACV;IACL,IAAI,EAAE,cAAc,aAAa,CAAC,UAAU,OAAO,SAAS,oBAAoB,OAAO,SAAS,mBAAmB,OAAO,SAAS,qBACjI,MAAM,aAAa;IAErB,IAAI,KAAK,MAAM;;KAGnB,MAEA,aACA,SACD;EACD,MAAM,WAAW,EAAE;EACnB,IAAI,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM;EACrC,IAAI,SAAS,IAAI,MAAM;GACrB,MAAM,QAAQ,GAAG,QAAQ;GACzB,MAAM,MAAM,GAAG,MAAM;GACrB,MAAM,OAAO,IAAI,IAAI;GACrB,MAAM,cAAc,OAAO,MAAM,OAAO,KAAK,MAAM,IAAI,GAAG,MAAM;GAChE,IAAI,YAAY,UAAU,GAAG,QAC3B,SAAS,KAAK,eAAe,GAAG,UAAU,IAAI;GAEhD,MAAM,SAAS,OAAO,MAAM,OAAO,IAAI;GACvC,SAAS,KACP,uBACE,GAAG,MACH,OACA;IACE,OAAO,yBAAyB,KAAK,IAAI,OAAO,QAAQ,MAAM;IAC9D,KAAK,yBAAyB,KAAK,IAAI,OAAO,QAAQ,IAAI;IAC1D;IACD,EACD,GAAG,aAAa,IAAI,EACrB,CACF;GACD,IAAI,MAAM,IAAI,SAAS,KAAK,MAAM,OAAO,QACvC,SAAS,KAAK,OAAO,MAAM,IAAI,CAAC;IAElC;EACF,IAAI;EACJ,IAAI,SAAS,QAAQ;GACnB,MAAM,yBAAyB,UAAU,KAAK,IAAI;GAClD,IAAI,MAAM;SACL;GACL,MAAM;GACN,IAAI,YAAY;;EAElB,IAAI,cAAc,OAAO,KAAK,SAAS;EACvC,OAAO;;CAET,SAAS,UAAU,IAAI;EACrB,IAAI,OAAO,kBAAkB,GAAG,KAAK,EACnC,OAAO;EAET,IAAI,GAAG,SAAS,WACd,OAAO;EAET,OAAO;;CAET,SAAS,oBAAoB,KAAK;EAChC,IAAI,OAAO,SAAS,IAAI,EACtB,OAAO;OACF,IAAI,IAAI,SAAS,GACtB,OAAO,IAAI;OAEX,OAAO,IAAI,SAAS,IAAI,oBAAoB,CAAC,KAAK,GAAG;;CAGzD,SAAS,QAAQ,MAAM;EACrB,OAAO,SAAS,iBAAiB,SAAS;;CAG5C,MAAM,cAAc,mCAClB,0BACC,MAAM,KAAK,YAAY;EACtB,OAAO,UAAU,MAAM,KAAK,UAAU,QAAQ,QAAQ,WAAW;GAC/D,MAAM,WAAW,QAAQ,OAAO;GAChC,IAAI,IAAI,SAAS,QAAQ,OAAO;GAChC,IAAI,MAAM;GACV,OAAO,OAAO,GAAG;IACf,MAAM,UAAU,SAAS;IACzB,IAAI,WAAW,QAAQ,SAAS,GAC9B,OAAO,QAAQ,SAAS;;GAG5B,aAAa;IACX,IAAI,QACF,OAAO,cAAc,2BACnB,QACA,KACA,QACD;SACI;KACL,MAAM,kBAAkB,mBAAmB,OAAO,YAAY;KAC9D,gBAAgB,YAAY,2BAC1B,QACA,MAAM,OAAO,SAAS,SAAS,GAC/B,QACD;;;IAGL;GAEL;CACD,SAAS,UAAU,MAAM,KAAK,SAAS,gBAAgB;EACrD,IAAI,IAAI,SAAS,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ,MAAM,GAAG;GAChE,MAAM,MAAM,IAAI,MAAM,IAAI,IAAI,MAAM,KAAK;GACzC,QAAQ,QACN,oBAAoB,IAAI,IAAI,IAAI,CACjC;GACD,IAAI,MAAM,uBAAuB,QAAQ,OAAO,IAAI;;EAEtD,IAAI,QAAQ,qBAAqB,IAAI,KACnC,IAAI,MAAM,kBAAkB,IAAI,KAAK,QAAQ;EAE/C,IAAI,IAAI,SAAS,MAAM;GACrB,MAAM,SAAS,eAAe,MAAM,IAAI;GACxC,MAAM,SAAS;IACb,MAAM;IACN,KAAK,SAAS,KAAK,IAAI;IACvB,UAAU,CAAC,OAAO;IACnB;GACD,QAAQ,YAAY,OAAO;GAC3B,IAAI,gBACF,OAAO,eAAe,QAAQ,QAAQ,KAAK;SAExC;GACL,MAAM,WAAW,QAAQ,OAAO;GAChC,MAAM,WAAW,EAAE;GACnB,IAAI,IAAI,SAAS,QAAQ,KAAK;GAC9B,OAAO,OAAO,IAAI;IAChB,MAAM,UAAU,SAAS;IACzB,IAAI,WAAW,sBAAsB,QAAQ,EAAE;KAC7C,QAAQ,WAAW,QAAQ;KAC3B,IAAI,QAAQ,SAAS,GACnB,SAAS,QAAQ,QAAQ;KAE3B;;IAEF,IAAI,WAAW,QAAQ,SAAS,GAAG;KACjC,KAAK,IAAI,SAAS,aAAa,IAAI,SAAS,WAAW,QAAQ,SAAS,QAAQ,SAAS,SAAS,GAAG,cAAc,KAAK,GACtH,QAAQ,QACN,oBAAoB,IAAI,KAAK,IAAI,CAClC;KAEH,QAAQ,YAAY;KACpB,MAAM,SAAS,eAAe,MAAM,IAAI;KACxC,IAAI,SAAS,UACb,EAAE,QAAQ,UAAU,QAAQ,OAAO,SAAS,MAAM,QAAQ,OAAO,QAAQ,gBAAgB,QAAQ,OAAO,QAAQ,gBAC9G,OAAO,WAAW,CAAC,GAAG,UAAU,GAAG,OAAO,SAAS;KAErD;MACE,MAAM,MAAM,OAAO;MACnB,IAAI,KACF,QAAQ,SAAS,SAAS,EAAE,cAAc;OACxC,IAAI,UAAU,SAAS,IAAI,EACzB,QAAQ,QACN,oBACE,IACA,OAAO,QAAQ,IAChB,CACF;QAEH;;KAGN,QAAQ,SAAS,KAAK,OAAO;KAC7B,MAAM,SAAS,kBAAkB,eAAe,SAAS,QAAQ,MAAM;KACvE,aAAa,QAAQ,QAAQ;KAC7B,IAAI,QAAQ,QAAQ;KACpB,QAAQ,cAAc;WAEtB,QAAQ,QACN,oBAAoB,IAAI,KAAK,IAAI,CAClC;IAEH;;;;CAIN,SAAS,eAAe,MAAM,KAAK;EACjC,MAAM,eAAe,KAAK,YAAY;EACtC,OAAO;GACL,MAAM;GACN,KAAK,KAAK;GACV,WAAW,IAAI,SAAS,SAAS,KAAK,IAAI,IAAI;GAC9C,UAAU,gBAAgB,CAAC,QAAQ,MAAM,MAAM,GAAG,KAAK,WAAW,CAAC,KAAK;GACxE,SAAS,SAAS,MAAM,MAAM;GAC9B;GACD;;CAEH,SAAS,2BAA2B,QAAQ,UAAU,SAAS;EAC7D,IAAI,OAAO,WACT,OAAO,4BACL,OAAO,WACP,0BAA0B,QAAQ,UAAU,QAAQ,EAGpD,qBAAqB,QAAQ,OAAO,eAAe,EAAE,CACnD,YACA,OACD,CAAC,CACH;OAED,OAAO,0BAA0B,QAAQ,UAAU,QAAQ;;CAG/D,SAAS,0BAA0B,QAAQ,UAAU,SAAS;EAC5D,MAAM,EAAE,WAAW;EACnB,MAAM,cAAc,qBAClB,OACA,uBACE,GAAG,YACH,OACA,SACA,EACD,CACF;EACD,MAAM,EAAE,aAAa;EACrB,MAAM,aAAa,SAAS;EAE5B,IAD4B,SAAS,WAAW,KAAK,WAAW,SAAS,GAEvE,IAAI,SAAS,WAAW,KAAK,WAAW,SAAS,IAAI;GACnD,MAAM,YAAY,WAAW;GAC7B,WAAW,WAAW,aAAa,QAAQ;GAC3C,OAAO;SACF;GACL,IAAI,YAAY;GAChB,IAAI,CAAC,OAAO,gBAAgB,SAAS,QAAQ,MAAM,EAAE,SAAS,EAAE,CAAC,WAAW,GAC1E,aAAa;GAEf,OAAO,gBACL,SACA,OAAO,SAAS,EAChB,uBAAuB,CAAC,YAAY,CAAC,EACrC,UACA,WACA,KAAK,GACL,KAAK,GACL,MACA,OACA,OACA,OAAO,IACR;;OAEE;GACL,MAAM,MAAM,WAAW;GACvB,MAAM,YAAY,mBAAmB,IAAI;GACzC,IAAI,UAAU,SAAS,IACrB,eAAe,WAAW,QAAQ;GAEpC,WAAW,WAAW,aAAa,QAAQ;GAC3C,OAAO;;;CAGX,SAAS,UAAU,GAAG,GAAG;EACvB,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MACrB,OAAO;EAET,IAAI,EAAE,SAAS;OACT,EAAE,MAAM,YAAY,EAAE,MAAM,SAC9B,OAAO;SAEJ;GACL,MAAM,MAAM,EAAE;GACd,MAAM,YAAY,EAAE;GACpB,IAAI,IAAI,SAAS,UAAU,MACzB,OAAO;GAET,IAAI,IAAI,SAAS,KAAK,IAAI,aAAa,UAAU,YAAY,IAAI,YAAY,UAAU,SACrF,OAAO;;EAGX,OAAO;;CAET,SAAS,mBAAmB,MAAM;EAChC,OAAO,MACL,IAAI,KAAK,SAAS,IAChB,IAAI,KAAK,UAAU,SAAS,IAC1B,OAAO,KAAK;OAEZ,OAAO;OAEJ,IAAI,KAAK,SAAS,IACvB,OAAO,KAAK;;CAKlB,MAAM,eAAe,mCACnB,QACC,MAAM,KAAK,YAAY;EACtB,MAAM,EAAE,QAAQ,iBAAiB;EACjC,OAAO,WAAW,MAAM,KAAK,UAAU,YAAY;GACjD,MAAM,YAAY,qBAAqB,OAAO,YAAY,EAAE,CAC1D,QAAQ,OACT,CAAC;GACF,MAAM,aAAa,eAAe,KAAK;GACvC,MAAM,OAAO,QAAQ,MAAM,OAAO;GAClC,MAAM,UAAU,SAAS,MAAM,OAAO,OAAO,KAAK;GAClD,MAAM,WAAW,WAAW,QAAQ,SAAS;GAC7C,IAAI,SAAS,YAAY,QAAQ,SAAS,IAAI,QAAQ,QAAQ,uBAAuB,QAAQ,MAAM,SAAS,KAAK,GAAG,KAAK,IAAI,QAAQ;GACrI,MAAM,cAAc,SAAS,qBAAqB,OAAO,OAAO,GAAG;GAEjE,IAAI,cAAc,MAChB,KAAK,MAAM,kBACT,KAAK,KACL,QACD;GAEH,KAAK,cAAc,SAAS,eAAe,UAAU;IACnD,SAAS,QAAQ,MAAM,YAAY,QAAQ,kBACzC,YAAY,OACZ,QACD;IACD,IAAI,MACF,QAAQ,mBAAmB,IAAI,KAAK;;GAI1C,MAAM,mBAAmB,QAAQ,OAAO,SAAS,KAAK,QAAQ,OAAO,YAAY;GACjF,MAAM,eAAe,mBAAmB,KAAK,UAAU,MAAM;GAC7D,QAAQ,cAAc,gBACpB,SACA,OAAO,SAAS,EAChB,KAAK,GACL,WACA,cACA,KAAK,GACL,KAAK,GACL,MACA,CAAC,kBACD,OACA,KAAK,IACN;GACD,aAAa;IACX,IAAI;IACJ,MAAM,EAAE,aAAa;IACrB,IAAI,YACF,KAAK,SAAS,MAAM,MAAM;KACxB,IAAI,EAAE,SAAS,GAAG;MAChB,MAAM,MAAM,SAAS,GAAG,MAAM;MAC9B,IAAI,KAAK;OACP,QAAQ,QACN,oBACE,IACA,IAAI,IACL,CACF;OACD,OAAO;;;MAGX;IAEJ,MAAM,sBAAsB,SAAS,WAAW,KAAK,SAAS,GAAG,SAAS;IAC1E,MAAM,aAAa,aAAa,KAAK,GAAG,OAAO,cAAc,KAAK,SAAS,WAAW,KAAK,aAAa,KAAK,SAAS,GAAG,GAAG,KAAK,SAAS,KAAK;IAC/I,IAAI,YAAY;KACd,aAAa,WAAW;KACxB,IAAI,cAAc,aAChB,WAAW,YAAY,aAAa,QAAQ;WAEzC,IAAI,qBACT,aAAa,gBACX,SACA,OAAO,SAAS,EAChB,cAAc,uBAAuB,CAAC,YAAY,CAAC,GAAG,KAAK,GAC3D,KAAK,UACL,IACA,KAAK,GACL,KAAK,GACL,MACA,KAAK,GACL,MACD;SACI;KACL,aAAa,SAAS,GAAG;KACzB,IAAI,cAAc,aAChB,WAAW,YAAY,aAAa,QAAQ;KAE9C,IAAI,WAAW,YAAY,CAAC,kBAC1B,IAAI,WAAW,SAAS;MACtB,aAAa,WAAW;MACxB,aACE,oBAAoB,QAAQ,OAAO,WAAW,YAAY,CAC3D;YAED,aACE,eAAe,QAAQ,OAAO,WAAW,YAAY,CACtD;KAGL,WAAW,UAAU,CAAC;KACtB,IAAI,WAAW,SAAS;MACtB,OAAO,WAAW;MAClB,OAAO,oBAAoB,QAAQ,OAAO,WAAW,YAAY,CAAC;YAElE,OAAO,eAAe,QAAQ,OAAO,WAAW,YAAY,CAAC;;IAGjE,IAAI,MAAM;KACR,MAAM,OAAO,yBACX,oBAAoB,QAAQ,aAAa,CACvC,uBAAuB,UAAU,CAClC,CAAC,CACH;KACD,KAAK,OAAO,qBAAqB;MAC/B,yBAAyB;OAAC;OAAmB,KAAK;OAAK;OAAI,CAAC;MAC5D,yBAAyB;OACvB;OACA,GAAG,SAAS,CAAC,wBAAwB,OAAO,GAAG,EAAE;OACjD,OAAO,QAAQ,aACb,aACD,CAAC;OACH,CAAC;MACF,yBAAyB,CAAC,kBAAkB,WAAW,CAAC;MACxD,uBAAuB,qBAAqB;MAC5C,uBAAuB,eAAe;MACvC,CAAC;KACF,UAAU,UAAU,KAClB,MACA,uBAAuB,SAAS,EAChC,uBAAuB,OAAO,QAAQ,OAAO,OAAO,CAAC,CACtD;KACD,QAAQ,OAAO,KAAK,KAAK;WAEzB,UAAU,UAAU,KAClB,yBACE,oBAAoB,QAAQ,YAAY,EACxC,YACA,KACD,CACF;;IAGL;GAEL;CACD,SAAS,WAAW,MAAM,KAAK,SAAS,gBAAgB;EACtD,IAAI,CAAC,IAAI,KAAK;GACZ,QAAQ,QACN,oBAAoB,IAAI,IAAI,IAAI,CACjC;GACD;;EAEF,MAAM,cAAc,IAAI;EACxB,IAAI,CAAC,aAAa;GAChB,QAAQ,QACN,oBAAoB,IAAI,IAAI,IAAI,CACjC;GACD;;EAEF,uBAAuB,aAAa,QAAQ;EAC5C,MAAM,EAAE,gBAAgB,mBAAmB,WAAW;EACtD,MAAM,EAAE,QAAQ,OAAO,KAAK,UAAU;EACtC,MAAM,UAAU;GACd,MAAM;GACN,KAAK,IAAI;GACT;GACA,YAAY;GACZ,UAAU;GACV,kBAAkB;GAClB;GACA,UAAU,eAAe,KAAK,GAAG,KAAK,WAAW,CAAC,KAAK;GACxD;EACD,QAAQ,YAAY,QAAQ;EAC5B,OAAO;EACP,IAAI,QAAQ,mBAAmB;GAC7B,SAAS,eAAe,MAAM;GAC9B,OAAO,eAAe,IAAI;GAC1B,SAAS,eAAe,MAAM;;EAEhC,MAAM,SAAS,kBAAkB,eAAe,QAAQ;EACxD,aAAa;GACX,OAAO;GACP,IAAI,QAAQ,mBAAmB;IAC7B,SAAS,kBAAkB,MAAM;IACjC,OAAO,kBAAkB,IAAI;IAC7B,SAAS,kBAAkB,MAAM;;GAEnC,IAAI,QAAQ,QAAQ;;;CAGxB,SAAS,uBAAuB,QAAQ,SAAS;EAC/C,IAAI,OAAO,WAAW;EACtB,IAAI,QAAQ,mBAAmB;GAC7B,OAAO,SAAS,kBACd,OAAO,QACP,QACD;GACD,IAAI,OAAO,KACT,OAAO,MAAM,kBACX,OAAO,KACP,SACA,KACD;GAEH,IAAI,OAAO,OACT,OAAO,QAAQ,kBACb,OAAO,OACP,SACA,KACD;GAEH,IAAI,OAAO,OACT,OAAO,QAAQ,kBACb,OAAO,OACP,SACA,KACD;;EAGL,OAAO,YAAY;;CAErB,SAAS,oBAAoB,EAAE,OAAO,KAAK,SAAS,WAAW,EAAE,EAAE;EACjE,OAAO,iBAAiB;GAAC;GAAO;GAAK;GAAO,GAAG;GAAS,CAAC;;CAE3D,SAAS,iBAAiB,MAAM;EAC9B,IAAI,IAAI,KAAK;EACb,OAAO,KACL,IAAI,KAAK,IAAI;EAEf,OAAO,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK,KAAK,OAAO,OAAO,uBAAuB,IAAI,OAAO,KAAK,EAAE,EAAE,MAAM,CAAC;;CAGxG,MAAM,kBAAkB,uBAAuB,aAAa,MAAM;CAClE,MAAM,mBAAmB,MAAM,YAAY;EACzC,IAAI,KAAK,SAAS,MAAM,KAAK,YAAY,KAAK,KAAK,YAAY,IAAI;GACjE,MAAM,QAAQ,QAAQ,MAAM,OAAO;GACnC,IAAI,OAAO;IACT,MAAM,YAAY,MAAM;IACxB,IAAI,QAAQ,mBACV,aAAa,QAAQ,eAAe,UAAU;IAEhD,QAAQ,OAAO;IACf,aAAa;KACX,IAAI,QAAQ,mBACV,aAAa,QAAQ,kBAAkB,UAAU;KAEnD,QAAQ,OAAO;;;;;CAKvB,MAAM,uBAAuB,MAAM,YAAY;EAC7C,IAAI;EACJ,IAAI,eAAe,KAAK,IAAI,KAAK,MAAM,KAAK,QAAQ,KAAK,OAAO,QAAQ,MAAM,MAAM,GAAG;GACrF,MAAM,SAAS,KAAK;GACpB,IAAI,QAAQ;IACV,uBAAuB,QAAQ,QAAQ;IACvC,MAAM,EAAE,OAAO,KAAK,UAAU;IAC9B,MAAM,EAAE,gBAAgB,sBAAsB;IAC9C,SAAS,eAAe,MAAM;IAC9B,OAAO,eAAe,IAAI;IAC1B,SAAS,eAAe,MAAM;IAC9B,aAAa;KACX,SAAS,kBAAkB,MAAM;KACjC,OAAO,kBAAkB,IAAI;KAC7B,SAAS,kBAAkB,MAAM;;;;;CAKzC,MAAM,qBAAqB,OAAO,UAAU,UAAU,QAAQ,yBAC5D,OACA,UACA,OACA,MACA,SAAS,SAAS,SAAS,GAAG,MAAM,IACrC;CACD,SAAS,WAAW,MAAM,SAAS,cAAc,mBAAmB;EAClE,QAAQ,OAAO,SAAS;EACxB,MAAM,EAAE,UAAU,QAAQ;EAC1B,MAAM,kBAAkB,EAAE;EAC1B,MAAM,eAAe,EAAE;EACvB,IAAI,kBAAkB,QAAQ,OAAO,QAAQ,KAAK,QAAQ,OAAO,OAAO;EACxE,IAAI,CAAC,QAAQ,OAAO,QAAQ,mBAC1B,kBAAkB,KAAK,MAAM,MAC1B,SAAS,QAAQ,KAAK,KAAK,YAAY,KAAK,KAAK,QAAQ,YAAY,IAAI,YAAY,KAAK,KAAK,QAAQ,YAAY,EACrH,IAAI,SAAS,MAAM,UAAU,YAAY,OAAO,QAAQ,YAAY,CAAC;EAExE,MAAM,kBAAkB,QAAQ,MAAM,QAAQ,KAAK;EACnD,IAAI,iBAAiB;GACnB,MAAM,EAAE,KAAK,QAAQ;GACrB,IAAI,OAAO,CAAC,YAAY,IAAI,EAC1B,kBAAkB;GAEpB,gBAAgB,KACd,qBACE,OAAO,uBAAuB,WAAW,KAAK,EAC9C,YAAY,KAAK,KAAK,GAAG,UAAU,IAAI,CACxC,CACF;;EAEH,IAAI,mBAAmB;EACvB,IAAI,sBAAsB;EAC1B,MAAM,0BAA0B,EAAE;EAClC,MAAM,gCAAgC,IAAI,KAAK;EAC/C,IAAI,yBAAyB;EAC7B,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;GACxC,MAAM,cAAc,SAAS;GAC7B,IAAI;GACJ,IAAI,CAAC,eAAe,YAAY,IAAI,EAAE,UAAU,QAAQ,aAAa,QAAQ,KAAK,GAAG;IACnF,IAAI,YAAY,SAAS,GACvB,wBAAwB,KAAK,YAAY;IAE3C;;GAEF,IAAI,iBAAiB;IACnB,QAAQ,QACN,oBAAoB,IAAI,QAAQ,IAAI,CACrC;IACD;;GAEF,mBAAmB;GACnB,MAAM,EAAE,UAAU,cAAc,KAAK,YAAY;GACjD,MAAM,EACJ,KAAK,WAAW,uBAAuB,WAAW,KAAK,EACvD,KAAK,WACL,KAAK,WACH;GACJ,IAAI;GACJ,IAAI,YAAY,SAAS,EACvB,iBAAiB,WAAW,SAAS,UAAU;QAE/C,kBAAkB;GAEpB,MAAM,OAAO,QAAQ,aAAa,MAAM;GACxC,MAAM,eAAe,YAAY,WAAW,MAAM,cAAc,QAAQ;GACxE,IAAI;GACJ,IAAI;GACJ,IAAI,MAAM,QAAQ,aAAa,KAAK,EAAE;IACpC,kBAAkB;IAClB,aAAa,KACX,4BACE,IAAI,KACJ,iBAAiB,UAAU,cAAc,yBAAyB,EAClE,gBACD,CACF;UACI,IAAI,QAAQ,QACjB,aACA,kBACA,KAED,EAAE;IACD,IAAI,IAAI;IACR,IAAI;IACJ,OAAO,KAAK;KACV,OAAO,SAAS;KAChB,IAAI,CAAC,sBAAsB,KAAK,EAC9B;;IAGJ,IAAI,QAAQ,eAAe,KAAK,IAAI,QAAQ,MAAM,iBAAiB,EAAE;KACnE,IAAI,cAAc,aAAa,aAAa,SAAS;KACrD,OAAO,YAAY,UAAU,SAAS,IACpC,cAAc,YAAY;KAE5B,YAAY,YAAY,MAAM,MAAM,4BAClC,MAAM,KACN,iBACE,UACA,cACA,yBACD,EACD,gBACD,GAAG,iBAAiB,UAAU,cAAc,yBAAyB;WAEtE,QAAQ,QACN,oBAAoB,IAAI,MAAM,IAAI,CACnC;UAEE,IAAI,MAAM;IACf,kBAAkB;IAClB,MAAM,cAAc,KAAK;IACzB,IAAI,aAAa;KACf,uBAAuB,aAAa,QAAQ;KAC5C,aAAa,KACX,qBAAqB,QAAQ,OAAO,YAAY,EAAE,CAChD,YAAY,QACZ,yBACE,oBAAoB,YAAY,EAChC,iBAAiB,UAAU,aAAa,EACxC,KACD,CACF,CAAC,CACH;WAED,QAAQ,QACN,oBACE,IACA,KAAK,IACN,CACF;UAEE;IACL,IAAI,gBAAgB;KAClB,IAAI,cAAc,IAAI,eAAe,EAAE;MACrC,QAAQ,QACN,oBACE,IACA,OACD,CACF;MACD;;KAEF,cAAc,IAAI,eAAe;KACjC,IAAI,mBAAmB,WACrB,sBAAsB;;IAG1B,gBAAgB,KAAK,qBAAqB,UAAU,aAAa,CAAC;;;EAGtE,IAAI,CAAC,iBAAiB;GACpB,MAAM,4BAA4B,OAAO,cAAc;IACrD,MAAM,KAAK,YAAY,OAAO,KAAK,GAAG,WAAW,IAAI;IACrD,IAAI,QAAQ,cACV,GAAG,kBAAkB;IAEvB,OAAO,qBAAqB,WAAW,GAAG;;GAE5C,IAAI,CAAC,kBACH,gBAAgB,KAAK,yBAAyB,KAAK,GAAG,SAAS,CAAC;QAC3D,IAAI,wBAAwB,UAGnC,CAAC,wBAAwB,MAAM,iBAAiB,EAC9C,IAAI,qBACF,QAAQ,QACN,oBACE,IACA,wBAAwB,GAAG,IAC5B,CACF;QAED,gBAAgB,KACd,yBAAyB,KAAK,GAAG,wBAAwB,CAC1D;;EAIP,MAAM,WAAW,kBAAkB,IAAI,kBAAkB,KAAK,SAAS,GAAG,IAAI;EAC9E,IAAI,QAAQ,uBACV,gBAAgB,OACd,qBACE,KAGA,uBACE,WAAY,OAAO,OAAO,cAAc,UAAU,MAClD,MACD,CACF,CACF,EACD,IACD;EACD,IAAI,aAAa,QACf,QAAQ,qBAAqB,QAAQ,OAAO,aAAa,EAAE,CACzD,OACA,sBAAsB,aAAa,CACpC,CAAC;EAEJ,OAAO;GACL;GACA;GACD;;CAEH,SAAS,iBAAiB,MAAM,IAAI,OAAO;EACzC,MAAM,QAAQ,CACZ,qBAAqB,QAAQ,KAAK,EAClC,qBAAqB,MAAM,GAAG,CAC/B;EACD,IAAI,SAAS,MACX,MAAM,KACJ,qBAAqB,OAAO,uBAAuB,OAAO,MAAM,EAAE,KAAK,CAAC,CACzE;EAEH,OAAO,uBAAuB,MAAM;;CAEtC,SAAS,kBAAkB,UAAU;EACnC,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;GACxC,MAAM,QAAQ,SAAS;GACvB,QAAQ,MAAM,MAAd;IACE,KAAK;KACH,IAAI,MAAM,YAAY,KAAK,kBAAkB,MAAM,SAAS,EAC1D,OAAO;KAET;IACF,KAAK;KACH,IAAI,kBAAkB,MAAM,SAAS,EAAE,OAAO;KAC9C;IACF,KAAK;IACL,KAAK;KACH,IAAI,kBAAkB,MAAM,SAAS,EAAE,OAAO;KAC9C;;;EAGN,OAAO;;CAGT,MAAM,qCAAqC,IAAI,SAAS;CACxD,MAAM,oBAAoB,MAAM,YAAY;EAC1C,OAAO,SAAS,uBAAuB;GACrC,OAAO,QAAQ;GACf,IAAI,EAAE,KAAK,SAAS,MAAM,KAAK,YAAY,KAAK,KAAK,YAAY,KAC/D;GAEF,MAAM,EAAE,KAAK,UAAU;GACvB,MAAM,cAAc,KAAK,YAAY;GACrC,IAAI,WAAW,cAAc,qBAAqB,MAAM,QAAQ,GAAG,IAAI,IAAI;GAC3E,MAAM,qBAAqB,OAAO,SAAS,SAAS,IAAI,SAAS,WAAW;GAC5E,IAAI;GACJ,IAAI;GACJ,IAAI,YAAY;GAChB,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI,iBAEF,sBAAsB,aAAa,YAAY,aAAa,YAAY,CAAC,gBAIxE,QAAQ,SAAS,QAAQ,mBAAmB,QAAQ;GAEvD,IAAI,MAAM,SAAS,GAAG;IACpB,MAAM,mBAAmB,WACvB,MACA,SACA,KAAK,GACL,aACA,mBACD;IACD,aAAa,iBAAiB;IAC9B,YAAY,iBAAiB;IAC7B,mBAAmB,iBAAiB;IACpC,MAAM,aAAa,iBAAiB;IACpC,kBAAkB,cAAc,WAAW,SAAS,sBAClD,WAAW,KAAK,QAAQ,mBAAmB,KAAK,QAAQ,CAAC,CAC1D,GAAG,KAAK;IACT,IAAI,iBAAiB,gBACnB,iBAAiB;;GAGrB,IAAI,KAAK,SAAS,SAAS,GAAG;IAC5B,IAAI,aAAa,YAAY;KAC3B,iBAAiB;KACjB,aAAa;KACb,IAAI,KAAK,SAAS,SAAS,GACzB,QAAQ,QACN,oBAAoB,IAAI;MACtB,OAAO,KAAK,SAAS,GAAG,IAAI;MAC5B,KAAK,KAAK,SAAS,KAAK,SAAS,SAAS,GAAG,IAAI;MACjD,QAAQ;MACT,CAAC,CACH;;IAML,IAH2B,eAC3B,aAAa,YACb,aAAa,YACW;KACtB,MAAM,EAAE,OAAO,oBAAoB,WAAW,MAAM,QAAQ;KAC5D,gBAAgB;KAChB,IAAI,iBACF,aAAa;WAEV,IAAI,KAAK,SAAS,WAAW,KAAK,aAAa,UAAU;KAC9D,MAAM,QAAQ,KAAK,SAAS;KAC5B,MAAM,OAAO,MAAM;KACnB,MAAM,sBAAsB,SAAS,KAAK,SAAS;KACnD,IAAI,uBAAuB,gBAAgB,OAAO,QAAQ,KAAK,GAC7D,aAAa;KAEf,IAAI,uBAAuB,SAAS,GAClC,gBAAgB;UAEhB,gBAAgB,KAAK;WAGvB,gBAAgB,KAAK;;GAGzB,IAAI,oBAAoB,iBAAiB,QACvC,oBAAoB,0BAA0B,iBAAiB;GAEjE,KAAK,cAAc,gBACjB,SACA,UACA,YACA,eACA,cAAc,IAAI,KAAK,IAAI,WAC3B,mBACA,iBACA,CAAC,CAAC,gBACF,OACA,aACA,KAAK,IACN;;;CAGL,SAAS,qBAAqB,MAAM,SAAS,MAAM,OAAO;EACxD,IAAI,EAAE,QAAQ;EACd,MAAM,oBAAoB,eAAe,IAAI;EAC7C,MAAM,SAAS,SACb,MACA,MACA,OACA,KAED;EACD,IAAI;OACE,qBAAqB,gBACvB,0BACA,QACD,EAAE;IACD,IAAI;IACJ,IAAI,OAAO,SAAS,GAClB,MAAM,OAAO,SAAS,uBAAuB,OAAO,MAAM,SAAS,KAAK;SACnE;KACL,MAAM,OAAO;KACb,IAAI,CAAC,KAAK;MACR,MAAM,uBAAuB,MAAM,OAAO,OAAO,IAAI,IAAI;MAEvD,MAAM,OAAO,MAAM,kBAAkB,KAAK,QAAQ;;;IAIxD,IAAI,KACF,OAAO,qBAAqB,QAAQ,OAAO,0BAA0B,EAAE,CACrE,IACD,CAAC;UAEC,IAAI,OAAO,SAAS,KAAK,OAAO,MAAM,QAAQ,WAAW,OAAO,EACrE,MAAM,OAAO,MAAM,QAAQ,MAAM,EAAE;;EAGvC,MAAM,UAAU,gBAAgB,IAAI,IAAI,QAAQ,mBAAmB,IAAI;EACvE,IAAI,SAAS;GACX,IAAI,CAAC,KAAK,QAAQ,OAAO,QAAQ;GACjC,OAAO;;EAET;GACE,MAAM,YAAY,sBAAsB,KAAK,QAAQ;GACrD,IAAI,WACF,OAAO;GAET,MAAM,WAAW,IAAI,QAAQ,IAAI;GACjC,IAAI,WAAW,GAAG;IAChB,MAAM,KAAK,sBAAsB,IAAI,MAAM,GAAG,SAAS,EAAE,QAAQ;IACjE,IAAI,IACF,OAAO,KAAK,IAAI,MAAM,SAAS;;;EAIrC,IAAI,QAAQ,YAAY,OAAO,WAAW,OAAO,SAAS,IAAI,CAAC,KAAK,QAAQ,UAAU;GACpF,QAAQ,OAAO,kBAAkB;GACjC,QAAQ,WAAW,IAAI,MAAM,SAAS;GACtC,OAAO,eAAe,KAAK,YAAY;;EAEzC,QAAQ,OAAO,kBAAkB;EACjC,QAAQ,WAAW,IAAI,IAAI;EAC3B,OAAO,eAAe,KAAK,YAAY;;CAEzC,SAAS,sBAAsB,MAAM,SAAS;EAC5C,MAAM,WAAW,QAAQ;EACzB,IAAI,CAAC,YAAY,SAAS,oBAAoB,OAC5C;EAEF,MAAM,YAAY,OAAO,SAAS,KAAK;EACvC,MAAM,aAAa,OAAO,WAAW,UAAU;EAC/C,MAAM,aAAa,SAAS;GAC1B,IAAI,SAAS,UAAU,MACrB,OAAO;GAET,IAAI,SAAS,eAAe,MAC1B,OAAO;GAET,IAAI,SAAS,gBAAgB,MAC3B,OAAO;;EAGX,MAAM,YAAY,UAAU,cAAc,IAAI,UAAU,uBAAuB,IAAI,UAAU,gBAAgB;EAC7G,IAAI,WACF,OAAO,QAAQ,SAEb,YACE,UAAU,KAAK,UAAU,UAAU,CAAC;EAE1C,MAAM,eAAe,UAAU,YAAY,IAAI,UAAU,YAAY,IAAI,UAAU,kBAAkB;EACrG,IAAI,cACF,OAAO,QAAQ,SAEb,GAAG,QAAQ,aAAa,MAAM,CAAC,GAAG,aAAa,KAC7C,UAAU,KAAK,UAAU,aAAa,CAAC;EAE7C,MAAM,YAAY,UAAU,QAAQ;EACpC,IAAI,WACF,OAAO,GAAG,QAAQ,aAAa,MAAM,CAAC,GAAG,QAAQ,SAAS,YAAY,SAAS,GAAG,KAAK,UAAU,UAAU,CAAC;;CAGhH,SAAS,WAAW,MAAM,SAAS,QAAQ,KAAK,OAAO,aAAa,oBAAoB,MAAM,OAAO;EACnG,MAAM,EAAE,KAAK,KAAK,YAAY,aAAa;EAC3C,IAAI,aAAa,EAAE;EACnB,MAAM,YAAY,EAAE;EACpB,MAAM,oBAAoB,EAAE;EAC5B,MAAM,cAAc,SAAS,SAAS;EACtC,IAAI,iBAAiB;EACrB,IAAI,YAAY;EAChB,IAAI,SAAS;EACb,IAAI,kBAAkB;EACtB,IAAI,kBAAkB;EACtB,IAAI,2BAA2B;EAC/B,IAAI,iBAAiB;EACrB,IAAI,eAAe;EACnB,MAAM,mBAAmB,EAAE;EAC3B,MAAM,gBAAgB,QAAQ;GAC5B,IAAI,WAAW,QAAQ;IACrB,UAAU,KACR,uBAAuB,iBAAiB,WAAW,EAAE,WAAW,CACjE;IACD,aAAa,EAAE;;GAEjB,IAAI,KAAK,UAAU,KAAK,IAAI;;EAE9B,MAAM,0BAA0B;GAC9B,IAAI,QAAQ,OAAO,OAAO,GACxB,WAAW,KACT,qBACE,uBAAuB,WAAW,KAAK,EACvC,uBAAuB,OAAO,CAC/B,CACF;;EAGL,MAAM,oBAAoB,EAAE,KAAK,YAAY;GAC3C,IAAI,YAAY,IAAI,EAAE;IACpB,MAAM,OAAO,IAAI;IACjB,MAAM,iBAAiB,OAAO,KAAK,KAAK;IACxC,IAAI,mBAAmB,CAAC,eAAe,uBAEvC,KAAK,aAAa,KAAK,aACvB,SAAS,yBACT,CAAC,OAAO,eAAe,KAAK,EAC1B,2BAA2B;IAE7B,IAAI,kBAAkB,OAAO,eAAe,KAAK,EAC/C,eAAe;IAEjB,IAAI,kBAAkB,MAAM,SAAS,IACnC,QAAQ,MAAM,UAAU;IAE1B,IAAI,MAAM,SAAS,OAAO,MAAM,SAAS,KAAK,MAAM,SAAS,MAAM,gBAAgB,OAAO,QAAQ,GAAG,GACnG;IAEF,IAAI,SAAS,OACX,SAAS;SACJ,IAAI,SAAS,SAClB,kBAAkB;SACb,IAAI,SAAS,SAClB,kBAAkB;SACb,IAAI,SAAS,SAAS,CAAC,iBAAiB,SAAS,KAAK,EAC3D,iBAAiB,KAAK,KAAK;IAE7B,IAAI,gBAAgB,SAAS,WAAW,SAAS,YAAY,CAAC,iBAAiB,SAAS,KAAK,EAC3F,iBAAiB,KAAK,KAAK;UAG7B,iBAAiB;;EAGrB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;GACrC,MAAM,OAAO,MAAM;GACnB,IAAI,KAAK,SAAS,GAAG;IACnB,MAAM,EAAE,KAAK,MAAM,SAAS,UAAU;IACtC,IAAI,WAAW;IACf,IAAI,SAAS,OAAO;KAClB,SAAS;KACT,mBAAmB;KACnB,IAAI,SAAS,QAAQ,QAAQ;MAC3B,MAAM,UAAU,QAAQ,gBAAgB,MAAM;MAC9C,IAAI,YAAY,eAAe,YAAY,eAAe,YAAY,mBAAmB;OACvF,WAAW;OACX,WAAW,KACT,qBACE,uBAAuB,WAAW,KAAK,EACvC,uBAAuB,MAAM,SAAS,MAAM,MAAM,IAAI,CACvD,CACF;;;;IAIP,IAAI,SAAS,SAAS,eAAe,IAAI,IAAI,SAAS,MAAM,QAAQ,WAAW,OAAO,IAAI,gBACxF,0BACA,QACD,GACC;IAEF,WAAW,KACT,qBACE,uBAAuB,MAAM,MAAM,QAAQ,EAC3C,uBACE,QAAQ,MAAM,UAAU,IACxB,UACA,QAAQ,MAAM,MAAM,IACrB,CACF,CACF;UACI;IACL,MAAM,EAAE,MAAM,KAAK,KAAK,KAAK,cAAc;IAC3C,MAAM,UAAU,SAAS;IACzB,MAAM,QAAQ,SAAS;IACvB,IAAI,SAAS,QAAQ;KACnB,IAAI,CAAC,aACH,QAAQ,QACN,oBAAoB,IAAI,IAAI,CAC7B;KAEH;;IAEF,IAAI,SAAS,UAAU,SAAS,QAC9B;IAEF,IAAI,SAAS,QAAQ,WAAW,cAAc,KAAK,KAAK,KAAK,eAAe,IAAI,IAAI,gBAClF,0BACA,QACD,GACC;IAEF,IAAI,SAAS,KACX;IAEF,IAEE,WAAW,cAAc,KAAK,MAAM,IAEpC,SAAS,eAAe,cAAc,KAAK,oBAAoB,EAE/D,iBAAiB;IAEnB,IAAI,WAAW,cAAc,KAAK,MAAM,EACtC,mBAAmB;IAErB,IAAI,CAAC,QAAQ,WAAW,QAAQ;KAC9B,iBAAiB;KACjB,IAAI,KACF,IAAI,SAAS;MAET,cAAc;MAcZ,IAZ2B,UAAU,MAAM,SAAS;OAClD,IAAI,KAAK,SAAS,IAChB,OAAO,KAAK,WAAW,MAAM,EAAE,UAAU;QACvC,IAAI,IAAI,SAAS,KAAK,CAAC,IAAI,UACzB,OAAO;QAET,OAAO,IAAI,YAAY,WAAW,IAAI,YAAY,WAAW,CAAC,OAAO,KAAK,IAAI,QAAQ;SACtF;YAEF,OAAO;QAGW,EACpB,mBACE,gCACA,SACA,IACD;MAGL,IAAI,gBACF,gCACA,QACD,EAAE;OACD,UAAU,QAAQ,IAAI;OACtB;;MAGJ,mBAAmB;MACnB,cAAc;MACd,UAAU,KAAK,IAAI;YAEnB,aAAa;MACX,MAAM;MACN;MACA,QAAQ,QAAQ,OAAO,YAAY;MACnC,WAAW,cAAc,CAAC,IAAI,GAAG,CAAC,KAAK,OAAO;MAC/C,CAAC;UAGJ,QAAQ,QACN,oBACE,UAAU,KAAK,IACf,IACD,CACF;KAEH;;IAEF,IAAI,WAAW,UAAU,MAAM,QAAQ,IAAI,YAAY,OAAO,EAC5D,aAAa;IAEf,MAAM,qBAAqB,QAAQ,oBAAoB;IACvD,IAAI,oBAAoB;KACtB,MAAM,EAAE,OAAO,QAAQ,gBAAgB,mBAAmB,MAAM,MAAM,QAAQ;KAC9E,CAAC,OAAO,OAAO,QAAQ,iBAAiB;KACxC,IAAI,SAAS,OAAO,CAAC,YAAY,IAAI,EACnC,aAAa,uBAAuB,QAAQ,WAAW,CAAC;UAExD,WAAW,KAAK,GAAG,OAAO;KAE5B,IAAI,aAAa;MACf,kBAAkB,KAAK,KAAK;MAC5B,IAAI,OAAO,SAAS,YAAY,EAC9B,mBAAmB,IAAI,MAAM,YAAY;;WAGxC,IAAI,CAAC,OAAO,mBAAmB,KAAK,EAAE;KAC3C,kBAAkB,KAAK,KAAK;KAC5B,IAAI,aACF,iBAAiB;;;;EAKzB,IAAI,kBAAkB,KAAK;EAC3B,IAAI,UAAU,QAAQ;GACpB,cAAc;GACd,IAAI,UAAU,SAAS,GACrB,kBAAkB,qBAChB,QAAQ,OAAO,YAAY,EAC3B,WACA,WACD;QAED,kBAAkB,UAAU;SAEzB,IAAI,WAAW,QACpB,kBAAkB,uBAChB,iBAAiB,WAAW,EAC5B,WACD;EAEH,IAAI,gBACF,aAAa;OACR;GACL,IAAI,mBAAmB,CAAC,aACtB,aAAa;GAEf,IAAI,mBAAmB,CAAC,aACtB,aAAa;GAEf,IAAI,iBAAiB,QACnB,aAAa;GAEf,IAAI,0BACF,aAAa;;EAGjB,IAAI,CAAC,mBAAmB,cAAc,KAAK,cAAc,QAAQ,UAAU,gBAAgB,kBAAkB,SAAS,IACpH,aAAa;EAEf,IAAI,CAAC,QAAQ,SAAS,iBACpB,QAAQ,gBAAgB,MAAxB;GACE,KAAK;IACH,IAAI,gBAAgB;IACpB,IAAI,gBAAgB;IACpB,IAAI,gBAAgB;IACpB,KAAK,IAAI,IAAI,GAAG,IAAI,gBAAgB,WAAW,QAAQ,KAAK;KAC1D,MAAM,MAAM,gBAAgB,WAAW,GAAG;KAC1C,IAAI,YAAY,IAAI;UACd,IAAI,YAAY,SAClB,gBAAgB;WACX,IAAI,IAAI,YAAY,SACzB,gBAAgB;YAEb,IAAI,CAAC,IAAI,cACd,gBAAgB;;IAGpB,MAAM,YAAY,gBAAgB,WAAW;IAC7C,MAAM,YAAY,gBAAgB,WAAW;IAC7C,IAAI,CAAC,eAAe;KAClB,IAAI,aAAa,CAAC,YAAY,UAAU,MAAM,EAC5C,UAAU,QAAQ,qBAChB,QAAQ,OAAO,gBAAgB,EAC/B,CAAC,UAAU,MAAM,CAClB;KAEH,IAAI,cAEH,mBAAmB,UAAU,MAAM,SAAS,KAAK,UAAU,MAAM,QAAQ,MAAM,CAAC,OAAO,OAExF,UAAU,MAAM,SAAS,KACvB,UAAU,QAAQ,qBAChB,QAAQ,OAAO,gBAAgB,EAC/B,CAAC,UAAU,MAAM,CAClB;WAGH,kBAAkB,qBAChB,QAAQ,OAAO,gBAAgB,EAC/B,CAAC,gBAAgB,CAClB;IAEH;GACF,KAAK,IACH;GACF;IACE,kBAAkB,qBAChB,QAAQ,OAAO,gBAAgB,EAC/B,CACE,qBAAqB,QAAQ,OAAO,qBAAqB,EAAE,CACzD,gBACD,CAAC,CACH,CACF;IACD;;EAGN,OAAO;GACL,OAAO;GACP,YAAY;GACZ;GACA;GACA;GACD;;CAEH,SAAS,iBAAiB,YAAY;EACpC,MAAM,6BAA6B,IAAI,KAAK;EAC5C,MAAM,UAAU,EAAE;EAClB,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;GAC1C,MAAM,OAAO,WAAW;GACxB,IAAI,KAAK,IAAI,SAAS,KAAK,CAAC,KAAK,IAAI,UAAU;IAC7C,QAAQ,KAAK,KAAK;IAClB;;GAEF,MAAM,OAAO,KAAK,IAAI;GACtB,MAAM,WAAW,WAAW,IAAI,KAAK;GACrC,IAAI;QACE,SAAS,WAAW,SAAS,WAAW,OAAO,KAAK,KAAK,EAC3D,aAAa,UAAU,KAAK;UAEzB;IACL,WAAW,IAAI,MAAM,KAAK;IAC1B,QAAQ,KAAK,KAAK;;;EAGtB,OAAO;;CAET,SAAS,aAAa,UAAU,UAAU;EACxC,IAAI,SAAS,MAAM,SAAS,IAC1B,SAAS,MAAM,SAAS,KAAK,SAAS,MAAM;OAE5C,SAAS,QAAQ,sBACf,CAAC,SAAS,OAAO,SAAS,MAAM,EAChC,SAAS,IACV;;CAGL,SAAS,mBAAmB,KAAK,SAAS;EACxC,MAAM,UAAU,EAAE;EAClB,MAAM,UAAU,mBAAmB,IAAI,IAAI;EAC3C,IAAI,SACF,QAAQ,KAAK,QAAQ,aAAa,QAAQ,CAAC;OACtC;GACL,MAAM,YAAY,sBAAsB,OAAO,IAAI,MAAM,QAAQ;GACjE,IAAI,WACF,QAAQ,KAAK,UAAU;QAClB;IACL,QAAQ,OAAO,kBAAkB;IACjC,QAAQ,WAAW,IAAI,IAAI,KAAK;IAChC,QAAQ,KAAK,eAAe,IAAI,MAAM,YAAY,CAAC;;;EAGvD,MAAM,EAAE,QAAQ;EAChB,IAAI,IAAI,KAAK,QAAQ,KAAK,IAAI,IAAI;EAClC,IAAI,IAAI,KAAK;GACX,IAAI,CAAC,IAAI,KACP,QAAQ,KAAK,SAAS;GAExB,QAAQ,KAAK,IAAI,IAAI;;EAEvB,IAAI,OAAO,KAAK,IAAI,UAAU,CAAC,QAAQ;GACrC,IAAI,CAAC,IAAI,KAAK;IACZ,IAAI,CAAC,IAAI,KACP,QAAQ,KAAK,SAAS;IAExB,QAAQ,KAAK,SAAS;;GAExB,MAAM,iBAAiB,uBAAuB,QAAQ,OAAO,IAAI;GACjE,QAAQ,KACN,uBACE,IAAI,UAAU,KACX,aAAa,qBAAqB,UAAU,eAAe,CAC7D,EACD,IACD,CACF;;EAEH,OAAO,sBAAsB,SAAS,IAAI,IAAI;;CAEhD,SAAS,0BAA0B,OAAO;EACxC,IAAI,mBAAmB;EACvB,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAI,GAAG,KAAK;GAC5C,oBAAoB,KAAK,UAAU,MAAM,GAAG;GAC5C,IAAI,IAAI,IAAI,GAAG,oBAAoB;;EAErC,OAAO,mBAAmB;;CAE5B,SAAS,eAAe,KAAK;EAC3B,OAAO,QAAQ,eAAe,QAAQ;;CAGxC,MAAM,uBAAuB,MAAM,YAAY;EAC7C,IAAI,aAAa,KAAK,EAAE;GACtB,MAAM,EAAE,UAAU,QAAQ;GAC1B,MAAM,EAAE,UAAU,cAAc,kBAAkB,MAAM,QAAQ;GAChE,MAAM,WAAW;IACf,QAAQ,oBAAoB,gBAAgB;IAC5C;IACA;IACA;IACA;IACD;GACD,IAAI,cAAc;GAClB,IAAI,WAAW;IACb,SAAS,KAAK;IACd,cAAc;;GAEhB,IAAI,SAAS,QAAQ;IACnB,SAAS,KAAK,yBAAyB,EAAE,EAAE,UAAU,OAAO,OAAO,IAAI;IACvE,cAAc;;GAEhB,IAAI,QAAQ,WAAW,CAAC,QAAQ,SAC9B,cAAc;GAEhB,SAAS,OAAO,YAAY;GAC5B,KAAK,cAAc,qBACjB,QAAQ,OAAO,YAAY,EAC3B,UACA,IACD;;;CAGL,SAAS,kBAAkB,MAAM,SAAS;EACxC,IAAI,WAAW;EACf,IAAI,YAAY,KAAK;EACrB,MAAM,eAAe,EAAE;EACvB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,MAAM,QAAQ,KAAK;GAC1C,MAAM,IAAI,KAAK,MAAM;GACrB,IAAI,EAAE,SAAS;QACT,EAAE,OACJ,IAAI,EAAE,SAAS,QACb,WAAW,KAAK,UAAU,EAAE,MAAM,QAAQ;SACrC;KACL,EAAE,OAAO,OAAO,SAAS,EAAE,KAAK;KAChC,aAAa,KAAK,EAAE;;UAIxB,IAAI,EAAE,SAAS,UAAU,cAAc,EAAE,KAAK,OAAO;QAC/C,EAAE,KACJ,WAAW,EAAE;SACR,IAAI,EAAE,OAAO,EAAE,IAAI,SAAS,GAAG;KAEpC,WAAW,EAAE,MAAM,uBADN,OAAO,SAAS,EAAE,IAAI,QACW,EAAE,OAAO,EAAE,IAAI,IAAI;KAE/D,WAAW,EAAE,MAAM,kBAAkB,EAAE,KAAK,QAAQ;;UAGnD;IACL,IAAI,EAAE,SAAS,UAAU,EAAE,OAAO,YAAY,EAAE,IAAI,EAClD,EAAE,IAAI,UAAU,OAAO,SAAS,EAAE,IAAI,QAAQ;IAEhD,aAAa,KAAK,EAAE;;;EAI1B,IAAI,aAAa,SAAS,GAAG;GAC3B,MAAM,EAAE,OAAO,eAAe,WAC5B,MACA,SACA,cACA,OACA,MACD;GACD,YAAY;GACZ,IAAI,WAAW,QACb,QAAQ,QACN,oBACE,IACA,WAAW,GAAG,IACf,CACF;;EAGL,OAAO;GACL;GACA;GACD;;CAGH,MAAM,eAAe,KAAK,MAAM,SAAS,cAAc;EACrD,MAAM,EAAE,KAAK,WAAW,QAAQ;EAChC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,QACzB,QAAQ,QAAQ,oBAAoB,IAAI,IAAI,CAAC;EAE/C,IAAI;EACJ,IAAI,IAAI,SAAS,GACf,IAAI,IAAI,UAAU;GAChB,IAAI,UAAU,IAAI;GAClB,IAAI,QAAQ,WAAW,QAAQ,EAC7B,QAAQ,QAAQ,oBAAoB,IAAI,IAAI,IAAI,CAAC;GAEnD,IAAI,QAAQ,WAAW,OAAO,EAC5B,UAAU,SAAS,QAAQ,MAAM,EAAE;GAWrC,YAAY,uBATQ,KAAK,YAAY,KAAK,QAAQ,WAAW,QAAQ,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAG7F,OAAO,aAAa,OAAO,SAAS,QAAQ,CAAC,GAI7C,MAAM,WAEwC,MAAM,IAAI,IAAI;SAE9D,YAAY,yBAAyB;GACnC,GAAG,QAAQ,aAAa,eAAe,CAAC;GACxC;GACA;GACD,CAAC;OAEC;GACL,YAAY;GACZ,UAAU,SAAS,QAAQ,GAAG,QAAQ,aAAa,eAAe,CAAC,GAAG;GACtE,UAAU,SAAS,KAAK,IAAI;;EAE9B,IAAI,MAAM,IAAI;EACd,IAAI,OAAO,CAAC,IAAI,QAAQ,MAAM,EAC5B,MAAM,KAAK;EAEb,IAAI,cAAc,QAAQ,iBAAiB,CAAC,OAAO,CAAC,QAAQ;EAC5D,IAAI,KAAK;GACP,MAAM,cAAc,mBAAmB,KAAK,QAAQ;GACpD,MAAM,oBAAoB,EAAE,eAAe,eAAe,KAAK,QAAQ;GACvE,MAAM,wBAAwB,IAAI,QAAQ,SAAS,IAAI;GACvD,IAAI,QAAQ,mBAAmB;IAC7B,qBAAqB,QAAQ,eAAe,SAAS;IACrD,MAAM,IAAI,MAAM,kBACd,KACA,SACA,OACA,sBACD;IACD,qBAAqB,QAAQ,kBAAkB,SAAS;IACxD,cAAc,QAAQ,iBACtB,CAAC,QAAQ,WAET,EAAE,IAAI,SAAS,KAAK,IAAI,YAAY,MAKpC,EAAE,eAAe,KAAK,YAAY,MAElC,CAAC,YAAY,KAAK,QAAQ,YAAY;IACtC,IAAI,eAAe,aACjB,IAAI,IAAI,SAAS,GACf,IAAI,UAAU,GAAG,IAAI,QAAQ,MAAM,IAAI,QAAQ;SAE/C,IAAI,WAAW;KAAC,GAAG,IAAI;KAAU;KAAQ,GAAG,IAAI;KAAU;KAAY;;GAI5E,IAAI,qBAAqB,eAAe,aACtC,MAAM,yBAAyB;IAC7B,GAAG,oBAAoB,QAAQ,OAAO,kBAAkB,WAAW,GAAG,QAAQ,OAAO;;IAEzF,GAAG,WAAW,MAAM,wBAAwB,MAAM;IAC9C;IACA,wBAAwB,MAAM;IAC/B,CAAC;;EAGN,IAAI,MAAM,EACR,OAAO,CACL,qBACE,WACA,OAAO,uBAAuB,YAAY,OAAO,IAAI,CACtD,CACF,EACF;EACD,IAAI,WACF,MAAM,UAAU,IAAI;EAEtB,IAAI,aACF,IAAI,MAAM,GAAG,QAAQ,QAAQ,MAAM,IAAI,MAAM,GAAG,MAAM;EAExD,IAAI,MAAM,SAAS,MAAM,EAAE,IAAI,eAAe,KAAK;EACnD,OAAO;;CAGT,MAAM,iBAAiB,KAAK,OAAO,YAAY;EAC7C,MAAM,EAAE,WAAW,QAAQ;EAC3B,MAAM,MAAM,IAAI;EAChB,IAAI,EAAE,QAAQ;EACd,IAAI,OAAO,IAAI,SAAS,KAAK,CAAC,IAAI,QAAQ,MAAM,EAAE;GAE9C,QAAQ,QACN,oBAAoB,IAAI,IAAI,CAC7B;GACD,OAAO,EACL,OAAO,CACL,qBAAqB,KAAK,uBAAuB,IAAI,MAAM,IAAI,CAAC,CACjE,EACF;;EAGL,IAAI,IAAI,SAAS,GAAG;GAClB,IAAI,SAAS,QAAQ,IAAI;GACzB,IAAI,SAAS,KAAK,UAAU;SACvB,IAAI,CAAC,IAAI,UACd,IAAI,UAAU,IAAI,UAAU,GAAG,IAAI,QAAQ,UAAU;EAEvD,IAAI,UAAU,MAAM,QAAQ,IAAI,YAAY,QAAQ,EAClD,IAAI,IAAI,SAAS,GACf,IAAI,IAAI,UACN,IAAI,UAAU,OAAO,SAAS,IAAI,QAAQ;OAE1C,IAAI,UAAU,GAAG,QAAQ,aAAa,SAAS,CAAC,GAAG,IAAI,QAAQ;OAE5D;GACL,IAAI,SAAS,QAAQ,GAAG,QAAQ,aAAa,SAAS,CAAC,GAAG;GAC1D,IAAI,SAAS,KAAK,IAAI;;EAG1B,IAAI,CAAC,QAAQ,OAAO;GAClB,IAAI,UAAU,MAAM,QAAQ,IAAI,YAAY,OAAO,EACjD,aAAa,KAAK,IAAI;GAExB,IAAI,UAAU,MAAM,QAAQ,IAAI,YAAY,OAAO,EACjD,aAAa,KAAK,IAAI;;EAG1B,OAAO,EACL,OAAO,CAAC,qBAAqB,KAAK,IAAI,CAAC,EACxC;;CAEH,MAAM,gBAAgB,KAAK,WAAW;EACpC,IAAI,IAAI,SAAS,GACf,IAAI,IAAI,UACN,IAAI,UAAU,SAAS,IAAI;OAE3B,IAAI,UAAU,KAAK,OAAO,KAAK,IAAI,QAAQ;OAExC;GACL,IAAI,SAAS,QAAQ,IAAI,OAAO,OAAO;GACvC,IAAI,SAAS,KAAK,IAAI;;;CAI1B,MAAM,iBAAiB,MAAM,YAAY;EACvC,IAAI,KAAK,SAAS,KAAK,KAAK,SAAS,KAAK,KAAK,SAAS,MAAM,KAAK,SAAS,IAC1E,aAAa;GACX,MAAM,WAAW,KAAK;GACtB,IAAI,mBAAmB,KAAK;GAC5B,IAAI,UAAU;GACd,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;IACxC,MAAM,QAAQ,SAAS;IACvB,IAAI,SAAS,MAAM,EAAE;KACnB,UAAU;KACV,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;MAC5C,MAAM,OAAO,SAAS;MACtB,IAAI,SAAS,KAAK,EAAE;OAClB,IAAI,CAAC,kBACH,mBAAmB,SAAS,KAAK,yBAC/B,CAAC,MAAM,EACP,MAAM,IACP;OAEH,iBAAiB,SAAS,KAAK,OAAO,KAAK;OAC3C,SAAS,OAAO,GAAG,EAAE;OACrB;aACK;OACL,mBAAmB,KAAK;OACxB;;;;;GAKR,IAAI,CAAC,WAIL,SAAS,WAAW,MAAM,KAAK,SAAS,KAAK,KAAK,SAAS,KAAK,KAAK,YAAY,KAKjF,CAAC,KAAK,MAAM,MACT,MAAM,EAAE,SAAS,KAAK,CAAC,QAAQ,oBAAoB,EAAE,MACvD,IAGD,EAAE,KAAK,QAAQ,cACb;GAEF,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;IACxC,MAAM,QAAQ,SAAS;IACvB,IAAI,SAAS,MAAM,IAAI,MAAM,SAAS,GAAG;KACvC,MAAM,WAAW,EAAE;KACnB,IAAI,MAAM,SAAS,KAAK,MAAM,YAAY,KACxC,SAAS,KAAK,MAAM;KAEtB,IAAI,CAAC,QAAQ,OAAO,gBAAgB,OAAO,QAAQ,KAAK,GACtD,SAAS,KACP,QAAY,OAAO,eAAe,GAAG,KACtC;KAEH,SAAS,KAAK;MACZ,MAAM;MACN,SAAS;MACT,KAAK,MAAM;MACX,aAAa,qBACX,QAAQ,OAAO,YAAY,EAC3B,SACD;MACF;;;;;CAOX,MAAM,yBAAyB,IAAI,SAAS;CAC5C,MAAM,iBAAiB,MAAM,YAAY;EACvC,IAAI,KAAK,SAAS,KAAK,QAAQ,MAAM,QAAQ,KAAK,EAAE;GAClD,IAAI,OAAO,IAAI,KAAK,IAAI,QAAQ,WAAW,QAAQ,OACjD;GAEF,OAAO,IAAI,KAAK;GAChB,QAAQ,UAAU;GAClB,QAAQ,OAAO,mBAAmB;GAClC,aAAa;IACX,QAAQ,UAAU;IAClB,MAAM,MAAM,QAAQ;IACpB,IAAI,IAAI,aACN,IAAI,cAAc,QAAQ,MACxB,IAAI,aACJ,MACA,KACD;;;;CAMT,MAAM,kBAAkB,KAAK,MAAM,YAAY;EAC7C,MAAM,EAAE,KAAK,QAAQ;EACrB,IAAI,CAAC,KAAK;GACR,QAAQ,QACN,oBAAoB,IAAI,IAAI,IAAI,CACjC;GACD,OAAO,sBAAsB;;EAE/B,MAAM,SAAS,IAAI,IAAI,OAAO,MAAM;EACpC,MAAM,YAAY,IAAI,SAAS,IAAI,IAAI,UAAU;EACjD,MAAM,cAAc,QAAQ,gBAAgB;EAC5C,IAAI,gBAAgB,WAAW,gBAAgB,iBAAiB;GAC9D,QAAQ,QAAQ,oBAAoB,IAAI,IAAI,IAAI,CAAC;GACjD,OAAO,sBAAsB;;EAE/B,IAAI,gBAAgB,mBAAmB,gBAAgB,eAAe;GACpE,QAAQ,QAAQ,oBAAoB,IAAI,IAAI,IAAI,CAAC;GACjD,OAAO,sBAAsB;;EAE/B,MAAM,WAAW,QAAQ,WAAW,gBAAgB,eAAe,gBAAgB,eAAe,gBAAgB;EAClH,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,mBAAmB,KAAK,QAAQ,IAAI,CAAC,UAAU;GACvE,QAAQ,QACN,oBAAoB,IAAI,IAAI,IAAI,CACjC;GACD,OAAO,sBAAsB;;EAE/B,IAAI,QAAQ,qBAAqB,mBAAmB,UAAU,IAAI,QAAQ,YAAY,YAAY;GAChG,QAAQ,QACN,oBAAoB,IAAI,IAAI,IAAI,CACjC;GACD,OAAO,sBAAsB;;EAE/B,MAAM,WAAW,MAAM,MAAM,uBAAuB,cAAc,KAAK;EACvE,MAAM,YAAY,MAAM,YAAY,IAAI,GAAG,YAAY,OAAO,SAAS,IAAI,QAAQ,KAAK,yBAAyB,CAAC,oBAAkB,IAAI,CAAC,GAAG;EAC5I,IAAI;EACJ,MAAM,WAAW,QAAQ,OAAO,kBAAkB;EAClD,IAAI,UACF,IAAI,gBAAgB,aAClB,gBAAgB,yBAAyB;GACvC,GAAG,SAAS;GACZ,uBAAuB,QAAQ,OAAO,IAAI,IAAI;GAC9C;GACD,CAAC;OACG;GACL,MAAM,gBAAgB,gBAAgB,cAAc,GAAG,OAAO,aAAa;GAC3E,gBAAgB,yBAAyB;IACvC,GAAG,SAAS,OAAO,QAAQ,aAAa,OAAO,CAAC,GAAG,OAAO;IAC1D,uBAAuB,QAAQ,OAAO,IAAI,IAAI;IAC9C,sBAAsB,cAAc;IACrC,CAAC;;OAGJ,gBAAgB,yBAAyB;GACvC,GAAG,SAAS;GACZ;GACA;GACD,CAAC;EAEJ,MAAM,QAAQ,CAEZ,qBAAqB,UAAU,IAAI,IAAI,EAEvC,qBAAqB,WAAW,cAAc,CAC/C;EACD,IAAI,QAAQ,qBAAqB,CAAC,QAAQ,WAAW,QAAQ,iBAAiB,CAAC,YAAY,KAAK,QAAQ,YAAY,EAClH,MAAM,GAAG,QAAQ,QAAQ,MAAM,MAAM,GAAG,MAAM;EAEhD,IAAI,IAAI,UAAU,UAAU,KAAK,YAAY,GAAG;GAC9C,MAAM,YAAY,IAAI,UAAU,KAAK,MAAM,EAAE,QAAQ,CAAC,KAAK,OAAO,mBAAmB,EAAE,GAAG,IAAI,KAAK,UAAU,EAAE,IAAI,SAAS,CAAC,KAAK,KAAK;GACvI,MAAM,eAAe,MAAM,YAAY,IAAI,GAAG,GAAG,IAAI,QAAQ,aAAa,yBAAyB,CAAC,KAAK,mBAAiB,CAAC,GAAG;GAC9H,MAAM,KACJ,qBACE,cACA,uBACE,KAAK,UAAU,KACf,OACA,IAAI,KACJ,EACD,CACF,CACF;;EAEH,OAAO,qBAAqB,MAAM;;CAEpC,SAAS,qBAAqB,QAAQ,EAAE,EAAE;EACxC,OAAO,EAAE,OAAO;;CAGlB,MAAM,sBAAsB;CAC5B,MAAM,mBAAmB,MAAM,YAAY;EACzC,IAAI,CAAC,gBAAgB,oBAAoB,QAAQ,EAC/C;EAEF,IAAI,KAAK,SAAS,GAChB,cAAc,KAAK,SAAS,QAAQ;OAC/B,IAAI,KAAK,SAAS,GACvB,KAAK,MAAM,SAAS,SAAS;GAC3B,IAAI,KAAK,SAAS,KAAK,KAAK,SAAS,SAAS,KAAK,KACjD,cAAc,KAAK,KAAK,QAAQ;IAElC;;CAGN,SAAS,cAAc,MAAM,SAAS;EACpC,IAAI,KAAK,SAAS,GAChB,YAAY,MAAM,QAAQ;OAE1B,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,SAAS,QAAQ,KAAK;GAC7C,MAAM,QAAQ,KAAK,SAAS;GAC5B,IAAI,OAAO,UAAU,UAAU;GAC/B,IAAI,MAAM,SAAS,GACjB,YAAY,OAAO,QAAQ;QACtB,IAAI,MAAM,SAAS,GACxB,cAAc,OAAO,QAAQ;QACxB,IAAI,MAAM,SAAS,GACxB,cAAc,MAAM,SAAS,QAAQ;;;CAK7C,SAAS,YAAY,MAAM,SAAS;EAClC,MAAM,MAAM,KAAK;EACjB,IAAI,WAAW;EACf,IAAI,WAAW;EACf,IAAI,mBAAmB;EACvB,IAAI,UAAU;EACd,IAAI,QAAQ;EACZ,IAAI,SAAS;EACb,IAAI,QAAQ;EACZ,IAAI,kBAAkB;EACtB,IAAI,GAAG,MAAM,GAAG,YAAY,UAAU,EAAE;EACxC,KAAK,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;GAC/B,OAAO;GACP,IAAI,IAAI,WAAW,EAAE;GACrB,IAAI;QACE,MAAM,MAAM,SAAS,IAAI,WAAW;UACnC,IAAI;QACL,MAAM,MAAM,SAAS,IAAI,WAAW;UACnC,IAAI;QACL,MAAM,MAAM,SAAS,IAAI,mBAAmB;UAC3C,IAAI;QACL,MAAM,MAAM,SAAS,IAAI,UAAU;UAClC,IAAI,MAAM,OACjB,IAAI,WAAW,IAAI,EAAE,KAAK,OAAO,IAAI,WAAW,IAAI,EAAE,KAAK,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,OACtF,IAAI,eAAe,KAAK,GAAG;IACzB,kBAAkB,IAAI;IACtB,aAAa,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM;UAEnC,YAAY;QAET;IACL,QAAQ,GAAR;KACE,KAAK;MACH,WAAW;MACX;KAEF,KAAK;MACH,WAAW;MACX;KAEF,KAAK;MACH,mBAAmB;MACnB;KAEF,KAAK;MACH;MACA;KAEF,KAAK;MACH;MACA;KAEF,KAAK;MACH;MACA;KAEF,KAAK;MACH;MACA;KAEF,KAAK;MACH;MACA;KAEF,KAAK;MACH;MACA;;IAEJ,IAAI,MAAM,IAAI;KACZ,IAAI,IAAI,IAAI;KACZ,IAAI;KACJ,OAAO,KAAK,GAAG,KAAK;MAClB,IAAI,IAAI,OAAO,EAAE;MACjB,IAAI,MAAM,KAAK;;KAEjB,IAAI,CAAC,KAAK,CAAC,oBAAoB,KAAK,EAAE,EACpC,UAAU;;;;EAKlB,IAAI,eAAe,KAAK,GACtB,aAAa,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM;OAC9B,IAAI,oBAAoB,GAC7B,YAAY;EAEd,SAAS,aAAa;GACpB,QAAQ,KAAK,IAAI,MAAM,iBAAiB,EAAE,CAAC,MAAM,CAAC;GAClD,kBAAkB,IAAI;;EAExB,IAAI,QAAQ,QAAQ;GAClB,gBACE,oBACA,SACA,KAAK,IACN;GACD,KAAK,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAC9B,aAAa,WAAW,YAAY,QAAQ,IAAI,QAAQ;GAE1D,KAAK,UAAU;GACf,KAAK,MAAM,KAAK;;;CAGpB,SAAS,WAAW,KAAK,QAAQ,SAAS;EACxC,QAAQ,OAAO,eAAe;EAC9B,MAAM,IAAI,OAAO,QAAQ,IAAI;EAC7B,IAAI,IAAI,GAAG;GACT,QAAQ,QAAQ,IAAI,OAAO;GAC3B,OAAO,GAAG,eAAe,QAAQ,SAAS,CAAC,GAAG,IAAI;SAC7C;GACL,MAAM,OAAO,OAAO,MAAM,GAAG,EAAE;GAC/B,MAAM,OAAO,OAAO,MAAM,IAAI,EAAE;GAChC,QAAQ,QAAQ,IAAI,KAAK;GACzB,OAAO,GAAG,eAAe,MAAM,SAAS,CAAC,GAAG,MAAM,SAAS,MAAM,MAAM,OAAO;;;CAIlF,MAAM,uBAAuB,IAAI,SAAS;CAC1C,MAAM,iBAAiB,MAAM,YAAY;EACvC,IAAI,KAAK,SAAS,GAAG;GACnB,MAAM,MAAM,QAAQ,MAAM,OAAO;GACjC,IAAI,CAAC,OAAO,KAAK,IAAI,KAAK,IAAI,QAAQ,OACpC;GAEF,KAAK,IAAI,KAAK;GACd,aAAa;IACX,MAAM,cAAc,KAAK,eAAe,QAAQ,YAAY;IAC5D,IAAI,eAAe,YAAY,SAAS,IAAI;KAC1C,IAAI,KAAK,YAAY,GACnB,eAAe,aAAa,QAAQ;KAEtC,KAAK,cAAc,qBAAqB,QAAQ,OAAO,UAAU,EAAE;MACjE,IAAI;MACJ,yBAAyB,KAAK,GAAG,YAAY;MAC7C;MACA,OAAO,QAAQ,OAAO,OAAO;MAC9B,CAAC;KACF,QAAQ,OAAO,KAAK,KAAK;;;;;CAMjC,MAAM,2BAA2B,MAAM,YAAY;EACjD,IAAI,KAAK,SAAS;QACX,MAAM,QAAQ,KAAK,OACtB,IAAI,KAAK,SAAS,KAAK,KAAK,SAAS,WAAW,CAAC,KAAK,OACtD,UAAU,KAAK,KAAK;IAClB,MAAM,MAAM,KAAK;IACjB,IAAI,IAAI,SAAS,KAAK,CAAC,IAAI,UAAU;KACnC,QAAQ,QACN,oBACE,IACA,IAAI,IACL,CACF;KACD,KAAK,MAAM,uBAAuB,IAAI,MAAM,IAAI,IAAI;WAC/C;KACL,MAAM,WAAW,OAAO,SAAS,IAAI,QAAQ;KAC7C,IAAI,sBAAsB,KAAK,SAAS,GAAG,IAC3C,SAAS,OAAO,KACd,KAAK,MAAM,uBAAuB,UAAU,OAAO,IAAI,IAAI;;;;;CAQvE,SAAS,uBAAuB,mBAAmB;EACjD,OAAO,CACL;GACE;GACA;GACA;GACA;GACA;GACA,GAAG,CAAC,gBAAgB;GACpB,GAAG,oBAAoB,CAErB,qBACA,oBACD,GAAG,EAAE;GACN;GACA;GACA;GACA;GACD,EACD;GACE,IAAI;GACJ,MAAM;GACN,OAAO;GACR,CACF;;CAEH,SAAS,YAAY,QAAQ,UAAU,EAAE,EAAE;EACzC,MAAM,UAAU,QAAQ,WAAW;EACnC,MAAM,eAAe,QAAQ,SAAS;EACtC,MAAM,oBAAoB,QAAQ,sBAAsB,QAAQ;EAChE,IAAI,CAAC,qBAAqB,QAAQ,eAChC,QAAQ,oBAAoB,GAAG,CAAC;EAElC,IAAI,QAAQ,WAAW,CAAC,cACtB,QAAQ,oBAAoB,GAAG,CAAC;EAElC,MAAM,kBAAkB,OAAO,OAAO,EAAE,EAAE,SAAS,EACjD,mBACD,CAAC;EACF,MAAM,MAAM,OAAO,SAAS,OAAO,GAAG,UAAU,QAAQ,gBAAgB,GAAG;EAC3E,MAAM,CAAC,gBAAgB,uBAAuB,uBAAuB,kBAAkB;EACvF,IAAI,QAAQ,MAAM;GAChB,MAAM,EAAE,sBAAsB;GAC9B,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,SAAS,aAAa,EACjE,QAAQ,oBAAoB,CAAC,GAAG,qBAAqB,EAAE,EAAE,aAAa;;EAG1E,UACE,KACA,OAAO,OAAO,EAAE,EAAE,iBAAiB;GACjC,gBAAgB,CACd,GAAG,gBACH,GAAG,QAAQ,kBAAkB,EAAE,CAEhC;GACD,qBAAqB,OAAO,OAC1B,EAAE,EACF,qBACA,QAAQ,uBAAuB,EAAE,CAElC;GACF,CAAC,CACH;EACD,OAAO,SAAS,KAAK,gBAAgB;;CAGvC,MAAM,eAAe;EACnB,QAAQ;EACR,SAAS;EACT,iBAAiB;EACjB,aAAa;EACb,eAAe;EACf,wBAAwB;EACxB,mBAAmB;EACnB,aAAa;EACb,WAAW;EACX,iBAAiB;EAClB;CAED,MAAM,gCAAgC,EAAE,OAAO,EAAE,EAAE;CAEnD,QAAQ,oBAAoB,OAAO;CACnC,QAAQ,kBAAkB;CAC1B,QAAQ,eAAe;CACvB,QAAQ,WAAW;CACnB,QAAQ,aAAa;CACrB,QAAQ,eAAe;CACvB,QAAQ,iBAAiB;CACzB,QAAQ,uBAAuB;CAC/B,QAAQ,uBAAuB;CAC/B,QAAQ,eAAe;CACvB,QAAQ,gBAAgB;CACxB,QAAQ,cAAc;CACtB,QAAQ,eAAe;CACvB,QAAQ,2BAA2B;CACnC,QAAQ,gBAAgB;CACxB,QAAQ,eAAe;CACvB,QAAQ,aAAa;CACrB,QAAQ,WAAW;CACnB,QAAQ,uBAAuB;CAC/B,QAAQ,eAAe;CACvB,QAAQ,SAAS;CACjB,QAAQ,aAAa;CACrB,QAAQ,cAAc;CACtB,QAAQ,kBAAkB;CAC1B,QAAQ,kBAAkB;CAC1B,QAAQ,kBAAkB;CAC1B,QAAQ,aAAa;CACrB,QAAQ,YAAY;CACpB,QAAQ,aAAa;CACrB,QAAQ,eAAe;CACvB,QAAQ,gBAAgB;CACxB,QAAQ,cAAc;CACtB,QAAQ,cAAc;CACtB,QAAQ,oBAAoB;CAC5B,QAAQ,oBAAoB;CAC5B,QAAQ,4BAA4B;CACpC,QAAQ,iBAAiB;CACzB,QAAQ,qBAAqB;CAC7B,QAAQ,WAAW;CACnB,QAAQ,WAAW;CACnB,QAAQ,oBAAoB;CAC5B,QAAQ,cAAc;CACtB,QAAQ,iBAAiB;CACzB,QAAQ,gBAAgB;CACxB,QAAQ,QAAQ;CAChB,QAAQ,WAAW;CACnB,QAAQ,kBAAkB;CAC1B,QAAQ,YAAY;CACpB,QAAQ,2BAA2B;CACnC,QAAQ,8BAA8B;CACtC,QAAQ,SAAS;CACjB,QAAQ,cAAc;CACtB,QAAQ,YAAY;CACpB,QAAQ,qBAAqB;CAC7B,QAAQ,aAAa;CACrB,QAAQ,aAAa;CACrB,QAAQ,qBAAqB;CAC7B,QAAQ,iBAAiB;CACzB,QAAQ,wBAAwB;CAChC,QAAQ,6BAA6B;CACrC,QAAQ,uBAAuB;CAC/B,QAAQ,wBAAwB;CAChC,QAAQ,uBAAuB;CAC/B,QAAQ,sBAAsB;CAC9B,QAAQ,2BAA2B;CACnC,QAAQ,8BAA8B;CACtC,QAAQ,sBAAsB;CAC9B,QAAQ,2BAA2B;CACnC,QAAQ,oBAAoB;CAC5B,QAAQ,sBAAsB;CAC9B,QAAQ,yBAAyB;CACjC,QAAQ,uBAAuB;CAC/B,QAAQ,wBAAwB;CAChC,QAAQ,aAAa;CACrB,QAAQ,2BAA2B;CACnC,QAAQ,yBAAyB;CACjC,QAAQ,qCAAqC;CAC7C,QAAQ,wBAAwB;CAChC,QAAQ,yBAAyB;CACjC,QAAQ,kBAAkB;CAC1B,QAAQ,gBAAgB;CACxB,QAAQ,qBAAqB;CAC7B,QAAQ,UAAU;CAClB,QAAQ,WAAW;CACnB,QAAQ,aAAa;CACrB,QAAQ,WAAW;CACnB,QAAQ,yBAAyB;CACjC,QAAQ,kBAAkB;CAC1B,QAAQ,qBAAqB;CAC7B,QAAQ,sBAAsB;CAC9B,QAAQ,iBAAiB;CACzB,QAAQ,qBAAqB;CAC7B,QAAQ,cAAc;CACtB,QAAQ,gBAAgB;CACxB,QAAQ,aAAa;CACrB,QAAQ,kBAAkB;CAC1B,QAAQ,wBAAwB;CAChC,QAAQ,kBAAkB;CAC1B,QAAQ,iBAAiB;CACzB,QAAQ,wBAAwB;CAChC,QAAQ,qBAAqB;CAC7B,QAAQ,iBAAiB;CACzB,QAAQ,4BAA4B;CACpC,QAAQ,oBAAoB;CAC5B,QAAQ,qBAAqB;CAC7B,QAAQ,4BAA4B;CACpC,QAAQ,yBAAyB;CACjC,QAAQ,yBAAyB;CACjC,QAAQ,qBAAqB;CAC7B,QAAQ,eAAe;CACvB,QAAQ,gBAAgB;CACxB,QAAQ,cAAc;CACtB,QAAQ,mBAAmB;CAC3B,QAAQ,sBAAsB;CAC9B,QAAQ,iBAAiB;CACzB,QAAQ,SAAS;CACjB,QAAQ,SAAS;CACjB,QAAQ,UAAU;CAClB,QAAQ,mBAAmB;CAC3B,QAAQ,UAAU;CAClB,QAAQ,yBAAyB;CACjC,QAAQ,oBAAoB;CAC5B,QAAQ,aAAa;CACrB,QAAQ,YAAY;CACpB,QAAQ,oBAAoB;CAC5B,QAAQ,yBAAyB;CACjC,QAAQ,uBAAuB;CAC/B,QAAQ,sBAAsB;CAC9B,QAAQ,iBAAiB;CACzB,QAAQ,kBAAkB;CAC1B,QAAQ,sBAAsB;CAC9B,QAAQ,YAAY;CACpB,QAAQ,gBAAgB;CACxB,QAAQ,mBAAmB;CAC3B,QAAQ,sBAAsB;CAC9B,QAAQ,iBAAiB;CACzB,QAAQ,cAAc;CACtB,QAAQ,0BAA0B;CAClC,QAAQ,eAAe;CACvB,QAAQ,eAAe;CACvB,QAAQ,wBAAwB;CAChC,QAAQ,wBAAwB;CAChC,QAAQ,qBAAqB;CAC7B,QAAQ,kBAAkB;CAC1B,QAAQ,kBAAkB;;;;;CCjuN1B,IAAI,QAAQ,IAAI,aAAa,cAC3B,OAAO,UAAA,gCAAA;MAEP,OAAO,UAAA,2BAAA;;ACiBT,SAAS,iBAA2B;CAClC,OAAO;EACL,MAAM;EACN,MAAM;EACN,OAAO;GAAE,MAAM;GAAG,QAAQ;GAAG;EAC7B,KAAK;GAAE,MAAM;GAAG,QAAQ;GAAG;EAC5B;;AAGH,SAAS,qBACP,MACQ;CACR,OAAO,MAAM,WAAW;;AAG1B,IAAqB,SAArB,MAAqB,OAAO;CAC1B;CACA;CAEA,YAAY,MAAc,kBAA2B,OAAO;EAC1D,KAAK,OAAO;EACZ,KAAK,kBAAkB;;CAGzB,WAA4B;EAC1B,MAAM,OAAA,GAAA,qBAAA,WAA0B,KAAK,MAAM,EAAE,UAAU,MAAM,CAAC;EAC9D,MAAM,SAA0B,EAAE;EAClC,KAAK,MAAM,SAAS,IAAI,UAAU;GAChC,MAAM,OAAO,KAAK,qBAAqB,MAAM;GAC7C,IAAI,MAAM,OAAO,KAAK,KAAK;;EAE7B,OAAO;;CAGT,qBACE,MACiE;EACjE,IAAI,KAAK,SAASC,qBAAAA,UAAU,SAC1B,OAAO,KAAK,kBAAkB,KAAwB;EAExD,IAAI,KAAK,SAASA,qBAAAA,UAAU,MAAM;GAChC,MAAM,WAAW;GACjB,IAAI,SAAS,QAAQ,MAAM,EACzB,OAAO;IAAE,MAAM,SAAS;IAAS,MAAM;IAAc;GAEvD,OAAO;;EAET,IAAI,KAAK,SAASA,qBAAAA,UAAU,eAE1B,OAAO;GACL,MAAM,MAAM,qBAAqBC,KAAW,QAAgC,CAAC;GAC7E,MAAM;GACP;EAEH,IAAI,KAAK,mBAAmB,KAAK,SAASD,qBAAAA,UAAU,SAAS;GAC3D,MAAM,cAAc;GACpB,OAAO;IACL,MAAM,YAAY;IAClB,MAAM;IACN,KAAK;KACH,OAAO;MACL,MAAM,YAAY,IAAI,MAAM;MAC5B,QAAQ,YAAY,IAAI,MAAM;MAC/B;KACD,KAAK;MACH,MAAM,YAAY,IAAI,IAAI;MAC1B,QAAQ,YAAY,IAAI,IAAI;MAC7B;KACF;IACF;;EAEH,OAAO;;CAGT,kBAA0B,MAAsC;EAC9D,MAAM,QAAsB,EAAE;EAC9B,KAAK,MAAM,QAAQ,KAAK,OACtB,IAAI,KAAK,SAASA,qBAAAA,UAAU,WAAW;GACrC,MAAM,OAAO;GACb,MAAM,KAAK,QAAQ,KAAK,OAAO,WAAW;SACrC,IAAI,KAAK,SAASA,qBAAAA,UAAU,WAAW;GAC5C,MAAM,MAAM;GACZ,IAAI,IAAI,SAAS,QAAQ;IACvB,MAAM,MAAM,IAAI,qBAAqB,IAAI,IAA4B;IACrE,MAAM,OAAO,qBAAqB,IAAI,IAA4B;UAC7D,IAAI,IAAI,SAAS,MAAM;IAC5B,MAAM,MAAM,IAAI,qBAAqB,IAAI,IAA4B;IACrE,MAAM,OAAO;;;EAInB,MAAM,WAAW,KAAK,mBAAmB,KAAK,SAAS;EACvD,OAAO;GACL,OAAO,gBAAgB;GACvB,MAAM,KAAK;GACX,KAAK;GACL,SAAS;GACT,KAAK;GACL,KAAK;IACH,OAAO;KACL,MAAM,KAAK,IAAI,MAAM;KACrB,QAAQ,KAAK,IAAI,MAAM;KACxB;IACD,KAAK;KACH,MAAM,KAAK,IAAI,IAAI;KACnB,QAAQ,KAAK,IAAI,IAAI;KACtB;IACF;GACD,MAAM;GACP;;CAGH,mBACE,UAC8D;EAC9D,MAAM,SACJ,EAAE;EACJ,KAAK,MAAM,SAAS,UAAU;GAC5B,MAAM,OAAO,KAAK,qBAAqB,MAAM;GAC7C,IAAI,MAAM,OAAO,KAAK,KAAK;;EAE7B,OAAO;;CAGT,OAAO,aAAa,MAA6B;EAC/C,IAAI,OAAO,IAAI,KAAK;EACpB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,OAAO,EAAE,CAAC,EACvD,IAAI,UAAU,QACZ,QAAQ,IAAI;OAEZ,QAAQ,IAAI,IAAI,GAAG,OAAO,MAAM;EAGpC,QAAQ;EACR,MAAM,aAAa,KAAK;EACxB,IAAI,MAAM,QAAQ,WAAW,EAC3B,KAAK,MAAM,QAAQ,YACjB,IAAK,KAA8B,SAAS,cAC1C,QAAS,KAA8B;OAClC,IAAK,KAA2B,SAAS,WAC9C,QAAS,KAA2B;OAEpC,QAAQ,OAAO,aAAa,KAAsB;EAIxD,QAAQ,KAAK,KAAK,KAAK;EACvB,OAAO;;;AAKX,IAAM,WAAN,MAAM,SAAS;CACb,OAAO,UAAU,MAAsC;EACrD,OACE,CAAC,CAAC,QACF,OAAO,SAAS,YAChB,WAAY,QACZ,UAAW,QACX,SAAU,QACV,aAAc,QACd,SAAU;;CAGd,OAAO,iBAAiB,MAA6C;EACnE,OACE,CAAC,CAAC,QACF,OAAO,SAAS,YAChB,UAAW,QACX,UAAW,QACV,KAA8B,SAAS;;CAG5C,OAAO,cAAc,MAA0C;EAC7D,OACE,CAAC,CAAC,QACF,OAAO,SAAS,YAChB,UAAW,QACX,UAAW,QACX,SAAU,QACT,KAA2B,SAAS;;CAGzC,OAAO,eAAe,KAAmC;EACvD,OAAO,CAAC,CAAC,OAAO,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI;;CAEhE,OAAO,YAAY,MAAwC;EACzD,OACE,MAAM,QAAQ,KAAK,IAAK,KAAmB,MAAM,SAAS,UAAU;;CAGxE,OAAO,QAAQ,MAAwB;EACrC,OAAO;;CAET,OAAO,WAAW,MAAwB;EACxC,OAAO;;CAET,OAAO,cAAc,MAAwB;EAC3C,OAAO;;CAET,OAAO,eAAe,MAAwB;EAC5C,OAAO;;CAET,OAAO,eAAe,MAAwB;EAC5C,OAAO;;CAET,OAAO,YAAY,MAAwB;EACzC,OAAO;;CAET,OAAO,YAAY,QAA0B;EAC3C,OAAO;;;;;ACtOX,MAAM,SAAS,CAAC,GAAG,EAAE;AAErB,IAAa,QAAb,MAAmB;CACjB;CAEA,YAAY,MAAc;EACxB,KAAK,OAAO;;CAEd,CAAC,WAAuC;EACtC,IAAI,aAAa,OAAO;EACxB,IAAI,MAAM;EACV,IAAI,QAAQ;EAGZ,KAAK,MAAM,QAAQ,KAAK,MAAM;GAC5B,IAAI,KAAK,KAAK,KAAK,EAAE;IACnB,IAAI,SAAS,MAAM;KACjB,IAAI,eAAe,OAAO,MAAM,OAAO,OAMrC,MAAM;MAJJ;MACA,OAAO,KAAK,aAAa,MAAM;MAC/B,MAAM;MAEM;UACT,IAAI,eAAe,OAAO,MAAM,KAAK;KAE5C,MAAM;KACN,QAAQ;KAER,aAAa,OAAO;;IAEtB;;GAGF,IAAI,SAAS;QACP,eAAe,OAAO,IACxB,aAAa,OAAO;UAItB,IAAI,eAAe,OAAO,IACxB,OAAO;QACF,IAAI,eAAe,OAAO,IAC/B,SAAS;;EAIf,IAAI,OAAO,OAMT,MAAM;GAJJ;GACA,OAAO,KAAK,aAAa,MAAM;GAC/B,MAAM;GAEM;;CAGlB,aAAa,OAA0B;EACrC,MAAM,MAAM,OAAO,MAAM;EACzB,IAAI,CAAC,OAAO,MAAM,IAAI,EAAE,OAAO;EAC/B,IACE,CAAC,KAAK,IAAI,CAAC,SAAS,MAAM,MAAM,GAAG,EAAE,CAAC,IACtC,CAAC,KAAK,IAAI,CAAC,SAAS,MAAM,MAAM,GAAG,CAAC,EAEpC,OAAO,KAAK,MAAM,MAAM;EAE1B,OAAO;;;AAGX,SAAwB,WAAW,MAA0B;CAC3D,MAAM,QAAQ,IAAI,MAAM,KAAK;CAC7B,OAAO,MAAM,KAAK,MAAM,UAAU,CAAC;;;;ACtErC,IAAA,cAAe;CACb,KAAKE;CACL,MAAMC;CACP;;;AC8BD,MAAa,iCAAiC;CAC5C,OAAO;CACP,QAAQ;CACR,UAAU;CACX;;;ACpCD,IAAa,gBAAb,MAA2B;CACzB,OAAe;CACf,SAAkB;CAClB,YACE,MACA,aAAgC;EAC9B,QAAQ,EAAE;EACV,QAAQ,EAAE;EACV,MAAM,EAAE;EACT,EACD;EANO,KAAA,OAAA;EACA,KAAA,aAAA;;CAMT,YAAY,KAAa;EACvB,KAAK,SAAS;EACd,KAAK,OAAO;;;AAGhB,IAAa,iBAAb,MAA4B;CAC1B,OAAe;CACf,SAAkB;CAClB,YACE,KACA,MACA,QACA;EAHO,KAAA,MAAA;EACA,KAAA,OAAA;EACA,KAAA,SAAA;;CAET,YAAY,KAAa;EACvB,KAAK,KAAK,YAAY,IAAI;EAC1B,KAAK,SAAS;EACd,KAAK,OAAO;;;;;AC1BhB,IAAqBC,UAArB,MAAqBA,QAAM;CACzB,aAAoB,QAClB,SACA,WACoB;EACpB,IAAI,OAAO,YAAY,UACrB,MAAM,IAAI,UACR,2DACD;EACH,MAAM,OAAO,MAAM,SAAS,SAAS,QAAQ;EAC7C,IAAI,OAAO,SAAS,UAClB,MAAM,IAAI,MAAM,iCAAiC,QAAQ;EAC3D,IAAI;GACF,OAAO,OAAO,MAAM,MAAM,UAAU,CAAC;WAC9B,KAAc;GACrB,MAAM,IAAI,MACR,6BACG,eAAe,QAAQ,IAAI,QAAQ,OAAO,IAAI,EAClD;;;CAGL,aAAoB,YAAY,SAAkC;EAEhE,OAAO,MADY,SAAS,SAAS,QAAQ;;CAG/C,OAAe,gBAAgB,MAA8C;EAC3E,IAAI,KAAK,QAAQ,iBACf,OAAO,KAAK;OACP,IAAI,KAAK,QAAQ,cACtB,OAAO,KAAK;EAEd,MAAM,IAAI,UAAU,4CAA4C;;CAElE,OAAe,gBACb,MACA,IACS;EACT,MAAM,UAAUA,QAAM,cAAc,KAAK;EAEzC,IAAI,QAAQ,WAAW,GAAG,QAAQ,OAAO;EACzC,IAAI,QAAQ,SAAS,WAAW,GAAG,SAAS,QAAQ,OAAO;EAE3D,KAAK,IAAI,UAAU,GAAG,UAAU,QAAQ,SAAS,QAAQ,WAAW;GAClE,MAAM,UAAU,QAAQ,SAAS;GACjC,MAAM,UAAU,GAAG,SAAS;GAC5B,IACE,SAAS,WAAW,SAAS,UAC7B,SAAS,OAAO,SAAS,MACzB,SAAS,UAAU,SAAS,OAE5B,OAAO;;EAEX,OAAO;;CAET,OAAc,kBAAkB,IAAqC;EACnE,IAAI,CAAC,IAAI,MAAM,IAAI,UAAU,kCAAkC;EAE/D,IAAI,IAAI,OAAOA,QAAM,gBAAgB,IAAI,KAAK,GAAG,EAAE,OAAO,GAAG;EAC7D,MAAM,SAEF,EAAE;EACN,KAAK,MAAM,YAAY,GAAG,UAAU;GAClC,IAAI,CAAC,UAAU;GACf,IAAI,SAAS,OAAO;IAClB,OAAO,KAAK,EAAE,yBAAyB,EAAE,WAAW,SAAS,GAAG,CAAC,CAAC;IAClE;;GAEF,IAAI,SAAS,UAAU,WAAW;IAChC,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,SAAS,GAAG,CAAC,CAAC;IAChE;;GAEF,IAAI,CAAC,SAAS,QACZ,MAAM,IAAI,UAAU,qCAAqC;GAC3D,OAAO,KACL,EAAE,gBACA,EAAE,WAAW,SAAS,GAAG,EACzB,EAAE,WAAW,SAAS,OAAO,CAC9B,CACF;;EAEH,OAAO,EAAE,kBAAkB,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC;;CAEhE,OAAc,cAAc,MAAuC;EACjE,MAAM,SAA6B,EAAE;EACrC,KAAK,MAAM,QAAQ,KAAK,YAAY;GAClC,MAAM,WAAW,KAAK,MAAM;GAC5B,IAAI,KAAK,QAAQ,4BACf,OAAO,KAAK;IACV,OAAO;IACP,IAAI;IACL,CAAC;QACG,IAAI,KAAK,QAAQ,0BACtB,OAAO,KAAK;IACV,OAAO;IACP,QAAQ;IACR,IAAI;IACL,CAAC;QACG,IAAI,KAAK,QAAQ,mBACtB,OAAO,KAAK;IACV,OAAO;IACP,IAAI;IACJ,QAAQA,QAAM,gBAAgB,KAAK,SAAS;IAC7C,CAAC;;EAGN,OAAO;GACL,QAAQA,QAAM,gBAAgB,KAAK,OAAO;GAC1C,UAAU;GACX;;;;;;;;;;;;;;ACjGL,IAAa,eAAb,cAAkC,MAAM;CACtC;CACA,YAAY,SAAiB,KAAuC;EAClE,MAAM,QAAQ;EACd,KAAK,OAAO;EACZ,KAAK,MAAM,OAAO;GAAE,MAAM;GAAI,QAAQ;GAAI;;;AAI9C,SAAS,WAAW,MAAiD;CACnE,IAAI,CAAC,QAAQ,OAAO,SAAS,UAAU,OAAO;EAAE,MAAM;EAAI,QAAQ;EAAI;CACtE,MAAM,IAAI;CACV,MAAM,MAAM,EAAE;CAEd,IAAI,KAAK,OAAO;EACd,MAAM,QAAQ,IAAI;EAGlB,OAAO;GAAE,MAFI,OAAO,MAAM,SAAS,WAAW,MAAM,OAAO;GAE5C,QADA,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS;GAC1C;QAClB,IAAI,OAAO,IAAI,WAAW,KAAA,GAC/B,OAAO;EACL,MAAM,OAAO,IAAI,SAAS,WAAW,IAAI,OAAO;EAChD,QAAQ,IAAI;EACb;CAGH,MAAM,QAAQ,EAAE;CAChB,IAAI,SAAS,OAAO,MAAM,SAAS,UACjC,OAAO;EACL,MAAM,MAAM;EACZ,QAAQ,OAAO,MAAM,WAAW,WAAY,MAAM,SAAoB;EACvE;CAEH,OAAO;EAAE,MAAM;EAAI,QAAQ;EAAI;;AAGjC,SAAS,UAAU,KAAa,MAAgB;CAC9C,OAAO,IAAI,aAAa,KAAK,WAAW,KAAK,CAAC;;AAQhD,IAAa,YAAb,MAAuB;CACrB,YAAY,MAAwB;EAAjB,KAAA,OAAA;EACjB,IAAI,CAAC,EAAE,UAAU,KAAK,EACpB,MAAM,UACJ,0DACA,KACD;EACH,KAAK,cAAc,IAAIC,cAA0B,KAAK;EACtD,KAAK,KAAK;EACV,KAAK,iBAAiB;;CAExB,aAA6B,EAAE;CAC/B,YAAgD,EAAE;CAClD,KAAa,QAAoB;EAC/B,KAAK,MAAM,QAAQ,OAAO,UACxB,KAAK,UAAU,KAAK,MAAM;GACxB,QAAQ,OAAO;GACf,QAAQ,KAAK;GACb,OAAO,KAAK;GACb;;CAGL,kBAA0B;EACxB,MAAM,QAAsB,EAAE;EAC9B,KAAK,MAAM,CAAC,IAAI,SAAS,OAAO,QAAQ,KAAK,UAAU,EAAE;GACvD,IAAI,QAAQ;GACZ,KAAK,MAAM,KAAK,OACd,IAAI,EAAE,WAAW,KAAK,QAAQ;IAC5B,EAAE,SAAS,KAAK;KAAE;KAAI,OAAO,KAAK;KAAO,QAAQ,KAAK;KAAQ,CAAC;IAC/D,QAAQ;IACR;;GAGJ,IAAI,CAAC,OACH,MAAM,KAAK;IACT,QAAQ,KAAK;IACb,UAAU,CAAC;KAAE;KAAI,QAAQ,KAAK;KAAQ,OAAO,KAAK;KAAO,CAAC;IAC3D,CAAC;;EAGN,KAAK,YAAY,WAAW,SAAS;;CAEvC;CACA,iBAAmD;EACjD,OAAO,KAAK;;CAGd,IAAY,MAAe,gBAAyB,EAAE,EAAQ;EAC5D,IAAI,CAAC,EAAE,QAAQ,KAAK,EAClB,MAAM,UAAU,gDAAgD,KAAK;EACvE,MAAM,QAAiB,EAAE,UAAU,KAAK;EACxC,MAAM,iBAA0B,QAAQ,KAAK,aAAa;EAC1D,KAAK,IAAI,QAAQ,GAAG,QAAQ,KAAK,KAAK,QAAQ,SAAS;GACrD,MAAM,OAAO,KAAK,KAAK;GACvB,MAAM,eAAe;IACnB,KAAK,KAAK,OAAO,OAAO,EAAE;IAC1B;;GAEF,IAAI,CAAC,MAAM;GACX,IAAI,KAAK,QAAQ,qBAAqB;IACpC,IAAI,CAAC,OACH,MAAM,UACJ,uDACA,KACD;IACH,KAAK,KAAKC,QAAM,cAAc,KAAK,CAAC;IACpC,QAAQ;UACH,IAAI,KAAK,QAAQ,kBACtB,KAAK,IAAI,MAAM,eAAe;QACzB,IACL,KAAK,QAAQ,oBACb,KAAK,QAAQ,oBACb,KAAK,QAAQ,uBACb,KAAK,QAAQ,oBACb,KAAK,QAAQ,iBAEb;QACK,IAAI,KAAK,QAAQ,gBACtB,KAAK,IAAI,KAAK,OAAO,eAAe;QAC/B,IAAI,KAAK,QAAQ,eAAe;IACrC,MAAM,QAAuB,CAAC,KAAK,WAAW;IAC9C,IAAI,KAAK,WAAW,MAAM,KAAK,KAAK,UAAU;IAC9C,KAAK,IAAI,EAAE,eAAe,MAAM,EAAE,eAAe;UAC5C,IAAI,KAAK,QAAQ,kBACtB,KAAK,IAAI,EAAE,eAAe,CAAC,KAAK,KAAK,CAAC,EAAE,eAAe;QAClD,IAAI,KAAK,QAAQ;QAClB,KAAK,YAAY;KACnB,MAAM,aAAa,KAAK;KACxB,IACE,WAAW,QAAQ,qBACnB,WAAW,QAAQ,oBACnB,WAAW,QAAQ,sBACnB,WAAW,QAAQ,oBACnB,WAAW,QAAQ,6BACnB,WAAW,QAAQ,mBACnB,WAAW,QAAQ,oBACnB,WAAW,QAAQ,iBACnB,WAAW,QAAQ,0BACnB,WAAW,QAAQ,WACnB,WAAW,QAAQ,mBACnB,WAAW,QAAQ,kBACnB,WAAW,QAAQ,mBACnB,WAAW,QAAQ,qBACnB,WAAW,QAAQ,sBACnB,WAAW,QAAQ,mBACnB,WAAW,QAAQ,oBACnB,WAAW,QAAQ,kBAEnB,MAAM,UACJ,kEACA,WACD;;UAEA,IAAI,KAAK,QAAQ,oBACtB,KAAK,IAAI,EAAE,eAAe,CAAC,KAAK,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,QAAQ,uBAAuB;IAC7C,MAAM,cAAc,KAAK;IACzB,KAAK,MAAM,UAAU,aAAa;KAChC,MAAM,OAAO,OAAO;KACpB,MAAM,KAAK,OAAO;KAClB,IAAI,GAAG,QAAQ,cAAc;MAC3B,IAAI,CAAC,SAAS,KAAK,QAAQ,SAAS,KAAK,QAAQ,QAC/C,eAAe,GAAG,QAAQ,EACxB,QAAQ,QACT;MACH,IAAI,CAAC,MACH,MAAM,UACJ,2CACA,OACD;MACH,eAAe,GAAG,QAAQ;MAC1B,IACE,QACA,EAAE,iBAAiB,KAAK,IACxB,EAAE,aAAa,KAAK,OAAO,IAC3B,KAAK,OAAO,SAAS,aACrB,KAAK,UAAU,SAAS,KACxB,EAAE,gBAAgB,KAAK,UAAU,GAAG,EAEpC,KAAK,UAAU,GAAG,QAAQ;OACxB,QAAS,KAAK,UAAU,GAAuB;OAC/C,QAAQ;OACR,OAAO;OACR;WACI,IACL,QACA,EAAE,iBAAiB,KAAK,IACxB,EAAE,SAAS,KAAK,OAAO,IACvB,KAAK,UAAU,SAAS,KACxB,EAAE,gBAAgB,KAAK,UAAU,GAAG,EAEpC,KAAK,UAAU,GAAG,QAAQ;OACxB,QAAS,KAAK,UAAU,GAAuB;OAC/C,QAAQ;OACR,OAAO;OACR;;;UAIF,IAAI,KAAK,QAAQ,mBACtB;QACK,IACL,KAAK,QAAQ,0BACb,KAAK,QAAQ,8BACb,KAAK,QAAQ,0BACb;IACA,IAAI,CAAC,OACH,MAAM,UAAU,4CAA4C,KAAK;IAEnE,KAAK,YAAY,WAAW,OAAO,KAAK,KAAK;IAC7C,QAAQ;UACH,IAAI,KAAK,QAAQ,mBACtB,KAAK,MAAM,YAAY,KAAK,OAC1B,KAAK,IAAI,EAAE,eAAe,SAAS,WAAW,EAAE,eAAe;QAE5D,IAAI,KAAK,QAAQ,uBAAuB;IAC7C,MAAM,OAAO,KAAK;IAClB,IACE,EAAE,iBAAiB,KAAK,IACxB,EAAE,aAAa,KAAK,OAAO,IAC3B,KAAK,OAAO,SAAS,aACrB,KAAK,UAAU,SAAS,KACxB,EAAE,gBAAgB,KAAK,UAAU,GAAG,EAEpC,KAAK,UACH,aAAc,KAAK,UAAU,GAAuB,WAClD;KACF,QAAS,KAAK,UAAU,GAAuB;KAC/C,QAAQ;KACR,OAAO;KACR;SACI,IACL,EAAE,iBAAiB,KAAK,IACxB,EAAE,SAAS,KAAK,OAAO,IACvB,KAAK,UAAU,SAAS,KACxB,EAAE,gBAAgB,KAAK,UAAU,GAAG,EAEpC,KAAK,UACH,YAAa,KAAK,UAAU,GAAuB,WACjD;KACF,QAAS,KAAK,UAAU,GAAuB;KAC/C,QAAQ;KACR,OAAO;KACR;UAEE,IAAI,KAAK,QAAQ,uBAAuB;IAC7C,MAAM,WAAW,KAAK;IACtB,KAAK,IAAI,UAAU,eAAe;;;;CAIxC,MAAM;EACJ,IAAI,CAAC,EAAE,QAAQ,KAAK,KAAK,EACvB,MAAM,UAAU,0CAA0C,KAAK,KAAK;EACtE,KAAK,IAAI,KAAK,KAAK;;;AAGvB,IAAM,aAAN,MAAiB;CACf,YAAY,MAAqB;EAAd,KAAA,OAAA;EACjB,MAAM,UAAU,IAAI,OAAO,KAAK,CAAC,UAAU;EAC3C,IAAI,CAAC,SAAS,YAAY,QAAQ,EAChC,MAAM,UACJ,0DACD;EACH,KAAK,UAAU;EACf,KAAK,gBAAgB;EACrB,MAAM,OAAO,KAAK,cAAc;EAChC,KAAK,cAAc,IAAIC,eACrB,SACA,MACA,KAAK,QACN;;CAEH;CACA,UAAmC;EACjC,QAAQ;EACR,OAAO;GACL,IAAI;GACJ,WAAW,EAAE;GACb,KAAK;IAAE,MAAM;IAAI,QAAQ;IAAI;GAC7B,QAAQ;GACT;EACD,WAAW,EAAE;EACb,IAAI;EACL;CACD,iBAAoD;EAClD,OAAO,KAAK;;CAEd,mBACE,MACsC;EACtC,OAAQ,OAAO,OAAO,+BAA+B,CAAc,SACjE,KACD;;CAEH,yBACE,MACqD;EACrD,OAAO,OAAO,KAAK,+BAA+B,CAAC,SAAS,KAAK;;CAEnE,qBACE,MACQ;EACR,IAAI,SAAS,iBAAiB,KAAK,EACjC,OAAO,KAAK;EAEd,IAAI,SAAS,UAAU,KAAK,EAC1B,OAAO,KAAK,QACT,KAAI,QACH,IAAI,SAAS,YAAY,KAAK,qBAAqB,IAAI,GAAG,GAC3D,CACA,KAAK,GAAG;EAEb,MAAM,UAAU,oDAAoD,KAAK;;CAE3E,WAAmB,MAAyC;EAC1D,IAAI,CAAC,SAAS,UAAU,KAAK,EAC3B,MAAM,UAAU,+CAA+C,KAAK;EACtE,IAAI,KAAyB;EAC7B,MAAM,UAAU,OAAO,KAAK,IAAI,aAAa;EAC7C,MAAM,WAAW,OAAO,KAAK,IAAI,cAAc;EAC/C,IAAI,WAAW,UACb,MAAM,UACJ,+DACA,KACD;EACH,IAAI,SAAS,KAAK;EAClB,IAAI,UAAU,KAAK;EACnB,OAAO;;CAET,iBAAyB;EACvB,IAAI,YAAkC;EACtC,MAAM,OAKF;GACF,QAAQ;GACR,OAAO;GACP,IAAI;GACJ,WAAW,EAAE;GACd;EACD,KAAK,MAAM,QAAQ,KAAK,WAAW,EAAE,EAAE;GACrC,IAAI,CAAC,SAAS,UAAU,KAAK,EAAE;GAC/B,IAAI,KAAK,QAAQ,UAAU;IACzB,IAAI,KAAK,QACP,MAAM,UAAU,0CAA0C,KAAK;IACjE,MAAM,aACJ,KAAK,QAAQ,UAAU,IAAI,KAAK,KAAK,qBAAqB,KAAK;IACjE,IAAI,OAAO;IACX,IAAI,KAAK,IAAI,QAAQ,MACnB,OAAO,GAAG,gBAAgB,YAAY,EACpC,iBAAiB;KACf,QAAQ,GAAG,aAAa;KACxB,QAAQ,GAAG,WAAW;KACvB,EACF,CAAC,CAAC;IAEL,KAAK,SAAS;UACT,IAAI,KAAK,QAAQ,SAAS;IAC/B,IAAI,KAAK,OACP,MAAM,UAAU,yCAAyC,KAAK;IAEhE,IAAI,WACF,MAAM,UACJ,6DACA,KACD;IACH,KAAK,QAAQ;UACR,IAAI,KAAK,QAAQ,aAAa;IACnC,IAAI,WACF,MAAM,UAAU,6CAA6C,KAAK;IAEpE,IAAI,KAAK,OACP,MAAM,UACJ,6DACA,KACD;IACH,IAAI,KAAK,IACP,MAAM,UACJ,yDACD;IACH,YAAY;UACP,IAAI,KAAK,QAAQ,MAAM;IAC5B,IAAI,aAAa,KAAK,SAAS,KAAK,IAClC,MAAM,UACJ,+EACA,KACD;IACH,KAAK,KAAK;;;EAGd,IAAI,CAAC,KAAK,QAAQ,MAAM,UAAU,yCAAyC;EAC3E,KAAK,QAAQ,SAAS,KAAK;EAC3B,IAAI,KAAK,OAAO;GACd,MAAM,KAAK,KAAK,WAAW,KAAK,MAAM;GACtC,MAAM,UAAU,KAAK,MAAM;GAC3B,IACE,QAAQ,UAAU,KAClB,QAAQ,SAAS,KACjB,CAAC,SAAS,iBAAiB,QAAQ,GAAG,EAEtC,MAAM,UACJ,mDACA,KAAK,MACN;GACH,MAAM,gBAAgB,QAAQ,GAAG,KAAK,MAAM;GAC5C,KAAK,QAAQ,QAAQ;IACf;IACJ,WAAW,OAAO,YAChB,WAAW,cAAc,CAAC,KAAI,SAAQ,CACpC,KAAK,KACL,KAAK,MAAM,UAAU,CACtB,CAAC,CACH;IACD,KAAK,WAAW,KAAK,MAAM;IAC3B,QAAQ;IACT;;EAEH,IAAI,WACF,KAAK,MAAM,WAAW,UAAU,WAAW,EAAE,EAAE;GAC7C,IAAI,CAAC,SAAS,UAAU,QAAQ,EAAE;GAClB,QAAQ;GAExB,KAAK,sBAAsB,QAAQ;;EAGvC,IAAI,KAAK,IACP,KAAK,QAAQ,KAAK,KAAK;;CAI3B,sBAA8B,MAA2B;EACvD,MAAM,OAAO,KAAK;EAClB,IAAI,CAAC,KAAK,yBAAyB,KAAK,EACtC,MAAM,UAAU,4CAA4C,QAAQ,KAAK;EAC3E,MAAM,UAAU,KAAK;EACrB,IAAI,CAAC,WAAW,QAAQ,UAAU,GAChC,MAAM,UACJ,8BAA8B,KAAK,kBACnC,KACD;EACH,KAAK,MAAM,WAAW,SAAS;GAC7B,IAAI,CAAC,SAAS,UAAU,QAAQ,EAAE;GAClC,MAAM,UAAU,QAAQ;GACxB,MAAM,MAAM,QAAQ,IAAI;GACxB,IAAI,CAAC,OAAO,OAAO,OAAO,YAAY,IAAI,MAAM,IAAI,IAClD,MAAM,UACJ,8BAA8B,KAAK,mBAAmB,QAAQ,aAC9D,QACD;GAEH,MAAM,KAAK,IAAI,MAAM;GACrB,MAAM,UAAU,QAAQ;GACxB,IAAI,QAAQ,UAAU,GACpB,MAAM,UACJ,8BAA8B,KAAK,mBAAmB,QAAQ,kBAC9D,QACD;GAEH,IAAI,CAAC,QAAQ,MAAM,CAAC,SAAS,iBAAiB,QAAQ,GAAG,EACvD,MAAM,UACJ,8BAA8B,KAAK,mBAAmB,QAAQ,uBAC9D,QACD;GACH,MAAM,YAAY,QAAQ,GAAG,KAAK,MAAM;GACxC,IAAI,WAAW,+BAA+B,OAC5C,KAAK,QAAQ,UAAU,GAAG,KAAK,GAAG,QAAQ;IACxC,MAAM;IACK;IACX,KAAK,WAAW,QAAQ;IACzB;;;CAIP;CACA,eAAkD;EAChD,IAAI,CAAC,KAAK,QAAQ,OAAO,MAAM,EAC7B,MAAM,UAAU,yCAAyC;EAE3D,OADgB,YAAY,KAAK,QAAQ,OAC3B;;;AAGlB,MAAa,gBAAgB,SAA4C;CACvE,IAAI,YAAY,MAAM,OAAO,OAAO,YAAY,MAAM;CACtD,IAAI;CACJ,IAAI;EACF,aAAa,MAAM,MAAM;GACvB,YAAY;GACZ,6BAA6B;GAC7B,eAAe;GACf,2BAA2B;GAC3B,4BAA4B;GAC5B,yBAAyB;GAC1B,CAAC;UACK,KAAc;EACrB,IAAI,eAAe,aAAa;GAI9B,MAAM,MAAMC,IAAS,OAAO;IAAE,QAAQ;IAAI,MAAM;IAAI;GACpD,MAAM,UAAU,wBAAwB,IAAI,WAAW,EACrD,KAAK,EAAE,OAAO,KAAK,EACpB,CAAC;;EAEJ,MAAM,UAAU,kBAAkB,OAAO,IAAI,GAAG;;CAElD,MAAM,UAAU,IAAI,UAAU,WAAW,QAAQ;CACjD,QAAQ,KAAK;CACb,MAAM,OAAO,QAAQ,gBAAgB;CACrC,YAAY,MAAM,QAAQ;CAC1B,OAAO;;AAIT,MAAa,iBAAiB,YAAgD;CAC5E,IAAI,aAAa,MAAM,UAAU,OAAO,aAAa,MAAM;CAE3D,MAAM,OAAO,IADQ,WAAW,QACX,CAAC,gBAAgB;CACtC,aAAa,MAAM,WAAW;CAC9B,OAAO;;AAIT,YAAY,QAAQ,EAAE;AACtB,aAAa,QAAQ,EAAE;;;ACliBvB,IAAA,iBAAe;CAEb,iBAAiB;CAEjB,eAAe;CACf,cAAc;CACd,kBAAkB;CAElB,UAAU;CACX;;;ACLD,IAAqB,QAArB,MAAqB,MAAM;CACzB,aAAoB,UAAU,MAAgC;EAC5D,IAAI;GACF,MAAM,GAAG,OAAO,KAAK;GACrB,OAAO;UACD;GACN,OAAO;;;CAGX,aAAoB,SAClB,UACA,MAAmB,EAAE,EACK;EAC1B,MAAM,OAAyB;GAC7B,OAAO;GACP,YAAY;GACZ,MAAM;GACN,GAAG;GACJ;EAED,KAAK,IAAI,UAAU,GAAG,UAAU,KAAK,YAAY,WAC/C,IAAI;GACF,MAAM,SAAiB,MAAM,GAAG,SAAS,SAAS;GAClD,IAAI;GACJ,IAAI,KAAK,SAAS,UAChB,OAAO,OAAO,UAAU;QACnB,IAAI,KAAK,SAAS,UACvB,IAAI;IACF,OAAO,KAAK,MAAM,OAAO,UAAU,CAAC;WAC9B;IACN,OAAO,EAAE;;QAGX,OAAO,OAAO,UAAU;GAG1B,OAAO;UACD;GACN,IAAI,UAAU,KAAK,aAAa,GAC9B,MAAM,MAAM,MAAM,KAAK,MAAM;;EAInC,OAAO,KAAK,SAAS,WAAW,EAAE,GAAG;;CAEvC,OAAc,MAAM,MAA6B;EAC/C,OAAO,IAAI,SAAQ,YAAW,WAAW,SAAS,KAAK,CAAC;;CAE1D,OAAc,WAIZ,KACA,OAWA;EACA,KAAK,MAAM,QAAQ,OAAO,QAAQ,MAAM,EAAE;GACxC,MAAM,CAAC,KAAK,cAAgC;GAC5C,IAAI,EAAE,OAAO,IAAI,SAAS,aAAa,OAAO;;EAEhD,OAAO;;CAET,OAAc,aAAa,SAAiB,WAA2B;EACrE,OAAO,KAAK,WAAW,UAAU,GAC7B,YACA,KAAK,KAAK,SAAS,UAAU;;;;;AC9ErC,IAAI,gBAAgB;AACpB,SAAgB,iBAAiB;CAC/B,OAAO,iBAAiB,gBAAgB;;;;ACO1C,SAAS,oBAAoB,SAA2C;CACtE,MAAM,SAAmB,EAAE;CAC3B,IAAI,EAAE,aAAa,QAAQ,EAAE,OAAO,KAAK,QAAQ,KAAK;CACtD,IAAI,EAAE,gBAAgB,QAAQ,EAC5B,QAAQ,WAAW,SAAQ,SAAQ;EAEjC,IAAI,EAAE,iBAAiB,KAAK,EAC1B,OAAO,OAAO,KACZ,GAAG,oBACD,KAAK,MACN,CACF;EAEH,IAAI,EAAE,cAAc,KAAK,IAAI,KAAK,SAAS,QAAQ,cACjD,OAAO,KAAK,KAAK,SAAS,KAAK;GACjC;CACJ,IAAI,EAAE,eAAe,QAAQ,EAC3B,KAAK,MAAM,WAAW,QAAQ,UAAU;EACtC,IAAI,CAAC,SAAS;EACd,OAAO,KAAK,GAAG,oBAAoB,QAAQ,CAAC;;CAGhD,IAAI,EAAE,oBAAoB,QAAQ,EAChC,OAAO,KAAK,GAAG,oBAAoB,QAAQ,KAAK,CAAC;CAEnD,OAAO;;AAET,SAAS,cAAc,YAAqC;CAC1D,IAAI,EAAE,sBAAsB,WAAW,EACrC,OAAO,CAAC,WAAW,IAAI,QAAQ,GAAG;CAEpC,IAAI,EAAE,sBAAsB,WAAW,EAAE;EACvC,MAAM,SAAmB,EAAE;EAC3B,KAAK,MAAM,UAAU,WAAW,cAC9B,OAAO,KAAK,GAAG,oBAAoB,OAAO,GAAG,CAAC;EAEhD,OAAO;;CAET,IAAI,EAAE,mBAAmB,WAAW,EAElC,OAAO,CAAC,WAAW,IAAI,QAAQ,GAAG;CAEpC,OAAO,EAAE;;AAEX,SAAS,aACP,GACc;CACd,IAAI,EAAE,sBAAsB,EAAE,EAC5B,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAC3E,IAAI,EAAE,mBAAmB,EAAE,EACzB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW;CACpE,IAAI,EAAE,oBAAoB,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC3D,OAAO;;AAET,SAAS,aACP,MACwC;CACxC,MAAM,UAAkD,EAAE;CAC1D,MAAM,UAAiC,KAAK,WAAW,OAAO,KAC3D,SAA8B;EAC7B,OAAOC,QAAM,kBAAkB,KAAK;GAEvC;CACD,MAAM,WAA0B,KAAK,KAAK;CAC1C,KAAK,MAAM,OAAO,KAAK,WAAW,QAChC,IAAI,EAAE,yBAAyB,IAAI,EAAE;EAEnC,IACE,IAAI,UACJ,IAAI,cACJ,IAAI,WAAW,UAAU,KACzB,IAAI,OAAO,MAAM,UAAU,GAE3B,QAAQ,KACN,EAAE,kBACA,IAAI,WAAW,KAAI,SAAQ;GACzB,IAAI,EAAE,yBAAyB,KAAK,EAAE;IACpC,QAAQ,KAAK,EAAE,eAAe,KAAK,UAAU,KAAK,SAAS,CAAC;IAC5D,OAAO,EAAE,uBAAuB,KAAK,SAAS;;GAEhD,IAAI,EAAE,kBAAkB,KAAK,EAAE;IAC7B,QAAQ,KAAK,EAAE,eAAe,KAAK,UAAU,KAAK,SAAS,CAAC;IAC5D,OAAO,EAAE,gBAAgB,KAAK,OAAO,KAAK,SAAS;;GAErD,IAAI,EAAE,2BAA2B,KAAK,EAAE;IACtC,QAAQ,KAAK,EAAE,cAAc,KAAK,SAAS,CAAC;IAC5C,OAAO,EAAE,yBAAyB,KAAK,SAAS;;GAGlD,MAAM,IAAI,MACR,mDACD;IACD,EACF,IAAI,OACL,CACF;EAEH,IAAI,IAAI,aAAa;GACnB,MAAM,SAAS,cAAc,IAAI,YAAY;GAE7C,IAAI,OAAO,SAAS,GAAG;GACvB,SAAS,KAAK,IAAI,YAAY;GAC9B,QAAQ,KACN,GAAG,OAAO,KAAI,OAAM;IAClB,OAAO,EAAE,eAAe,EAAE,WAAW,GAAG,EAAE,EAAE,WAAW,GAAG,CAAC;KAC3D,CACH;;EAGH,IAAI,IAAI,cAAc,CAAC,IAAI,QACzB,QAAQ,KACN,GAAG,IAAI,WAAW,KAAI,SAAQ;GAC5B,IAAI,CAAC,EAAE,kBAAkB,KAAK,EAC5B,MAAM,IAAI,MAAM,qCAAqC;GACvD,OAAO,EAAE,eAAe,KAAK,UAAU,KAAK,MAAM;IAClD,CACH;QAGE,IAAI,EAAE,uBAAuB,IAAI,EAAE;EAExC,MAAM,KAAK,gBAAgB;EAC3B,QAAQ,KACN,EAAE,kBACA,CAAC,EAAE,yBAAyB,EAAE,WAAW,GAAG,CAAC,CAAC,EAC9C,IAAI,OACL,CACF;EACD,QAAQ,KAAK,EAAE,eAAe,EAAE,WAAW,GAAG,EAAE,EAAE,WAAW,GAAG,CAAC,CAAC;QAE7D,IAAI,EAAE,2BAA2B,IAAI,EAE1C,QAAQ,KACN,EAAE,eACA,EAAE,WAAW,UAAU,EACvB,aAAa,IAAI,YAAY,CAC9B,CACF;CAGL,OAAO,CACL,CAAC,GAAG,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,QAAQ,CAAC,CAAC,EAC7D,QACD;;AAEH,eAAe,oBACb,UACA,KACA,SAC6B;CAC7B,MAAM,OAAO,IAAI,aAAa,OAAO,MAAM;CAC3C,MAAM,OAA2B,EAAE,iBAAiB,CAClD,EAAE,eACA,EAAE,WAAW,KAAK,EAClB,EAAE,cAAc,IAAI,aAAa,OAAO,MAAM,GAAG,CAClD,CACF,CAAC;CACF,IAAI,SAAS,IAAI,MAAM;EACrB,MAAM,MAAM,WAAW,SAAS,IAAI,KAAe;EACnD,IAAI,CAAC,OAAO,MAAM,IAAI,EACpB,KAAK,WAAW,KACd,EAAE,eAAe,EAAE,WAAW,OAAO,EAAE,EAAE,eAAe,IAAI,CAAC,CAC9D;;CAGL,MAAM,OAA2B,EAAE;CACnC,MAAM,SAAyB,EAAE;CACjC,KAAK,MAAM,CAAC,MAAM,gBAAgB,OAAO,QAAQ,KAAK,EACpD,IAAI,QAAQC,eAAO,kBAAkB;EACnC,MAAM,cAAc,YAAY,MAAM,IAAI;EAC1C,KAAK,MAAM,WAAW,aAAa;GACjC,IACE,CAAE,MAAMC,MAAS,UACf,KAAK,KAAK,KAAK,QAAQ,IAAI,UAAU,EAAE,QAAQ,CAChD,EAED,MAAM,IAAI,MACR,qEACE,QACH;GACH,MAAM,KAAK,gBAAgB;GAC3B,QAAQ,KACN,EAAE,kBACA,CAAC,EAAE,uBAAuB,EAAE,WAAW,GAAG,CAAC,CAAC,EAC5C,EAAE,cAAc,QAAQ,CACzB,CACF;GACD,OAAO,KAAK,EAAE,WAAW,GAAG,CAAC;;QAG/B,KAAK,KACH,EAAE,eAAe,EAAE,WAAW,KAAK,EAAE,EAAE,cAAc,YAAY,CAAC,CACnE;CAGL,KAAK,WAAW,KACd,EAAE,eAAe,EAAE,WAAW,OAAO,EAAE,EAAE,iBAAiB,KAAK,CAAC,EAChE,EAAE,eAAe,EAAE,WAAW,UAAU,EAAE,EAAE,gBAAgB,OAAO,CAAC,CACrE;CACD,OAAO;;;;;;AAMT,SAAS,UAIP;CACA,IAAI,UAAU;CACd,MAAM,KAAK,WAAY;EACrB,IAAI,SAAS,MAAM,IAAI,MAAM,+BAA+B;EAC5D,UAAU;EACV,GAAG,UAAU,SAAS;;CAExB,GAAG,UAAU,SAAS;CACtB,OAAO;;AAET,SAAS,kBAIP;CACA,IAAI,IAAc;CAClB,MAAM,KAAK,SAAU,MAAS;EAC5B,IAAI,GAAG,MAAM,IAAI,MAAM,+BAA+B;EACtD,IAAI;EACJ,GAAG,UAAU,SAAS;;CAExB,GAAG,UAAU,SAAS;CACtB,OAAO;;;;AC7OT,eAAsBC,OAAK,KAAwB;CACjD,MAAM,cAAc,IAAI;CAExB,IAAI,QAAQ,KACV,EAAE,kBACA,CAAC,EAAE,gBAAgB,EAAE,WAAW,YAAY,EAAE,EAAE,WAAW,KAAK,CAAC,CAAC,EAClE,EAAE,cAAc,aAAa,CAC9B,EACD,EAAE,kBACA,CAAC,EAAE,yBAAyB,EAAE,WAAW,kBAAkB,CAAC,CAAC,EAC7D,EAAE,cAAc,uBAAuB,CACxC,CACF;CAED,MAAM,YAAY,IAAI,IAAI,aAAa,OAAO;CAC9C,IAAI,CAAC,aAAa,WAAW,SAAS,MACpC,MAAM,IAAI,MAAM,qDAAqD;CACvE,IAAI,YACF;CACF,MAAM,SAOA,EAAE;CACR,KAAK,MAAM,eAAe,UAAU,SAClC,IAAI,YAAY,QAAQ,WAAW;EAEjC,IAAI,YAAY,QAAQ,MAAK,MAAK,EAAE,QAAQ,UAAU,EACpD,YAAY,cAAc,MACxB,yCACA,YAAY,MACR;GACE,QAAQ,YAAY,IAAI,MAAM;GAC9B,MAAM,YAAY,IAAI,MAAM;GAC7B,GACD,KAAK,EACV;EAGH,IAAI;EACJ,IAAI,OAAO,YAAY,IAAI,QAAQ,UAAU;GAC3C,MAAM,QAAS,YAAY,IAAI,IAAe,MAC5C,uBACD;GACD,IAAI,OACF,OAAO;IAAE,UAAU,MAAM;IAAK,SAAS,MAAM;IAAK;QAElD,YAAY,cAAc,MACxB,6DACA,YAAY,MACR;IACE,QAAQ,YAAY,IAAI,MAAM;IAC9B,MAAM,YAAY,IAAI,MAAM;IAC7B,GACD,KAAK,EACV;;EAIL,IAAI;EACJ,IAAI,OAAO,YAAY,IAAI,OAAO,UAChC,MAAM,EAAE,SAAS,YAAY,IAAI,IAAc;EAGjD,OAAO,KAAK;GACV,KAAK,YAAY;GACjB,SAAS,YAAY,QAClB,KAAI,MAAM,EAAE,QAAQ,gBAAgB,EAAE,QAAS,GAAG,CAClD,KAAK,GAAG;GACX,MAAM,YAAY;GAClB,KAAK,YAAY;GACjB,GAAI,OAAO,EAAE,KAAK,MAAM,GAAG,EAAE;GAC7B,GAAI,MAAM,EAAE,IAAI,KAAK,GAAG,EAAE;GAC3B,CAAC;;CAIN,MAAM,YAA4B,EAAE;CACpC,SAAS,WACP,MACA,QACA,SACA,MACA,KACA;EACA,MAAM,QAA4B;GAChC,EAAE,eAAe,EAAE,WAAW,OAAO,EAAE,EAAE,cAAc,KAAK,CAAC;GAC7D,EAAE,eACA,EAAE,WAAW,SAAS,EACtB,EAAE,iBACA,OAAO,QAAQ,OAAO,CAAC,KAAK,CAAC,KAAK,WAAW;IAC3C,MAAM,YAAY,IAAI,WAAW,IAAI;IACrC,MAAM,YAAY,YAAY,IAAI,MAAM,EAAE,GAAG;IAC7C,OAAO,EAAE,eACP,EAAE,WAAW,UAAU,EACvB,YACI,EAAE,iBAAiB,CACjB,EAAE,eACA,EAAE,WAAW,UAAU,EACvB,EAAE,cAAc,OAAO,MAAM,CAAC,CAC/B,CACF,CAAC,GACF,OAAO,SAAS,YACd,EAAE,eAAe,MAAM,GACvB,EAAE,cAAc,MAAM,CAC7B;KACD,CACH,CACF;GACD,EAAE,eACA,EAAE,WAAW,UAAU,EACvB,QAAQ,WAAW,MAAM,IAAI,QAAQ,SAAS,MAAM,GAChD,EAAE,iBAAiB,CACjB,EAAE,eACA,EAAE,WAAW,UAAU,EACvB,EAAE,cAAc,QAAQ,MAAM,GAAG,QAAQ,SAAS,EAAE,CAAC,MAAM,CAAC,CAC7D,CACF,CAAC,GACF,EAAE,cAAc,QAAQ,CAC7B;GACF;EACD,IAAI,MACF,MAAM,KACJ,EAAE,eACA,EAAE,WAAW,MAAM,EACnB,EAAE,iBAAiB,CACjB,EAAE,eACA,EAAE,WAAW,WAAW,EACxB,EAAE,cAAc,KAAK,SAAS,CAC/B,EACD,EAAE,eACA,EAAE,WAAW,UAAU,EACvB,EAAE,cAAc,KAAK,QAAQ,CAC9B,CACF,CAAC,CACH,CACF;EAEH,IAAI,KACF,MAAM,KACJ,EAAE,eACA,EAAE,WAAW,KAAK,EAClB,EAAE,iBAAiB,CACjB,EAAE,eACA,EAAE,WAAW,UAAU,EACvB,EAAE,cAAc,IAAI,QAAQ,CAC7B,CACF,CAAC,CACH,CACF;EAEH,UAAU,KAAK,EAAE,iBAAiB,MAAM,CAAC;;CAG3C,KAAK,MAAM,MAAM,QAAQ;EACvB,MAAM,OAAO,GAAG;EAEhB,MAAM,aAAa,EAAE,GAAG,GAAG,KAAK;EAChC,OAAO,WAAW;EAClB,OAAO,WAAW;EAElB,IAAI;GAAC;GAAS;GAAY;GAAU;GAAU;GAAS,CAAC,SAAS,KAAK,EAAE;GAEtE,IAAI,aAAa,cAAc,iBAC7B,YAAY,cAAc,MACxB,kEACA,GAAG,MACC;IACE,MAAM,GAAG,IAAI,MAAM;IACnB,QAAQ,GAAG,IAAI,MAAM;IACtB,GACD,KAAK,EACV;GAEH,YAAY;GACZ,WAAW,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,GAAG;SAGpD,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,EAAE;GACpC,IAAI,aAAa,cAAc,mBAC7B,YAAY,cAAc,MACxB,UACA,GAAG,MACC;IACE,MAAM,GAAG,IAAI,MAAM;IACnB,QAAQ,GAAG,IAAI,MAAM;IACtB,GACD,KAAK,EACV;GAEH,YAAY;GACZ,WAAW,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,GAAG;SAGpD,IAAI;GAAC;GAAQ;GAAW;GAAS;GAAQ,CAAC,SAAS,KAAK,EAC3D,WAAW,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,GAAG;OAClD,IAAI,QAAQ,UAAU;GAC3B,IAAI,cAAc,oBAAoB,WACpC,YAAY,cAAc,MACxB,sDACA,GAAG,MACC;IACE,MAAM,GAAG,IAAI,MAAM;IACnB,QAAQ,GAAG,IAAI,MAAM;IACtB,GACD,KAAK,EACV;GACH,WAAW,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,GAAG;GACvD,YAAY;SAEZ,YAAY,cAAc,MACxB,8BAA8B,MAC9B,GAAG,MACC;GACE,MAAM,GAAG,IAAI,MAAM;GACnB,QAAQ,GAAG,IAAI,MAAM;GACtB,GACD,KAAK,EACV;;CAGL,IAAI,CAAC,WAAW,YAAY;CAC5B,MAAM,cAAc,EAAE,iBAAiB;EACrC,EAAE,eAAe,EAAE,WAAW,SAAS,EAAE,EAAE,gBAAgB,UAAU,CAAC;EACtE,EAAE,eACA,EAAE,WAAW,MAAM,EACnB,EAAE,iBACA,EAAE,WAAW,kBAAkB,EAC/B,EAAE,WAAW,UAAU,CACxB,CACF;EACD,EAAE,eAAe,EAAE,WAAW,KAAK,EAAE,EAAE,WAAW,kBAAkB,CAAC;EACtE,CAAC;CACF,IAAI,IAAI,CACN,EAAE,eACA,EAAE,WAAW,KAAK,EAClB,EAAE,cAAc,EAAE,WAAW,YAAY,EAAE,CACzC,aACA,EAAE,WAAWC,eAAO,gBAAgB,CACrC,CAAC,CACH,CACF,CAAC;;;;ACpPJ,eAAsBC,OAAK,KAAwB;CACjD,MAAM,UAAU,CACd,EAAE,eACA,EAAE,WAAW,QAAQ,EACrB,MAAM,oBACJ,IAAI,IAAI,aAAa,IAAI,MACvB,SAAQ,KAAK,SAAS,QACvB,EACD,IAAI,KACJ,IAAI,QACL,CACF,CACF;CACD,IAAI,IAAI,QAAQ;;;;ACVlB,eAAsB,KAAK,KAAwB;CACjD,MAAM,oBAGA,EAAE;CACR,KAAK,MAAM,WAAW,IAAI,IAAI,aAAa,KAAK,WAAW,QAAQ;EACjE,MAAM,SAAS,QAAQ;EACvB,MAAM,SAAS,KAAK,MAAM,OAAO;EACjC,IAAI,CAAC,OAAO,QAAQ,CAAC,OAAO,IAAI,WAAW,IAAI,EAC7C;EAGF,MAAM,QAAQ,KAAK,KAAK,IAAI,IAAI,WAAW,OAAO,OAAO;EACzD,IAAI;GAGF,MAAM,eAAe,aAAa,MADf,SAAS,OAAO,QAAQ,CACJ;GAEvC,IAAI,IAAI,MAAM,IAAI,OAAO,aAAa;GACtC,IAAI,aAAa,OAAO,MAAM,QAC5B,KAAK,MAAM,WAAW,QAAQ,UAAU;IACtC,IAAI;IACJ,IAAI,QAAQ,OAAO,OAAO;SACrB,IAAI,QAAQ,UAAU,WAAW,OAAO;SAE3C,MAAM,IAAI,MACR,oGACD;IAEH,kBAAkB,KAAK;KACrB;KACA,IAAI,QAAQ;KACb,CAAC;;WAGC,KAAK;GAEZ,IAAI,IAAI,cAAc,KACpB,wCAAwC,MAAM,iBAAiB,IAAI,IAAI,UAAU,WAAW,eAAe,QAAQ,IAAI,QAAQ,MAChI;;;CAIL,IAAI,kBAAkB,UAAU,GAAG;EACjC,MAAM,kBAAkB,EAAE,iBACxB,EAAE,WAAWC,eAAO,SAAS,EAC7B,EAAE,WAAW,QAAQ,CACtB;EACD,IAAI,OAAO,QAGT,EAAE,oBACA,OACA,kBAAkB,KAAK,MAAM,UAAU;GACrC,IAAI,KAAK,QAAQ,OACf,OAAO,EAAE,mBACP,EAAE,WAAW,KAAK,GAAG,EACrB,EAAE,iBAAiB,CACjB,EAAE,eACA,EAAE,WAAW,UAAU,EACvB,EAAE,iBACA,iBACA,EAAE,eAAe,MAAM,EACvB,KACD,CACF,CACF,CAAC,CACH;QACI,IAAI,KAAK,QAAQ,WACtB,OAAO,EAAE,mBACP,EAAE,WAAW,KAAK,GAAG,EACrB,EAAE,iBACA,iBACA,EAAE,eAAe,MAAM,EACvB,KACD,CACF;GAGH,MAAM,IAAI,MAAM,mDAAmD;IACnE,CACH,CACF;EAGD,MAAM,UAAU,CACd,EAAE,eACA,EAAE,WAAW,QAAQ,EACrB,EAAE,gBACA,kBAAkB,KAAI,OAAM;GAC1B,IAAI,GAAG,QAAQ,OACb,OAAO,EAAE,iBACP,EAAE,WAAW,GAAG,GAAG,EACnB,EAAE,WAAW,UAAU,CACxB;QACI,IAAI,GAAG,QAAQ,WACpB,OAAO,EAAE,WAAW,GAAG,GAAG;GAE5B,MAAM,IAAI,MAAM,2CAA2C;IAC3D,CACH,CACF,CACF;EACD,IAAI,IAAI,QAAQ;;;;;;;;ACrGpB,SAAS,kBACP,MACA,eACA,MAIQ;CACR,MAAM,cAAc,YAAY,KAAK;CACrC,MAAM,OAAO,YAAY,KAAK;CAC9B,MAAM,UAAkC,EAAE;CAE1C,MAAM,gBAAgB,2BACpB,YAAY,WAAW,OACxB;CACD,KAAK,MAAM,gBAAgB,eAAe;EACxC,MAAM,OAAO,aAAa;EAC1B,IAAI,MACF,KAAK,OAAM,YAAW;GACpB,aAAa,OAAO;IACpB;EAEJ,QAAQ,KAAK,aAAa;;CAG5B,IAAI,eACF,QAAQ,KACN,GAAG,OAAO,QAAQ,cAAc,CAAC,KAC9B,CAAC,KAAK,WACL,EAAE,mBACA,EAAE,WAAW,IAAI,EACjB,OAAO,SAAS,WACZ,EAAE,cAAc,MAAM,GACtB,OAAO,SAAS,YACd,EAAE,eAAe,MAAM,GACvB,OAAO,SAAS,WACd,EAAE,eAAe,MAAM,GACvB,EAAE,aAAa,CACxB,CACJ,CACF;CAGH,MAAM,aAAa,YAAY,WAAW,OACvC,KAAI,MAAK;EACR,IAAI,EAAE,uBAAuB,EAAE,EAAE;GAC/B,MAAM,SAAS,gBAAgB;GAC/B,QAAQ,KACN,EAAE,mBACA,EAAE,WAAW,OAAO,EACpB,EAAE,eAAe,EAAE,WAAW,UAAU,EAAE,CAAC,EAAE,OAAO,CAAC,CACtD,CACF;GACD,OAAO,EAAE,qBACP,KACA,EAAE,iBAAiB,EAAE,WAAW,SAAS,EAAE,EAAE,WAAW,UAAU,CAAC,EACnE,EAAE,iBAAiB,CACjB,EAAE,cAAc,EAAE,WAAW,OAAO,CAAC,EACrC,EAAE,cACA,EAAE,iBACA,EAAE,WAAW,SAAS,EACtB,EAAE,WAAW,UAAU,CACxB,CACF,CACF,CAAC,CACH;SACI,IAAI,EAAE,2BAA2B,EAAE,EAAE;GAC1C,IAAI,CAAC,EAAE,eAAe,EAAE,oBAAoB,EAAE,YAAY,EACxD,OAAO,KAAK;GACd,IAAI,EAAE,aAAa,EAAE,YAAY,EAC/B,OAAO,EAAE,qBACP,KACA,EAAE,iBACA,EAAE,WAAW,UAAU,EACvB,EAAE,WAAW,UAAU,CACxB,EACD,EAAE,YACH;GAEH,IAAI,CAAC,EAAE,YAAY,IACjB,EAAE,YAAY,KAAK,EAAE,WAAW,gBAAgB,CAAC;GACnD,KAAK,KAAK,EAAE,YAAY;GACxB,OAAO,EAAE,qBACP,KACA,EAAE,iBAAiB,EAAE,WAAW,UAAU,EAAE,EAAE,WAAW,UAAU,CAAC,EACpE,EAAE,YAAY,GACf;SACI,IAAI,EAAE,yBAAyB,EAAE,EAAE;GACxC,IAAI,EAAE,UAAU,EAAE,WAAW,UAAU,GAAG;IACxC,MAAM,KAAK,EAAE,WAAW,gBAAgB,CAAC;IACzC,QAAQ,KACN,EAAE,mBACA,IACA,EAAE,eAAe,EAAE,WAAW,UAAU,EAAE,CAAC,EAAE,OAAO,CAAC,CACtD,CACF;IACD,MAAM,cAAc,EAAE,WACnB,KAEG,cAIG;KACH,IAAI,EAAE,2BAA2B,UAAU,EAAE;MAC3C,MAAM,eAAe,EAAE,aAAa,UAAU,SAAS,GACnD,UAAU,SAAS,OAClB,UAAU,SAA6B;MAC5C,OAAO,EAAE,qBACP,KACA,EAAE,iBACA,EAAE,WAAW,UAAU,EACvB,EAAE,WAAW,aAAa,CAC3B,EACD,GACD;YACI,IAAI,EAAE,kBAAkB,UAAU,EAAE;MACzC,MAAM,eAAe,EAAE,aAAa,UAAU,SAAS,GACnD,UAAU,SAAS,OAClB,UAAU,SAA6B;MAC5C,OAAO,EAAE,qBACP,KACA,EAAE,iBACA,EAAE,WAAW,UAAU,EACvB,EAAE,WAAW,aAAa,CAC3B,EACD,EAAE,iBAAiB,IAAI,EAAE,WAAW,UAAU,MAAM,KAAK,CAAC,CAC3D;;KAEH,OAAO;MAEV,CACA,OAAO,QAAQ;IAClB,OAAO,YAAY,WAAW,IAC1B,YAAY,KACZ,EAAE,mBAAmB,YAAY;UAErC,IAAI,EAAE;QAEF,EAAE,sBAAsB,EAAE,YAAY,IACtC,EAAE,sBAAsB,EAAE,YAAY,EAEtC,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE;KAC1C,KAAK,KAAK,EAAE,YAAY;KACxB,MAAM,cAAc,EAAE,YAAY,aAAa,KAAI,SAAQ;MACzD,MAAM,UAAW,KAAK,GAAoB;MAC1C,OAAO,EAAE,qBACP,KACA,EAAE,iBACA,EAAE,WAAW,UAAU,EACvB,EAAE,WAAW,QAAQ,CACtB,EACD,EAAE,WAAW,QAAQ,CACtB;OACD;KACF,OAAO,YAAY,WAAW,IAC1B,YAAY,KACZ,EAAE,mBAAmB,YAAY;WAChC;KACL,MAAM,aACJ,EAAE,YAAY,MAAM,EAAE,WAAW,gBAAgB,CAAC;KACpD,MAAM,WAAW,EAAE,oBACjB,YACA,EAAE,YAAY,QACd,EAAE,YAAY,MACd,EAAE,YAAY,WACd,EAAE,YAAY,MACf;KACD,KAAK,KAAK,SAAS;KACnB,OAAO,EAAE,qBACP,KACA,EAAE,iBACA,EAAE,WAAW,UAAU,EACvB,EAAE,WAAY,WAA4B,KAAK,CAChD,EACD,WACD;;UAKL,IAAI,EAAE,WAAW,UAAU,GAAG;IAC5B,MAAM,cAAc,EAAE,WACnB,KAAI,cAAa;KACd,IAAI,EAAE,kBAAkB,UAAU,EAAE;MAClC,MAAM,eAAe,EAAE,aAAa,UAAU,SAAS,GACnD,UAAU,SAAS,OAClB,UAAU,SAA6B;MAC5C,OAAO,EAAE,qBACP,KACA,EAAE,iBACA,EAAE,WAAW,UAAU,EACvB,EAAE,WAAW,aAAa,CAC3B,EACD,EAAE,WAAW,UAAU,MAAM,KAAK,CACnC;;KAEL,OAAO;MACP,CACD,OAAO,QAAQ;IAClB,OAAO,YAAY,WAAW,IAC1B,YAAY,KACZ,EAAE,mBAAmB,YAAY;;GAI3C,OAAO;;GAET,CACD,OAAO,QAAQ;CAElB,KAAK,QAAQ,EAAE,oBAAoB,OAAO,QAAQ,CAAC;CACnD,KAAK,KAAK,GAAG,WAAW,KAAI,MAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;CAE3D,OAAO,UAAU,SAAS,EAAE,QAAQ,KAAK,CAAC,CAAC;;;;;AAM7C,SAAS,2BACP,UACwB;CACxB,MAAM,SAAiC,CACrC,EAAE,mBACA,EAAE,WAAW,mBAAmB,EAChC,EAAE,mBACA,MACA,CAAC,EAAE,WAAW,MAAM,CAAC,EACrB,EAAE,eAAe,CACf,EAAE,gBACA,EAAE,sBACA,EAAE,iBACA,EAAE,WAAW,MAAM,EACnB,EAAE,WAAW,aAAa,CAC3B,EACD,EAAE,iBAAiB,EAAE,WAAW,MAAM,EAAE,EAAE,WAAW,UAAU,CAAC,EAChE,EAAE,WAAW,MAAM,CACpB,CACF,CACF,CAAC,CACH,CACF,CACF;CAED,KAAK,MAAM,QAAQ,UACjB,KAAK,MAAM,YAAY,KAAK,UAAU;EACpC,IAAI;EACJ,IAAI,CAAC,SAAS,SAAS,SAAS,QAC9B,IAAI,SAAS,UAAU,WACrB,KAAK,EAAE,eAAe,EAAE,WAAW,mBAAmB,EAAE,CACtD,EAAE,eAAe,EAAE,WAAW,UAAU,EAAE,CACxC,EAAE,cAAc,KAAK,OAAO,CAC7B,CAAC,CACH,CAAC;OAEF,KAAK,EAAE,iBACL,EAAE,eAAe,EAAE,WAAW,UAAU,EAAE,CACxC,EAAE,cAAc,KAAK,OAAO,CAC7B,CAAC,EACF,EAAE,WAAW,SAAS,OAAO,CAC9B;OAGH,KAAK,EAAE,eAAe,EAAE,WAAW,UAAU,EAAE,CAC7C,EAAE,cAAc,KAAK,OAAO,CAC7B,CAAC;EAEJ,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,SAAS,GAAG,EAAE,GAAG,CAAC;;CAGpE,OAAO;;;;AChRT,MAAM,kBAAkB,IAAI,IAAI;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,IAAY,gBAAL,yBAAA,eAAA;CACL,cAAA,cAAA,kBAAA,KAAA;CACA,cAAA,cAAA,aAAA,KAAA;CACA,cAAA,cAAA,eAAA,KAAA;;KACD;AAED,IAAa,YAAb,MAAuB;CACrB;CACA;CACA;CACA,YACE,WAA0B,UAC1B,SAA+B,OAC/B,eACA;EAHO,KAAA,WAAA;EACA,KAAA,SAAA;EACC,KAAA,gBAAA;EAER,KAAK,UAAU,IAAI,OAAO,OAAO,KAAK,SAAS;EAC/C,KAAK,iBAAiB,iBAAiB,EAAE;EACzC,KAAK,WAAW,KAAK,WAAW,KAAK,eAAe;;;;;;;CAOtD,MAAa,IACX,MACA,gBAAA,GACA,kBAIkB;EAClB,IAAI,KAAK,WAAW;OACd,iBAAA,GAA0C;IAC5C,IAAI,gBAAgB;IAEpB,IAAI,KAAK,eAAe;KACtB,MAAM,MAAM,MAAM,MAAM;MACtB,YAAY;MACZ,SAAS,CAAC,cAAc,MAAM;MAC/B,CAAC;KACF,MAAM,iBAAiB,OAAO,QAAQ,KAAK,cAAc,CAAC,KACvD,CAAC,KAAK,WACL,EAAE,mBACA,EAAE,WAAW,IAAI,EACjB,OAAO,SAAS,WACZ,EAAE,cAAc,MAAM,GACtB,OAAO,SAAS,YACd,EAAE,eAAe,MAAM,GACvB,OAAO,SAAS,WACd,EAAE,eAAe,MAAM,GACvB,EAAE,aAAa,CACxB,CACJ;KACD,MAAM,qBAAqB,EAAE,oBAC3B,OACA,eACD;KACD,IAAI,QAAQ,KAAK,QAAQ,mBAAmB;KAC5C,gBAAgB,UAAU,SAAS,IAAI,CAAC;;IAG1C,OAAO,MAAM,OAAO,sCADkCC,SAAO,KAAK,cAAc,CAAC,SAAS,SAAS;UAE9F,IAAI,iBAAA,GAA6C;IACtD,MAAM,eAAe,kBACnB,MACA,KAAK,eACL,iBACD;IAED,MAAM,MAAM,IADO,GAAG,OAAO,cAAc,EAAE,UAAU,KAAK,UAAU,CACpD,CAAC,aAAa,KAAK,SAAS;IAC9C,OAAO,KAAK,SAAS,WAAW;UAC3B,IAAI,iBAAA,GACT,IAAI,OAAO,GAAG,qBAAqB,YACjC,MAAM,IAAI,MAAM,8CAA8C;QACzD;IACL,MAAM,SAAS,IAAI,GAAG,iBAAiB,MAAM,EAC3C,SAAS,KAAK,UACf,CAAC;IACF,MAAM,OAAO,KAAK,OAAM,cAAa;KACnC,OAAO,IAAI,GAAG,iBAAiB,WAAW,EACxC,SAAS,KAAK,UACf,CAAC;MACF;IACF,MAAM,OAAO,UAAU;IACvB,OAAO,OAAO;;SAGb;GAEL,MAAM,MAAM,IADO,GAAG,OAAO,MAAM,EAAE,UAAU,KAAK,UAAU,CAC5C,CAAC,aAAa,KAAK,SAAS;GAC9C,OAAO,KAAK,SAAS,WAAW;;;CAGpC,WAAmB,eAAqD;EACtE,MAAM,UAAsB,OAAO,OAAO,iBAAiB,KAAK;EAEhE,MAAM,UAAU,EAAE;EAClB,MAAM,SAAS;GACb;GACA,UAAU,KAAK;GACf,MAAM,KAAK;GACX,OAAA,UAAe,QAAQ,MAAM,KAAK,SAAS,IAAI,EAAE;GACjD,IAAI,KAAK;GACV;EACD,MAAM,kBAAkB,OAAO,gBAC3B,OAAO,cAAc,KAAK,SAAS,GAAA;EAEvC,MAAM,oBAAoB,IAAI,MAAM,iBAAiB,EACnD,MAAM,QAAQ,SAAS,MAAM;GAC3B,MAAM,KAAK,KAAK;GAChB,IAAI,OAAO,OAAO,YAAY,gBAAgB,IAAI,GAAG,EACnD,MAAM,IAAI,MACR,6BAA6B,GAAG,wCACjC;GAEH,OAAO,QAAQ,MAAM,QAAQ,SAAS,KAAK;KAE9C,CAAC;EACF,OAAO,OAAO,SAAS;GACrB;GACA;GACA,SAAS;GACT,QAAQ;GACT,CAAC;EACF,OAAO,GAAG,cAAc,QAAQ;;CAElC,OAAc,mBAAmB,OAAO,GAAG,oBAAoB;;;;;;;;;;;;;;;;;;;;;;ACpJjE,IAAI,eAA8D,EAAE;;;;;AAMpE,MAAM,kBAAkB;AACxB,MAAM,iBAAiB;;AAGvB,SAAgB,qBAAqB;CACnC,eAAe,EAAE;;;;;;;;;;;;AAanB,SAAgB,iBACd,OACA,KACA,kBAAkB,OAClB;CAIA,IAAI,MAAM,SAAS,QAAQ;EACzB,IAAI,CAAC,iBACH,MAAM,IAAI,MACR,mGACD;EAEH,OAAO,KAAK,QAAQ,MAAM,KAAK;;CAEjC,IAAI;CACJ,IAAI,MAAM,SAAS,YACjB,UAAU,IAAI,OAAO;MAChB,IAAI,MAAM,SAAS,aACxB,UAAU,IAAI,OAAO;MAErB,MAAM,IAAI,MAAM,0CAA0C;CAE5D,MAAM,WAAW,KAAK,QAAQ,SAAS,MAAM,KAAK;CAIlD,IAAI,CAAC,SAAS,WAAW,KAAK,QAAQ,QAAQ,CAAC,EAC7C,MAAM,IAAI,MAAM,+CAA+C,MAAM,KAAK;CAE5E,OAAO;;;;;;;;;;;;AA0BT,SAAS,qBAAqB,MAA+B;CAC3D,MAAM,UAA2B,EAAE;CACnC,IAAI;CACJ,IAAI;EACF,MAAM,MAAM,MAAM;GAChB,YAAY;GACZ,SAAS,CAAC,cAAc,MAAM;GAC/B,CAAC;SACI;EAEN,OAAO;;CAGT,SAAS,KAAK,MAAc;EAC1B,IAAI,CAAC,MAAM;EAIX,IAAI,EAAE,oBAAoB,KAAK,EAAE;GAC/B,MAAM,MACJ,OAAO,KAAK,OAAO,UAAU,WAAW,KAAK,OAAO,QAAQ;GAC9D,KAAK,MAAM,QAAQ,KAAK,YACtB,IAAI,EAAE,kBAAkB,KAAK,EAAE;IAGR,EAAE,aAAa,KAAK,SAAS,GAC9C,KAAK,SAAS,OACb,KAAK,SAA6B;IACvC,MAAM,YAAY,KAAK,MAAM;IAC7B,QAAQ,aAAa;UAChB,IAAI,EAAE,yBAAyB,KAAK,EAEzC,QAAQ,KAAK,MAAM,QAAQ;QACtB,IAAI,EAAE,2BAA2B,KAAK,EAE3C,QAAQ,KAAK,MAAM,QAAQ;;EAMjC,IAAI,EAAE,sBAAsB,KAAK,EAC/B,KAAK,MAAM,QAAQ,KAAK,cAAc;GAEpC,IACE,EAAE,aAAa,KAAK,GAAG,IACvB,KAAK,QACL,EAAE,iBAAiB,KAAK,KAAK,IAC7B,EAAE,aAAa,KAAK,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC,IACrD,KAAK,KAAK,UAAU,WAAW,KAC/B,EAAE,gBAAgB,KAAK,KAAK,UAAU,GAAG,EAEzC,QAAQ,KAAK,GAAG,QAAQ,KAAK,KAAK,UAAU,GAAG;GAajD,IACE,EAAE,aAAa,KAAK,GAAG,IACvB,KAAK,QACL,EAAE,iBAAiB,KAAK,KAAK,IAC7B,EAAE,mBAAmB,KAAK,KAAK,OAAO,IACtC,EAAE,iBAAiB,KAAK,KAAK,OAAO,OAAO,IAC3C,EAAE,aAAa,KAAK,KAAK,OAAO,OAAO,QAAQ,EAAE,MAAM,WAAW,CAAC,IACnE,KAAK,KAAK,OAAO,OAAO,UAAU,WAAW,KAC7C,EAAE,gBAAgB,KAAK,KAAK,OAAO,OAAO,UAAU,GAAG,EAEvD,QAAQ,KAAK,GAAG,QAAQ,KAAK,KAAK,OAAO,OAAO,UAAU,GAAG;;EAMnE,KAAK,MAAM,OAAO,EAAE,aAAa,KAAK,SAAS,EAAE,EAAE;GACjD,MAAM,QAAS,KAA4C;GAC3D,IAAI,MAAM,QAAQ,MAAM;SACjB,MAAM,QAAQ,OACjB,IAAI,QAAQ,OAAO,SAAS,YAAa,KAAgB,MACvD,KAAK,KAAe;UAGnB,IAAI,SAAS,OAAO,UAAU,YAAa,MAAiB,MACjE,KAAK,MAAgB;;;CAI3B,KAAK,IAAI,QAAQ;CACjB,OAAO;;;;;;;;AAST,SAAS,sBAAsB,SAA0B,UAAkB;CACzE,MAAM,iBAAiB;CACvB,MAAM,yBAAS,IAAI,KAAa;CAChC,KAAK,MAAM,GAAG,QAAQ,OAAO,QAAQ,QAAQ,EAC3C,IACE,OACA,CAAC,IAAI,WAAW,eAAe,IAC/B,CAAC,IAAI,WAAW,IAAI,IACpB,CAAC,OAAO,IAAI,IAAI,EAChB;EACA,OAAO,IAAI,IAAI;EACf,QAAQ,KACN,IAAI,UAAU,OAAO,wBAAwB,CAAC,MAAM,IAAI,OAAO,SAAS,gBAAgB,eAAe,iCAAiC,eAAe,oBACxJ;;;;;;;;;;;AAaP,eAAsB,SACpB,QACA,KACA,kBAAkB,OAClB;CACA,IAAI,CAAC,QAAQ;CAIb,MAAM,iBAAiB,QAAQ,KAAK;EADnB,YAAY;EAAG,WAAW;EACD,EAAE,gBAAgB;;;;;;;;;;;;;AAc9D,eAAe,iBACb,QACA,KACA,QACA,iBACA;CACA,IAAI,CAAC,QAAQ;CACb,KAAK,MAAM,cAAc,QACvB,IAAI,WAAW,QAAQ,SAErB,MAAM,iBAAiB,WAAW,SAAS,KAAK,QAAQ,gBAAgB;MAExE,IAAI,WAAW,QAAQ,eAErB,MAAM,GACJ,iBAAiB,WAAW,QAAQ,KAAK,gBAAgB,EACzD,iBAAiB,WAAW,QAAQ,KAAK,gBAAgB,EACzD;EACE,WAAW;EACX,OAAO;EACR,CACF;MACI,IAAI,WAAW,QAAQ,QAAQ;EAGpC,MAAM,aAAa,EAAE;EACrB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAChC,WAAW,WAAW,OACvB,EAAE;GACD,MAAM,QAAQ;GAGd,IAAI,MAAM,QAAQ,OAEhB,WAAW,OAAO,MAAM;QACnB;IAEL,IAAI,CAAC,iBAAiB;KACpB,OAAO;KACP,IAAI,OAAO,YAAY,gBACrB,MAAM,IAAI,MACR,kDAAkD,eAAe,GAClE;;IAOL,WAAW,OAAO,MAJQ,SACxB,iBAAiB,MAAM,MAAM,KAAK,gBAAgB,EAClD,QACD,IACgC,MAAM,WAAW;;;EAGtD,MAAM,aAAa,MAAM,WAAW,WAAW,IAAI,WAAW;EAG9D,IAAI,UAAU,WAAW,QAAQ;GAC/B,IAAI,CAAC,iBAAiB;IACpB,OAAO;IACP,IAAI,OAAO,aAAa,iBACtB,MAAM,IAAI,MACR,mDAAmD,gBAAgB,GACpE;;GAQL,MAAM,UALW,iBACf,WAAW,QACX,KACA,gBAEsB,EAAE,WAAW,UAAU,CAAC;;EAIlD,IAAI,UAAU,WAAW;OAErB,WAAW,OAAO,QAAQ,kBAC1B,WAAW,OAAO,QAAQ,UAC1B;IACA,IAAI,CAAC,MAAM,QAAQ,WAAW,EAC5B,MAAM,IAAI,MACR,2DACD;IACH,IAAI,CAAC,aAAa,iBAChB,aAAa,kBAAkB,EAAE;IACnC,IAAI,MAAM,QAAQ,WAAW,EAC3B,aAAa,kBAAkB,CAC7B,GAAI,aAAa,iBACjB,GAAI,WACL;;SAIL,MAAM,IAAI,MACR,+DACD;;;;;;;;AAYX,eAAsB,wBAAwB,QAE5B;CAChB,MAAM,UAAU,aAAa;CAG7B,IAAI,CAAC,WAAW,QAAQ,WAAW,GAAG;CAEtC,MAAM,MAAM,KAAK,KAAK,OAAO,WAAW,WAAW;CACnD,MAAM,WAAW,KAAK,KAAK,KAAK,oBAAoB;CAEpD,MAAM,OAIF;EACF,oBAAoB;EACpB,cAAc;EACd,cAAc,EAAE;EACjB;CAGD,IAAI;EACF,MAAM,WAAW,KAAK,MAAM,aAAa,UAAU,QAAQ,CAAC;EAC5D,IAAI,SAAS,cACX,KAAK,eAAe,SAAS;SAEzB;CAIR,KAAK,MAAM,CAAC,KAAK,aAAa,SAC5B,KAAK,aAAa,OAAO,EAAE,UAAU;CAGvC,MAAM,MAAM,KAAK,EAAE,WAAW,MAAM,CAAC;CACrC,MAAM,UAAU,UAAU,KAAK,UAAU,MAAM,MAAM,EAAE,CAAC;;;;;;;;;;;;;;;;;AAkB1D,eAAsB,iBACpB,cACA,KACA;CACA,MAAM,YAAY,aAAa,OAAO;CACtC,MAAM,MAAM,aAAa,OAAO;CAKhC,MAAM,gBAAgB,qBAAqB,IAAI;CAC/C,sBAAsB,eAAe,aAAa,KAAK;CAMvD,MAAM,kBAAmB,MAAM,IAAI,UAAU,aAAa,MAAM,MAAM,CAAC,IACrE,KAAA,IAEC,MAAM,YAAY;EACjB,IACE,WACA,KAAK,QAAQ,oBACb,KAAK,OAAO,QAAQ,gBACpB,KAAK,UAAU,UAAU,KACzB,KAAK,UAAU,IAAI,QAAQ,oBAC3B,KAAK,UAAU,GAAG,OAAO,QAAQ,gBACjC,KAAK,UAAU,GAAG,OAAO,QAAQ,WACjC;GAEA,MAAM,MADc,KAAK,UAAU,GACX,UAAU;GAClC,IAAI,OAAO,IAAI,QAAQ;QACjB,gCAAgC,KAAK,IAAI,MAAM,EAAE;KACnD,MAAM,wBAAwB,EAAE,iBAC9B,EAAE,eAAe,EAAE,WAAW,UAAU,EAAE,CACxC,EAAE,cAAc,uBAAuB,CACxC,CAAC,EACF,EAAE,WACA;MACE,KAAK;MACL,KAAK;MACL,KAAK;MACL,MAAM;MACN,KAAK;MACN,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,EACnC,CACF;KAYD,QAXyB,EAAE,cAAc,uBAAuB,CAC9D,EAAE,eACA,EAAE,iBACA,EAAE,eAAe,EAAE,WAAW,UAAU,EAAE,CACxC,EAAE,cAAc,YAAY,CAC7B,CAAC,EACF,EAAE,WAAW,OAAO,CACrB,EACD,CAAC,EAAE,cAAc,KAAK,QAAQ,aAAa,KAAK,CAAC,EAAE,IAAI,CACxD,CACF,CACuB,CAAC;;;;GAKlC;CAID,IAAI,CAAC,WACH,MAAM,IAAI,MACR,oFACE,aAAa,KAChB;CACH,IAAI,OAAO,oBAAoB,UAC7B,MAAM,IAAI,MACR,sEACD;CAGH,KAAK,MAAM,KAAK,OAAO,QAAQ,UAAU,EAAE;EACzC,MAAM,YAAY,KAAK,KAAK,IAAI,OAAO,UAAU,EAAE,GAAG;EAGtD,IAAI,CAAC,KAAK,SAAS,WAAW,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,EACjE,MAAM,IAAI,MAAM,wCAAwC,UAAU;EAEpE,MAAM,cAAc,EAAE,GAAG;EACzB,MAAM,YAAY,gBAAgB;EAGlC,IAAI,CAAC,aACH,MAAM,IAAI,MACR,qEACE,aAAa,KAChB;EAIH,IAAI,CAAC,WAAW,KAAK,QAAQ,UAAU,CAAC,EACtC,MAAM,MAAM,KAAK,QAAQ,UAAU,EAAE,EACnC,WAAW,MACZ,CAAC;EAGJ,MAAM,OAAO,UAAU,QAAQ;EAC/B,IACE,CAAC,KAAK,SACN,CAAC,KAAK,MAAM,QACZ,CAAC,CAAC,QAAQ,SAAS,CAAC,SAAS,KAAK,MAAM,KAAK,EAE7C,MAAM,IAAI,MAAM,wDAAwD;EAE1E,IAAI,KAAK,MAAM,WAAW;GAMxB,MAAM,kBAAkB,OAAO,OAAO,cAAc,CAAC,MAClD,QAAQ,OAAO,IAAI,WAAW,uBAAuB,CACvD;GACD,MAAM,SAAS,KAAK,MAAM,WAAW,KAAK,gBAAgB;;EAI5D,OAAQ,KAA2C;EACnD,MAAM,UAAU,WAAW,KAAK,UAAU,MAAM,MAAM,EAAE,CAAC;;;;;AC/gB7D,eAAsB,WAAW,KAAoC;CACnE,MAAM,aAAa,aAAa,IAAI,aAAa,KAAK;CACtD,MAAM,SAAU,IAAI,OAAO,OAAO,WAAW;CAC7C,MAAM,OAA2B,EAAE;CACnC,MAAM,MAAM,iBAAqC;CACjD,MAAM,SAAiC,IAAI,OAAO,QAAQ,CACxD,EAAE,WAAWC,eAAO,SAAS,CAC9B;CACD,MAAM,WAA8B;EAClC,SAAS,WAAW;EACpB;EACA;EACK;EACL;EACD;CACD,IAAI,OAAgB;CAGpB,MAAM,cAAc,SAAS;CAC7B,IAAI,IAAI,aAAa,OAAO,MAAM,QAAQ;EAExC,OAAO;EAEP,aAAa;EACb,MAAMC,OAAU,SAAS;;CAE3B,IAAI,IAAI,aAAa,OAAO,IAAI;EAC9B,OAAO;EACP,aAAa;EACb,MAAMC,OAAO,SAAS;;CAExB,IACE,OAAO,oBAAoB,IAAI,aAAa,OAAO,UAAU,CAAC,UAAU,GACxE;EACA,OAAO;EACP,MAAM,iBAAiB,IAAI,cAAc,IAAI;EAC7C,OAAO;;CAET,IAAI,QAAQ,OAAO;EAEjB,aAAa;EAEb,MAAMC,KAAQ,SAAS;;CAGzB,KAAK,KAAK,EAAE,eAAe,EAAE,WAAW,OAAO,EAAE,EAAE,cAAc,KAAK,CAAC,CAAC;CACxE,IAAI,YAAY,UAAU,QACxB,KAAK,KACH,EAAE,eACA,EAAE,WAAW,QAAQ,EACrB,EAAE,WAAWH,eAAO,gBAAgB,CACrC,CACF;CAEH,IAAI,IAAI,UAAU,QAChB,KAAK,KACH,EAAE,eACA,EAAE,WAAW,MAAM,EACnB,EAAE,iBAAiB,IAAI,UAAU,OAAO,CACzC,CACF;CAiBH,OAda,SAEX,EAAE,QAAQ;EACR,GAAG,SAAS;EACZ,EAAE,oBACA,EAAE,WAAWA,eAAO,gBAAgB,EACpC,QACA,EAAE,eAAe,OAAO,EACxB,OACA,MACD;EACD,EAAE,yBAAyB,EAAE,iBAAiB,KAAK,CAAC;EACrD,CAAC,CACH,CAAC;;;;AC5EJ,SAAS,iBAAiB,KAAc,IAAyB;CAC/D,IAAI,eAAe,OACjB,OAAO;EACL,GAAG;EACH,SAAS,GAAG,IAAI,QAAQ,OAAO,GAAG;EACnC;MAED,OAAO,EAAE,SAAS,OAAO,IAAI,EAAE;;AAGnC,eAAsB,UACpB,MACA,OACA,IACA,SACA,KACA,QACiB;CACjB,IAAI;EACF,MAAM,YAAY,KAAK,IAAI,MAAK,SAAQ;GACtC,OAAO,KAAK,QAAQ;IACpB;EACF,IAAI,CAAC,WACH,MAAM,IAAI,MAAM,8CAA8C;EAiBhE,OAAO,MADc,WAAW;GAd9B,eAAe;GACf,QAAQ,EAAE;GACV,YAAY,QAAQ,EAAE,CAAC;GACvB;GACA,WAAW;GACX,cAAc;GACd;GACW;GACX,QAAQ;IACN,OAAO,EAAE;IACT,MAAM,EAAE;IACT;GACD;GAE8C,CAAC;UAE1C,KAAK;EACZ,QAAQ,MAAM,iBAAiB,KAAK,GAAG,CAAC;EACxC;;;;;AChCJ,SAAS,gBAAgB,KAAiB,QAAgC;CACxE,IAAI,wBAAqC,IAAI,KAAK;CAClD,IAAI;CACJ,IAAI;EACF,MAAM,eAAe,GAAG,eAAe,IAAI,eAAc,SAAQ;GAC/D,IAAI;IACF,OAAO,aAAa,MAAM,QAAQ;YAC3B,OAAO;IACd,MAAM,IAAI,MACR,4CAA4C,KAAK,IAAI,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,GAC5G;;IAEH;EAEF,IAAI,aAAa,OACf,MAAM,IAAI,MACR,mCAAmC,aAAa,MAAM,cACvD;EAGH,IAAI,CAAC,aAAa,QAChB,MAAM,IAAI,MACR,0CAA0C,IAAI,eAC/C;EAIH,MAAM,eAAe,GAAG,2BACtB,aAAa,QACb,GAAG,KACH,KAAK,QAAQ,IAAI,aAAa,EAC9B,KAAA,GACA,IAAI,aACL;EAED,IAAI,aAAa,OAAO,SAAS,GAAG;GAClC,MAAM,gBAAgB,aAAa,OAChC,KAAI,QAAO,IAAI,YAAY,CAC3B,KAAK,KAAK;GACb,MAAM,IAAI,MACR,6CAA6C,gBAC9C;;EAGH,WAAW;UACJ,OAAO;EAEd,QAAQ,KACN,yCAAyC,IAAI,aAAa,IAAI,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,GACrH;EACD,QAAQ,KAAK,yCAAyC;EACtD,WAAW;GACT,SAAS,EAAE;GACX,WAAW,EAAE;GACb,QAAQ,EAAE;GACX;;CAEH,MAAM,oBAAoB;EAAC;EAAI;EAAO;EAAQ;EAAQ;EAAO;EAAQ;EAAO;CAC5E,MAAM,kBAAkB,kBAAkB,KAAI,QAAO,WAAW,IAAI;CAEpE,eAAe,eAAe,UAA0C;EACtE,KAAK,MAAM,UAAU,iBACnB,IAAI;GACF,MAAM,WAAW,WAAW;GAC5B,MAAM,SAAS,UAAU,QAAQ;GACjC,OAAO;UACD;EAEV,KAAK,MAAM,OAAO,mBAChB,IAAI;GACF,MAAM,WAAW,WAAW;GAC5B,MAAM,SAAS,UAAU,QAAQ;GACjC,OAAO;UACD;EAEV,OAAO;;CAGT,eAAe,sBACb,QACA,SACA,SACwB;EACxB,MAAM,UAAU,QAAQ;EACxB,IAAI,SAAS;GACX,MAAM,YAAY,QAAQ,WAAW,KAAK,GAAG,UAAU,KAAK;GAC5D,IAAI,OAAO,YAAY,YAAY,YAAY,MAAM;IACnD,MAAM,MAAM;IACZ,IAAI,IAAI,YAAY;KAClB,MAAM,SAAS,IAAI;KACnB,IAAI,OAAO,WAAW,UACpB,OAAO,KAAK,KAAK,QAAQ,OAAO;UAC3B,IAAI,OAAO,WAAW,YAAY,WAAW,MAAM;MACxD,MAAM,YAAY;MAClB,IAAI,UAAU,QACZ,OAAO,KAAK,KAAK,QAAQ,UAAU,OAAiB;MAEtD,OAAO,KAAK,KACV,QACC,UAAU,WACR,OAAO,OAAO,UAAU,CAAC,GAC7B;;;IAGL,IAAI,UAAU,SAAS,IAAI,IAAI,UAAU,SAAS,KAAK,EAAE;KACvD,MAAM,aAAa,UAAU,MAAM,GAAG,GAAG;KACzC,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,EAC5C,IAAI,IAAI,WAAW,WAAW,IAAI,QAAQ,YAAY;MACpD,MAAM,SAAS;MACf,OAAO,KAAK,KAAK,QAAQ,OAAO;;;UAIjC,IAAI,OAAO,YAAY,UAC5B,OAAO,KAAK,KAAK,QAAQ,QAAQ;;EAGrC,OAAO;;CAGT,OAAO;EACL,MAAM;EACN,MAAM,UAAU,IAAI,KAAK;GACvB,MAAM,IAAI,KAAK,MAAM,GAAG;GACxB,IAAI,EAAE,IAAI,WAAW,IAAI,IAAI,EAAE,MAAM;IACnC,IAAI,KAAK;KACP,MAAM,UAAU,KAAK,QAAQ,IAAI;KACjC,MAAM,WAAW,MAAM,eAAe,KAAK,KAAK,SAAS,GAAG,CAAC;KAC7D,IAAI,UAAU,OAAO;;IAEvB,OAAO;UACF;IAEL,IAAI,KACF,IAAI;KAEF,MAAM,WADe,cAAc,IACN,CAAC,QAAQ,GAAG;KACzC,IAAI,UAAU,OAAO;YACf;IAIV,MAAM,kBAAkB,GAAG,WAAW,IAAI;IAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI;IAC3B,MAAM,UAAU,kBACZ,GAAG,MAAM,GAAG,GAAG,MAAM,OACpB,MAAM;IACX,MAAM,UAAU,kBACZ,MAAM,MAAM,EAAE,CAAC,KAAK,IAAI,GACxB,MAAM,MAAM,EAAE,CAAC,KAAK,IAAI;IAC5B,MAAM,IAAI,KAAK,KAAK,IAAI,WAAW,QAAQ;IAC3C,IAAI;IACJ,IAAI;KACF,UAAU,KAAK,MACb,MAAM,SAAS,KAAK,KAAK,GAAG,eAAe,EAAE,QAAQ,CACtD;aACM,KAAc;KACrB,MAAM,UAAU;KAChB,IAAI,CAAC,QAAQ,QAAQ,QAAQ,SAAS,UACpC,MAAM,IAAI,MACR,gDAAgD,GAAG,QAAQ,EAAE,GAC9D;UAED,MAAM,IAAI,MACR,8CAA8C,GAAG,KAAK,QAAQ,UAC/D;;IAGL,IAAI,SAAS;KACX,MAAM,cAAc,MAAM,sBAAsB,GAAG,SAAS,QAAQ;KACpE,IAAI,aAAa,OAAO;KACxB,MAAM,WAAW,MAAM,eACrB,KAAK,KAAK,GAAG,UAAU,QAAQ,CAChC;KACD,IAAI,UAAU,OAAO;KACrB,MAAM,WAAW,MAAM,eAAe,KAAK,KAAK,GAAG,QAAQ,CAAC;KAC5D,IAAI,UAAU,OAAO;KACrB,OAAO;;IAET,OAAO,KAAK,KAAK,GAAG,QAAQ,KAAe;;;EAG/C,WAAW,eACT,MACA,IAC0B;GAC1B,MAAM,QAAQ,IAAI,YAAY,KAAK;GACnC,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE;GAChC,MAAM,UAAU;GAChB,IAAI,OAAO,OAAO;IAChB,IAAI;IACJ,IAAI;KACF,cAAc,MAAM,IAAI,GAAG,GACtB,MAAM,IAAI,GAAG,GACd,aAAa,KAAK;KACtB,MAAM,IAAI,IAAI,YAAY;aACnB,KAAc;KACrB,IAAI,eAAe,cACjB,KAAK,MAAM,IAAI,SAAS;MACtB,QAAQ,IAAI,IAAI;MAChB,MAAM,IAAI,IAAI;MACf,CAAC;UAEF,KAAK,MACH,eAAe,QACX,GAAG,IAAI,QAAQ,KAAK,IAAI,UACxB,OAAO,IAAI,CAChB;KAEH;;IAEF,YAAY,YAAY,GAAG;IAS3B,OAAO;KACL,MAAM,MATmB,UACzB,aACA,OACA,IACA,MACA,KACA,OACD;KAGC,KAAK,IAAI,YACL,MAAM,YAAY;MAAE,OAAO;MAAM,QAAQ;MAAI,CAAC,GAC9C,KAAK;KACV;UACI,IAAI,QAAQ,KAAK,GAAG,EAMzB,OAAO;IACL,MALmB,GAAG,gBAAgB,MAAM;KAC5C,iBAAiB,SAAS;KAC1B,UAAU;KACX,CAAC,CAAC;IAGD,KAAK,IAAI,YACL,MAAM,YAAY;KAAE,OAAO;KAAM,QAAQ;KAAI,CAAC,GAC9C,KAAK;IACV;GAEH,OAAO;;EAET,MAAM,WAAW;GACf,MAAM,OAAO;GACb,MAAM,wBAAwB,OAAO;GACrC,oBAAoB;;EAEtB,aAAa;GACX,wBAAQ,IAAI,KAAK;;EAEpB;;AAGH,SAAgB,aACd,KACA,QACQ;CACR,OAAO,gBAAgB,KAAK,OAAO;;AAGrC,SAAgB,eACd,KACA,QACgB;CAChB,OAAO,gBAAgB,KAAK,OAAO;;;;;;;;AEpPrC,SAAgB,eAEd,YAKwB;CACxB,OAAO"}